Skip to content

subagent

FieldValue
Prefixsubagent
Namespace constantSubagentNamespace
Subjects constantSubagentSubjects
Kindbus
Schema recordSubagentSchemas
Tierframework
Package@makaio/contracts
Defined inpackages/contracts/src/subagent/namespace.ts
KeyWireTypeSchema
awaitsubagent.awaitrpc
cancelledsubagent.cancelledevent
completedsubagent.completedevent
completeTasksubagent.completeTaskrpc
executesubagent.executerpc
executionFailedsubagent.executionFailedeventschemas.ts
getStatussubagent.getStatusrpc
killsubagent.killrpc
listBySessionsubagent.listBySessionrpc
reportProgresssubagent.reportProgressrpc
requestInputsubagent.requestInputrpc
sendsubagent.sendrpc
spawnsubagent.spawnrpc
spawnedsubagent.spawnedevent
toChildsubagent.toChildevent
toParentsubagent.toParentevent

RPC: Await subagent completion or terminal state

Subject: subagent.await Type: Request (RPC)

Request:

FieldTypeRequired
subagentIdstringyes
timeoutMsnumber | undefinedno

Response:

FieldTypeRequired
errorstring | undefinedno
pendingRequest{ messageId: string; question: string; context?: string | undefined; } | undefinedno
resultstring | undefinedno
status"completed" | "cancelled" | "failed" | "waiting_input" | "timeout"yes

Emitted when a subagent is cancelled by parent. Subject: subagent.cancelled

Type: Event

FieldTypeRequired
reasonstringyes
subagentIdstringyes

Emitted when a subagent completes (success or failure). Subject: subagent.completed

Type: Event

FieldTypeRequired
errorstring | undefinedno
resultstring | undefinedno
subagentIdstringyes
successbooleanyes
usage{ inputTokens: number; outputTokens: number; totalTokens: number; } | undefinedno

RPC: Child signals task completion

Subject: subagent.completeTask Type: Request (RPC)

Request:

FieldTypeRequired
resultstringyes
subagentIdstringyes
summarystring | undefinedno

Response:

FieldTypeRequired
completedbooleanyes

RPC: Execute a spawned subagent (create session + start adapter)

Subject: subagent.execute Type: Request (RPC)

Request:

FieldTypeRequired
config{ task: string; contextMode: "fork" | "fresh"; adapterName?: string | undefined; providerConfigId?: string | undefined; harnessId?: string | undefined; model?: string | undefined; tools?: string[] | undefined; disallowedTools?: string[] | undefined; systemPrompt?: string | undefined; maxDepth?: number | undefined; responseSchema?: Record<string, unknown> | undefined; executionTargetId?: string | undefined; workstreamId?: string | undefined; }yes
depthnumberyes
parentSessionIdstringyes
subagentIdstringyes
taskstringyes

Response:

FieldTypeRequired
agentIdstring | undefinedno
errorstring | undefinedno
successbooleanyes

Event: Subagent execution failed during startup

Subject: subagent.executionFailed Type: Event

FieldTypeRequired
errorstringyes
parentSessionIdstringyes
phase"session_create" | "adapter_start" | "agent_start"yes
subagentIdstringyes

Query subagent status. Subject: subagent.getStatus

Type: Request (RPC)

Request:

FieldTypeRequired
subagentIdstringyes

Response:

FieldTypeRequired
childSessionIdstring | undefinedno
errorstring | undefinedno
pendingRequest{ messageId: string; question: string; context?: string | undefined; } | undefinedno
progressstring[]yes
resultstring | undefinedno
status"completed" | "cancelled" | "failed" | "spawning" | "running" | "waiting_input" | "hung"yes
summarystring | undefinedno

RPC: Kill a running subagent

Subject: subagent.kill Type: Request (RPC)

Request:

FieldTypeRequired
reasonstring | undefinedno
subagentIdstringyes

Response:

FieldTypeRequired
killedbooleanyes

RPC: List non-terminal subagents for a parent session. Used by the coordinator manifest builder to populate activeSubagents. Returns an empty array after process restart (in-memory tracking only).

Subject: subagent.listBySession Type: Request (RPC)

Request:

FieldTypeRequired
parentSessionIdstringyes

Response:

FieldTypeRequired
subagents{ subagentId: string; task: string; status: "completed" | "cancelled" | "failed" | "spawning" | "running" | "waiting_input" | "hung"; workstreamId?: string | undefined; }[]yes

RPC: Child reports progress

Subject: subagent.reportProgress Type: Request (RPC)

Request:

FieldTypeRequired
percentCompletenumber | undefinedno
subagentIdstringyes
updatestringyes

Response:

FieldTypeRequired
reportedbooleanyes

RPC: Child requests input from parent

Subject: subagent.requestInput Type: Request (RPC)

Request:

FieldTypeRequired
contextstring | undefinedno
questionstringyes
subagentIdstringyes
timeoutMsnumber | undefinedno

Response:

FieldTypeRequired
respondedbooleanyes
responsestring | undefinedno
timedOutbooleanyes

RPC: Send message to subagent

Subject: subagent.send Type: Request (RPC)

Request:

FieldTypeRequired
contentstringyes
inResponseTostring | undefinedno
subagentIdstringyes

Response:

FieldTypeRequired
resolvedPendingbooleanyes
sentbooleanyes

RPC: Spawn a subagent (validates constraints, tracks, emits spawned)

Subject: subagent.spawn Type: Request (RPC)

Request:

FieldTypeRequired
config{ task: string; contextMode: "fork" | "fresh"; adapterName?: string | undefined; providerConfigId?: string | undefined; harnessId?: string | undefined; model?: string | undefined; tools?: string[] | undefined; disallowedTools?: string[] | undefined; systemPrompt?: string | undefined; maxDepth?: number | undefined; responseSchema?: Record<string, unknown> | undefined; executionTargetId?: string | undefined; workstreamId?: string | undefined; }yes
depthnumberyes
parentSessionIdstringyes
spawningToolCallIdstring | undefinedno

Response:

FieldTypeRequired
status"spawning"yes
subagentIdstringyes

Emitted when a subagent is spawned. Subject: subagent.spawned

Note: childSessionId is not included - the session is created by SubagentService after receiving this event, not pre-generated.

Type: Event

FieldTypeRequired
config{ task: string; contextMode: "fork" | "fresh"; adapterName?: string | undefined; providerConfigId?: string | undefined; harnessId?: string | undefined; model?: string | undefined; tools?: string[] | undefined; disallowedTools?: string[] | undefined; systemPrompt?: string | undefined; maxDepth?: number | undefined; responseSchema?: Record<string, unknown> | undefined; executionTargetId?: string | undefined; workstreamId?: string | undefined; }yes
depthnumberyes
parentSessionIdstringyes
spawningToolCallIdstring | undefinedno
subagentIdstringyes
taskstringyes

Message from parent to subagent. Subject: subagent.toChild

Type: Event

FieldTypeRequired
contentstringyes
inResponseTostring | undefinedno
messageIdstringyes
subagentIdstringyes

Message from subagent to parent. Subject: subagent.toParent Types: progress (status update), request_input (blocking question)

Type: Event

FieldTypeRequired
contentstringyes
contextstring | undefinedno
messageIdstringyes
subagentIdstringyes
type"progress" | "request_input"yes

Auto-generated by yarn docs:bus. Do not edit manually.