@namzu/sdk 46.0.0 → 48.0.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 +325 -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 +60 -4
- package/dist/connector/mcp/adapter.js.map +1 -1
- package/dist/connector/mcp/client.d.ts +13 -4
- package/dist/connector/mcp/client.d.ts.map +1 -1
- package/dist/connector/mcp/client.js +20 -3
- 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/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/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.map +1 -1
- package/dist/manager/agent/lifecycle.js +9 -0
- 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/learning-observation.d.ts +4 -4
- package/dist/manager/resident/learning.d.ts +36 -36
- 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/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-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/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/supervisor.d.ts +5 -2
- package/dist/types/agent/supervisor.d.ts.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 +32 -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/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 +58 -3
- package/src/connector/mcp/client.ts +20 -4
- package/src/connector/mcp/discovery.ts +60 -0
- package/src/connector/mcp/index.ts +13 -0
- package/src/connector/mcp/mcp-toolset.ts +515 -0
- 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 +9 -0
- 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/skills/index.ts +1 -1
- package/src/skills/registry.ts +25 -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/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/supervisor.ts +5 -2
- package/src/types/authorization/index.ts +12 -0
- package/src/types/connector/mcp.ts +32 -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/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
|
@@ -37,11 +37,12 @@ import {
|
|
|
37
37
|
import { getTracer } from '../../telemetry/runtime-accessors.js'
|
|
38
38
|
import { buildAdvisoryTools } from '../../tools/advisory/index.js'
|
|
39
39
|
import { SearchToolsTool } from '../../tools/builtins/search-tools.js'
|
|
40
|
-
import {
|
|
41
|
-
STRUCTURED_OUTPUT_TOOL_NAME,
|
|
42
|
-
createStructuredOutputTool,
|
|
43
|
-
} from '../../tools/builtins/structuredOutput.js'
|
|
40
|
+
import { createStructuredOutputTool } from '../../tools/builtins/structuredOutput.js'
|
|
44
41
|
import { buildTaskTools } from '../../tools/task/index.js'
|
|
42
|
+
import { ToolManager } from '../../toolsets/manager.js'
|
|
43
|
+
import { toolset } from '../../toolsets/toolset.js'
|
|
44
|
+
import { type Toolset, toolsetIsReady } from '../../toolsets/types.js'
|
|
45
|
+
import { deferred } from '../../toolsets/wrappers.js'
|
|
45
46
|
import type { AdvisoryConfig } from '../../types/advisory/index.js'
|
|
46
47
|
import type { AgentRuntimeContext, RuntimeToolOverrides } from '../../types/agent/base.js'
|
|
47
48
|
import type { AgentContextLevel } from '../../types/agent/factory.js'
|
|
@@ -91,7 +92,7 @@ import type { PromoteMemory } from '../../types/session/memory-promotion.js'
|
|
|
91
92
|
import type { Skill } from '../../types/skills/index.js'
|
|
92
93
|
import type { StructuredOutputConfig } from '../../types/structured-output/index.js'
|
|
93
94
|
import type { TaskStore } from '../../types/task/index.js'
|
|
94
|
-
import type {
|
|
95
|
+
import type { ToolDefinition, ToolTierConfig } from '../../types/tool/index.js'
|
|
95
96
|
import type { RepairToolCall } from '../../types/tool/repair.js'
|
|
96
97
|
import type { BackoffPolicy } from '../../utils/backoff.js'
|
|
97
98
|
import type { ModelPricing } from '../../utils/cost.js'
|
|
@@ -332,19 +333,20 @@ export interface QueryParams {
|
|
|
332
333
|
*/
|
|
333
334
|
maxToolOutputChars?: number
|
|
334
335
|
/**
|
|
335
|
-
* Screens to run against every tool result
|
|
336
|
-
*
|
|
337
|
-
*
|
|
338
|
-
* This is the turn's half of a boundary whose only other door is the
|
|
339
|
-
* registry constructor — and a registry is usually the HOST's, assembled
|
|
340
|
-
* before the turn exists, so a turn-config option is the only way a turn
|
|
341
|
-
* screens a registry it did not build. A registry built WITH
|
|
342
|
-
* `resultGuardrails` states its own policy and wins, `[]` included.
|
|
336
|
+
* Screens to run against every tool result. The turn builds its manager
|
|
337
|
+
* from `toolsets` and gives it this policy.
|
|
343
338
|
*
|
|
344
339
|
* Absent installs {@link DEFAULT_TOOL_RESULT_GUARDRAILS}; an empty array
|
|
345
340
|
* installs none, which is how a caller turns the default off.
|
|
346
341
|
*/
|
|
347
342
|
toolResultGuardrails?: readonly import('../../types/guardrail/index.js').ToolResultGuardrailSpec[]
|
|
343
|
+
/**
|
|
344
|
+
* Tier labels/guidance for the `ToolManager` this turn builds. Absent
|
|
345
|
+
* means no tier legend and no `[label]` prefix on any tool's description
|
|
346
|
+
* — the same as before this existed. A tier is still a static
|
|
347
|
+
* `defineTool` field; this only configures how the manager renders it.
|
|
348
|
+
*/
|
|
349
|
+
tierConfig?: ToolTierConfig
|
|
348
350
|
/**
|
|
349
351
|
* Smaller preview for text that exceeded maxToolOutputChars, after its full
|
|
350
352
|
* host output and integrity manifest have been saved. Unset/0 keeps the old
|
|
@@ -472,7 +474,18 @@ export interface QueryParams {
|
|
|
472
474
|
* `guardrail_triggered` event.
|
|
473
475
|
*/
|
|
474
476
|
outputGuardrails?: readonly OutputGuardrailSpec[]
|
|
475
|
-
|
|
477
|
+
/**
|
|
478
|
+
* Every tool this turn may see comes from one of these (`toolsets/types.ts`).
|
|
479
|
+
*
|
|
480
|
+
* `query()` never mutates what is passed here: its own generated tools
|
|
481
|
+
* (task tools, `search_tools`, the structured-output tool, advisory
|
|
482
|
+
* tools) are combined with these into the `ToolManager` it builds for
|
|
483
|
+
* itself, once, at the top of the turn — see `buildRuntimeToolset`
|
|
484
|
+
* below. A toolset here that contributes a name `query()` also generates
|
|
485
|
+
* is refused at construction (`ToolsetConflictError`, naming both
|
|
486
|
+
* sources), the same mechanism a plain toolset collision uses.
|
|
487
|
+
*/
|
|
488
|
+
toolsets: readonly Toolset[]
|
|
476
489
|
turnConfig: TurnConfig
|
|
477
490
|
allowedTools?: string[]
|
|
478
491
|
agentId: string
|
|
@@ -974,6 +987,7 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
974
987
|
// provider lacks, a sandbox mode it does not offer); the lease the
|
|
975
988
|
// prelude took is given back on the way out.
|
|
976
989
|
let unsubscribeChildSessions: (() => void) | undefined
|
|
990
|
+
let disposeToolManager: (() => void) | undefined
|
|
977
991
|
try {
|
|
978
992
|
const unsubscribeTaskStore = params.taskStore
|
|
979
993
|
? eventTranslator.wireTaskStore(params.taskStore, ctx.sessionId)
|
|
@@ -995,6 +1009,77 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
995
1009
|
})
|
|
996
1010
|
})
|
|
997
1011
|
|
|
1012
|
+
// ─── Advisors: constructed early because their agent-tool forms (if
|
|
1013
|
+
// any) join the runtime toolset below, before the ToolManager exists.
|
|
1014
|
+
// `setCallContextProvider` — which needs `workingStateManager`,
|
|
1015
|
+
// `effectiveAllowedTools` and `iterationOrchestrator`, none of which
|
|
1016
|
+
// exist yet — is configured later, in its historical spot; a closure
|
|
1017
|
+
// reading those is fine to define before they do, as long as nothing
|
|
1018
|
+
// CALLS it before they exist, and nothing does. ───
|
|
1019
|
+
let advisoryCtx: AdvisoryContext | undefined
|
|
1020
|
+
let advisoryToolDefs: ReturnType<typeof buildAdvisoryTools> = []
|
|
1021
|
+
if (params.advisory && params.advisory.advisors.length > 0) {
|
|
1022
|
+
// Advisors are model calls owned by this turn even when they use a
|
|
1023
|
+
// different provider. Sending the raw definitions into the registry
|
|
1024
|
+
// lets a triggered or model-requested consultation bypass both the
|
|
1025
|
+
// finite stream-silence bound and Stop. Bind every advisor provider at
|
|
1026
|
+
// the query boundary, where the effective timeout and run signal are
|
|
1027
|
+
// already known; standalone AdvisoryExecutor callers retain their
|
|
1028
|
+
// explicitly chosen provider/cancellation policy.
|
|
1029
|
+
const boundedAdvisors = params.advisory.advisors.map((advisor) => ({
|
|
1030
|
+
...advisor,
|
|
1031
|
+
provider: withTokenBudget(
|
|
1032
|
+
withStreamIdleTimeout(advisor.provider, {
|
|
1033
|
+
idleTimeoutMs: streamIdleTimeoutMs,
|
|
1034
|
+
log: ctx.log,
|
|
1035
|
+
}),
|
|
1036
|
+
budget,
|
|
1037
|
+
),
|
|
1038
|
+
}))
|
|
1039
|
+
const advisorRegistry = new AdvisorRegistry(boundedAdvisors, params.advisory.defaultAdvisorId)
|
|
1040
|
+
// A budget the runtime cannot measure is refused here rather than
|
|
1041
|
+
// silently ignored for the length of the turn.
|
|
1042
|
+
assertBudgetEnforceable(params.advisory)
|
|
1043
|
+
const advisoryExecutor = new AdvisoryExecutor(
|
|
1044
|
+
ctx.log,
|
|
1045
|
+
params.advisory.budget,
|
|
1046
|
+
ctx.abortController.signal,
|
|
1047
|
+
)
|
|
1048
|
+
const triggerEvaluator = new TriggerEvaluator(
|
|
1049
|
+
params.advisory.triggers ?? [],
|
|
1050
|
+
params.advisory.budget,
|
|
1051
|
+
)
|
|
1052
|
+
advisoryCtx = new AdvisoryContext(
|
|
1053
|
+
advisorRegistry,
|
|
1054
|
+
advisoryExecutor,
|
|
1055
|
+
triggerEvaluator,
|
|
1056
|
+
params.advisory.budget,
|
|
1057
|
+
)
|
|
1058
|
+
if (params.advisory.enableAgentTool) {
|
|
1059
|
+
advisoryToolDefs = buildAdvisoryTools({ advisoryCtx })
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1063
|
+
// ─── query()'s own tools: never mutate the caller's toolsets. Task
|
|
1064
|
+
// tools, `search_tools`, the structured-output tool and any advisory
|
|
1065
|
+
// tools are gathered here and combined into one `runtime` toolset
|
|
1066
|
+
// (plan.md v3 §2), which the `ToolManager` below resolves alongside
|
|
1067
|
+
// `params.toolsets`. A name a caller's own toolset already contributes
|
|
1068
|
+
// is refused at construction — `ToolsetConflictError`, naming both
|
|
1069
|
+
// sources — the same mechanism any two colliding toolsets hit; this
|
|
1070
|
+
// generalises `SupervisorAgent`'s old hand-written coordinator-name
|
|
1071
|
+
// refusal, which is gone (its coordinator tools are just another
|
|
1072
|
+
// toolset in `params.toolsets` now). ───
|
|
1073
|
+
const runtimeToolOverrides = params.runtimeToolOverrides
|
|
1074
|
+
const runtimeActiveTools: ToolDefinition[] = []
|
|
1075
|
+
const runtimeDeferredTools: ToolDefinition[] = []
|
|
1076
|
+
const addRuntimeTool = (tool: ToolDefinition, defaultAvailability: 'active' | 'deferred') => {
|
|
1077
|
+
const override = runtimeToolOverrides?.[tool.name]
|
|
1078
|
+
if (override === 'disabled') return
|
|
1079
|
+
const availability = override ?? defaultAvailability
|
|
1080
|
+
;(availability === 'active' ? runtimeActiveTools : runtimeDeferredTools).push(tool)
|
|
1081
|
+
}
|
|
1082
|
+
|
|
998
1083
|
if (params.taskStore) {
|
|
999
1084
|
const taskTools = buildTaskTools(params.taskStore, {
|
|
1000
1085
|
sessionId: ctx.sessionId,
|
|
@@ -1007,43 +1092,88 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
1007
1092
|
? await recordedTurnStart(ctx.recorder.log, ctx.turnId)
|
|
1008
1093
|
: undefined) ?? ctx.recorder.getTurn().startedAt,
|
|
1009
1094
|
})
|
|
1010
|
-
const
|
|
1011
|
-
for (const tool of taskTools) {
|
|
1012
|
-
const override = overrides?.[tool.name]
|
|
1013
|
-
if (override === 'disabled') continue
|
|
1014
|
-
params.tools.register(tool, override ?? 'deferred')
|
|
1015
|
-
}
|
|
1095
|
+
for (const tool of taskTools) addRuntimeTool(tool, 'deferred')
|
|
1016
1096
|
}
|
|
1017
1097
|
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1098
|
+
// `search_tools` is added only when something could actually be
|
|
1099
|
+
// deferred — one of the runtime tools above, or a caller toolset that
|
|
1100
|
+
// declared itself `deferred(...)`. Nothing deferred means nothing for
|
|
1101
|
+
// a search to load, so it is never added at all. And only when the
|
|
1102
|
+
// caller does not already provide a tool under that name: a caller
|
|
1103
|
+
// that mounts its OWN discovery tool (a connector named `search_tools`,
|
|
1104
|
+
// deliberately) owns that name, and adding a second contributor here
|
|
1105
|
+
// would be a `ToolsetConflictError` naming both sources for a name
|
|
1106
|
+
// query() itself introduced, not the caller's honest collision.
|
|
1107
|
+
const callerHasDeferredToolset = params.toolsets.some(
|
|
1108
|
+
(ts) => (ts.availability ?? 'active') === 'deferred' && ts.tools().length > 0,
|
|
1109
|
+
)
|
|
1110
|
+
const callerSearchToolset = params.toolsets.find((ts) =>
|
|
1111
|
+
ts.tools().some((tool) => tool.name === SearchToolsTool.name),
|
|
1112
|
+
)
|
|
1113
|
+
const callerHasSearchTools = callerSearchToolset !== undefined
|
|
1114
|
+
if (
|
|
1115
|
+
(runtimeDeferredTools.length > 0 || callerHasDeferredToolset) &&
|
|
1116
|
+
callerSearchToolset &&
|
|
1117
|
+
(callerSearchToolset.availability === 'deferred' || !toolsetIsReady(callerSearchToolset))
|
|
1118
|
+
) {
|
|
1119
|
+
throw new Error(
|
|
1120
|
+
'A caller-provided search_tools must be active and ready when deferred tools are present.',
|
|
1121
|
+
)
|
|
1122
|
+
}
|
|
1123
|
+
if (
|
|
1124
|
+
(runtimeDeferredTools.length > 0 || callerHasDeferredToolset) &&
|
|
1125
|
+
!callerHasSearchTools &&
|
|
1126
|
+
['deferred', 'suspended'].includes(runtimeToolOverrides?.[SearchToolsTool.name] ?? '')
|
|
1127
|
+
) {
|
|
1128
|
+
throw new Error(
|
|
1129
|
+
'runtimeToolOverrides.search_tools must be active or disabled when deferred tools are present.',
|
|
1130
|
+
)
|
|
1131
|
+
}
|
|
1132
|
+
if ((runtimeDeferredTools.length > 0 || callerHasDeferredToolset) && !callerHasSearchTools) {
|
|
1133
|
+
addRuntimeTool(SearchToolsTool, 'active')
|
|
1025
1134
|
}
|
|
1026
1135
|
|
|
1027
|
-
//
|
|
1136
|
+
// Added HERE, before the first turn, not when the model is nearly
|
|
1028
1137
|
// done. Tools render at prefix position 0, so injecting one late would
|
|
1029
1138
|
// invalidate the whole prompt cache for the rest of the turn — the same
|
|
1030
1139
|
// reason the forced-final turn keeps its tools array and uses
|
|
1031
1140
|
// `toolChoice: 'none'` instead of dropping it.
|
|
1032
|
-
if (
|
|
1033
|
-
params.structuredOutput
|
|
1034
|
-
params.structuredOutput.mode !== 'native' &&
|
|
1035
|
-
!params.tools.has(STRUCTURED_OUTPUT_TOOL_NAME)
|
|
1036
|
-
) {
|
|
1037
|
-
params.tools.register(createStructuredOutputTool(params.structuredOutput.schema))
|
|
1141
|
+
if (params.structuredOutput && params.structuredOutput.mode !== 'native') {
|
|
1142
|
+
addRuntimeTool(createStructuredOutputTool(params.structuredOutput.schema), 'active')
|
|
1038
1143
|
}
|
|
1039
1144
|
|
|
1145
|
+
for (const tool of advisoryToolDefs) addRuntimeTool(tool, 'active')
|
|
1146
|
+
|
|
1147
|
+
// Two SEPARATE entries, not `combineToolsets`'d into one: `Toolset.availability`
|
|
1148
|
+
// is a single value for the whole toolset, and `ToolManager` derives each
|
|
1149
|
+
// name's default availability from whichever ARRAY ENTRY served it — a
|
|
1150
|
+
// merged toolset has no one availability to report, so every tool
|
|
1151
|
+
// inside it (both halves) would read back as the untyped default,
|
|
1152
|
+
// `'active'`, silently dropping every override this turn just computed.
|
|
1153
|
+
const toolManager = new ToolManager({
|
|
1154
|
+
toolsets: [
|
|
1155
|
+
...params.toolsets,
|
|
1156
|
+
toolset('runtime:active', runtimeActiveTools),
|
|
1157
|
+
deferred(toolset('runtime:deferred', runtimeDeferredTools)),
|
|
1158
|
+
],
|
|
1159
|
+
...(params.toolResultGuardrails !== undefined
|
|
1160
|
+
? { resultGuardrails: params.toolResultGuardrails }
|
|
1161
|
+
: {}),
|
|
1162
|
+
...(params.tierConfig !== undefined ? { tierConfig: params.tierConfig } : {}),
|
|
1163
|
+
// Read fresh on every `availability()` call, not captured once: see
|
|
1164
|
+
// `ToolManager.availability` — derived from the turn's own
|
|
1165
|
+
// post-compaction history, which grows as the turn proceeds.
|
|
1166
|
+
messages: () => ctx.recorder.messages,
|
|
1167
|
+
})
|
|
1168
|
+
disposeToolManager = () => toolManager.dispose()
|
|
1169
|
+
|
|
1040
1170
|
// ─── Provider capability negotiation (before tooling bootstrap) ────────
|
|
1041
1171
|
// Compare what the request asks for with what the DRIVER declared it
|
|
1042
1172
|
// does. Undeclared capabilities resolve permissively (today's behavior
|
|
1043
1173
|
// for third-party providers); declared gaps degrade loudly instead of
|
|
1044
1174
|
// silently.
|
|
1045
1175
|
const capabilities = resolveProviderCapabilities(params.provider)
|
|
1046
|
-
const registeredToolCount =
|
|
1176
|
+
const registeredToolCount = toolManager.listNames().length
|
|
1047
1177
|
const stripToolSurfaces = !capabilities.supportsTools && registeredToolCount > 0
|
|
1048
1178
|
// Counted separately because they are separate wire shapes: a driver can
|
|
1049
1179
|
// map images and drop documents, and a vision warning would send the
|
|
@@ -1126,7 +1256,7 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
1126
1256
|
// shows the model fewer tools and lets it call any of them by name.
|
|
1127
1257
|
const allowedBeforeDenial = stripToolSurfaces
|
|
1128
1258
|
? []
|
|
1129
|
-
: withDeferredDiscoveryTool(
|
|
1259
|
+
: withDeferredDiscoveryTool(toolManager, params.allowedTools)
|
|
1130
1260
|
const denied = new Set(params.deniedTools ?? [])
|
|
1131
1261
|
const effectiveAllowedTools: string[] | undefined =
|
|
1132
1262
|
denied.size === 0
|
|
@@ -1136,7 +1266,7 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
1136
1266
|
// here — otherwise the subtraction would be from an empty list
|
|
1137
1267
|
// and would deny nothing, which is the shape a delegated child
|
|
1138
1268
|
// arrives in.
|
|
1139
|
-
[...(allowedBeforeDenial ??
|
|
1269
|
+
[...(allowedBeforeDenial ?? toolManager.listNames())].filter((name) => !denied.has(name))
|
|
1140
1270
|
|
|
1141
1271
|
// The two halves of a durable pause, owned by the TURN when the host
|
|
1142
1272
|
// does not own them.
|
|
@@ -1205,7 +1335,7 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
1205
1335
|
const toolExecutor = ToolingBootstrap.init(
|
|
1206
1336
|
{
|
|
1207
1337
|
skillGrants,
|
|
1208
|
-
tools:
|
|
1338
|
+
tools: toolManager,
|
|
1209
1339
|
sessionId: ctx.sessionId,
|
|
1210
1340
|
turnId: ctx.turnId,
|
|
1211
1341
|
workingDirectory: ctx.cwd,
|
|
@@ -1331,7 +1461,7 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
1331
1461
|
persona: params.persona,
|
|
1332
1462
|
skills: params.skills,
|
|
1333
1463
|
basePrompt: params.basePrompt,
|
|
1334
|
-
tools:
|
|
1464
|
+
tools: toolManager,
|
|
1335
1465
|
allowedTools: effectiveAllowedTools,
|
|
1336
1466
|
runtimeContext: params.runtimeContext,
|
|
1337
1467
|
contributions: promptContributions,
|
|
@@ -1381,45 +1511,12 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
1381
1511
|
signal: ctx.abortController.signal,
|
|
1382
1512
|
})
|
|
1383
1513
|
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
// the query boundary, where the effective timeout and run signal are
|
|
1391
|
-
// already known; standalone AdvisoryExecutor callers retain their
|
|
1392
|
-
// explicitly chosen provider/cancellation policy.
|
|
1393
|
-
const boundedAdvisors = params.advisory.advisors.map((advisor) => ({
|
|
1394
|
-
...advisor,
|
|
1395
|
-
provider: withTokenBudget(
|
|
1396
|
-
withStreamIdleTimeout(advisor.provider, {
|
|
1397
|
-
idleTimeoutMs: streamIdleTimeoutMs,
|
|
1398
|
-
log: ctx.log,
|
|
1399
|
-
}),
|
|
1400
|
-
budget,
|
|
1401
|
-
),
|
|
1402
|
-
}))
|
|
1403
|
-
const advisorRegistry = new AdvisorRegistry(boundedAdvisors, params.advisory.defaultAdvisorId)
|
|
1404
|
-
// A budget the runtime cannot measure is refused here rather than
|
|
1405
|
-
// silently ignored for the length of the turn.
|
|
1406
|
-
assertBudgetEnforceable(params.advisory)
|
|
1407
|
-
const advisoryExecutor = new AdvisoryExecutor(
|
|
1408
|
-
ctx.log,
|
|
1409
|
-
params.advisory.budget,
|
|
1410
|
-
ctx.abortController.signal,
|
|
1411
|
-
)
|
|
1412
|
-
const triggerEvaluator = new TriggerEvaluator(
|
|
1413
|
-
params.advisory.triggers ?? [],
|
|
1414
|
-
params.advisory.budget,
|
|
1415
|
-
)
|
|
1416
|
-
advisoryCtx = new AdvisoryContext(
|
|
1417
|
-
advisorRegistry,
|
|
1418
|
-
advisoryExecutor,
|
|
1419
|
-
triggerEvaluator,
|
|
1420
|
-
params.advisory.budget,
|
|
1421
|
-
)
|
|
1422
|
-
|
|
1514
|
+
// `advisoryCtx` itself was already built above, before the
|
|
1515
|
+
// `ToolManager`, so its agent-tool form (if any) could join the
|
|
1516
|
+
// `runtime` toolset. What's left is the callback that needs state this
|
|
1517
|
+
// early construction cannot see yet: `workingStateManager`,
|
|
1518
|
+
// `effectiveAllowedTools`, `iterationOrchestrator`.
|
|
1519
|
+
if (advisoryCtx && params.advisory) {
|
|
1423
1520
|
// What the turn looks like when the MODEL consults an advisor, as
|
|
1424
1521
|
// opposed to when a trigger does. The trigger path has always passed
|
|
1425
1522
|
// this; the tool path passed an empty context, so an advisor the model
|
|
@@ -1430,7 +1527,8 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
1430
1527
|
// `AdvisorDefinition` and consulted by nothing, so a host who turned
|
|
1431
1528
|
// the catalogue off still paid for it in every advisory prompt.
|
|
1432
1529
|
const advisoryConfig = params.advisory
|
|
1433
|
-
|
|
1530
|
+
const boundAdvisoryCtx = advisoryCtx
|
|
1531
|
+
boundAdvisoryCtx.setCallContextProvider(() => {
|
|
1434
1532
|
const summary =
|
|
1435
1533
|
workingStateManager && advisoryConfig.advisors.some((a) => a.useCompactedContext)
|
|
1436
1534
|
? serializeWorkingState(workingStateManager.getState())
|
|
@@ -1440,21 +1538,11 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
1440
1538
|
turn: iterationOrchestrator.getAdvisoryTurnContext(),
|
|
1441
1539
|
...(summary !== undefined ? { workingStateSummary: summary } : {}),
|
|
1442
1540
|
...(advisoryConfig.includeToolCatalog
|
|
1443
|
-
? { toolCatalog:
|
|
1541
|
+
? { toolCatalog: toolManager.toLLMTools(effectiveAllowedTools) }
|
|
1444
1542
|
: {}),
|
|
1445
1543
|
iteration: ctx.recorder.currentIteration,
|
|
1446
1544
|
}
|
|
1447
1545
|
})
|
|
1448
|
-
|
|
1449
|
-
if (params.advisory.enableAgentTool) {
|
|
1450
|
-
const advisoryTools = buildAdvisoryTools({ advisoryCtx })
|
|
1451
|
-
const overrides = params.runtimeToolOverrides
|
|
1452
|
-
for (const tool of advisoryTools) {
|
|
1453
|
-
const override = overrides?.[tool.name]
|
|
1454
|
-
if (override === 'disabled') continue
|
|
1455
|
-
params.tools.register(tool, override ?? 'active')
|
|
1456
|
-
}
|
|
1457
|
-
}
|
|
1458
1546
|
}
|
|
1459
1547
|
|
|
1460
1548
|
const iterationOrchestrator = new IterationOrchestrator({
|
|
@@ -1477,7 +1565,7 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
1477
1565
|
...(params.parkRecordDelayMs !== undefined
|
|
1478
1566
|
? { parkRecordDelayMs: params.parkRecordDelayMs }
|
|
1479
1567
|
: {}),
|
|
1480
|
-
tools:
|
|
1568
|
+
tools: toolManager,
|
|
1481
1569
|
allowedTools: effectiveAllowedTools,
|
|
1482
1570
|
recorder: ctx.recorder,
|
|
1483
1571
|
toolExecutor,
|
|
@@ -1732,7 +1820,7 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
1732
1820
|
persona: params.persona,
|
|
1733
1821
|
skills: params.skills,
|
|
1734
1822
|
basePrompt: contextLevel === 'full' ? params.basePrompt : undefined,
|
|
1735
|
-
tools:
|
|
1823
|
+
tools: toolManager,
|
|
1736
1824
|
allowedTools: effectiveAllowedTools,
|
|
1737
1825
|
runtimeContext: params.runtimeContext,
|
|
1738
1826
|
contributions: promptContributions,
|
|
@@ -2118,7 +2206,11 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
2118
2206
|
if (params.pluginManager) {
|
|
2119
2207
|
const hookResults = await params.pluginManager.executeHooks(
|
|
2120
2208
|
'turn_start',
|
|
2121
|
-
{
|
|
2209
|
+
{
|
|
2210
|
+
sessionId: ctx.sessionId,
|
|
2211
|
+
turnId: ctx.turnId,
|
|
2212
|
+
signal: ctx.abortController.signal,
|
|
2213
|
+
},
|
|
2122
2214
|
eventTranslator.emitEvent,
|
|
2123
2215
|
)
|
|
2124
2216
|
applyLifecycleHookResults('turn_start', hookResults)
|
|
@@ -2406,10 +2498,14 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
|
|
|
2406
2498
|
if (!settled) await settleAbandonedTurn(ctx.recorder, eventTranslator, ctx.log)
|
|
2407
2499
|
}
|
|
2408
2500
|
} finally {
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2501
|
+
try {
|
|
2502
|
+
disposeToolManager?.()
|
|
2503
|
+
} finally {
|
|
2504
|
+
unsubscribeChildSessions?.()
|
|
2505
|
+
// The lease `open()` took in the prelude; a caller-supplied lease is the
|
|
2506
|
+
// caller's to give back.
|
|
2507
|
+
await ctx.recorder.release()
|
|
2508
|
+
}
|
|
2413
2509
|
}
|
|
2414
2510
|
}
|
|
2415
2511
|
|
|
@@ -2440,7 +2536,9 @@ async function settleAbandonedTurn(
|
|
|
2440
2536
|
try {
|
|
2441
2537
|
if (recorder.isClosed || recorder.isPaused || !recorder.isActive) return
|
|
2442
2538
|
await recorder.flush()
|
|
2443
|
-
const parked = await findPendingCheckpoint(recorder.log, {
|
|
2539
|
+
const parked = await findPendingCheckpoint(recorder.log, {
|
|
2540
|
+
turnId: recorder.turnId,
|
|
2541
|
+
})
|
|
2444
2542
|
if (parked) {
|
|
2445
2543
|
recorder.setStopReason('paused')
|
|
2446
2544
|
await eventTranslator.emitEvent({
|
|
@@ -2554,19 +2652,19 @@ function assertSelectedResumeAttribution(params: QueryParams, state: SelectedRes
|
|
|
2554
2652
|
}
|
|
2555
2653
|
|
|
2556
2654
|
function withDeferredDiscoveryTool(
|
|
2557
|
-
tools:
|
|
2655
|
+
tools: ToolManager,
|
|
2558
2656
|
allowedTools?: string[],
|
|
2559
2657
|
): string[] | undefined {
|
|
2560
2658
|
if (!allowedTools) return undefined
|
|
2561
2659
|
if (allowedTools.includes(SearchToolsTool.name)) return allowedTools
|
|
2562
2660
|
|
|
2563
2661
|
const allowedHasDeferred = allowedTools.some(
|
|
2564
|
-
(name) => tools.has(name) && tools.
|
|
2662
|
+
(name) => tools.has(name) && tools.availability(name) === 'deferred',
|
|
2565
2663
|
)
|
|
2566
2664
|
if (!allowedHasDeferred) return allowedTools
|
|
2567
2665
|
|
|
2568
2666
|
if (!tools.has(SearchToolsTool.name)) return allowedTools
|
|
2569
|
-
if (tools.
|
|
2667
|
+
if (tools.availability(SearchToolsTool.name) !== 'active') return allowedTools
|
|
2570
2668
|
|
|
2571
2669
|
return [...allowedTools, SearchToolsTool.name]
|
|
2572
2670
|
}
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
} from '../../../telemetry/attributes.js'
|
|
22
22
|
import { getTracer } from '../../../telemetry/runtime-accessors.js'
|
|
23
23
|
import { STRUCTURED_OUTPUT_TOOL_NAME } from '../../../tools/builtins/structuredOutput.js'
|
|
24
|
+
import type { ToolManager } from '../../../toolsets/manager.js'
|
|
24
25
|
import type { CostInfo, TokenUsage } from '../../../types/common/index.js'
|
|
25
26
|
import { NamzuError } from '../../../types/errors/index.js'
|
|
26
27
|
import type { MessageId } from '../../../types/ids/index.js'
|
|
@@ -41,7 +42,7 @@ import type {
|
|
|
41
42
|
StepResult,
|
|
42
43
|
StopReason,
|
|
43
44
|
} from '../../../types/session/index.js'
|
|
44
|
-
import type { LLMToolSchema
|
|
45
|
+
import type { LLMToolSchema } from '../../../types/tool/index.js'
|
|
45
46
|
import { toErrorMessage } from '../../../utils/error.js'
|
|
46
47
|
import { stableDigest } from '../../../utils/hash.js'
|
|
47
48
|
import { generateMessageId } from '../../../utils/id.js'
|
|
@@ -1192,7 +1193,16 @@ export class IterationOrchestrator {
|
|
|
1192
1193
|
// never auto-continues — that path is invoked
|
|
1193
1194
|
// specifically to extract a closing summary.
|
|
1194
1195
|
// - max_iterations bounds the loop in any case.
|
|
1195
|
-
|
|
1196
|
+
// - not after the context window: a response that filled
|
|
1197
|
+
// it has no room left to continue into, and the
|
|
1198
|
+
// continuation would only send a longer prompt into
|
|
1199
|
+
// the same full window. The reply stands as it is.
|
|
1200
|
+
if (
|
|
1201
|
+
!forceFinalize &&
|
|
1202
|
+
response.finishReason === 'length' &&
|
|
1203
|
+
response.finishDetail !== 'context_window' &&
|
|
1204
|
+
hasContent
|
|
1205
|
+
) {
|
|
1196
1206
|
this.ctx.log.info('LLM hit max_tokens mid-text — auto-continuing', {
|
|
1197
1207
|
[NAMZU.TURN_ID]: recorder.turnId,
|
|
1198
1208
|
[NAMZU.ITERATION]: iterationNum,
|
|
@@ -2469,7 +2479,7 @@ function round6(n: number): number {
|
|
|
2469
2479
|
* next call, not the next process.
|
|
2470
2480
|
*/
|
|
2471
2481
|
function enforcedModelInputToolNames(
|
|
2472
|
-
registry:
|
|
2482
|
+
registry: ToolManager,
|
|
2473
2483
|
tools: readonly LLMToolSchema[],
|
|
2474
2484
|
): readonly string[] | undefined {
|
|
2475
2485
|
const names = tools
|
|
@@ -814,7 +814,7 @@ async function runCompactionCheckInner(
|
|
|
814
814
|
|
|
815
815
|
const newMessages = [...preservedSystem, compactionMessage, ...retainedOlder, ...recentMessages]
|
|
816
816
|
|
|
817
|
-
// OPAQUE survival guard
|
|
817
|
+
// OPAQUE survival guard: the pinned working-memory slot is a
|
|
818
818
|
// leading system message, so it is kept in `preservedSystem` (the compaction
|
|
819
819
|
// filter only drops prior `[COMPACTED CONTEXT]` summaries, never the WM slot)
|
|
820
820
|
// and survives for free — this branch is DEFENSIVE-ONLY, exercised only if a
|
|
@@ -12,6 +12,7 @@ import type { ResolvedProviderCapabilities } from '../../../../provider/capabili
|
|
|
12
12
|
import type { ServingMember } from '../../../../provider/fallback.js'
|
|
13
13
|
import type { CompletionInbox } from '../../../../scheduler/completion-inbox.js'
|
|
14
14
|
import type { ActivityStore } from '../../../../store/activity/memory.js'
|
|
15
|
+
import type { ToolManager } from '../../../../toolsets/manager.js'
|
|
15
16
|
import type { TaskScheduler } from '../../../../types/agent/scheduler.js'
|
|
16
17
|
import type { WorkingMemoryProvider } from '../../../../types/agent/working-memory.js'
|
|
17
18
|
import type { HITLResumeDecision, ResumeHandler } from '../../../../types/hitl/index.js'
|
|
@@ -30,7 +31,6 @@ import type {
|
|
|
30
31
|
} from '../../../../types/session/index.js'
|
|
31
32
|
import type { StructuredOutputConfig } from '../../../../types/structured-output/index.js'
|
|
32
33
|
import type { TaskStore } from '../../../../types/task/index.js'
|
|
33
|
-
import type { ToolRegistryContract } from '../../../../types/tool/index.js'
|
|
34
34
|
import type { Logger } from '../../../../utils/logger.js'
|
|
35
35
|
import type { AwaitedJobs } from '../../../jobs/awaited-jobs.js'
|
|
36
36
|
import type { CheckpointManager } from '../../checkpoint.js'
|
|
@@ -96,7 +96,7 @@ export interface IterationContext {
|
|
|
96
96
|
|
|
97
97
|
/** Demand a schema-validated final answer. See QueryParams.structuredOutput. */
|
|
98
98
|
readonly structuredOutput?: StructuredOutputConfig
|
|
99
|
-
readonly tools:
|
|
99
|
+
readonly tools: ToolManager
|
|
100
100
|
readonly allowedTools?: string[]
|
|
101
101
|
readonly recorder: TurnRecorder
|
|
102
102
|
readonly toolExecutor: ToolExecutor
|