pub enum Syscall {
Invoke(ToolCall),
Spawn(IsolationManifest),
PageIn(PageInRequest),
WriteMemory(MemoryWriteRequest),
QueryMemory(MemoryQuery),
SubmitNodes {
count: usize,
},
LoadWorkflow {
node_count: usize,
},
}Expand description
An effectful request from the SDK that the kernel must adjudicate.
Every side-effecting service request becomes a Syscall variant; the opcode is data, so
adding a service does not add a new ABI shape (unlike the per-feature Load*Policy events today).
Variants§
Invoke(ToolCall)
Model-proposed tool call (today: the only thing through the governance gate).
Spawn(IsolationManifest)
Spawn a sub-agent (today: bypasses the gate).
PageIn(PageInRequest)
Page long-term memory into working context (today: bypasses the gate).
WriteMemory(MemoryWriteRequest)
Persist a long-term memory entry.
QueryMemory(MemoryQuery)
Retrieve long-term memory entries.
SubmitNodes
R3-1: append count nodes to the in-flight workflow DAG at runtime. Gating DAG growth through
the trap lets a ResourceQuota backstop a runaway loop-until-done (denied past
max_workflow_nodes); per-node spawns are still gated separately by Spawn.
LoadWorkflow
M5/G1: an agent authors a whole workflow spec (node_count nodes). Bootstraps the DAG when
none is active, else flattens onto it — either way it is gated by the same max_workflow_nodes
quota as SubmitNodes (a spec is just a node batch with a bootstrap fast-path), so an
agent-authored harness cannot overgrow the DAG past the run’s budget.