A subagent child's recursion depth lived only in runtime AgentOptions, so a persisted child came back from resume counted as top-level and maxDepth stopped binding after every restart. Add SessionHeader.delegationDepth, round-trip it through the JSONL and SQLite backends (SQLite schema v5), restore it on agent-loop resume, and write it when the in-process backends create a child. The seam now owns the shared depth vocabulary (delegationDepthOf): the persisted header is authoritative and monotone — runtime options may deepen it but never lower it.
packages/cordis — the self-referential runtime toolset
Model-facing tools over the live cordis runtime the agent itself runs inside: inspect the loaded plugins and service surface, mount model-written plugins, and dispose them again. Design home: the toolset RFC.
| Package | Role | ctx key |
|---|---|---|
tool-cordis/ |
The cordis_inspect / cordis_mount / cordis_unmount tools: read the runtime, evaluate model-written plugin code in a node:vm sandbox, and manage the dynamic mounts under one group fiber |
registers on ctx.tools |