Skip to content

Documentation / @agentick/core / ProcedureGraph

Class: ProcedureGraph

Defined in: kernel/src/procedure-graph.ts:123

Procedure graph for tracking parent-child relationships

Constructors

Constructor

new ProcedureGraph(): ProcedureGraph

Returns

ProcedureGraph

Methods

clear()

clear(): void

Defined in: kernel/src/procedure-graph.ts:255

Clear all procedures

Returns

void


get()

get(pid): ProcedureNode | undefined

Defined in: kernel/src/procedure-graph.ts:177

Get procedure node by PID

Parameters

pid

string

Returns

ProcedureNode | undefined


getAllNodes()

getAllNodes(): ProcedureNode[]

Defined in: kernel/src/procedure-graph.ts:278

Get all procedure nodes

Returns

ProcedureNode[]


getChildNodes()

getChildNodes(parentPid): ProcedureNode[]

Defined in: kernel/src/procedure-graph.ts:207

Get child procedure nodes

Parameters

parentPid

string

Returns

ProcedureNode[]


getChildren()

getChildren(parentPid): string[]

Defined in: kernel/src/procedure-graph.ts:199

Get child procedure PIDs

Parameters

parentPid

string

Returns

string[]


getCount()

getCount(): number

Defined in: kernel/src/procedure-graph.ts:285

Get count of procedures

Returns

number


getParent()

getParent(pid): string | undefined

Defined in: kernel/src/procedure-graph.ts:184

Get parent PID

Parameters

pid

string

Returns

string | undefined


getParentNode()

getParentNode(pid): ProcedureNode | undefined

Defined in: kernel/src/procedure-graph.ts:191

Get parent node

Parameters

pid

string

Returns

ProcedureNode | undefined


getRoot()

getRoot(): ProcedureNode | undefined

Defined in: kernel/src/procedure-graph.ts:264

Get the root procedure node (O(1) lookup)

Returns

ProcedureNode | undefined


getRootPid()

getRootPid(): string | undefined

Defined in: kernel/src/procedure-graph.ts:271

Get the root procedure PID

Returns

string | undefined


hasAncestor()

hasAncestor(pid, predicate): boolean

Defined in: kernel/src/procedure-graph.ts:297

Check if any ancestor (parent chain) matches a predicate Traverses up the parent chain starting from the given PID

Parameters

pid

string

Starting procedure PID

predicate

(node) => boolean

Function to test each ancestor node

Returns

boolean

True if any ancestor matches, false otherwise


hasAncestorWithName()

hasAncestorWithName(pid, name): boolean

Defined in: kernel/src/procedure-graph.ts:334

Check if any ancestor has a specific procedure name Useful for determining if a procedure was called by Engine vs direct application call

Parameters

pid

string

Starting procedure PID

name

string

Procedure name to search for (e.g., 'engine:execute', 'engine:stream')

Returns

boolean

True if any ancestor has the specified name


propagateMetrics()

propagateMetrics(childPid): void

Defined in: kernel/src/procedure-graph.ts:216

Propagate metrics from child to parent

Parameters

childPid

string

Returns

void


register()

register(pid, parentPid?, name?, metadata?, executionId?, isExecutionBoundary?, executionType?): ProcedureNode

Defined in: kernel/src/procedure-graph.ts:139

Register a new procedure

Parameters

pid

string

Procedure ID

parentPid?

string

Parent procedure ID (undefined for root)

name?

string

Procedure name (e.g., 'model:generate', 'tool:run')

metadata?

Record<string, any>

Optional metadata

executionId?

string

Execution ID this procedure belongs to

isExecutionBoundary?

boolean

Whether this procedure is an execution entry point

executionType?

string

Type of execution (derived from procedure name prefix)

Returns

ProcedureNode


updateStatus()

updateStatus(pid, status, error?): void

Defined in: kernel/src/procedure-graph.ts:231

Update procedure status

Parameters

pid

string

status

ProcedureStatus

error?

Error

Returns

void

Released under the ISC License.