@namzu/sdk 46.0.0 → 48.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +351 -8
- package/README.md +7 -8
- package/dist/advisory/history.d.ts.map +1 -1
- package/dist/advisory/history.js +21 -1
- package/dist/advisory/history.js.map +1 -1
- package/dist/advisory/index.d.ts +1 -1
- package/dist/advisory/index.d.ts.map +1 -1
- package/dist/advisory/index.js +1 -1
- package/dist/advisory/index.js.map +1 -1
- package/dist/advisory/registry.d.ts +17 -0
- package/dist/advisory/registry.d.ts.map +1 -1
- package/dist/advisory/registry.js +26 -0
- package/dist/advisory/registry.js.map +1 -1
- package/dist/agents/PipelineAgent.d.ts +2 -46
- package/dist/agents/PipelineAgent.d.ts.map +1 -1
- package/dist/agents/PipelineAgent.js +2 -242
- package/dist/agents/PipelineAgent.js.map +1 -1
- package/dist/agents/QueryAgent.d.ts +21 -0
- package/dist/agents/QueryAgent.d.ts.map +1 -0
- package/dist/agents/QueryAgent.js +214 -0
- package/dist/agents/QueryAgent.js.map +1 -0
- package/dist/agents/ReactiveAgent.d.ts +4 -16
- package/dist/agents/ReactiveAgent.d.ts.map +1 -1
- package/dist/agents/ReactiveAgent.js +4 -183
- package/dist/agents/ReactiveAgent.js.map +1 -1
- package/dist/agents/RouterAgent.d.ts +2 -20
- package/dist/agents/RouterAgent.d.ts.map +1 -1
- package/dist/agents/RouterAgent.js +2 -266
- package/dist/agents/RouterAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts +3 -43
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +3 -418
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/defineAgent.d.ts +2 -1
- package/dist/agents/defineAgent.d.ts.map +1 -1
- package/dist/agents/defineAgent.js +6 -1
- package/dist/agents/defineAgent.js.map +1 -1
- package/dist/agents/examples/PipelineAgent.d.ts +46 -0
- package/dist/agents/examples/PipelineAgent.d.ts.map +1 -0
- package/dist/agents/examples/PipelineAgent.js +242 -0
- package/dist/agents/examples/PipelineAgent.js.map +1 -0
- package/dist/agents/examples/RouterAgent.d.ts +22 -0
- package/dist/agents/examples/RouterAgent.d.ts.map +1 -0
- package/dist/agents/examples/RouterAgent.js +268 -0
- package/dist/agents/examples/RouterAgent.js.map +1 -0
- package/dist/agents/examples/SupervisorAgent.d.ts +45 -0
- package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -0
- package/dist/agents/examples/SupervisorAgent.js +406 -0
- package/dist/agents/examples/SupervisorAgent.js.map +1 -0
- package/dist/agents/explore.d.ts +6 -3
- package/dist/agents/explore.d.ts.map +1 -1
- package/dist/agents/explore.js +6 -3
- package/dist/agents/explore.js.map +1 -1
- package/dist/agents/forward-options.d.ts +11 -0
- package/dist/agents/forward-options.d.ts.map +1 -0
- package/dist/agents/forward-options.js +15 -0
- package/dist/agents/forward-options.js.map +1 -0
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +2 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/runAgent.d.ts +19 -8
- package/dist/agents/runAgent.d.ts.map +1 -1
- package/dist/agents/runAgent.js +99 -29
- package/dist/agents/runAgent.js.map +1 -1
- package/dist/authorization/command-line.d.ts +2 -0
- package/dist/authorization/command-line.d.ts.map +1 -1
- package/dist/authorization/command-line.js +2 -2
- package/dist/authorization/command-line.js.map +1 -1
- package/dist/authorization/gate.d.ts +8 -0
- package/dist/authorization/gate.d.ts.map +1 -1
- package/dist/authorization/gate.js +12 -1
- package/dist/authorization/gate.js.map +1 -1
- package/dist/authorization/program.d.ts +151 -0
- package/dist/authorization/program.d.ts.map +1 -0
- package/dist/authorization/program.js +713 -0
- package/dist/authorization/program.js.map +1 -0
- package/dist/authorization/reexec-wrapper.d.ts +106 -0
- package/dist/authorization/reexec-wrapper.d.ts.map +1 -0
- package/dist/authorization/reexec-wrapper.js +532 -0
- package/dist/authorization/reexec-wrapper.js.map +1 -0
- package/dist/authorization/rules.d.ts +9 -0
- package/dist/authorization/rules.d.ts.map +1 -1
- package/dist/authorization/rules.js +8 -1
- package/dist/authorization/rules.js.map +1 -1
- package/dist/authorization/shell-lexer.d.ts +19 -4
- package/dist/authorization/shell-lexer.d.ts.map +1 -1
- package/dist/authorization/shell-lexer.js +91 -65
- package/dist/authorization/shell-lexer.js.map +1 -1
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +6 -0
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/capabilities/index.d.ts +54 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +92 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/config/registry.d.ts +2 -1
- package/dist/config/registry.d.ts.map +1 -1
- package/dist/config/registry.js +3 -2
- package/dist/config/registry.js.map +1 -1
- package/dist/connector/index.d.ts +4 -4
- package/dist/connector/index.d.ts.map +1 -1
- package/dist/connector/index.js +3 -3
- package/dist/connector/index.js.map +1 -1
- package/dist/connector/mcp/adapter.d.ts +16 -1
- package/dist/connector/mcp/adapter.d.ts.map +1 -1
- package/dist/connector/mcp/adapter.js +71 -4
- package/dist/connector/mcp/adapter.js.map +1 -1
- package/dist/connector/mcp/client.d.ts +32 -4
- package/dist/connector/mcp/client.d.ts.map +1 -1
- package/dist/connector/mcp/client.js +383 -5
- package/dist/connector/mcp/client.js.map +1 -1
- package/dist/connector/mcp/discovery.d.ts +24 -1
- package/dist/connector/mcp/discovery.d.ts.map +1 -1
- package/dist/connector/mcp/discovery.js +44 -0
- package/dist/connector/mcp/discovery.js.map +1 -1
- package/dist/connector/mcp/era.d.ts.map +1 -1
- package/dist/connector/mcp/era.js +7 -0
- package/dist/connector/mcp/era.js.map +1 -1
- package/dist/connector/mcp/index.d.ts +2 -0
- package/dist/connector/mcp/index.d.ts.map +1 -1
- package/dist/connector/mcp/index.js +11 -0
- package/dist/connector/mcp/index.js.map +1 -1
- package/dist/connector/mcp/mcp-toolset.d.ts +133 -0
- package/dist/connector/mcp/mcp-toolset.d.ts.map +1 -0
- package/dist/connector/mcp/mcp-toolset.js +399 -0
- package/dist/connector/mcp/mcp-toolset.js.map +1 -0
- package/dist/connector/mcp/streamable-http.d.ts +15 -0
- package/dist/connector/mcp/streamable-http.d.ts.map +1 -1
- package/dist/connector/mcp/streamable-http.js +281 -6
- package/dist/connector/mcp/streamable-http.js.map +1 -1
- package/dist/connector/tools/index.d.ts +2 -2
- package/dist/connector/tools/index.d.ts.map +1 -1
- package/dist/connector/tools/index.js +1 -1
- package/dist/connector/tools/index.js.map +1 -1
- package/dist/connector/tools/router.d.ts +15 -13
- package/dist/connector/tools/router.d.ts.map +1 -1
- package/dist/connector/tools/router.js +30 -51
- package/dist/connector/tools/router.js.map +1 -1
- package/dist/contracts/a2a.d.ts +2 -2
- package/dist/directory/derive-supervisor.d.ts +2 -2
- package/dist/directory/derive-supervisor.d.ts.map +1 -1
- package/dist/directory/derive-supervisor.js +6 -7
- package/dist/directory/derive-supervisor.js.map +1 -1
- package/dist/directory/derive.d.ts.map +1 -1
- package/dist/directory/derive.js +5 -5
- package/dist/directory/derive.js.map +1 -1
- package/dist/execution/code-runtime/types.d.ts +2 -2
- package/dist/execution/code-runtime/types.js +1 -1
- package/dist/invariants/index.d.ts +2 -1
- package/dist/invariants/index.d.ts.map +1 -1
- package/dist/invariants/index.js +3 -2
- package/dist/invariants/index.js.map +1 -1
- package/dist/manager/agent/lifecycle.d.ts +1 -0
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +146 -18
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/connector/environment.d.ts +6 -0
- package/dist/manager/connector/environment.d.ts.map +1 -1
- package/dist/manager/connector/environment.js +11 -4
- package/dist/manager/connector/environment.js.map +1 -1
- package/dist/manager/connector/index.d.ts +2 -2
- package/dist/manager/connector/index.d.ts.map +1 -1
- package/dist/manager/connector/index.js +2 -2
- package/dist/manager/connector/index.js.map +1 -1
- package/dist/manager/connector/tenant.d.ts +6 -0
- package/dist/manager/connector/tenant.d.ts.map +1 -1
- package/dist/manager/connector/tenant.js +11 -4
- package/dist/manager/connector/tenant.js.map +1 -1
- package/dist/manager/index.d.ts +2 -2
- package/dist/manager/index.d.ts.map +1 -1
- package/dist/manager/index.js +2 -2
- package/dist/manager/index.js.map +1 -1
- package/dist/manager/resident/initiative.d.ts +6 -6
- package/dist/manager/resident/learning-observation.d.ts +4 -4
- package/dist/manager/resident/learning.d.ts +36 -36
- package/dist/manager/resident/outbox.d.ts +4 -4
- package/dist/manager/session/attribution.d.ts +22 -0
- package/dist/manager/session/attribution.d.ts.map +1 -0
- package/dist/manager/session/attribution.js +64 -0
- package/dist/manager/session/attribution.js.map +1 -0
- package/dist/manager/session/turn-recorder.d.ts +14 -0
- package/dist/manager/session/turn-recorder.d.ts.map +1 -1
- package/dist/manager/session/turn-recorder.js +208 -55
- package/dist/manager/session/turn-recorder.js.map +1 -1
- package/dist/peers/address.d.ts +36 -0
- package/dist/peers/address.d.ts.map +1 -0
- package/dist/peers/address.js +52 -0
- package/dist/peers/address.js.map +1 -0
- package/dist/peers/client.d.ts +47 -0
- package/dist/peers/client.d.ts.map +1 -0
- package/dist/peers/client.js +132 -0
- package/dist/peers/client.js.map +1 -0
- package/dist/peers/dir.d.ts +88 -0
- package/dist/peers/dir.d.ts.map +1 -0
- package/dist/peers/dir.js +139 -0
- package/dist/peers/dir.js.map +1 -0
- package/dist/peers/endpoint.d.ts +144 -0
- package/dist/peers/endpoint.d.ts.map +1 -0
- package/dist/peers/endpoint.js +420 -0
- package/dist/peers/endpoint.js.map +1 -0
- package/dist/peers/envelope.d.ts +42 -0
- package/dist/peers/envelope.d.ts.map +1 -0
- package/dist/peers/envelope.js +110 -0
- package/dist/peers/envelope.js.map +1 -0
- package/dist/peers/index.d.ts +30 -0
- package/dist/peers/index.d.ts.map +1 -0
- package/dist/peers/index.js +22 -0
- package/dist/peers/index.js.map +1 -0
- package/dist/peers/protocol.d.ts +645 -0
- package/dist/peers/protocol.d.ts.map +1 -0
- package/dist/peers/protocol.js +151 -0
- package/dist/peers/protocol.js.map +1 -0
- package/dist/peers/record.d.ts +71 -0
- package/dist/peers/record.d.ts.map +1 -0
- package/dist/peers/record.js +45 -0
- package/dist/peers/record.js.map +1 -0
- package/dist/peers/registry.d.ts +54 -0
- package/dist/peers/registry.d.ts.map +1 -0
- package/dist/peers/registry.js +213 -0
- package/dist/peers/registry.js.map +1 -0
- package/dist/plugin/define.d.ts +24 -0
- package/dist/plugin/define.d.ts.map +1 -0
- package/dist/plugin/define.js +42 -0
- package/dist/plugin/define.js.map +1 -0
- package/dist/plugin/index.d.ts +2 -0
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +1 -0
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/lifecycle.d.ts +27 -3
- package/dist/plugin/lifecycle.d.ts.map +1 -1
- package/dist/plugin/lifecycle.js +242 -92
- package/dist/plugin/lifecycle.js.map +1 -1
- package/dist/plugin/resolver.d.ts +2 -2
- package/dist/plugin/resolver.d.ts.map +1 -1
- package/dist/plugin/resolver.js.map +1 -1
- package/dist/plugin/shell-hook.d.ts.map +1 -1
- package/dist/plugin/shell-hook.js +17 -3
- package/dist/plugin/shell-hook.js.map +1 -1
- package/dist/probe/errors.d.ts +2 -1
- package/dist/probe/errors.d.ts.map +1 -1
- package/dist/probe/errors.js +3 -2
- package/dist/probe/errors.js.map +1 -1
- package/dist/prompt/coding-agent-doctrine.d.ts +18 -7
- package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
- package/dist/prompt/coding-agent-doctrine.js +11 -6
- package/dist/prompt/coding-agent-doctrine.js.map +1 -1
- package/dist/prompt/contributions.d.ts +4 -1
- package/dist/prompt/contributions.d.ts.map +1 -1
- package/dist/prompt/contributions.js +7 -2
- package/dist/prompt/contributions.js.map +1 -1
- package/dist/prompt/index.d.ts +1 -1
- package/dist/prompt/index.d.ts.map +1 -1
- package/dist/prompt/index.js +1 -1
- package/dist/prompt/index.js.map +1 -1
- package/dist/provider/collect-chat-completion.d.ts +6 -1
- package/dist/provider/collect-chat-completion.d.ts.map +1 -1
- package/dist/provider/collect-chat-completion.js +88 -10
- package/dist/provider/collect-chat-completion.js.map +1 -1
- package/dist/provider/mock.d.ts.map +1 -1
- package/dist/provider/mock.js +23 -6
- package/dist/provider/mock.js.map +1 -1
- package/dist/provider/registry.d.ts +2 -1
- package/dist/provider/registry.d.ts.map +1 -1
- package/dist/provider/registry.js +3 -2
- package/dist/provider/registry.js.map +1 -1
- package/dist/provider/tool-call-framing.d.ts +164 -0
- package/dist/provider/tool-call-framing.d.ts.map +1 -0
- package/dist/provider/tool-call-framing.js +163 -0
- package/dist/provider/tool-call-framing.js.map +1 -0
- package/dist/public-runtime.d.ts +24 -11
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +45 -9
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +6 -4
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +8 -3
- package/dist/public-tools.js.map +1 -1
- package/dist/public-types.d.ts +13 -2
- package/dist/public-types.d.ts.map +1 -1
- package/dist/read-model/registry.d.ts +2 -1
- package/dist/read-model/registry.d.ts.map +1 -1
- package/dist/read-model/registry.js +3 -2
- package/dist/read-model/registry.js.map +1 -1
- package/dist/registry/ManagedRegistry.d.ts +30 -0
- package/dist/registry/ManagedRegistry.d.ts.map +1 -1
- package/dist/registry/ManagedRegistry.js +45 -6
- package/dist/registry/ManagedRegistry.js.map +1 -1
- package/dist/registry/collision.d.ts +57 -0
- package/dist/registry/collision.d.ts.map +1 -0
- package/dist/registry/collision.js +41 -0
- package/dist/registry/collision.js.map +1 -0
- package/dist/registry/command/index.d.ts +5 -3
- package/dist/registry/command/index.d.ts.map +1 -1
- package/dist/registry/command/index.js +6 -4
- package/dist/registry/command/index.js.map +1 -1
- package/dist/registry/index.d.ts +3 -4
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +2 -2
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/plugin/index.d.ts.map +1 -1
- package/dist/registry/plugin/index.js +14 -1
- package/dist/registry/plugin/index.js.map +1 -1
- package/dist/registry/tool/callable.d.ts +7 -7
- package/dist/registry/tool/callable.d.ts.map +1 -1
- package/dist/registry/tool/callable.js +6 -7
- package/dist/registry/tool/callable.js.map +1 -1
- package/dist/registry/tool/execute.d.ts +14 -77
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +15 -727
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/registry/tool/portable.d.ts +25 -0
- package/dist/registry/tool/portable.d.ts.map +1 -1
- package/dist/registry/tool/portable.js +50 -0
- package/dist/registry/tool/portable.js.map +1 -1
- package/dist/registry/tool/presentation.d.ts +6 -5
- package/dist/registry/tool/presentation.d.ts.map +1 -1
- package/dist/registry/tool/presentation.js +3 -3
- package/dist/registry/tool/presentation.js.map +1 -1
- package/dist/runtime/bidi/session.d.ts +5 -4
- package/dist/runtime/bidi/session.d.ts.map +1 -1
- package/dist/runtime/bidi/session.js +18 -1
- package/dist/runtime/bidi/session.js.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.d.ts +45 -2
- package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.js +189 -5
- package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +33 -3
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +86 -10
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/file-evidence-replay.d.ts +1 -1
- package/dist/runtime/query/file-evidence-replay.d.ts.map +1 -1
- package/dist/runtime/query/file-evidence-replay.js +8 -7
- package/dist/runtime/query/file-evidence-replay.js.map +1 -1
- package/dist/runtime/query/fork/prepare.d.ts +4 -1
- package/dist/runtime/query/fork/prepare.d.ts.map +1 -1
- package/dist/runtime/query/fork/prepare.js +4 -0
- package/dist/runtime/query/fork/prepare.js.map +1 -1
- package/dist/runtime/query/guardrail-presets.d.ts +4 -3
- package/dist/runtime/query/guardrail-presets.d.ts.map +1 -1
- package/dist/runtime/query/guardrail-presets.js +4 -3
- package/dist/runtime/query/guardrail-presets.js.map +1 -1
- package/dist/runtime/query/index.d.ts +23 -10
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +149 -70
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +8 -1
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +2 -2
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +55 -2
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.js +342 -116
- package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
- package/dist/runtime/query/iteration/tool-input.d.ts +79 -0
- package/dist/runtime/query/iteration/tool-input.d.ts.map +1 -0
- package/dist/runtime/query/iteration/tool-input.js +291 -0
- package/dist/runtime/query/iteration/tool-input.js.map +1 -0
- package/dist/runtime/query/observation-context.d.ts +2 -2
- package/dist/runtime/query/observation-context.d.ts.map +1 -1
- package/dist/runtime/query/observation-context.js.map +1 -1
- package/dist/runtime/query/prelude-lease.d.ts +18 -0
- package/dist/runtime/query/prelude-lease.d.ts.map +1 -0
- package/dist/runtime/query/prelude-lease.js +121 -0
- package/dist/runtime/query/prelude-lease.js.map +1 -0
- package/dist/runtime/query/prepare-turn.d.ts.map +1 -1
- package/dist/runtime/query/prepare-turn.js +386 -187
- package/dist/runtime/query/prepare-turn.js.map +1 -1
- package/dist/runtime/query/prompt-cache.d.ts +2 -2
- package/dist/runtime/query/prompt-cache.d.ts.map +1 -1
- package/dist/runtime/query/prompt.d.ts +2 -2
- package/dist/runtime/query/prompt.d.ts.map +1 -1
- package/dist/runtime/query/prompt.js +1 -1
- package/dist/runtime/query/prompt.js.map +1 -1
- package/dist/runtime/query/resume-session.d.ts.map +1 -1
- package/dist/runtime/query/resume-session.js +37 -2
- package/dist/runtime/query/resume-session.js.map +1 -1
- package/dist/runtime/query/review-policy.d.ts +22 -3
- package/dist/runtime/query/review-policy.d.ts.map +1 -1
- package/dist/runtime/query/review-policy.js +84 -6
- package/dist/runtime/query/review-policy.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +3 -2
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/runtime/query/turn-state.d.ts.map +1 -1
- package/dist/runtime/query/turn-state.js +5 -0
- package/dist/runtime/query/turn-state.js.map +1 -1
- package/dist/runtime/system-events.d.ts +112 -0
- package/dist/runtime/system-events.d.ts.map +1 -0
- package/dist/runtime/system-events.js +183 -0
- package/dist/runtime/system-events.js.map +1 -0
- package/dist/scheduler/delegating.d.ts +2 -1
- package/dist/scheduler/delegating.d.ts.map +1 -1
- package/dist/scheduler/delegating.js +3 -2
- package/dist/scheduler/delegating.js.map +1 -1
- package/dist/scheduler/local.d.ts.map +1 -1
- package/dist/scheduler/local.js +2 -0
- package/dist/scheduler/local.js.map +1 -1
- package/dist/session/retention/archive.js +1 -1
- package/dist/session/retention/archive.js.map +1 -1
- package/dist/skills/index.d.ts +1 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -1
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/registry.d.ts +12 -0
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +19 -0
- package/dist/skills/registry.js.map +1 -1
- package/dist/store/evidence/index-page.d.ts +2 -2
- package/dist/store/session/disk.d.ts.map +1 -1
- package/dist/store/session/disk.js +2 -0
- package/dist/store/session/disk.js.map +1 -1
- package/dist/store/session-log/conformance.d.ts +1 -1
- package/dist/store/session-log/conformance.d.ts.map +1 -1
- package/dist/store/session-log/conformance.js +49 -8
- package/dist/store/session-log/conformance.js.map +1 -1
- package/dist/store/session-log/core.d.ts +8 -3
- package/dist/store/session-log/core.d.ts.map +1 -1
- package/dist/store/session-log/core.js +2 -1
- package/dist/store/session-log/core.js.map +1 -1
- package/dist/store/session-log/fold.d.ts +12 -0
- package/dist/store/session-log/fold.d.ts.map +1 -1
- package/dist/store/session-log/fold.js +57 -7
- package/dist/store/session-log/fold.js.map +1 -1
- package/dist/store/session-log/index.d.ts +2 -2
- package/dist/store/session-log/index.d.ts.map +1 -1
- package/dist/store/session-log/index.js +1 -1
- package/dist/store/session-log/index.js.map +1 -1
- package/dist/test-support/toolset.d.ts +19 -0
- package/dist/test-support/toolset.d.ts.map +1 -0
- package/dist/test-support/toolset.js +20 -0
- package/dist/test-support/toolset.js.map +1 -0
- package/dist/tools/builtins/bash.d.ts +29 -0
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +19 -9
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/browser-url.d.ts +1 -1
- package/dist/tools/builtins/browser-url.js +1 -1
- package/dist/tools/builtins/browser.d.ts +6 -6
- package/dist/tools/builtins/browser.js +2 -2
- package/dist/tools/builtins/browser.js.map +1 -1
- package/dist/tools/builtins/computer-use.d.ts.map +1 -1
- package/dist/tools/builtins/computer-use.js +19 -11
- package/dist/tools/builtins/computer-use.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +9 -1
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/json-string-hint.d.ts +15 -0
- package/dist/tools/builtins/json-string-hint.d.ts.map +1 -0
- package/dist/tools/builtins/json-string-hint.js +17 -0
- package/dist/tools/builtins/json-string-hint.js.map +1 -0
- package/dist/tools/builtins/search-tools.d.ts.map +1 -1
- package/dist/tools/builtins/search-tools.js +7 -15
- package/dist/tools/builtins/search-tools.js.map +1 -1
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +11 -0
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/command-shell.d.ts +10 -0
- package/dist/tools/command-shell.d.ts.map +1 -1
- package/dist/tools/command-shell.js +45 -1
- package/dist/tools/command-shell.js.map +1 -1
- package/dist/tools/coordinator/agent.d.ts.map +1 -1
- package/dist/tools/coordinator/agent.js +5 -0
- package/dist/tools/coordinator/agent.js.map +1 -1
- package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
- package/dist/tools/coordinator/ask-user-question.js +26 -13
- package/dist/tools/coordinator/ask-user-question.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +5 -0
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/coordinator/question-options.d.ts +78 -0
- package/dist/tools/coordinator/question-options.d.ts.map +1 -0
- package/dist/tools/coordinator/question-options.js +153 -0
- package/dist/tools/coordinator/question-options.js.map +1 -0
- package/dist/tools/defineTool.d.ts +10 -0
- package/dist/tools/defineTool.d.ts.map +1 -1
- package/dist/tools/defineTool.js +17 -0
- package/dist/tools/defineTool.js.map +1 -1
- package/dist/tools/memory/search.d.ts.map +1 -1
- package/dist/tools/memory/search.js +4 -1
- package/dist/tools/memory/search.js.map +1 -1
- package/dist/tools/memory/update.d.ts.map +1 -1
- package/dist/tools/memory/update.js +8 -5
- package/dist/tools/memory/update.js.map +1 -1
- package/dist/tools/render-nonce.d.ts +47 -0
- package/dist/tools/render-nonce.d.ts.map +1 -0
- package/dist/tools/render-nonce.js +63 -0
- package/dist/tools/render-nonce.js.map +1 -0
- package/dist/tools/roster.d.ts +46 -19
- package/dist/tools/roster.d.ts.map +1 -1
- package/dist/tools/roster.js +63 -33
- package/dist/tools/roster.js.map +1 -1
- package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
- package/dist/tools/schedules/schedule-tool.js +94 -14
- package/dist/tools/schedules/schedule-tool.js.map +1 -1
- package/dist/tools/schedules/types.d.ts +52 -6
- package/dist/tools/schedules/types.d.ts.map +1 -1
- package/dist/tools/trusted-read-only.d.ts +9 -5
- package/dist/tools/trusted-read-only.d.ts.map +1 -1
- package/dist/tools/trusted-read-only.js +14 -10
- package/dist/tools/trusted-read-only.js.map +1 -1
- package/dist/tools/untrusted-envelope.d.ts +67 -28
- package/dist/tools/untrusted-envelope.d.ts.map +1 -1
- package/dist/tools/untrusted-envelope.js +108 -59
- package/dist/tools/untrusted-envelope.js.map +1 -1
- package/dist/toolsets/combine.d.ts +44 -0
- package/dist/toolsets/combine.d.ts.map +1 -0
- package/dist/toolsets/combine.js +153 -0
- package/dist/toolsets/combine.js.map +1 -0
- package/dist/toolsets/manager.d.ts +201 -0
- package/dist/toolsets/manager.d.ts.map +1 -0
- package/dist/toolsets/manager.js +837 -0
- package/dist/toolsets/manager.js.map +1 -0
- package/dist/toolsets/source-glob.d.ts +15 -0
- package/dist/toolsets/source-glob.d.ts.map +1 -0
- package/dist/toolsets/source-glob.js +23 -0
- package/dist/toolsets/source-glob.js.map +1 -0
- package/dist/toolsets/toolset.d.ts +20 -0
- package/dist/toolsets/toolset.d.ts.map +1 -0
- package/dist/toolsets/toolset.js +28 -0
- package/dist/toolsets/toolset.js.map +1 -0
- package/dist/toolsets/types.d.ts +128 -0
- package/dist/toolsets/types.d.ts.map +1 -0
- package/dist/toolsets/types.js +33 -0
- package/dist/toolsets/types.js.map +1 -0
- package/dist/toolsets/wrappers.d.ts +59 -0
- package/dist/toolsets/wrappers.d.ts.map +1 -0
- package/dist/toolsets/wrappers.js +165 -0
- package/dist/toolsets/wrappers.js.map +1 -0
- package/dist/types/agent/base.d.ts +27 -16
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/agent/index.d.ts +1 -0
- package/dist/types/agent/index.d.ts.map +1 -1
- package/dist/types/agent/index.js +1 -0
- package/dist/types/agent/index.js.map +1 -1
- package/dist/types/agent/pipeline.d.ts +2 -0
- package/dist/types/agent/pipeline.d.ts.map +1 -1
- package/dist/types/agent/query.d.ts +117 -0
- package/dist/types/agent/query.d.ts.map +1 -0
- package/dist/types/agent/query.js +2 -0
- package/dist/types/agent/query.js.map +1 -0
- package/dist/types/agent/reactive.d.ts +2 -129
- package/dist/types/agent/reactive.d.ts.map +1 -1
- package/dist/types/agent/router.d.ts +2 -0
- package/dist/types/agent/router.d.ts.map +1 -1
- package/dist/types/agent/scheduler.d.ts +6 -1
- package/dist/types/agent/scheduler.d.ts.map +1 -1
- package/dist/types/agent/supervisor.d.ts +5 -2
- package/dist/types/agent/supervisor.d.ts.map +1 -1
- package/dist/types/agent/task.d.ts +19 -1
- package/dist/types/agent/task.d.ts.map +1 -1
- package/dist/types/agent/task.js.map +1 -1
- package/dist/types/authorization/index.d.ts +49 -12
- package/dist/types/authorization/index.d.ts.map +1 -1
- package/dist/types/authorization/index.js +6 -0
- package/dist/types/authorization/index.js.map +1 -1
- package/dist/types/connector/mcp.d.ts +45 -0
- package/dist/types/connector/mcp.d.ts.map +1 -1
- package/dist/types/errors/index.d.ts +15 -0
- package/dist/types/errors/index.d.ts.map +1 -1
- package/dist/types/errors/index.js.map +1 -1
- package/dist/types/hitl/index.d.ts +57 -0
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/message/index.d.ts +130 -9
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +4 -1
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/plugin/index.d.ts +22 -4
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/plugin/index.js +1 -0
- package/dist/types/plugin/index.js.map +1 -1
- package/dist/types/provider/chat.d.ts +5 -0
- package/dist/types/provider/chat.d.ts.map +1 -1
- package/dist/types/provider/config.d.ts +8 -3
- package/dist/types/provider/config.d.ts.map +1 -1
- package/dist/types/provider/stream.d.ts +39 -0
- package/dist/types/provider/stream.d.ts.map +1 -1
- package/dist/types/sandbox/index.d.ts +1 -1
- package/dist/types/session/events.d.ts +14 -3
- package/dist/types/session/events.d.ts.map +1 -1
- package/dist/types/session/events.js.map +1 -1
- package/dist/types/session/sub-session.d.ts +2 -0
- package/dist/types/session/sub-session.d.ts.map +1 -1
- package/dist/types/tool/index.d.ts +152 -91
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/types/toolset/index.d.ts +10 -40
- package/dist/types/toolset/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/advisory/history.ts +27 -2
- package/src/advisory/index.ts +1 -1
- package/src/advisory/registry.ts +33 -0
- package/src/agents/AGENTS.md +14 -7
- package/src/agents/PipelineAgent.ts +2 -303
- package/src/agents/QueryAgent.ts +269 -0
- package/src/agents/ReactiveAgent.ts +6 -216
- package/src/agents/RouterAgent.ts +2 -337
- package/src/agents/SupervisorAgent.ts +3 -476
- package/src/agents/defineAgent.ts +13 -2
- package/src/agents/examples/PipelineAgent.ts +302 -0
- package/src/agents/examples/RouterAgent.ts +338 -0
- package/src/agents/examples/SupervisorAgent.ts +472 -0
- package/src/agents/explore.ts +6 -3
- package/src/agents/forward-options.ts +37 -0
- package/src/agents/index.ts +2 -0
- package/src/agents/runAgent.ts +144 -37
- package/src/authorization/command-line.ts +2 -2
- package/src/authorization/gate.ts +21 -1
- package/src/authorization/program.ts +773 -0
- package/src/authorization/reexec-wrapper.ts +589 -0
- package/src/authorization/rules.ts +18 -1
- package/src/authorization/shell-lexer.ts +104 -59
- package/src/bridge/sse/mapper.ts +6 -0
- package/src/capabilities/index.ts +157 -0
- package/src/config/registry.ts +4 -1
- package/src/connector/index.ts +9 -2
- package/src/connector/mcp/adapter.ts +73 -3
- package/src/connector/mcp/client.ts +425 -6
- package/src/connector/mcp/discovery.ts +60 -0
- package/src/connector/mcp/era.ts +7 -0
- package/src/connector/mcp/index.ts +13 -0
- package/src/connector/mcp/mcp-toolset.ts +515 -0
- package/src/connector/mcp/streamable-http.ts +302 -5
- package/src/connector/tools/index.ts +2 -2
- package/src/connector/tools/router.ts +35 -58
- package/src/directory/derive-supervisor.ts +12 -8
- package/src/directory/derive.ts +8 -5
- package/src/execution/code-runtime/types.ts +2 -2
- package/src/invariants/index.ts +4 -1
- package/src/manager/agent/lifecycle.ts +167 -19
- package/src/manager/connector/environment.ts +17 -4
- package/src/manager/connector/index.ts +2 -2
- package/src/manager/connector/tenant.ts +17 -4
- package/src/manager/index.ts +2 -2
- package/src/manager/session/attribution.ts +79 -0
- package/src/manager/session/turn-recorder.ts +211 -55
- package/src/peers/address.ts +58 -0
- package/src/peers/client.ts +202 -0
- package/src/peers/dir.ts +176 -0
- package/src/peers/endpoint.ts +564 -0
- package/src/peers/envelope.ts +121 -0
- package/src/peers/index.ts +96 -0
- package/src/peers/protocol.ts +196 -0
- package/src/peers/record.ts +56 -0
- package/src/peers/registry.ts +241 -0
- package/src/plugin/define.ts +68 -0
- package/src/plugin/index.ts +2 -0
- package/src/plugin/lifecycle.ts +286 -106
- package/src/plugin/resolver.ts +6 -3
- package/src/plugin/shell-hook.ts +21 -5
- package/src/probe/errors.ts +4 -1
- package/src/prompt/coding-agent-doctrine.ts +22 -10
- package/src/prompt/contributions.ts +12 -2
- package/src/prompt/index.ts +1 -0
- package/src/provider/collect-chat-completion.ts +96 -11
- package/src/provider/mock.ts +24 -6
- package/src/provider/registry.ts +4 -1
- package/src/provider/tool-call-framing.ts +226 -0
- package/src/public-runtime.ts +136 -7
- package/src/public-tools.ts +24 -4
- package/src/public-types.ts +60 -6
- package/src/read-model/registry.ts +7 -2
- package/src/registry/ManagedRegistry.ts +57 -6
- package/src/registry/collision.ts +64 -0
- package/src/registry/command/index.ts +7 -3
- package/src/registry/index.ts +3 -9
- package/src/registry/plugin/index.ts +14 -1
- package/src/registry/tool/callable.ts +8 -9
- package/src/registry/tool/execute.ts +16 -846
- package/src/registry/tool/portable.ts +59 -0
- package/src/registry/tool/presentation.ts +6 -5
- package/src/runtime/bidi/session.ts +24 -5
- package/src/runtime/query/executor/tool-call-admission.ts +228 -6
- package/src/runtime/query/executor.ts +110 -12
- package/src/runtime/query/file-evidence-replay.ts +8 -7
- package/src/runtime/query/fork/prepare.ts +6 -1
- package/src/runtime/query/guardrail-presets.ts +4 -3
- package/src/runtime/query/index.ts +199 -101
- package/src/runtime/query/iteration/index.ts +13 -3
- package/src/runtime/query/iteration/phases/compaction.ts +1 -1
- package/src/runtime/query/iteration/phases/context.ts +2 -2
- package/src/runtime/query/iteration/phases/tool-review.ts +59 -2
- package/src/runtime/query/iteration/stream-turn.ts +390 -136
- package/src/runtime/query/iteration/tool-input.ts +284 -0
- package/src/runtime/query/observation-context.ts +2 -2
- package/src/runtime/query/prelude-lease.ts +132 -0
- package/src/runtime/query/prepare-turn.ts +477 -198
- package/src/runtime/query/prompt-cache.ts +2 -2
- package/src/runtime/query/prompt.ts +4 -4
- package/src/runtime/query/resume-session.ts +42 -3
- package/src/runtime/query/review-policy.ts +87 -9
- package/src/runtime/query/tooling.ts +3 -6
- package/src/runtime/query/turn-state.ts +4 -0
- package/src/runtime/system-events.ts +246 -0
- package/src/scheduler/delegating.ts +7 -2
- package/src/scheduler/local.ts +2 -0
- package/src/session/retention/archive.ts +1 -1
- package/src/skills/index.ts +1 -1
- package/src/skills/registry.ts +25 -0
- package/src/store/session/disk.ts +3 -0
- package/src/store/session-log/conformance.ts +51 -8
- package/src/store/session-log/core.ts +10 -4
- package/src/store/session-log/fold.ts +33 -7
- package/src/store/session-log/index.ts +2 -0
- package/src/test-support/toolset.ts +23 -0
- package/src/tools/builtins/bash.ts +27 -10
- package/src/tools/builtins/browser-url.ts +1 -1
- package/src/tools/builtins/browser.ts +2 -2
- package/src/tools/builtins/computer-use.ts +21 -11
- package/src/tools/builtins/edit.ts +12 -2
- package/src/tools/builtins/json-string-hint.ts +16 -0
- package/src/tools/builtins/search-tools.ts +7 -20
- package/src/tools/builtins/write-file.ts +12 -0
- package/src/tools/command-shell.ts +46 -1
- package/src/tools/coordinator/agent.ts +6 -0
- package/src/tools/coordinator/ask-user-question.ts +29 -15
- package/src/tools/coordinator/index.ts +6 -0
- package/src/tools/coordinator/question-options.ts +195 -0
- package/src/tools/defineTool.ts +28 -0
- package/src/tools/memory/search.ts +4 -1
- package/src/tools/memory/update.ts +8 -5
- package/src/tools/render-nonce.ts +69 -0
- package/src/tools/roster.ts +84 -33
- package/src/tools/schedules/schedule-tool.ts +107 -14
- package/src/tools/schedules/types.ts +52 -6
- package/src/tools/trusted-read-only.ts +19 -10
- package/src/tools/untrusted-envelope.ts +121 -57
- package/src/toolsets/combine.ts +181 -0
- package/src/toolsets/manager.ts +996 -0
- package/src/toolsets/source-glob.ts +22 -0
- package/src/toolsets/toolset.ts +31 -0
- package/src/toolsets/types.ts +154 -0
- package/src/toolsets/wrappers.ts +191 -0
- package/src/types/agent/base.ts +29 -16
- package/src/types/agent/index.ts +1 -0
- package/src/types/agent/pipeline.ts +2 -0
- package/src/types/agent/query.ts +129 -0
- package/src/types/agent/reactive.ts +5 -142
- package/src/types/agent/router.ts +2 -0
- package/src/types/agent/scheduler.ts +6 -1
- package/src/types/agent/supervisor.ts +5 -2
- package/src/types/agent/task.ts +21 -1
- package/src/types/authorization/index.ts +12 -0
- package/src/types/connector/mcp.ts +46 -0
- package/src/types/errors/index.ts +15 -0
- package/src/types/hitl/index.ts +57 -0
- package/src/types/message/index.ts +135 -7
- package/src/types/plugin/index.ts +44 -21
- package/src/types/provider/chat.ts +5 -0
- package/src/types/provider/config.ts +8 -3
- package/src/types/provider/stream.ts +39 -0
- package/src/types/sandbox/index.ts +1 -1
- package/src/types/session/events.ts +14 -3
- package/src/types/session/sub-session.ts +2 -0
- package/src/types/tool/index.ts +154 -105
- package/src/types/toolset/index.ts +10 -47
- package/dist/registry/toolset/catalog.d.ts +0 -42
- package/dist/registry/toolset/catalog.d.ts.map +0 -1
- package/dist/registry/toolset/catalog.js +0 -234
- package/dist/registry/toolset/catalog.js.map +0 -1
- package/src/registry/toolset/catalog.ts +0 -308
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { DEFAULT_TIMEOUT_MS, DEFAULT_TOKEN_BUDGET } from '../agents/runAgent.js';
|
|
2
|
-
import {
|
|
2
|
+
import { toolset } from '../toolsets/toolset.js';
|
|
3
3
|
function toolsOf(manifest) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return tools;
|
|
4
|
+
return [
|
|
5
|
+
toolset('directory', manifest.tools.map((entry) => entry.definition)),
|
|
6
|
+
];
|
|
8
7
|
}
|
|
9
8
|
function delegatePlan(entry, fallbackModel) {
|
|
10
9
|
return {
|
|
11
10
|
id: entry.id,
|
|
12
11
|
manifest: entry.manifest,
|
|
13
12
|
systemPrompt: entry.manifest.instructions,
|
|
14
|
-
|
|
13
|
+
toolsets: toolsOf(entry.manifest),
|
|
15
14
|
// A delegate may name its own model — a cheap one for a narrow job is
|
|
16
15
|
// the common case — and inherits the supervisor's only when it does
|
|
17
16
|
// not. Inheriting unconditionally would silently bill every specialist
|
|
@@ -53,7 +52,7 @@ export function deriveSupervisorOptions(manifest, input) {
|
|
|
53
52
|
agentManager: input.agentManager,
|
|
54
53
|
agentIds: delegates.map((d) => d.id),
|
|
55
54
|
systemPrompt: manifest.instructions,
|
|
56
|
-
|
|
55
|
+
toolsets: toolsOf(manifest),
|
|
57
56
|
// Skills were loaded and then dropped. The manifest reads a whole
|
|
58
57
|
// `skills/` directory and `SupervisorAgentConfig` takes them, and the
|
|
59
58
|
// cast that used to close this object meant nobody was told the field
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive-supervisor.js","sourceRoot":"","sources":["../../src/directory/derive-supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAEhF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"derive-supervisor.js","sourceRoot":"","sources":["../../src/directory/derive-supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/directory/derive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/directory/derive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE3E;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,sBAAsB,GAC3B,eAAe,CAsEjB"}
|
package/dist/directory/derive.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toolset } from '../toolsets/toolset.js';
|
|
2
2
|
/**
|
|
3
3
|
* Turn a loaded project into the options `runAgent` takes.
|
|
4
4
|
*
|
|
@@ -19,14 +19,14 @@ export function deriveTurnOptions(manifest, input) {
|
|
|
19
19
|
if (!model) {
|
|
20
20
|
throw new Error(`No model. Declare one in ${manifest.root}/agent.ts as \`export default { model: "…" }\`, or pass \`model\` here.`);
|
|
21
21
|
}
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
const toolsets = [
|
|
23
|
+
toolset('directory', manifest.tools.map((entry) => entry.definition)),
|
|
24
|
+
];
|
|
25
25
|
return {
|
|
26
26
|
provider: input.provider,
|
|
27
27
|
prompt: input.prompt,
|
|
28
28
|
model,
|
|
29
|
-
|
|
29
|
+
toolsets,
|
|
30
30
|
// The one value the project knows and `runAgent` cannot infer. Left
|
|
31
31
|
// unset it would default to the host's own cwd, pointing the file
|
|
32
32
|
// tools' containment at the host's source tree rather than at the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/directory/derive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/directory/derive.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* backend that cannot withhold those is not a backend for this.
|
|
19
19
|
* - **Everything it can do, it does by asking.** The only channel out is a
|
|
20
20
|
* call back into the host, which is what makes NZ-EXEC-06's dispatch
|
|
21
|
-
* through the turn's own `
|
|
21
|
+
* through the turn's own `ToolManager` possible — the program cannot
|
|
22
22
|
* reach a tool the turn did not grant, because it cannot reach anything.
|
|
23
23
|
* - **Bounded.** Wall clock and output, both enforced by the backend
|
|
24
24
|
* rather than requested of the program.
|
|
@@ -53,7 +53,7 @@ export interface HostCallContext {
|
|
|
53
53
|
* What the host will answer.
|
|
54
54
|
*
|
|
55
55
|
* A function rather than a table, so the host decides per call. NZ-EXEC-06
|
|
56
|
-
* makes this the turn's `
|
|
56
|
+
* makes this the turn's `ToolManager` and its permission gate, which is
|
|
57
57
|
* exactly the point: the program's reach is the turn's reach, resolved at
|
|
58
58
|
* the moment of the call rather than frozen when the program started.
|
|
59
59
|
*/
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* backend that cannot withhold those is not a backend for this.
|
|
19
19
|
* - **Everything it can do, it does by asking.** The only channel out is a
|
|
20
20
|
* call back into the host, which is what makes NZ-EXEC-06's dispatch
|
|
21
|
-
* through the turn's own `
|
|
21
|
+
* through the turn's own `ToolManager` possible — the program cannot
|
|
22
22
|
* reach a tool the turn did not grant, because it cannot reach anything.
|
|
23
23
|
* - **Bounded.** Wall clock and output, both enforced by the backend
|
|
24
24
|
* rather than requested of the program.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RegistryCollisionError } from '../registry/collision.js';
|
|
1
2
|
/**
|
|
2
3
|
* What a module's check said about its own claim, the moment it was asked.
|
|
3
4
|
*
|
|
@@ -39,7 +40,7 @@ export type InvariantCheck<TContext = unknown> = (ctx: TContext) => InvariantOut
|
|
|
39
40
|
* every reference to the other's `id` kept resolving as if it still existed.
|
|
40
41
|
* Mirrors `ProbeNameCollisionError`.
|
|
41
42
|
*/
|
|
42
|
-
export declare class InvariantNameCollisionError extends
|
|
43
|
+
export declare class InvariantNameCollisionError extends RegistryCollisionError {
|
|
43
44
|
readonly moduleName: string;
|
|
44
45
|
readonly invariantName: string;
|
|
45
46
|
constructor(moduleName: string, invariantName: string);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/invariants/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/invariants/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GACzB;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,CAAC,QAAQ,GAAG,OAAO,IAAI,CAChD,GAAG,EAAE,QAAQ,KACT,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAEjD;;;;;;;;;;;;GAYG;AACH,qBAAa,2BAA4B,SAAQ,sBAAsB;IACtE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;gBAElB,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAUrD;AAED;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAEX,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAOrE;AAwBD;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;;IAQlE;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI;IAc3F,kDAAkD;IAClD,OAAO,IAAI,MAAM,EAAE;IAInB;;;;;OAKG;IACG,QAAQ,CAAC,QAAQ,GAAG,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOtF;;;;OAIG;IACG,MAAM,CAAC,QAAQ,GAAG,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxE,oEAAoE;IACpE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;CAGlC;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,iBAA2C,CAAA;AAEpE,kEAAkE;AAClE,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
|
package/dist/invariants/index.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
// module named for deciding whether a tool call is permitted, which is a
|
|
9
9
|
// worse home than the one it started in.
|
|
10
10
|
import { ManagedRegistry } from '../registry/ManagedRegistry.js';
|
|
11
|
+
import { RegistryCollisionError } from '../registry/collision.js';
|
|
11
12
|
/**
|
|
12
13
|
* Thrown by {@link InvariantRegistry.register} when `<moduleName>:<name>` is
|
|
13
14
|
* already taken.
|
|
@@ -21,11 +22,11 @@ import { ManagedRegistry } from '../registry/ManagedRegistry.js';
|
|
|
21
22
|
* every reference to the other's `id` kept resolving as if it still existed.
|
|
22
23
|
* Mirrors `ProbeNameCollisionError`.
|
|
23
24
|
*/
|
|
24
|
-
export class InvariantNameCollisionError extends
|
|
25
|
+
export class InvariantNameCollisionError extends RegistryCollisionError {
|
|
25
26
|
moduleName;
|
|
26
27
|
invariantName;
|
|
27
28
|
constructor(moduleName, invariantName) {
|
|
28
|
-
super(`Invariant "${moduleName}:${invariantName}" is already registered. Two modules picked the same name, or this module registered itself twice — pick a different name, or find the second registration.`);
|
|
29
|
+
super('InvariantRegistry', `${moduleName}:${invariantName}`, `Invariant "${moduleName}:${invariantName}" is already registered. Two modules picked the same name, or this module registered itself twice — pick a different name, or find the second registration.`);
|
|
29
30
|
this.name = 'InvariantNameCollisionError';
|
|
30
31
|
this.moduleName = moduleName;
|
|
31
32
|
this.invariantName = invariantName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/invariants/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,yCAAyC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/invariants/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,6 +97,7 @@ interface ChildSpawnRecord {
|
|
|
97
97
|
/** Removes the child's log from the process-local lookup. */
|
|
98
98
|
releaseLog?: () => void;
|
|
99
99
|
workspaceRef?: WorkspaceRef;
|
|
100
|
+
workspaceRetention?: 'retain';
|
|
100
101
|
/**
|
|
101
102
|
* What this child was actually granted, after the ancestor union.
|
|
102
103
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/manager/agent/lifecycle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/manager/agent/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { rm } from 'node:fs/promises';
|
|
1
|
+
import { realpath, rm, stat } from 'node:fs/promises';
|
|
2
|
+
import { isAbsolute, relative, resolve, sep } from 'node:path';
|
|
2
3
|
import { AGENT_MANAGER_DEFAULTS } from '../../constants/agent/index.js';
|
|
3
4
|
import { EMPTY_TOKEN_USAGE } from '../../constants/limits.js';
|
|
4
5
|
import { GENAI } from '../../constants/telemetry/index.js';
|
|
@@ -35,6 +36,73 @@ function mergeEnv(base, override) {
|
|
|
35
36
|
return undefined;
|
|
36
37
|
return { ...base, ...override };
|
|
37
38
|
}
|
|
39
|
+
/** A requested isolated child must never resolve to its caller's directory. */
|
|
40
|
+
async function requireIsolatedWorktreePath(ref, callerCwd, subdirectory) {
|
|
41
|
+
const meta = ref?.meta;
|
|
42
|
+
if (typeof ref?.id !== 'string' ||
|
|
43
|
+
ref.id.length === 0 ||
|
|
44
|
+
meta?.backend !== 'git-worktree' ||
|
|
45
|
+
typeof meta.repoRoot !== 'string' ||
|
|
46
|
+
!isAbsolute(meta.repoRoot) ||
|
|
47
|
+
typeof meta.branch !== 'string' ||
|
|
48
|
+
meta.branch.length === 0 ||
|
|
49
|
+
typeof meta.worktreePath !== 'string' ||
|
|
50
|
+
!isAbsolute(meta.worktreePath) ||
|
|
51
|
+
resolve(meta.worktreePath) === resolve(callerCwd ?? process.cwd())) {
|
|
52
|
+
throw new Error('Isolated git-worktree driver returned an invalid workspace ref or path');
|
|
53
|
+
}
|
|
54
|
+
// A custom driver can return a different absolute spelling of the same
|
|
55
|
+
// directory (for example, a symlink to the caller). Both paths must exist
|
|
56
|
+
// before the child is admitted, and their physical roots must differ.
|
|
57
|
+
let physicalPaths;
|
|
58
|
+
try {
|
|
59
|
+
physicalPaths = await Promise.all([
|
|
60
|
+
realpath(meta.worktreePath),
|
|
61
|
+
realpath(resolve(callerCwd ?? process.cwd())),
|
|
62
|
+
]);
|
|
63
|
+
if (!(await stat(physicalPaths[0])).isDirectory()) {
|
|
64
|
+
throw new Error('The worktree path is not a directory');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (cause) {
|
|
68
|
+
throw new Error('Isolated git-worktree driver returned an invalid workspace ref or path', {
|
|
69
|
+
cause,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (physicalPaths[0] === physicalPaths[1]) {
|
|
73
|
+
throw new Error('Isolated git-worktree driver returned an invalid workspace ref or path');
|
|
74
|
+
}
|
|
75
|
+
if (subdirectory === undefined)
|
|
76
|
+
return meta.worktreePath;
|
|
77
|
+
if (typeof subdirectory !== 'string' || subdirectory.length === 0 || isAbsolute(subdirectory)) {
|
|
78
|
+
throw new Error('Isolated workspace subdirectory must be a nonempty relative path');
|
|
79
|
+
}
|
|
80
|
+
const lexicalChild = resolve(meta.worktreePath, subdirectory);
|
|
81
|
+
const lexicalRelative = relative(resolve(meta.worktreePath), lexicalChild);
|
|
82
|
+
if (isAbsolute(lexicalRelative) ||
|
|
83
|
+
lexicalRelative === '..' ||
|
|
84
|
+
lexicalRelative.startsWith(`..${sep}`)) {
|
|
85
|
+
throw new Error('Isolated workspace subdirectory escapes the worktree');
|
|
86
|
+
}
|
|
87
|
+
let physicalChild;
|
|
88
|
+
try {
|
|
89
|
+
physicalChild = await realpath(lexicalChild);
|
|
90
|
+
if (!(await stat(physicalChild)).isDirectory()) {
|
|
91
|
+
throw new Error('The selected worktree path is not a directory');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (cause) {
|
|
95
|
+
throw new Error('Isolated workspace subdirectory is missing or not a directory', { cause });
|
|
96
|
+
}
|
|
97
|
+
const physicalRelative = relative(physicalPaths[0], physicalChild);
|
|
98
|
+
if (physicalRelative === '' ||
|
|
99
|
+
isAbsolute(physicalRelative) ||
|
|
100
|
+
physicalRelative === '..' ||
|
|
101
|
+
physicalRelative.startsWith(`..${sep}`)) {
|
|
102
|
+
throw new Error('Isolated workspace subdirectory resolves outside its worktree');
|
|
103
|
+
}
|
|
104
|
+
return physicalChild;
|
|
105
|
+
}
|
|
38
106
|
/**
|
|
39
107
|
* One `reviewAllowedCalls` that answers `true` when any of `sources` does.
|
|
40
108
|
*
|
|
@@ -121,7 +189,9 @@ export class AgentManager {
|
|
|
121
189
|
if (task.context === context || context.parentAbortController.signal.aborted)
|
|
122
190
|
this.cancel(task.taskId, 'parent');
|
|
123
191
|
};
|
|
124
|
-
task.childAbortController.signal.addEventListener('abort', onAbort, {
|
|
192
|
+
task.childAbortController.signal.addEventListener('abort', onAbort, {
|
|
193
|
+
once: true,
|
|
194
|
+
});
|
|
125
195
|
const entry = {
|
|
126
196
|
ready: false,
|
|
127
197
|
task,
|
|
@@ -331,9 +401,21 @@ export class AgentManager {
|
|
|
331
401
|
await childBudget.flush();
|
|
332
402
|
throw error;
|
|
333
403
|
}
|
|
404
|
+
let childOptions = options;
|
|
334
405
|
let childAbortController;
|
|
335
406
|
let agentTask;
|
|
336
407
|
try {
|
|
408
|
+
// Explicit isolation is the child's execution root, not a side
|
|
409
|
+
// resource. Keep validation in this rollback envelope too.
|
|
410
|
+
if (options.workspace?.mode === 'isolated') {
|
|
411
|
+
childOptions = {
|
|
412
|
+
...options,
|
|
413
|
+
input: {
|
|
414
|
+
...options.input,
|
|
415
|
+
workingDirectory: await requireIsolatedWorktreePath(spawnRecord.workspaceRef, options.input.workingDirectory, options.workspace.subdirectory),
|
|
416
|
+
},
|
|
417
|
+
};
|
|
418
|
+
}
|
|
337
419
|
childAbortController =
|
|
338
420
|
queuedTask?.childAbortController ??
|
|
339
421
|
createChildAbortController(context.parentAbortController);
|
|
@@ -399,6 +481,7 @@ export class AgentManager {
|
|
|
399
481
|
state: 'pending',
|
|
400
482
|
pendingMessages: queuedTask?.pendingMessages ?? [],
|
|
401
483
|
createdAt: queuedTask?.createdAt ?? Date.now(),
|
|
484
|
+
workspace: options.workspace?.mode === 'isolated' ? spawnRecord.workspaceRef : undefined,
|
|
402
485
|
sessionEventListener: listener,
|
|
403
486
|
});
|
|
404
487
|
childAbortController.signal.throwIfAborted();
|
|
@@ -473,6 +556,7 @@ export class AgentManager {
|
|
|
473
556
|
...(context.factoryOptions ?? {}),
|
|
474
557
|
tokenBudget: allocatedTokens,
|
|
475
558
|
timeoutMs: options.budgetAllocation?.timeoutMs ?? this.config.childTimeoutMs,
|
|
559
|
+
workingDirectory: childOptions.input.workingDirectory,
|
|
476
560
|
sessionId: spawnRecord.childSessionId,
|
|
477
561
|
parentSessionId: spawnRecord.parentSessionId,
|
|
478
562
|
parentTurnId: spawnRecord.parentTurnId,
|
|
@@ -661,9 +745,9 @@ export class AgentManager {
|
|
|
661
745
|
// under its parent (`<parent>/subagents/<child-id>.jsonl`) with its
|
|
662
746
|
// meta document beside it. A child config that names a session log
|
|
663
747
|
// or paths of its own chose where it goes, and keeps it.
|
|
664
|
-
const childLog = await this.placeChildSession(spawnRecord, childConfig, context,
|
|
748
|
+
const childLog = await this.placeChildSession(spawnRecord, childConfig, context, childOptions, taskId);
|
|
665
749
|
if (childLog) {
|
|
666
|
-
await this.startChildSessionLog(childLog, spawnRecord, context,
|
|
750
|
+
await this.startChildSessionLog(childLog, spawnRecord, context, childOptions, taskId, {
|
|
667
751
|
id: agent.metadata.id,
|
|
668
752
|
name: agent.metadata.name,
|
|
669
753
|
});
|
|
@@ -688,7 +772,7 @@ export class AgentManager {
|
|
|
688
772
|
childAbortController.signal.throwIfAborted();
|
|
689
773
|
this.executingTasks.add(taskId);
|
|
690
774
|
const runningTask = agentTask;
|
|
691
|
-
this.runChild(runningTask,
|
|
775
|
+
this.runChild(runningTask, childOptions, childConfig, listener)
|
|
692
776
|
.catch(async (err) => {
|
|
693
777
|
// A thrown invocation supplied no final usage receipt. Keep its
|
|
694
778
|
// reservation, including when its task handle was canceled or evicted.
|
|
@@ -780,6 +864,9 @@ export class AgentManager {
|
|
|
780
864
|
else
|
|
781
865
|
this.instances.delete(agentTask.taskId);
|
|
782
866
|
this.dropSpawnRecord(agentTask.taskId);
|
|
867
|
+
// Admission never completed. The checkout is rollback-owned, not a
|
|
868
|
+
// retained result that a terminal handle may advertise.
|
|
869
|
+
agentTask.workspace = undefined;
|
|
783
870
|
this.resolveCompletionCallbacks(agentTask.taskId);
|
|
784
871
|
await this.rollbackSpawnResources(spawnRecord);
|
|
785
872
|
}
|
|
@@ -793,7 +880,7 @@ export class AgentManager {
|
|
|
793
880
|
'exception.message': toErrorMessage(err),
|
|
794
881
|
}));
|
|
795
882
|
}
|
|
796
|
-
await this.disposeChildWorkspace(spawnRecord);
|
|
883
|
+
await this.disposeChildWorkspace({ ...spawnRecord, workspaceRetention: undefined });
|
|
797
884
|
try {
|
|
798
885
|
// The edge must be removed before its child: stores reject deletion
|
|
799
886
|
// of a session that still has a subsession reference.
|
|
@@ -898,7 +985,10 @@ export class AgentManager {
|
|
|
898
985
|
* and appends after it. A log that already has records is left alone.
|
|
899
986
|
*/
|
|
900
987
|
async startChildSessionLog(log, spawnRecord, context, options, taskId, agent) {
|
|
901
|
-
const lease = await log.claim({
|
|
988
|
+
const lease = await log.claim({
|
|
989
|
+
holder: `namzu:agent-manager:${taskId}`,
|
|
990
|
+
ttlMs: 30_000,
|
|
991
|
+
});
|
|
902
992
|
if (lease === null) {
|
|
903
993
|
throw new Error(`Child session ${spawnRecord.childSessionId} is already leased`);
|
|
904
994
|
}
|
|
@@ -1170,6 +1260,7 @@ export class AgentManager {
|
|
|
1170
1260
|
// parent but counted against `maxDelegationWidth`.
|
|
1171
1261
|
let subSession;
|
|
1172
1262
|
let workspaceRef;
|
|
1263
|
+
let workspaceDriver;
|
|
1173
1264
|
try {
|
|
1174
1265
|
// Flip to 'active' so the materializer's atomic write + status flip
|
|
1175
1266
|
// lands on terminal — §5.3: pending→active→idle.
|
|
@@ -1189,10 +1280,25 @@ export class AgentManager {
|
|
|
1189
1280
|
// provisioning: an unregistered backend leaves `workspaceRef:
|
|
1190
1281
|
// undefined` on the spawn record, not a hard error — the registry
|
|
1191
1282
|
// is the capability surface.
|
|
1192
|
-
const
|
|
1193
|
-
|
|
1283
|
+
const request = options.workspace;
|
|
1284
|
+
const backend = request?.mode === 'shared'
|
|
1285
|
+
? undefined
|
|
1286
|
+
: request?.mode === 'isolated'
|
|
1287
|
+
? request.backend
|
|
1288
|
+
: (options.workspaceBackend ??
|
|
1289
|
+
(this.config.workspaceDefault === 'shared' ? undefined : 'git-worktree'));
|
|
1290
|
+
if (request?.mode === 'isolated' && !this.deps.workspaceRegistry.has(request.backend)) {
|
|
1291
|
+
throw new Error(`Isolated workspace backend ${request.backend} is unavailable`);
|
|
1292
|
+
}
|
|
1293
|
+
if (backend && this.deps.workspaceRegistry.has(backend)) {
|
|
1194
1294
|
const driver = this.deps.workspaceRegistry.get(backend);
|
|
1195
|
-
|
|
1295
|
+
workspaceDriver = driver;
|
|
1296
|
+
workspaceRef = await driver.create({
|
|
1297
|
+
label: subSession.id,
|
|
1298
|
+
...(request?.mode === 'isolated' && request.baseRef ? { baseRef: request.baseRef } : {}),
|
|
1299
|
+
});
|
|
1300
|
+
if (request?.mode === 'isolated')
|
|
1301
|
+
await requireIsolatedWorktreePath(workspaceRef, options.input.workingDirectory, request.subdirectory);
|
|
1196
1302
|
// Write the workspace onto the record that outlives this process.
|
|
1197
1303
|
//
|
|
1198
1304
|
// The ref was kept only on the in-memory `ChildSpawnRecord`, so
|
|
@@ -1208,17 +1314,22 @@ export class AgentManager {
|
|
|
1208
1314
|
// exist before the record it is named after. Inside the try, so
|
|
1209
1315
|
// the compensating rollback below covers it like every other
|
|
1210
1316
|
// mutation here.
|
|
1211
|
-
subSession = {
|
|
1317
|
+
subSession = {
|
|
1318
|
+
...subSession,
|
|
1319
|
+
workspaceId: workspaceRef.id,
|
|
1320
|
+
...(request?.mode === 'isolated' && request.retention === 'retain'
|
|
1321
|
+
? { workspaceRetention: 'retain' }
|
|
1322
|
+
: {}),
|
|
1323
|
+
};
|
|
1212
1324
|
await store.updateSubSession(subSession, context.tenantId);
|
|
1213
1325
|
}
|
|
1214
1326
|
}
|
|
1215
1327
|
catch (err) {
|
|
1216
|
-
if (workspaceRef &&
|
|
1217
|
-
await this.
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
});
|
|
1221
|
-
}
|
|
1328
|
+
if (workspaceRef && workspaceDriver)
|
|
1329
|
+
await workspaceDriver.dispose(workspaceRef).catch((disposeErr) => this.log.warn('Unstarted workspace dispose failed', {
|
|
1330
|
+
'namzu.sub_session.id': subSession?.id,
|
|
1331
|
+
'exception.message': toErrorMessage(disposeErr),
|
|
1332
|
+
}));
|
|
1222
1333
|
// Compensating rollback order is mandated by the store's
|
|
1223
1334
|
// deny-by-default cascade policy (Convention #5): `deleteSession`
|
|
1224
1335
|
// throws when any subsession still references it, so the subsession
|
|
@@ -1245,6 +1356,9 @@ export class AgentManager {
|
|
|
1245
1356
|
ancestry: parentAncestry,
|
|
1246
1357
|
childDepth,
|
|
1247
1358
|
workspaceRef,
|
|
1359
|
+
...(options.workspace?.mode === 'isolated' && options.workspace.retention === 'retain'
|
|
1360
|
+
? { workspaceRetention: 'retain' }
|
|
1361
|
+
: {}),
|
|
1248
1362
|
};
|
|
1249
1363
|
}
|
|
1250
1364
|
async runChild(agentTask, options, childConfig, listener) {
|
|
@@ -1253,6 +1367,15 @@ export class AgentManager {
|
|
|
1253
1367
|
const input = {
|
|
1254
1368
|
...options.input,
|
|
1255
1369
|
signal: agentTask.childAbortController.signal,
|
|
1370
|
+
// The admitted child session is the authority. A caller-supplied input
|
|
1371
|
+
// cannot redirect its turn to another tenant, project, topic or session.
|
|
1372
|
+
managedScope: {
|
|
1373
|
+
kind: 'managed',
|
|
1374
|
+
sessionId: agentTask.context.sessionId,
|
|
1375
|
+
topicId: agentTask.context.topicId,
|
|
1376
|
+
projectId: agentTask.context.projectId,
|
|
1377
|
+
tenantId: agentTask.context.tenantId,
|
|
1378
|
+
},
|
|
1256
1379
|
};
|
|
1257
1380
|
const spawnRecord = this.spawnRecords.get(agentTask.taskId);
|
|
1258
1381
|
const childListener = this.wrapChildListener(listener, spawnRecord);
|
|
@@ -1430,7 +1553,10 @@ export class AgentManager {
|
|
|
1430
1553
|
status: 'failed',
|
|
1431
1554
|
usage: agentTask.context.budget.ownUsage,
|
|
1432
1555
|
budget: agentTask.context.budget.summary(),
|
|
1433
|
-
cost: {
|
|
1556
|
+
cost: {
|
|
1557
|
+
...ZERO_COST,
|
|
1558
|
+
unpricedTokens: agentTask.context.budget.ownTokens,
|
|
1559
|
+
},
|
|
1434
1560
|
iterations: 0,
|
|
1435
1561
|
durationMs: Date.now() - agentTask.createdAt,
|
|
1436
1562
|
messages: [],
|
|
@@ -1486,6 +1612,8 @@ export class AgentManager {
|
|
|
1486
1612
|
* removed is an operator's problem and silence is how it stays one.
|
|
1487
1613
|
*/
|
|
1488
1614
|
async disposeChildWorkspace(spawnRecord) {
|
|
1615
|
+
if (spawnRecord.workspaceRetention === 'retain')
|
|
1616
|
+
return;
|
|
1489
1617
|
if (!spawnRecord.workspaceRef)
|
|
1490
1618
|
return;
|
|
1491
1619
|
const backend = spawnRecord.workspaceRef.meta.backend;
|