@namzu/sdk 27.1.0 → 29.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 +1757 -0
- package/README.md +45 -42
- package/dist/advisory/executor.d.ts.map +1 -1
- package/dist/advisory/executor.js +14 -12
- package/dist/advisory/executor.js.map +1 -1
- package/dist/advisory/registry.d.ts +2 -2
- package/dist/advisory/registry.d.ts.map +1 -1
- package/dist/advisory/registry.js +2 -2
- package/dist/advisory/registry.js.map +1 -1
- package/dist/agents/AbstractAgent.d.ts +44 -2
- package/dist/agents/AbstractAgent.d.ts.map +1 -1
- package/dist/agents/AbstractAgent.js +62 -13
- package/dist/agents/AbstractAgent.js.map +1 -1
- package/dist/agents/PipelineAgent.d.ts +29 -1
- package/dist/agents/PipelineAgent.d.ts.map +1 -1
- package/dist/agents/PipelineAgent.js +33 -4
- package/dist/agents/PipelineAgent.js.map +1 -1
- package/dist/agents/ReactiveAgent.d.ts +2 -1
- package/dist/agents/ReactiveAgent.d.ts.map +1 -1
- package/dist/agents/ReactiveAgent.js +15 -6
- package/dist/agents/ReactiveAgent.js.map +1 -1
- package/dist/agents/RouterAgent.d.ts +2 -1
- package/dist/agents/RouterAgent.d.ts.map +1 -1
- package/dist/agents/RouterAgent.js +21 -13
- package/dist/agents/RouterAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts +3 -2
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +29 -16
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/handle.d.ts +85 -0
- package/dist/agents/handle.d.ts.map +1 -0
- package/dist/agents/handle.js +79 -0
- package/dist/agents/handle.js.map +1 -0
- package/dist/agents/runAgent.d.ts +10 -5
- package/dist/agents/runAgent.d.ts.map +1 -1
- package/dist/agents/runAgent.js +3 -2
- package/dist/agents/runAgent.js.map +1 -1
- package/dist/{verification → authorization}/gate.d.ts +4 -4
- package/dist/authorization/gate.d.ts.map +1 -0
- package/dist/{verification → authorization}/gate.js +31 -24
- package/dist/authorization/gate.js.map +1 -0
- package/dist/authorization/index.d.ts +6 -0
- package/dist/authorization/index.d.ts.map +1 -0
- package/dist/authorization/index.js +14 -0
- package/dist/authorization/index.js.map +1 -0
- package/dist/authorization/permission-presets.d.ts +119 -0
- package/dist/authorization/permission-presets.d.ts.map +1 -0
- package/dist/authorization/permission-presets.js +137 -0
- package/dist/authorization/permission-presets.js.map +1 -0
- package/dist/{verification → authorization}/presets.d.ts +3 -3
- package/dist/authorization/presets.d.ts.map +1 -0
- package/dist/{verification → authorization}/presets.js +12 -0
- package/dist/authorization/presets.js.map +1 -0
- package/dist/authorization/rules.d.ts +4 -0
- package/dist/authorization/rules.d.ts.map +1 -0
- package/dist/{verification → authorization}/rules.js +14 -1
- package/dist/authorization/rules.js.map +1 -0
- package/dist/bridge/a2a/client.d.ts +107 -0
- package/dist/bridge/a2a/client.d.ts.map +1 -0
- package/dist/bridge/a2a/client.js +275 -0
- package/dist/bridge/a2a/client.js.map +1 -0
- package/dist/bridge/a2a/mapper.d.ts.map +1 -1
- package/dist/bridge/a2a/mapper.js +16 -0
- package/dist/bridge/a2a/mapper.js.map +1 -1
- package/dist/bridge/acp/filesystem.d.ts +33 -0
- package/dist/bridge/acp/filesystem.d.ts.map +1 -0
- package/dist/bridge/acp/filesystem.js +30 -0
- package/dist/bridge/acp/filesystem.js.map +1 -0
- package/dist/bridge/acp/index.d.ts +8 -0
- package/dist/bridge/acp/index.d.ts.map +1 -0
- package/dist/bridge/acp/index.js +5 -0
- package/dist/bridge/acp/index.js.map +1 -0
- package/dist/bridge/acp/permission.d.ts +51 -0
- package/dist/bridge/acp/permission.d.ts.map +1 -0
- package/dist/bridge/acp/permission.js +37 -0
- package/dist/bridge/acp/permission.js.map +1 -0
- package/dist/bridge/acp/server.d.ts +163 -0
- package/dist/bridge/acp/server.d.ts.map +1 -0
- package/dist/bridge/acp/server.js +312 -0
- package/dist/bridge/acp/server.js.map +1 -0
- package/dist/bridge/acp/update.d.ts +13 -0
- package/dist/bridge/acp/update.d.ts.map +1 -0
- package/dist/bridge/acp/update.js +94 -0
- package/dist/bridge/acp/update.js.map +1 -0
- package/dist/bridge/mcp/connector/adapter.d.ts +2 -0
- package/dist/bridge/mcp/connector/adapter.d.ts.map +1 -1
- package/dist/bridge/mcp/connector/adapter.js +7 -3
- package/dist/bridge/mcp/connector/adapter.js.map +1 -1
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +27 -0
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/bus/breaker.d.ts.map +1 -1
- package/dist/bus/breaker.js +15 -10
- package/dist/bus/breaker.js.map +1 -1
- package/dist/bus/index.d.ts.map +1 -1
- package/dist/bus/index.js +10 -8
- package/dist/bus/index.js.map +1 -1
- package/dist/bus/lock.d.ts.map +1 -1
- package/dist/bus/lock.js +36 -19
- package/dist/bus/lock.js.map +1 -1
- package/dist/bus/ownership.d.ts.map +1 -1
- package/dist/bus/ownership.js +17 -9
- package/dist/bus/ownership.js.map +1 -1
- package/dist/compaction/context-window.d.ts +18 -2
- package/dist/compaction/context-window.d.ts.map +1 -1
- package/dist/compaction/context-window.js +15 -1
- package/dist/compaction/context-window.js.map +1 -1
- package/dist/compaction/index.d.ts +3 -0
- package/dist/compaction/index.d.ts.map +1 -1
- package/dist/compaction/index.js +4 -0
- package/dist/compaction/index.js.map +1 -1
- package/dist/compaction/manual.d.ts +58 -0
- package/dist/compaction/manual.d.ts.map +1 -0
- package/dist/compaction/manual.js +104 -0
- package/dist/compaction/manual.js.map +1 -0
- package/dist/compaction/plan.d.ts +92 -0
- package/dist/compaction/plan.d.ts.map +1 -0
- package/dist/compaction/plan.js +149 -0
- package/dist/compaction/plan.js.map +1 -0
- package/dist/compaction/summary.d.ts +23 -0
- package/dist/compaction/summary.d.ts.map +1 -0
- package/dist/compaction/summary.js +27 -0
- package/dist/compaction/summary.js.map +1 -0
- package/dist/compaction/verifier.js +2 -2
- package/dist/compaction/verifier.js.map +1 -1
- package/dist/config/registry.d.ts +104 -0
- package/dist/config/registry.d.ts.map +1 -0
- package/dist/config/registry.js +105 -0
- package/dist/config/registry.js.map +1 -0
- package/dist/config/runtime.d.ts +107 -36
- package/dist/config/runtime.d.ts.map +1 -1
- package/dist/config/runtime.js +27 -0
- package/dist/config/runtime.js.map +1 -1
- package/dist/connector/BaseConnector.d.ts +1 -1
- package/dist/connector/BaseConnector.d.ts.map +1 -1
- package/dist/connector/BaseConnector.js +8 -3
- package/dist/connector/BaseConnector.js.map +1 -1
- package/dist/connector/builtins/http.d.ts +1 -1
- package/dist/connector/builtins/http.d.ts.map +1 -1
- package/dist/connector/builtins/http.js +11 -2
- package/dist/connector/builtins/http.js.map +1 -1
- package/dist/connector/builtins/webhook.d.ts +1 -1
- package/dist/connector/builtins/webhook.d.ts.map +1 -1
- package/dist/connector/builtins/webhook.js +5 -2
- package/dist/connector/builtins/webhook.js.map +1 -1
- package/dist/connector/index.d.ts +4 -15
- package/dist/connector/index.d.ts.map +1 -1
- package/dist/connector/index.js +12 -12
- package/dist/connector/index.js.map +1 -1
- package/dist/connector/mcp/client.d.ts.map +1 -1
- package/dist/connector/mcp/client.js +31 -20
- package/dist/connector/mcp/client.js.map +1 -1
- package/dist/connector/mcp/discovery.d.ts.map +1 -1
- package/dist/connector/mcp/discovery.js +31 -20
- package/dist/connector/mcp/discovery.js.map +1 -1
- package/dist/connector/mcp/http-sse.d.ts +2 -1
- package/dist/connector/mcp/http-sse.d.ts.map +1 -1
- package/dist/connector/mcp/http-sse.js +9 -6
- package/dist/connector/mcp/http-sse.js.map +1 -1
- package/dist/connector/mcp/index.d.ts +2 -3
- package/dist/connector/mcp/index.d.ts.map +1 -1
- package/dist/connector/mcp/index.js +5 -4
- package/dist/connector/mcp/index.js.map +1 -1
- package/dist/connector/mcp/reconnect.d.ts +123 -0
- package/dist/connector/mcp/reconnect.d.ts.map +1 -0
- package/dist/connector/mcp/reconnect.js +121 -0
- package/dist/connector/mcp/reconnect.js.map +1 -0
- package/dist/connector/mcp/server/index.d.ts +28 -0
- package/dist/connector/mcp/server/index.d.ts.map +1 -0
- package/dist/connector/mcp/server/index.js +27 -0
- package/dist/connector/mcp/server/index.js.map +1 -0
- package/dist/connector/mcp/{server-stdio.d.ts → server/server-stdio.d.ts} +3 -2
- package/dist/connector/mcp/server/server-stdio.d.ts.map +1 -0
- package/dist/connector/mcp/{server-stdio.js → server/server-stdio.js} +4 -3
- package/dist/connector/mcp/server/server-stdio.js.map +1 -0
- package/dist/connector/mcp/{server.d.ts → server/server.d.ts} +5 -4
- package/dist/connector/mcp/server/server.d.ts.map +1 -0
- package/dist/connector/mcp/{server.js → server/server.js} +14 -9
- package/dist/connector/mcp/server/server.js.map +1 -0
- package/dist/connector/mcp/stdio.d.ts +2 -1
- package/dist/connector/mcp/stdio.d.ts.map +1 -1
- package/dist/connector/mcp/stdio.js +15 -7
- package/dist/connector/mcp/stdio.js.map +1 -1
- package/dist/connector/mcp/streamable-http.d.ts +2 -1
- package/dist/connector/mcp/streamable-http.d.ts.map +1 -1
- package/dist/connector/mcp/streamable-http.js +5 -4
- package/dist/connector/mcp/streamable-http.js.map +1 -1
- package/dist/{bridge/tools/connector → connector/tools}/adapter.d.ts +4 -4
- package/dist/connector/tools/adapter.d.ts.map +1 -0
- package/dist/{bridge/tools/connector → connector/tools}/adapter.js +1 -1
- package/dist/connector/tools/adapter.js.map +1 -0
- package/dist/{bridge/tools/connector → connector/tools}/definitions.d.ts +2 -2
- package/dist/connector/tools/definitions.d.ts.map +1 -0
- package/dist/{bridge/tools/connector → connector/tools}/definitions.js +2 -2
- package/dist/connector/tools/definitions.js.map +1 -0
- package/dist/connector/tools/index.d.ts.map +1 -0
- package/dist/connector/tools/index.js.map +1 -0
- package/dist/{bridge/tools/connector → connector/tools}/router.d.ts +4 -2
- package/dist/connector/tools/router.d.ts.map +1 -0
- package/dist/{bridge/tools/connector → connector/tools}/router.js +14 -7
- package/dist/connector/tools/router.js.map +1 -0
- package/dist/connector/web/guarded-fetch.d.ts +60 -0
- package/dist/connector/web/guarded-fetch.d.ts.map +1 -0
- package/dist/connector/web/guarded-fetch.js +233 -0
- package/dist/connector/web/guarded-fetch.js.map +1 -0
- package/dist/connector/web/index.d.ts +5 -0
- package/dist/connector/web/index.d.ts.map +1 -0
- package/dist/connector/web/index.js +7 -0
- package/dist/connector/web/index.js.map +1 -0
- package/dist/connector/web/types.d.ts +87 -0
- package/dist/connector/web/types.d.ts.map +1 -0
- package/dist/connector/web/types.js +25 -0
- package/dist/connector/web/types.js.map +1 -0
- package/dist/constants/acp/index.d.ts +97 -0
- package/dist/constants/acp/index.d.ts.map +1 -0
- package/dist/constants/acp/index.js +96 -0
- package/dist/constants/acp/index.js.map +1 -0
- package/dist/constants/authorization/index.d.ts.map +1 -0
- package/dist/constants/authorization/index.js.map +1 -0
- package/dist/constants/credential-env-keys.d.ts +36 -0
- package/dist/constants/credential-env-keys.d.ts.map +1 -0
- package/dist/constants/credential-env-keys.js +62 -0
- package/dist/constants/credential-env-keys.js.map +1 -0
- package/dist/constants/index.d.ts +3 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +3 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/secret-patterns.d.ts +78 -0
- package/dist/constants/secret-patterns.d.ts.map +1 -0
- package/dist/constants/secret-patterns.js +99 -0
- package/dist/constants/secret-patterns.js.map +1 -0
- package/dist/constants/telemetry/index.d.ts +42 -0
- package/dist/constants/telemetry/index.d.ts.map +1 -1
- package/dist/constants/telemetry/index.js +87 -0
- package/dist/constants/telemetry/index.js.map +1 -1
- package/dist/contracts/a2a.d.ts +46 -46
- package/dist/contracts/api.d.ts +12 -1
- package/dist/contracts/api.d.ts.map +1 -1
- package/dist/eval/judge.js +2 -2
- package/dist/eval/judge.js.map +1 -1
- package/dist/execution/base.d.ts +1 -1
- package/dist/execution/base.d.ts.map +1 -1
- package/dist/execution/base.js +18 -7
- package/dist/execution/base.js.map +1 -1
- package/dist/execution/code-runtime/types.d.ts +114 -0
- package/dist/execution/code-runtime/types.d.ts.map +1 -0
- package/dist/execution/code-runtime/types.js +40 -0
- package/dist/execution/code-runtime/types.js.map +1 -0
- package/dist/execution/code-runtime/worker.d.ts +6 -0
- package/dist/execution/code-runtime/worker.d.ts.map +1 -0
- package/dist/execution/code-runtime/worker.js +248 -0
- package/dist/execution/code-runtime/worker.js.map +1 -0
- package/dist/{connector/execution → execution}/factory.d.ts +3 -3
- package/dist/execution/factory.d.ts.map +1 -0
- package/dist/{connector/execution → execution}/factory.js +1 -1
- package/dist/execution/factory.js.map +1 -0
- package/dist/{connector/execution → execution}/hybrid.d.ts +5 -3
- package/dist/execution/hybrid.d.ts.map +1 -0
- package/dist/{connector/execution → execution}/hybrid.js +10 -4
- package/dist/execution/hybrid.js.map +1 -0
- package/dist/execution/index.d.ts +23 -0
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/index.js +21 -0
- package/dist/execution/index.js.map +1 -1
- package/dist/execution/local.d.ts +2 -0
- package/dist/execution/local.d.ts.map +1 -1
- package/dist/execution/local.js +2 -2
- package/dist/execution/local.js.map +1 -1
- package/dist/{connector/execution → execution}/remote.d.ts +4 -2
- package/dist/execution/remote.d.ts.map +1 -0
- package/dist/{connector/execution → execution}/remote.js +12 -5
- package/dist/execution/remote.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/invariants/index.d.ts +111 -0
- package/dist/invariants/index.d.ts.map +1 -0
- package/dist/invariants/index.js +138 -0
- package/dist/invariants/index.js.map +1 -0
- package/dist/manager/agent/lifecycle.d.ts +29 -7
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +140 -50
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/connector/environment.d.ts +2 -0
- package/dist/manager/connector/environment.d.ts.map +1 -1
- package/dist/manager/connector/environment.js +20 -9
- package/dist/manager/connector/environment.js.map +1 -1
- package/dist/manager/connector/lifecycle.d.ts +10 -0
- package/dist/manager/connector/lifecycle.d.ts.map +1 -1
- package/dist/manager/connector/lifecycle.js +21 -11
- package/dist/manager/connector/lifecycle.js.map +1 -1
- package/dist/manager/connector/tenant.d.ts +9 -0
- package/dist/manager/connector/tenant.d.ts.map +1 -1
- package/dist/manager/connector/tenant.js +24 -10
- package/dist/manager/connector/tenant.js.map +1 -1
- package/dist/manager/index.d.ts +6 -2
- package/dist/manager/index.d.ts.map +1 -1
- package/dist/manager/index.js +7 -1
- package/dist/manager/index.js.map +1 -1
- package/dist/manager/project/lifecycle.d.ts +1 -1
- package/dist/manager/project/lifecycle.js +1 -1
- package/dist/manager/run/emergency.d.ts.map +1 -1
- package/dist/manager/run/emergency.js +9 -7
- package/dist/manager/run/emergency.js.map +1 -1
- package/dist/manager/run/persistence.d.ts +46 -4
- package/dist/manager/run/persistence.d.ts.map +1 -1
- package/dist/manager/run/persistence.js +102 -7
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/manager/topic/lifecycle.d.ts +123 -0
- package/dist/manager/topic/lifecycle.d.ts.map +1 -0
- package/dist/manager/{thread → topic}/lifecycle.js +79 -61
- package/dist/manager/topic/lifecycle.js.map +1 -0
- package/dist/manager/topic/objective.d.ts +77 -0
- package/dist/manager/topic/objective.d.ts.map +1 -0
- package/dist/manager/topic/objective.js +133 -0
- package/dist/manager/topic/objective.js.map +1 -0
- package/dist/model-router/task-router.d.ts.map +1 -0
- package/dist/model-router/task-router.js.map +1 -0
- package/dist/persona/assembler.d.ts +1 -1
- package/dist/persona/assembler.d.ts.map +1 -1
- package/dist/persona/assembler.js +14 -2
- package/dist/persona/assembler.js.map +1 -1
- package/dist/plugin/lifecycle.d.ts +24 -0
- package/dist/plugin/lifecycle.d.ts.map +1 -1
- package/dist/plugin/lifecycle.js +112 -20
- package/dist/plugin/lifecycle.js.map +1 -1
- package/dist/plugin/loader.d.ts +17 -2
- package/dist/plugin/loader.d.ts.map +1 -1
- package/dist/plugin/loader.js +46 -26
- package/dist/plugin/loader.js.map +1 -1
- package/dist/probe/index.d.ts +1 -0
- package/dist/probe/index.d.ts.map +1 -1
- package/dist/probe/registry.d.ts +34 -1
- package/dist/probe/registry.d.ts.map +1 -1
- package/dist/probe/registry.js +5 -4
- package/dist/probe/registry.js.map +1 -1
- package/dist/process/kill-tree.d.ts +40 -0
- package/dist/process/kill-tree.d.ts.map +1 -0
- package/dist/process/kill-tree.js +54 -0
- package/dist/process/kill-tree.js.map +1 -0
- package/dist/prompt/contributions.d.ts +138 -0
- package/dist/prompt/contributions.d.ts.map +1 -0
- package/dist/prompt/contributions.js +78 -0
- package/dist/prompt/contributions.js.map +1 -0
- package/dist/prompt/index.d.ts +3 -0
- package/dist/prompt/index.d.ts.map +1 -0
- package/dist/prompt/index.js +6 -0
- package/dist/prompt/index.js.map +1 -0
- package/dist/provider/attribution.d.ts +45 -0
- package/dist/provider/attribution.d.ts.map +1 -0
- package/dist/provider/attribution.js +23 -0
- package/dist/provider/attribution.js.map +1 -0
- package/dist/provider/{collect.d.ts → collect-chat-completion.d.ts} +3 -3
- package/dist/provider/collect-chat-completion.d.ts.map +1 -0
- package/dist/provider/{collect.js → collect-chat-completion.js} +3 -3
- package/dist/provider/collect-chat-completion.js.map +1 -0
- package/dist/provider/conformance.d.ts +93 -0
- package/dist/provider/conformance.d.ts.map +1 -0
- package/dist/provider/conformance.js +124 -0
- package/dist/provider/conformance.js.map +1 -0
- package/dist/provider/errors.d.ts +29 -0
- package/dist/provider/errors.d.ts.map +1 -1
- package/dist/provider/errors.js +27 -10
- package/dist/provider/errors.js.map +1 -1
- package/dist/provider/fallback.d.ts +1 -1
- package/dist/provider/fallback.d.ts.map +1 -1
- package/dist/provider/fallback.js +27 -9
- package/dist/provider/fallback.js.map +1 -1
- package/dist/provider/idle-timeout.d.ts +47 -0
- package/dist/provider/idle-timeout.d.ts.map +1 -0
- package/dist/provider/idle-timeout.js +61 -0
- package/dist/provider/idle-timeout.js.map +1 -0
- package/dist/provider/instrumentation.d.ts +3 -2
- package/dist/provider/instrumentation.d.ts.map +1 -1
- package/dist/provider/instrumentation.js.map +1 -1
- package/dist/provider/retry.d.ts.map +1 -1
- package/dist/provider/retry.js +58 -21
- package/dist/provider/retry.js.map +1 -1
- package/dist/public-runtime.d.ts +77 -15
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +168 -17
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +8 -1
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +29 -1
- package/dist/public-tools.js.map +1 -1
- package/dist/public-types.d.ts +21 -4
- package/dist/public-types.d.ts.map +1 -1
- package/dist/rag/rag-tool.d.ts.map +1 -1
- package/dist/rag/rag-tool.js +4 -1
- package/dist/rag/rag-tool.js.map +1 -1
- package/dist/read-model/index.d.ts +5 -0
- package/dist/read-model/index.d.ts.map +1 -0
- package/dist/read-model/index.js +7 -0
- package/dist/read-model/index.js.map +1 -0
- package/dist/read-model/registry.d.ts +112 -0
- package/dist/read-model/registry.d.ts.map +1 -0
- package/dist/read-model/registry.js +105 -0
- package/dist/read-model/registry.js.map +1 -0
- package/dist/read-model/run-status.d.ts +43 -0
- package/dist/read-model/run-status.d.ts.map +1 -0
- package/dist/read-model/run-status.js +89 -0
- package/dist/read-model/run-status.js.map +1 -0
- package/dist/registry/{Registry.d.ts → BaseRegistry.d.ts} +2 -2
- package/dist/registry/BaseRegistry.d.ts.map +1 -0
- package/dist/registry/{Registry.js → BaseRegistry.js} +2 -2
- package/dist/registry/BaseRegistry.js.map +1 -0
- package/dist/registry/ManagedRegistry.d.ts +2 -2
- package/dist/registry/ManagedRegistry.d.ts.map +1 -1
- package/dist/registry/ManagedRegistry.js +26 -9
- package/dist/registry/ManagedRegistry.js.map +1 -1
- package/dist/registry/command/index-exports.d.ts +3 -0
- package/dist/registry/command/index-exports.d.ts.map +1 -0
- package/dist/registry/command/index-exports.js +5 -0
- package/dist/registry/command/index-exports.js.map +1 -0
- package/dist/registry/command/index.d.ts +53 -0
- package/dist/registry/command/index.d.ts.map +1 -0
- package/dist/registry/command/index.js +87 -0
- package/dist/registry/command/index.js.map +1 -0
- package/dist/registry/command/kernel-commands.d.ts +32 -0
- package/dist/registry/command/kernel-commands.d.ts.map +1 -0
- package/dist/registry/command/kernel-commands.js +78 -0
- package/dist/registry/command/kernel-commands.js.map +1 -0
- package/dist/registry/connector/scoped.d.ts +2 -1
- package/dist/registry/connector/scoped.d.ts.map +1 -1
- package/dist/registry/connector/scoped.js +6 -5
- package/dist/registry/connector/scoped.js.map +1 -1
- package/dist/registry/index.d.ts +4 -1
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +5 -1
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +15 -12
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/registry/tool/presentation.d.ts +32 -0
- package/dist/registry/tool/presentation.d.ts.map +1 -0
- package/dist/registry/tool/presentation.js +92 -0
- package/dist/registry/tool/presentation.js.map +1 -0
- package/dist/registry/tool/screen.d.ts.map +1 -1
- package/dist/registry/tool/screen.js +12 -11
- package/dist/registry/tool/screen.js.map +1 -1
- package/dist/run/drain.d.ts +13 -3
- package/dist/run/drain.d.ts.map +1 -1
- package/dist/run/drain.js +10 -0
- package/dist/run/drain.js.map +1 -1
- package/dist/run/reporter.d.ts.map +1 -1
- package/dist/run/reporter.js +203 -149
- package/dist/run/reporter.js.map +1 -1
- package/dist/run-query/index.d.ts +74 -0
- package/dist/run-query/index.d.ts.map +1 -0
- package/dist/run-query/index.js +73 -0
- package/dist/run-query/index.js.map +1 -0
- package/dist/runtime/bidi/session.d.ts.map +1 -1
- package/dist/runtime/bidi/session.js +7 -2
- package/dist/runtime/bidi/session.js.map +1 -1
- package/dist/runtime/decision/fallback.d.ts.map +1 -1
- package/dist/runtime/decision/fallback.js +6 -3
- package/dist/runtime/decision/fallback.js.map +1 -1
- package/dist/runtime/decision/parser.d.ts.map +1 -1
- package/dist/runtime/decision/parser.js +10 -9
- package/dist/runtime/decision/parser.js.map +1 -1
- package/dist/runtime/jobs/registry.d.ts +147 -0
- package/dist/runtime/jobs/registry.d.ts.map +1 -0
- package/dist/runtime/jobs/registry.js +242 -0
- package/dist/runtime/jobs/registry.js.map +1 -0
- package/dist/runtime/query/approval-policy.d.ts +22 -0
- package/dist/runtime/query/approval-policy.d.ts.map +1 -0
- package/dist/runtime/query/approval-policy.js +61 -0
- package/dist/runtime/query/approval-policy.js.map +1 -0
- package/dist/runtime/query/checkpoint.d.ts +3 -3
- package/dist/runtime/query/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/checkpoint.js +2 -2
- package/dist/runtime/query/checkpoint.js.map +1 -1
- package/dist/runtime/query/context.d.ts +85 -15
- package/dist/runtime/query/context.d.ts.map +1 -1
- package/dist/runtime/query/context.js +57 -14
- package/dist/runtime/query/context.js.map +1 -1
- package/dist/runtime/query/events.d.ts +5 -4
- package/dist/runtime/query/events.d.ts.map +1 -1
- package/dist/runtime/query/events.js +9 -6
- package/dist/runtime/query/events.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +113 -4
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +228 -62
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/guardrail-presets.d.ts.map +1 -1
- package/dist/runtime/query/guardrail-presets.js +11 -14
- package/dist/runtime/query/guardrail-presets.js.map +1 -1
- package/dist/runtime/query/guardrails.d.ts.map +1 -1
- package/dist/runtime/query/guardrails.js +16 -12
- package/dist/runtime/query/guardrails.js.map +1 -1
- package/dist/runtime/query/index.d.ts +124 -16
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +372 -76
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +32 -0
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +256 -88
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/advisory.js +17 -16
- package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.d.ts +1 -8
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +202 -178
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +52 -6
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js +26 -17
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts +2 -2
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +27 -7
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/phases/working-memory.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/working-memory.js +3 -2
- package/dist/runtime/query/iteration/phases/working-memory.js.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.js +14 -14
- package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
- package/dist/runtime/query/{context-cache.d.ts → prompt-cache.d.ts} +6 -4
- package/dist/runtime/query/prompt-cache.d.ts.map +1 -0
- package/dist/runtime/query/{context-cache.js → prompt-cache.js} +20 -2
- package/dist/runtime/query/prompt-cache.js.map +1 -0
- package/dist/runtime/query/prompt.d.ts +50 -0
- package/dist/runtime/query/prompt.d.ts.map +1 -1
- package/dist/runtime/query/prompt.js +83 -4
- package/dist/runtime/query/prompt.js.map +1 -1
- package/dist/runtime/query/repeat-call.d.ts +42 -0
- package/dist/runtime/query/repeat-call.d.ts.map +1 -0
- package/dist/runtime/query/repeat-call.js +107 -0
- package/dist/runtime/query/repeat-call.js.map +1 -0
- package/dist/runtime/query/replay/mutate.js +8 -1
- package/dist/runtime/query/replay/mutate.js.map +1 -1
- package/dist/runtime/query/result.d.ts +7 -0
- package/dist/runtime/query/result.d.ts.map +1 -1
- package/dist/runtime/query/result.js +38 -10
- package/dist/runtime/query/result.js.map +1 -1
- package/dist/runtime/query/resume-pending.d.ts.map +1 -1
- package/dist/runtime/query/resume-pending.js +19 -17
- package/dist/runtime/query/resume-pending.js.map +1 -1
- package/dist/runtime/query/resume-run.d.ts +2 -2
- package/dist/runtime/query/resume-run.d.ts.map +1 -1
- package/dist/runtime/query/run-state.d.ts +3 -3
- package/dist/runtime/query/run-state.d.ts.map +1 -1
- package/dist/runtime/query/run-state.js +2 -2
- package/dist/runtime/query/run-state.js.map +1 -1
- package/dist/runtime/query/tool-grants.d.ts +7 -0
- package/dist/runtime/query/tool-grants.d.ts.map +1 -1
- package/dist/runtime/query/tool-grants.js +1 -1
- package/dist/runtime/query/tool-grants.js.map +1 -1
- package/dist/runtime/query/tool-output-budget.js +34 -3
- package/dist/runtime/query/tool-output-budget.js.map +1 -1
- package/dist/runtime/query/tool-pause.d.ts.map +1 -1
- package/dist/runtime/query/tool-pause.js +2 -1
- package/dist/runtime/query/tool-pause.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +10 -2
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +3 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/sandbox/provider/local.d.ts +10 -0
- package/dist/sandbox/provider/local.d.ts.map +1 -1
- package/dist/sandbox/provider/local.js +77 -23
- package/dist/sandbox/provider/local.js.map +1 -1
- package/dist/sandbox/terminal.d.ts +130 -0
- package/dist/sandbox/terminal.d.ts.map +1 -0
- package/dist/sandbox/terminal.js +119 -0
- package/dist/sandbox/terminal.js.map +1 -0
- package/dist/{gateway → scheduler}/completion-inbox.d.ts +12 -5
- package/dist/scheduler/completion-inbox.d.ts.map +1 -0
- package/dist/{gateway → scheduler}/completion-inbox.js +19 -7
- package/dist/scheduler/completion-inbox.js.map +1 -0
- package/dist/scheduler/delegating.d.ts +90 -0
- package/dist/scheduler/delegating.d.ts.map +1 -0
- package/dist/scheduler/delegating.js +230 -0
- package/dist/scheduler/delegating.js.map +1 -0
- package/dist/{gateway → scheduler}/local.d.ts +10 -2
- package/dist/scheduler/local.d.ts.map +1 -0
- package/dist/{gateway → scheduler}/local.js +20 -11
- package/dist/scheduler/local.js.map +1 -0
- package/dist/session/actor-scope.d.ts +52 -0
- package/dist/session/actor-scope.d.ts.map +1 -0
- package/dist/session/actor-scope.js +112 -0
- package/dist/session/actor-scope.js.map +1 -0
- package/dist/session/errors.d.ts +31 -8
- package/dist/session/errors.d.ts.map +1 -1
- package/dist/session/errors.js +21 -1
- package/dist/session/errors.js.map +1 -1
- package/dist/session/handoff/assignment.d.ts +5 -5
- package/dist/session/handoff/assignment.d.ts.map +1 -1
- package/dist/session/handoff/broadcast.d.ts +8 -4
- package/dist/session/handoff/broadcast.d.ts.map +1 -1
- package/dist/session/handoff/broadcast.js +8 -9
- package/dist/session/handoff/broadcast.js.map +1 -1
- package/dist/session/handoff/index.d.ts +1 -1
- package/dist/session/handoff/index.d.ts.map +1 -1
- package/dist/session/handoff/index.js +1 -1
- package/dist/session/handoff/index.js.map +1 -1
- package/dist/session/handoff/single.d.ts +11 -7
- package/dist/session/handoff/single.d.ts.map +1 -1
- package/dist/session/handoff/single.js +5 -11
- package/dist/session/handoff/single.js.map +1 -1
- package/dist/session/migration/filesystem.d.ts +28 -0
- package/dist/session/migration/filesystem.d.ts.map +1 -1
- package/dist/session/migration/filesystem.js +44 -2
- package/dist/session/migration/filesystem.js.map +1 -1
- package/dist/session/migration/id-prefix.d.ts +39 -19
- package/dist/session/migration/id-prefix.d.ts.map +1 -1
- package/dist/session/migration/id-prefix.js +43 -22
- package/dist/session/migration/id-prefix.js.map +1 -1
- package/dist/session/migration/index.d.ts +6 -2
- package/dist/session/migration/index.d.ts.map +1 -1
- package/dist/session/migration/index.js +6 -2
- package/dist/session/migration/index.js.map +1 -1
- package/dist/session/migration/marker.d.ts.map +1 -1
- package/dist/session/migration/marker.js +21 -4
- package/dist/session/migration/marker.js.map +1 -1
- package/dist/session/retention/archive.d.ts.map +1 -1
- package/dist/session/retention/archive.js +13 -11
- package/dist/session/retention/archive.js.map +1 -1
- package/dist/session/workspace/git-worktree.d.ts.map +1 -1
- package/dist/session/workspace/git-worktree.js +17 -8
- package/dist/session/workspace/git-worktree.js.map +1 -1
- package/dist/skills/loader.d.ts +4 -2
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +36 -9
- package/dist/skills/loader.js.map +1 -1
- package/dist/skills/registry.d.ts +59 -1
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +154 -20
- package/dist/skills/registry.js.map +1 -1
- package/dist/store/attachment/index.d.ts +111 -0
- package/dist/store/attachment/index.d.ts.map +1 -0
- package/dist/store/attachment/index.js +94 -0
- package/dist/store/attachment/index.js.map +1 -0
- package/dist/store/config/index.d.ts +43 -0
- package/dist/store/config/index.d.ts.map +1 -0
- package/dist/store/config/index.js +51 -0
- package/dist/store/config/index.js.map +1 -0
- package/dist/store/feedback/conformance.d.ts +44 -0
- package/dist/store/feedback/conformance.d.ts.map +1 -0
- package/dist/store/feedback/conformance.js +127 -0
- package/dist/store/feedback/conformance.js.map +1 -0
- package/dist/store/feedback/disk.d.ts +46 -0
- package/dist/store/feedback/disk.d.ts.map +1 -0
- package/dist/store/feedback/disk.js +141 -0
- package/dist/store/feedback/disk.js.map +1 -0
- package/dist/store/feedback/index.d.ts +9 -0
- package/dist/store/feedback/index.d.ts.map +1 -0
- package/dist/store/feedback/index.js +5 -0
- package/dist/store/feedback/index.js.map +1 -0
- package/dist/store/feedback/memory.d.ts +33 -0
- package/dist/store/feedback/memory.d.ts.map +1 -0
- package/dist/store/feedback/memory.js +0 -0
- package/dist/store/feedback/memory.js.map +1 -0
- package/dist/store/feedback/types.d.ts +95 -0
- package/dist/store/feedback/types.d.ts.map +1 -0
- package/dist/store/feedback/types.js +27 -0
- package/dist/store/feedback/types.js.map +1 -0
- package/dist/store/index.d.ts +1 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +4 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store/kv/record-store.d.ts +54 -0
- package/dist/store/kv/record-store.d.ts.map +1 -0
- package/dist/store/kv/record-store.js +94 -0
- package/dist/store/kv/record-store.js.map +1 -0
- package/dist/store/memory/disk.d.ts +2 -0
- package/dist/store/memory/disk.d.ts.map +1 -1
- package/dist/store/memory/disk.js +36 -30
- package/dist/store/memory/disk.js.map +1 -1
- package/dist/store/run/checkpoint-disk.d.ts +4 -4
- package/dist/store/run/checkpoint-disk.d.ts.map +1 -1
- package/dist/store/run/checkpoint-disk.js +22 -1
- package/dist/store/run/checkpoint-disk.js.map +1 -1
- package/dist/store/run/checkpoint-memory.d.ts +4 -4
- package/dist/store/run/checkpoint-memory.d.ts.map +1 -1
- package/dist/store/run/checkpoint-memory.js.map +1 -1
- package/dist/store/run/claim-disk.d.ts +5 -5
- package/dist/store/run/claim-disk.d.ts.map +1 -1
- package/dist/store/run/claim-disk.js +20 -0
- package/dist/store/run/claim-disk.js.map +1 -1
- package/dist/store/run/conformance.d.ts.map +1 -1
- package/dist/store/run/conformance.js +10 -9
- package/dist/store/run/conformance.js.map +1 -1
- package/dist/store/run/disk.d.ts +3 -1
- package/dist/store/run/disk.d.ts.map +1 -1
- package/dist/store/run/disk.js +73 -4
- package/dist/store/run/disk.js.map +1 -1
- package/dist/store/run/listing.d.ts +4 -4
- package/dist/store/run/listing.d.ts.map +1 -1
- package/dist/store/run/listing.js.map +1 -1
- package/dist/store/run/memory.d.ts +5 -0
- package/dist/store/run/memory.d.ts.map +1 -1
- package/dist/store/run/memory.js +20 -1
- package/dist/store/run/memory.js.map +1 -1
- package/dist/store/session/canonical-path.d.ts +32 -0
- package/dist/store/session/canonical-path.d.ts.map +1 -0
- package/dist/store/session/canonical-path.js +46 -0
- package/dist/store/session/canonical-path.js.map +1 -0
- package/dist/store/session/disk.d.ts +46 -2
- package/dist/store/session/disk.d.ts.map +1 -1
- package/dist/store/session/disk.js +191 -205
- package/dist/store/session/disk.js.map +1 -1
- package/dist/store/session/memory.d.ts +10 -2
- package/dist/store/session/memory.d.ts.map +1 -1
- package/dist/store/session/memory.js +36 -4
- package/dist/store/session/memory.js.map +1 -1
- package/dist/store/task/disk.d.ts.map +1 -1
- package/dist/store/task/disk.js +76 -68
- package/dist/store/task/disk.js.map +1 -1
- package/dist/store/topic/index.d.ts +6 -0
- package/dist/store/topic/index.d.ts.map +1 -0
- package/dist/store/topic/index.js +20 -0
- package/dist/store/topic/index.js.map +1 -0
- package/dist/store/topic/memory.d.ts +30 -0
- package/dist/store/topic/memory.d.ts.map +1 -0
- package/dist/store/topic/memory.js +97 -0
- package/dist/store/topic/memory.js.map +1 -0
- package/dist/store/topic/objective.d.ts +104 -0
- package/dist/store/topic/objective.d.ts.map +1 -0
- package/dist/store/topic/objective.js +195 -0
- package/dist/store/topic/objective.js.map +1 -0
- package/dist/store/topic/state.d.ts +60 -0
- package/dist/store/topic/state.d.ts.map +1 -0
- package/dist/store/topic/state.js +128 -0
- package/dist/store/topic/state.js.map +1 -0
- package/dist/streaming/coalesce.d.ts +19 -6
- package/dist/streaming/coalesce.d.ts.map +1 -1
- package/dist/streaming/coalesce.js +13 -4
- package/dist/streaming/coalesce.js.map +1 -1
- package/dist/telemetry/runtime-accessors.d.ts +27 -1
- package/dist/telemetry/runtime-accessors.d.ts.map +1 -1
- package/dist/telemetry/runtime-accessors.js +45 -1
- package/dist/telemetry/runtime-accessors.js.map +1 -1
- package/dist/test-support/ids.d.ts +68 -0
- package/dist/test-support/ids.d.ts.map +1 -0
- package/dist/test-support/ids.js +70 -0
- package/dist/test-support/ids.js.map +1 -0
- package/dist/testing.d.ts +24 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +22 -0
- package/dist/testing.js.map +1 -0
- package/dist/tools/builtins/bash.d.ts +1 -0
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +77 -3
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts +1 -1
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +34 -0
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/index.d.ts +6 -0
- package/dist/tools/builtins/index.d.ts.map +1 -1
- package/dist/tools/builtins/index.js +24 -1
- package/dist/tools/builtins/index.js.map +1 -1
- package/dist/tools/builtins/job.d.ts +6 -0
- package/dist/tools/builtins/job.d.ts.map +1 -0
- package/dist/tools/builtins/job.js +114 -0
- package/dist/tools/builtins/job.js.map +1 -0
- package/dist/tools/builtins/lsp.d.ts +21 -0
- package/dist/tools/builtins/lsp.d.ts.map +1 -0
- package/dist/tools/builtins/lsp.js +186 -0
- package/dist/tools/builtins/lsp.js.map +1 -0
- package/dist/tools/builtins/run-code.d.ts +13 -0
- package/dist/tools/builtins/run-code.d.ts.map +1 -0
- package/dist/tools/builtins/run-code.js +126 -0
- package/dist/tools/builtins/run-code.js.map +1 -0
- package/dist/tools/builtins/skill.d.ts +14 -0
- package/dist/tools/builtins/skill.d.ts.map +1 -0
- package/dist/tools/builtins/skill.js +120 -0
- package/dist/tools/builtins/skill.js.map +1 -0
- package/dist/tools/builtins/web-guidance.d.ts +31 -0
- package/dist/tools/builtins/web-guidance.d.ts.map +1 -0
- package/dist/tools/builtins/web-guidance.js +42 -0
- package/dist/tools/builtins/web-guidance.js.map +1 -0
- package/dist/tools/builtins/web.d.ts +10 -0
- package/dist/tools/builtins/web.d.ts.map +1 -0
- package/dist/tools/builtins/web.js +137 -0
- package/dist/tools/builtins/web.js.map +1 -0
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +35 -0
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/coordinator/agent.d.ts +2 -2
- package/dist/tools/coordinator/agent.d.ts.map +1 -1
- package/dist/tools/coordinator/index.d.ts +13 -4
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +125 -38
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/coordinator/outcome.d.ts +2 -2
- package/dist/tools/coordinator/outcome.d.ts.map +1 -1
- package/dist/tools/coordinator/outcome.js +1 -1
- package/dist/tools/coordinator/wait-with-idle-bound.d.ts +3 -3
- package/dist/tools/coordinator/wait-with-idle-bound.d.ts.map +1 -1
- package/dist/tools/coordinator/wait-with-idle-bound.js.map +1 -1
- package/dist/tools/defineTool.d.ts +12 -0
- package/dist/tools/defineTool.d.ts.map +1 -1
- package/dist/tools/defineTool.js +2 -0
- package/dist/tools/defineTool.js.map +1 -1
- package/dist/tools/env-scrub.d.ts +66 -0
- package/dist/tools/env-scrub.d.ts.map +1 -0
- package/dist/tools/env-scrub.js +68 -0
- package/dist/tools/env-scrub.js.map +1 -0
- package/dist/tools/memory/read.d.ts.map +1 -1
- package/dist/tools/memory/read.js +5 -1
- package/dist/tools/memory/read.js.map +1 -1
- package/dist/tools/task/create.d.ts.map +1 -1
- package/dist/tools/task/create.js +2 -1
- package/dist/tools/task/create.js.map +1 -1
- package/dist/tools/task/update.d.ts.map +1 -1
- package/dist/tools/task/update.js +7 -3
- package/dist/tools/task/update.js.map +1 -1
- package/dist/types/acp/index.d.ts +161 -0
- package/dist/types/acp/index.d.ts.map +1 -0
- package/dist/types/acp/index.js +2 -0
- package/dist/types/acp/index.js.map +1 -0
- package/dist/types/agent/base.d.ts +62 -5
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/agent/delegate.d.ts +102 -0
- package/dist/types/agent/delegate.d.ts.map +1 -0
- package/dist/types/agent/delegate.js +2 -0
- package/dist/types/agent/delegate.js.map +1 -0
- package/dist/types/agent/index.d.ts +1 -1
- package/dist/types/agent/index.d.ts.map +1 -1
- package/dist/types/agent/index.js +1 -1
- package/dist/types/agent/index.js.map +1 -1
- package/dist/types/agent/manager.d.ts +7 -1
- package/dist/types/agent/manager.d.ts.map +1 -1
- package/dist/types/agent/reactive.d.ts +19 -3
- package/dist/types/agent/reactive.d.ts.map +1 -1
- package/dist/types/agent/{gateway.d.ts → scheduler.d.ts} +31 -5
- package/dist/types/agent/scheduler.d.ts.map +1 -0
- package/dist/types/agent/scheduler.js +2 -0
- package/dist/types/agent/scheduler.js.map +1 -0
- package/dist/types/agent/supervisor.d.ts +13 -5
- package/dist/types/agent/supervisor.d.ts.map +1 -1
- package/dist/types/agent/task.d.ts +31 -9
- package/dist/types/agent/task.d.ts.map +1 -1
- package/dist/types/agent/working-memory.d.ts +1 -1
- package/dist/types/{verification → authorization}/index.d.ts +68 -12
- package/dist/types/authorization/index.d.ts.map +1 -0
- package/dist/types/authorization/index.js +99 -0
- package/dist/types/authorization/index.js.map +1 -0
- package/dist/types/bus/index.d.ts +24 -1
- package/dist/types/bus/index.d.ts.map +1 -1
- package/dist/types/code-navigation/index.d.ts +112 -0
- package/dist/types/code-navigation/index.d.ts.map +1 -0
- package/dist/types/code-navigation/index.js +17 -0
- package/dist/types/code-navigation/index.js.map +1 -0
- package/dist/types/command/index.d.ts +74 -0
- package/dist/types/command/index.d.ts.map +1 -0
- package/dist/types/command/index.js +18 -0
- package/dist/types/command/index.js.map +1 -0
- package/dist/types/common/index.d.ts +11 -2
- package/dist/types/common/index.d.ts.map +1 -1
- package/dist/types/common/index.js.map +1 -1
- package/dist/types/connector/mcp.d.ts +8 -0
- package/dist/types/connector/mcp.d.ts.map +1 -1
- package/dist/types/guardrail/index.d.ts +1 -1
- package/dist/types/hitl/policy.d.ts +79 -0
- package/dist/types/hitl/policy.d.ts.map +1 -0
- package/dist/types/hitl/policy.js +2 -0
- package/dist/types/hitl/policy.js.map +1 -0
- package/dist/types/ids/brand.d.ts +55 -0
- package/dist/types/ids/brand.d.ts.map +1 -0
- package/dist/types/ids/brand.js +45 -0
- package/dist/types/ids/brand.js.map +1 -0
- package/dist/types/ids/index.d.ts +83 -39
- package/dist/types/ids/index.d.ts.map +1 -1
- package/dist/types/ids/index.js +5 -1
- package/dist/types/ids/index.js.map +1 -1
- package/dist/types/message/index.d.ts +24 -1
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/plugin/index.d.ts +8 -8
- package/dist/types/project/entity.d.ts +22 -2
- package/dist/types/project/entity.d.ts.map +1 -1
- package/dist/types/provider/interface.d.ts +43 -2
- package/dist/types/provider/interface.d.ts.map +1 -1
- package/dist/types/provider/model.d.ts +16 -2
- package/dist/types/provider/model.d.ts.map +1 -1
- package/dist/types/run/audit.d.ts +150 -0
- package/dist/types/run/audit.d.ts.map +1 -0
- package/dist/types/run/audit.js +39 -0
- package/dist/types/run/audit.js.map +1 -0
- package/dist/types/run/cancel-cause.d.ts +49 -0
- package/dist/types/run/cancel-cause.d.ts.map +1 -0
- package/dist/types/run/cancel-cause.js +39 -0
- package/dist/types/run/cancel-cause.js.map +1 -0
- package/dist/types/run/checkpoint-store.d.ts +23 -11
- package/dist/types/run/checkpoint-store.d.ts.map +1 -1
- package/dist/types/run/config.d.ts +24 -4
- package/dist/types/run/config.d.ts.map +1 -1
- package/dist/types/run/derive-status.d.ts +3 -3
- package/dist/types/run/derive-status.d.ts.map +1 -1
- package/dist/types/run/derive-status.js +1 -1
- package/dist/types/run/entity.d.ts +2 -3
- package/dist/types/run/entity.d.ts.map +1 -1
- package/dist/types/run/event-cursor.d.ts +3 -3
- package/dist/types/run/event-cursor.d.ts.map +1 -1
- package/dist/types/run/events.d.ts +159 -4
- package/dist/types/run/events.d.ts.map +1 -1
- package/dist/types/run/events.js.map +1 -1
- package/dist/types/run/index.d.ts +2 -0
- package/dist/types/run/index.d.ts.map +1 -1
- package/dist/types/run/index.js +2 -0
- package/dist/types/run/index.js.map +1 -1
- package/dist/types/run/metadata.d.ts +2 -2
- package/dist/types/run/metadata.d.ts.map +1 -1
- package/dist/types/run/prepare-step.d.ts +29 -0
- package/dist/types/run/prepare-step.d.ts.map +1 -1
- package/dist/types/run/state.d.ts +33 -10
- package/dist/types/run/state.d.ts.map +1 -1
- package/dist/types/run/state.js +60 -3
- package/dist/types/run/state.js.map +1 -1
- package/dist/types/run/stop-reason.d.ts +9 -0
- package/dist/types/run/stop-reason.d.ts.map +1 -1
- package/dist/types/run/store.d.ts +38 -0
- package/dist/types/run/store.d.ts.map +1 -1
- package/dist/types/sandbox/index.d.ts +38 -0
- package/dist/types/sandbox/index.d.ts.map +1 -1
- package/dist/types/sandbox/index.js +21 -0
- package/dist/types/sandbox/index.js.map +1 -1
- package/dist/types/session/actor.d.ts +2 -2
- package/dist/types/session/actor.d.ts.map +1 -1
- package/dist/types/session/entity.d.ts +9 -7
- package/dist/types/session/entity.d.ts.map +1 -1
- package/dist/types/session/ids.d.ts +1 -1
- package/dist/types/session/ids.d.ts.map +1 -1
- package/dist/types/session/index.d.ts +2 -2
- package/dist/types/session/index.d.ts.map +1 -1
- package/dist/types/session/store.d.ts +51 -22
- package/dist/types/session/store.d.ts.map +1 -1
- package/dist/types/session/sub-session.d.ts +44 -5
- package/dist/types/session/sub-session.d.ts.map +1 -1
- package/dist/types/skills/index.d.ts +41 -0
- package/dist/types/skills/index.d.ts.map +1 -1
- package/dist/types/skills/index.js +17 -1
- package/dist/types/skills/index.js.map +1 -1
- package/dist/types/tool/index.d.ts +175 -1
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/types/tool/presentation.d.ts +53 -0
- package/dist/types/tool/presentation.d.ts.map +1 -0
- package/dist/types/tool/presentation.js +2 -0
- package/dist/types/tool/presentation.js.map +1 -0
- package/dist/types/{thread → topic}/entity.d.ts +34 -26
- package/dist/types/topic/entity.d.ts.map +1 -0
- package/dist/types/{thread → topic}/entity.js.map +1 -1
- package/dist/types/topic/index.d.ts +5 -0
- package/dist/types/topic/index.d.ts.map +1 -0
- package/dist/types/topic/index.js +11 -0
- package/dist/types/topic/index.js.map +1 -0
- package/dist/types/topic/objective.d.ts +86 -0
- package/dist/types/topic/objective.d.ts.map +1 -0
- package/dist/types/topic/objective.js +10 -0
- package/dist/types/topic/objective.js.map +1 -0
- package/dist/types/topic/state.d.ts +56 -0
- package/dist/types/topic/state.d.ts.map +1 -0
- package/dist/types/topic/state.js +10 -0
- package/dist/types/topic/state.js.map +1 -0
- package/dist/types/topic/store.d.ts +95 -0
- package/dist/types/topic/store.d.ts.map +1 -0
- package/dist/types/topic/store.js +29 -0
- package/dist/types/topic/store.js.map +1 -0
- package/dist/types/workspace/ref.d.ts +7 -0
- package/dist/types/workspace/ref.d.ts.map +1 -1
- package/dist/utils/abort.d.ts.map +1 -1
- package/dist/utils/abort.js +13 -1
- package/dist/utils/abort.js.map +1 -1
- package/dist/utils/hash.d.ts +10 -0
- package/dist/utils/hash.d.ts.map +1 -1
- package/dist/utils/hash.js +15 -0
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/id.d.ts +82 -2
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +104 -4
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/log/attributes.d.ts +17 -0
- package/dist/utils/log/attributes.d.ts.map +1 -0
- package/dist/utils/log/attributes.js +2 -0
- package/dist/utils/log/attributes.js.map +1 -0
- package/dist/utils/log/caps.d.ts +27 -0
- package/dist/utils/log/caps.d.ts.map +1 -0
- package/dist/utils/log/caps.js +107 -0
- package/dist/utils/log/caps.js.map +1 -0
- package/dist/utils/log/create-logger.d.ts +28 -0
- package/dist/utils/log/create-logger.d.ts.map +1 -0
- package/dist/utils/log/create-logger.js +168 -0
- package/dist/utils/log/create-logger.js.map +1 -0
- package/dist/utils/log/exception.d.ts +11 -0
- package/dist/utils/log/exception.d.ts.map +1 -0
- package/dist/utils/log/exception.js +108 -0
- package/dist/utils/log/exception.js.map +1 -0
- package/dist/utils/log/index.d.ts +7 -0
- package/dist/utils/log/index.d.ts.map +1 -0
- package/dist/utils/log/index.js +15 -0
- package/dist/utils/log/index.js.map +1 -0
- package/dist/utils/log/process-sink.d.ts +28 -0
- package/dist/utils/log/process-sink.d.ts.map +1 -0
- package/dist/utils/log/process-sink.js +56 -0
- package/dist/utils/log/process-sink.js.map +1 -0
- package/dist/utils/log/redact.d.ts +3 -0
- package/dist/utils/log/redact.d.ts.map +1 -0
- package/dist/utils/log/redact.js +71 -0
- package/dist/utils/log/redact.js.map +1 -0
- package/dist/utils/log/sinks.d.ts +43 -0
- package/dist/utils/log/sinks.d.ts.map +1 -0
- package/dist/utils/log/sinks.js +184 -0
- package/dist/utils/log/sinks.js.map +1 -0
- package/dist/utils/log/templates.d.ts +63 -0
- package/dist/utils/log/templates.d.ts.map +1 -0
- package/dist/utils/log/templates.js +119 -0
- package/dist/utils/log/templates.js.map +1 -0
- package/dist/utils/log/types.d.ts +183 -0
- package/dist/utils/log/types.d.ts.map +1 -0
- package/dist/utils/log/types.js +55 -0
- package/dist/utils/log/types.js.map +1 -0
- package/dist/utils/logger.d.ts +44 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +102 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/renamed-field.d.ts +19 -0
- package/dist/utils/renamed-field.d.ts.map +1 -0
- package/dist/utils/renamed-field.js +29 -0
- package/dist/utils/renamed-field.js.map +1 -0
- package/dist/vault/CredentialProvider.d.ts +89 -0
- package/dist/vault/CredentialProvider.d.ts.map +1 -0
- package/dist/vault/CredentialProvider.js +64 -0
- package/dist/vault/CredentialProvider.js.map +1 -0
- package/dist/vault/InMemoryCredentialVault.d.ts +2 -1
- package/dist/vault/InMemoryCredentialVault.d.ts.map +1 -1
- package/dist/vault/InMemoryCredentialVault.js +15 -5
- package/dist/vault/InMemoryCredentialVault.js.map +1 -1
- package/dist/vault/index.d.ts +3 -0
- package/dist/vault/index.d.ts.map +1 -1
- package/dist/vault/index.js +5 -0
- package/dist/vault/index.js.map +1 -1
- package/dist/vault/instrumentation.d.ts +18 -2
- package/dist/vault/instrumentation.d.ts.map +1 -1
- package/dist/vault/instrumentation.js +47 -0
- package/dist/vault/instrumentation.js.map +1 -1
- package/package.json +4 -4
- package/src/advisory/executor.ts +14 -12
- package/src/advisory/registry.ts +2 -2
- package/src/agents/AGENTS.md +91 -0
- package/src/agents/AbstractAgent.ts +67 -14
- package/src/agents/PipelineAgent.ts +46 -12
- package/src/agents/ReactiveAgent.ts +27 -14
- package/src/agents/RouterAgent.ts +33 -21
- package/src/agents/SupervisorAgent.ts +46 -28
- package/src/agents/handle.ts +149 -0
- package/src/agents/runAgent.ts +14 -7
- package/src/{verification → authorization}/gate.ts +39 -32
- package/src/authorization/index.ts +26 -0
- package/src/authorization/permission-presets.ts +215 -0
- package/src/{verification → authorization}/presets.ts +15 -3
- package/src/{verification → authorization}/rules.ts +16 -3
- package/src/bridge/a2a/client.ts +369 -0
- package/src/bridge/a2a/mapper.ts +17 -0
- package/src/bridge/acp/filesystem.ts +63 -0
- package/src/bridge/acp/index.ts +11 -0
- package/src/bridge/acp/permission.ts +71 -0
- package/src/bridge/acp/server.ts +500 -0
- package/src/bridge/acp/update.ts +109 -0
- package/src/bridge/mcp/connector/adapter.ts +8 -4
- package/src/bridge/sse/mapper.ts +30 -0
- package/src/bus/breaker.ts +15 -10
- package/src/bus/index.ts +10 -8
- package/src/bus/lock.ts +36 -19
- package/src/bus/ownership.ts +17 -9
- package/src/compaction/context-window.ts +23 -1
- package/src/compaction/index.ts +6 -0
- package/src/compaction/manual.ts +177 -0
- package/src/compaction/plan.ts +226 -0
- package/src/compaction/summary.ts +31 -0
- package/src/compaction/verifier.ts +2 -2
- package/src/config/registry.ts +208 -0
- package/src/config/runtime.ts +27 -0
- package/src/connector/BaseConnector.ts +8 -3
- package/src/connector/builtins/http.ts +12 -2
- package/src/connector/builtins/webhook.ts +6 -2
- package/src/connector/index.ts +45 -29
- package/src/connector/mcp/client.ts +32 -20
- package/src/connector/mcp/discovery.ts +31 -20
- package/src/connector/mcp/http-sse.ts +12 -6
- package/src/connector/mcp/index.ts +8 -7
- package/src/connector/mcp/reconnect.ts +194 -0
- package/src/connector/mcp/server/index.ts +32 -0
- package/src/connector/mcp/{server-stdio.ts → server/server-stdio.ts} +5 -4
- package/src/connector/mcp/{server.ts → server/server.ts} +17 -11
- package/src/connector/mcp/stdio.ts +18 -9
- package/src/connector/mcp/streamable-http.ts +8 -4
- package/src/{bridge/tools/connector → connector/tools}/adapter.ts +5 -5
- package/src/{bridge/tools/connector → connector/tools}/definitions.ts +4 -4
- package/src/{bridge/tools/connector → connector/tools}/router.ts +17 -9
- package/src/connector/web/guarded-fetch.ts +288 -0
- package/src/connector/web/index.ts +17 -0
- package/src/connector/web/types.ts +99 -0
- package/src/constants/acp/index.ts +104 -0
- package/src/constants/credential-env-keys.ts +63 -0
- package/src/constants/index.ts +3 -1
- package/src/constants/secret-patterns.ts +102 -0
- package/src/constants/telemetry/index.ts +98 -0
- package/src/contracts/api.ts +11 -0
- package/src/eval/judge.ts +2 -2
- package/src/execution/base.ts +18 -7
- package/src/execution/code-runtime/types.ts +116 -0
- package/src/execution/code-runtime/worker.ts +266 -0
- package/src/{connector/execution → execution}/factory.ts +3 -3
- package/src/{connector/execution → execution}/hybrid.ts +13 -7
- package/src/execution/index.ts +24 -0
- package/src/execution/local.ts +4 -2
- package/src/{connector/execution → execution}/remote.ts +15 -8
- package/src/index.ts +17 -0
- package/src/invariants/index.ts +201 -0
- package/src/manager/agent/lifecycle.ts +172 -58
- package/src/manager/connector/environment.ts +22 -11
- package/src/manager/connector/lifecycle.ts +30 -11
- package/src/manager/connector/tenant.ts +33 -14
- package/src/manager/index.ts +15 -2
- package/src/manager/project/lifecycle.ts +1 -1
- package/src/manager/run/emergency.ts +9 -7
- package/src/manager/run/persistence.ts +110 -8
- package/src/manager/topic/lifecycle.ts +235 -0
- package/src/manager/topic/objective.ts +203 -0
- package/src/persona/assembler.ts +14 -3
- package/src/plugin/lifecycle.ts +156 -20
- package/src/plugin/loader.ts +67 -16
- package/src/probe/index.ts +1 -0
- package/src/probe/registry.ts +41 -5
- package/src/process/kill-tree.ts +52 -0
- package/src/prompt/contributions.ts +173 -0
- package/src/prompt/index.ts +15 -0
- package/src/provider/attribution.ts +57 -0
- package/src/provider/{collect.ts → collect-chat-completion.ts} +4 -2
- package/src/provider/conformance.ts +189 -0
- package/src/provider/errors.ts +27 -12
- package/src/provider/fallback.ts +32 -10
- package/src/provider/idle-timeout.ts +112 -0
- package/src/provider/instrumentation.ts +4 -2
- package/src/provider/retry.ts +63 -21
- package/src/public-runtime.ts +371 -18
- package/src/public-tools.ts +41 -1
- package/src/public-types.ts +101 -4
- package/src/rag/rag-tool.ts +4 -2
- package/src/read-model/index.ts +14 -0
- package/src/read-model/registry.ts +152 -0
- package/src/read-model/run-status.ts +127 -0
- package/src/registry/{Registry.ts → BaseRegistry.ts} +1 -1
- package/src/registry/ManagedRegistry.ts +26 -9
- package/src/registry/command/index-exports.ts +4 -0
- package/src/registry/command/index.ts +105 -0
- package/src/registry/command/kernel-commands.ts +110 -0
- package/src/registry/connector/scoped.ts +6 -5
- package/src/registry/index.ts +7 -1
- package/src/registry/tool/execute.ts +15 -12
- package/src/registry/tool/presentation.ts +116 -0
- package/src/registry/tool/screen.ts +12 -11
- package/src/run/drain.ts +13 -3
- package/src/run/reporter.ts +208 -153
- package/src/run-query/index.ts +108 -0
- package/src/runtime/bidi/session.ts +7 -2
- package/src/runtime/decision/fallback.ts +6 -3
- package/src/runtime/decision/parser.ts +10 -9
- package/src/runtime/jobs/registry.ts +346 -0
- package/src/runtime/query/approval-policy.ts +78 -0
- package/src/runtime/query/checkpoint.ts +6 -6
- package/src/runtime/query/context.ts +120 -30
- package/src/runtime/query/events.ts +19 -11
- package/src/runtime/query/executor.ts +287 -66
- package/src/runtime/query/guardrail-presets.ts +11 -14
- package/src/runtime/query/guardrails.ts +16 -12
- package/src/runtime/query/index.ts +539 -96
- package/src/runtime/query/iteration/index.ts +269 -87
- package/src/runtime/query/iteration/phases/advisory.ts +17 -16
- package/src/runtime/query/iteration/phases/compaction.ts +235 -187
- package/src/runtime/query/iteration/phases/context.ts +82 -21
- package/src/runtime/query/iteration/phases/tool-review.ts +28 -9
- package/src/runtime/query/iteration/phases/working-memory.ts +3 -2
- package/src/runtime/query/iteration/stream-turn.ts +14 -14
- package/src/runtime/query/{context-cache.ts → prompt-cache.ts} +23 -3
- package/src/runtime/query/prompt.ts +104 -4
- package/src/runtime/query/repeat-call.ts +130 -0
- package/src/runtime/query/replay/mutate.ts +6 -0
- package/src/runtime/query/result.ts +47 -10
- package/src/runtime/query/resume-pending.ts +19 -17
- package/src/runtime/query/resume-run.ts +2 -2
- package/src/runtime/query/run-state.ts +5 -5
- package/src/runtime/query/tool-grants.ts +1 -1
- package/src/runtime/query/tool-output-budget.ts +36 -3
- package/src/runtime/query/tool-pause.ts +2 -1
- package/src/runtime/query/tooling.ts +17 -2
- package/src/sandbox/provider/local.ts +94 -21
- package/src/sandbox/terminal.ts +197 -0
- package/src/{gateway → scheduler}/completion-inbox.ts +20 -10
- package/src/scheduler/delegating.ts +297 -0
- package/src/{gateway → scheduler}/local.ts +24 -15
- package/src/session/actor-scope.ts +121 -0
- package/src/session/errors.ts +30 -8
- package/src/session/handoff/assignment.ts +5 -5
- package/src/session/handoff/broadcast.ts +16 -12
- package/src/session/handoff/index.ts +1 -1
- package/src/session/handoff/single.ts +16 -17
- package/src/session/migration/filesystem.ts +46 -2
- package/src/session/migration/id-prefix.ts +47 -22
- package/src/session/migration/index.ts +5 -2
- package/src/session/migration/marker.ts +19 -4
- package/src/session/retention/archive.ts +19 -12
- package/src/session/workspace/git-worktree.ts +17 -8
- package/src/skills/loader.ts +39 -9
- package/src/skills/registry.ts +177 -20
- package/src/store/attachment/index.ts +182 -0
- package/src/store/config/index.ts +74 -0
- package/src/store/feedback/conformance.ts +193 -0
- package/src/store/feedback/disk.ts +184 -0
- package/src/store/feedback/index.ts +13 -0
- package/src/store/feedback/memory.ts +0 -0
- package/src/store/feedback/types.ts +107 -0
- package/src/store/index.ts +5 -0
- package/src/store/kv/record-store.ts +91 -0
- package/src/store/memory/disk.ts +35 -32
- package/src/store/run/checkpoint-disk.ts +27 -6
- package/src/store/run/checkpoint-memory.ts +8 -8
- package/src/store/run/claim-disk.ts +58 -13
- package/src/store/run/conformance.ts +11 -10
- package/src/store/run/disk.ts +77 -5
- package/src/store/run/listing.ts +6 -6
- package/src/store/run/memory.ts +24 -1
- package/src/store/session/canonical-path.ts +45 -0
- package/src/store/session/disk.ts +216 -191
- package/src/store/session/memory.ts +43 -5
- package/src/store/task/disk.ts +77 -67
- package/src/store/topic/index.ts +33 -0
- package/src/store/topic/memory.ts +111 -0
- package/src/store/topic/objective.ts +290 -0
- package/src/store/topic/state.ts +204 -0
- package/src/streaming/coalesce.ts +19 -5
- package/src/telemetry/runtime-accessors.ts +45 -1
- package/src/test-support/ids.ts +117 -0
- package/src/testing.ts +40 -0
- package/src/tools/builtins/bash.ts +82 -3
- package/src/tools/builtins/edit.ts +36 -0
- package/src/tools/builtins/index.ts +29 -1
- package/src/tools/builtins/job.ts +133 -0
- package/src/tools/builtins/lsp.ts +214 -0
- package/src/tools/builtins/run-code.ts +154 -0
- package/src/tools/builtins/skill.ts +134 -0
- package/src/tools/builtins/web-guidance.ts +46 -0
- package/src/tools/builtins/web.ts +156 -0
- package/src/tools/builtins/write-file.ts +37 -1
- package/src/tools/coordinator/agent.ts +2 -2
- package/src/tools/coordinator/index.ts +144 -40
- package/src/tools/coordinator/outcome.ts +2 -2
- package/src/tools/coordinator/wait-with-idle-bound.ts +3 -3
- package/src/tools/defineTool.ts +14 -0
- package/src/tools/env-scrub.ts +91 -0
- package/src/tools/memory/read.ts +5 -2
- package/src/tools/task/create.ts +2 -1
- package/src/tools/task/update.ts +7 -4
- package/src/types/acp/index.ts +163 -0
- package/src/types/agent/base.ts +67 -5
- package/src/types/agent/delegate.ts +110 -0
- package/src/types/agent/index.ts +1 -1
- package/src/types/agent/manager.ts +7 -1
- package/src/types/agent/reactive.ts +22 -3
- package/src/types/agent/{gateway.ts → scheduler.ts} +30 -4
- package/src/types/agent/supervisor.ts +15 -5
- package/src/types/agent/task.ts +31 -9
- package/src/types/agent/working-memory.ts +1 -1
- package/src/types/{verification → authorization}/index.ts +69 -10
- package/src/types/bus/index.ts +30 -1
- package/src/types/code-navigation/index.ts +99 -0
- package/src/types/command/index.ts +68 -0
- package/src/types/common/index.ts +17 -2
- package/src/types/connector/mcp.ts +8 -0
- package/src/types/guardrail/index.ts +1 -1
- package/src/types/hitl/policy.ts +83 -0
- package/src/types/ids/brand.ts +58 -0
- package/src/types/ids/index.ts +94 -42
- package/src/types/message/index.ts +25 -1
- package/src/types/project/entity.ts +22 -2
- package/src/types/provider/interface.ts +45 -2
- package/src/types/provider/model.ts +16 -2
- package/src/types/run/audit.ts +164 -0
- package/src/types/run/cancel-cause.ts +60 -0
- package/src/types/run/checkpoint-store.ts +24 -11
- package/src/types/run/config.ts +25 -4
- package/src/types/run/derive-status.ts +3 -3
- package/src/types/run/entity.ts +2 -4
- package/src/types/run/event-cursor.ts +3 -3
- package/src/types/run/events.ts +165 -6
- package/src/types/run/index.ts +2 -0
- package/src/types/run/metadata.ts +2 -2
- package/src/types/run/prepare-step.ts +33 -0
- package/src/types/run/state.ts +78 -11
- package/src/types/run/stop-reason.ts +9 -0
- package/src/types/run/store.ts +40 -0
- package/src/types/sandbox/index.ts +37 -0
- package/src/types/session/actor.ts +10 -2
- package/src/types/session/entity.ts +9 -7
- package/src/types/session/ids.ts +1 -1
- package/src/types/session/index.ts +1 -1
- package/src/types/session/store.ts +53 -22
- package/src/types/session/sub-session.ts +45 -16
- package/src/types/skills/index.ts +50 -0
- package/src/types/tool/index.ts +156 -1
- package/src/types/tool/presentation.ts +48 -0
- package/src/types/{thread → topic}/entity.ts +34 -26
- package/src/types/topic/index.ts +23 -0
- package/src/types/topic/objective.ts +93 -0
- package/src/types/topic/state.ts +60 -0
- package/src/types/topic/store.ts +101 -0
- package/src/types/workspace/ref.ts +7 -0
- package/src/utils/abort.ts +16 -1
- package/src/utils/hash.ts +16 -0
- package/src/utils/id.ts +163 -12
- package/src/utils/log/attributes.ts +47 -0
- package/src/utils/log/caps.ts +118 -0
- package/src/utils/log/create-logger.ts +198 -0
- package/src/utils/log/exception.ts +124 -0
- package/src/utils/log/index.ts +24 -0
- package/src/utils/log/process-sink.ts +76 -0
- package/src/utils/log/redact.ts +77 -0
- package/src/utils/log/sinks.ts +205 -0
- package/src/utils/log/templates.ts +161 -0
- package/src/utils/log/types.ts +195 -0
- package/src/utils/logger.ts +121 -2
- package/src/utils/renamed-field.ts +35 -0
- package/src/vault/CredentialProvider.ts +147 -0
- package/src/vault/InMemoryCredentialVault.ts +16 -5
- package/src/vault/index.ts +16 -0
- package/src/vault/instrumentation.ts +63 -2
- package/dist/bridge/tools/connector/adapter.d.ts.map +0 -1
- package/dist/bridge/tools/connector/adapter.js.map +0 -1
- package/dist/bridge/tools/connector/definitions.d.ts.map +0 -1
- package/dist/bridge/tools/connector/definitions.js.map +0 -1
- package/dist/bridge/tools/connector/index.d.ts.map +0 -1
- package/dist/bridge/tools/connector/index.js.map +0 -1
- package/dist/bridge/tools/connector/router.d.ts.map +0 -1
- package/dist/bridge/tools/connector/router.js.map +0 -1
- package/dist/connector/execution/factory.d.ts.map +0 -1
- package/dist/connector/execution/factory.js.map +0 -1
- package/dist/connector/execution/hybrid.d.ts.map +0 -1
- package/dist/connector/execution/hybrid.js.map +0 -1
- package/dist/connector/execution/index.d.ts +0 -6
- package/dist/connector/execution/index.d.ts.map +0 -1
- package/dist/connector/execution/index.js +0 -4
- package/dist/connector/execution/index.js.map +0 -1
- package/dist/connector/execution/remote.d.ts.map +0 -1
- package/dist/connector/execution/remote.js.map +0 -1
- package/dist/connector/mcp/server-stdio.d.ts.map +0 -1
- package/dist/connector/mcp/server-stdio.js.map +0 -1
- package/dist/connector/mcp/server.d.ts.map +0 -1
- package/dist/connector/mcp/server.js.map +0 -1
- package/dist/constants/verification/index.d.ts.map +0 -1
- package/dist/constants/verification/index.js.map +0 -1
- package/dist/gateway/completion-inbox.d.ts.map +0 -1
- package/dist/gateway/completion-inbox.js.map +0 -1
- package/dist/gateway/local.d.ts.map +0 -1
- package/dist/gateway/local.js.map +0 -1
- package/dist/manager/thread/lifecycle.d.ts +0 -105
- package/dist/manager/thread/lifecycle.d.ts.map +0 -1
- package/dist/manager/thread/lifecycle.js.map +0 -1
- package/dist/provider/collect.d.ts.map +0 -1
- package/dist/provider/collect.js.map +0 -1
- package/dist/registry/Registry.d.ts.map +0 -1
- package/dist/registry/Registry.js.map +0 -1
- package/dist/router/task-router.d.ts.map +0 -1
- package/dist/router/task-router.js.map +0 -1
- package/dist/runtime/query/context-cache.d.ts.map +0 -1
- package/dist/runtime/query/context-cache.js.map +0 -1
- package/dist/store/thread/disk.d.ts +0 -41
- package/dist/store/thread/disk.d.ts.map +0 -1
- package/dist/store/thread/disk.js +0 -238
- package/dist/store/thread/disk.js.map +0 -1
- package/dist/store/thread/index.d.ts +0 -4
- package/dist/store/thread/index.d.ts.map +0 -1
- package/dist/store/thread/index.js +0 -6
- package/dist/store/thread/index.js.map +0 -1
- package/dist/store/thread/memory.d.ts +0 -23
- package/dist/store/thread/memory.d.ts.map +0 -1
- package/dist/store/thread/memory.js +0 -90
- package/dist/store/thread/memory.js.map +0 -1
- package/dist/types/agent/gateway.d.ts.map +0 -1
- package/dist/types/agent/gateway.js +0 -2
- package/dist/types/agent/gateway.js.map +0 -1
- package/dist/types/thread/entity.d.ts.map +0 -1
- package/dist/types/thread/index.d.ts +0 -3
- package/dist/types/thread/index.d.ts.map +0 -1
- package/dist/types/thread/index.js +0 -5
- package/dist/types/thread/index.js.map +0 -1
- package/dist/types/thread/store.d.ts +0 -86
- package/dist/types/thread/store.d.ts.map +0 -1
- package/dist/types/thread/store.js +0 -22
- package/dist/types/thread/store.js.map +0 -1
- package/dist/types/verification/index.d.ts.map +0 -1
- package/dist/types/verification/index.js +0 -53
- package/dist/types/verification/index.js.map +0 -1
- package/dist/verification/gate.d.ts.map +0 -1
- package/dist/verification/gate.js.map +0 -1
- package/dist/verification/index.d.ts +0 -4
- package/dist/verification/index.d.ts.map +0 -1
- package/dist/verification/index.js +0 -4
- package/dist/verification/index.js.map +0 -1
- package/dist/verification/presets.d.ts.map +0 -1
- package/dist/verification/presets.js.map +0 -1
- package/dist/verification/rules.d.ts +0 -4
- package/dist/verification/rules.d.ts.map +0 -1
- package/dist/verification/rules.js.map +0 -1
- package/src/connector/execution/index.ts +0 -5
- package/src/manager/thread/lifecycle.ts +0 -217
- package/src/store/thread/disk.ts +0 -272
- package/src/store/thread/index.ts +0 -7
- package/src/store/thread/memory.ts +0 -104
- package/src/types/thread/index.ts +0 -6
- package/src/types/thread/store.ts +0 -92
- package/src/verification/index.ts +0 -3
- /package/dist/{bridge/tools/connector → connector/tools}/index.d.ts +0 -0
- /package/dist/{bridge/tools/connector → connector/tools}/index.js +0 -0
- /package/dist/constants/{verification → authorization}/index.d.ts +0 -0
- /package/dist/constants/{verification → authorization}/index.js +0 -0
- /package/dist/{router → model-router}/task-router.d.ts +0 -0
- /package/dist/{router → model-router}/task-router.js +0 -0
- /package/dist/types/{thread → topic}/entity.js +0 -0
- /package/src/{bridge/tools/connector → connector/tools}/index.ts +0 -0
- /package/src/constants/{verification → authorization}/index.ts +0 -0
- /package/src/{router → model-router}/task-router.ts +0 -0
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import { join } from 'node:path';
|
|
2
2
|
import { AdvisorRegistry, AdvisoryContext, AdvisoryExecutor, TriggerEvaluator, assertBudgetEnforceable, } from '../../advisory/index.js';
|
|
3
|
+
import { drainQueuedMessages } from '../../agents/handle.js';
|
|
4
|
+
import { AuthorizationGate } from '../../authorization/gate.js';
|
|
3
5
|
import { findDanglingMessages, removeDanglingMessages } from '../../compaction/dangling.js';
|
|
4
6
|
import { extractFromUserMessage } from '../../compaction/extractor.js';
|
|
5
7
|
import { WorkingStateManager } from '../../compaction/manager.js';
|
|
6
8
|
import { serializeState as serializeWorkingState } from '../../compaction/serializer.js';
|
|
7
9
|
import { restoreWorkingState, snapshotWorkingState } from '../../compaction/wire.js';
|
|
10
|
+
import { BOOT_EVENT_NAMES } from '../../constants/telemetry/index.js';
|
|
8
11
|
import { TOOL_OUTPUT_DIR_NAME } from '../../constants/tools/index.js';
|
|
9
12
|
import { EmergencySaveManager } from '../../manager/run/emergency.js';
|
|
10
13
|
import { resolveModelPricing } from '../../pricing/index.js';
|
|
11
14
|
import { resolveProviderCapabilities } from '../../provider/capabilities.js';
|
|
12
15
|
import { withProviderFallback, } from '../../provider/fallback.js';
|
|
13
16
|
import { withProviderRetry } from '../../provider/retry.js';
|
|
17
|
+
import { DefaultFilesystemMigrator, loggingMigrationSink } from '../../session/migration/index.js';
|
|
18
|
+
import { resolveAttachments } from '../../store/attachment/index.js';
|
|
14
19
|
import { GENAI, NAMZU, agentRunSpanName, parentContext, serializeSpan, } from '../../telemetry/attributes.js';
|
|
15
20
|
import { recordRunDuration } from '../../telemetry/metrics.js';
|
|
16
21
|
import { getTracer } from '../../telemetry/runtime-accessors.js';
|
|
@@ -23,8 +28,11 @@ import { autoApproveHandler, } from '../../types/hitl/index.js';
|
|
|
23
28
|
import { createSystemMessage } from '../../types/message/index.js';
|
|
24
29
|
import { resolveRunEventReplay } from '../../types/run/event-cursor.js';
|
|
25
30
|
import { memoryCandidateFor } from '../../types/run/memory-promotion.js';
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
31
|
+
import { toErrorMessage } from '../../utils/error.js';
|
|
32
|
+
import { generateRunId } from '../../utils/id.js';
|
|
33
|
+
import { errorAttributes } from '../../utils/log/exception.js';
|
|
34
|
+
import { EVENT_NAME_ATTRIBUTE } from '../../utils/log/types.js';
|
|
35
|
+
import { AUTO_APPROVE_POLICY_NAME, createRunApprovalPolicy } from './approval-policy.js';
|
|
28
36
|
import { CheckpointManager } from './checkpoint.js';
|
|
29
37
|
import { RunContextFactory } from './context.js';
|
|
30
38
|
import { EventTranslator } from './events.js';
|
|
@@ -36,6 +44,7 @@ import { isWorkingMemoryMessage } from './iteration/phases/working-memory.js';
|
|
|
36
44
|
import { applyLifecycleHookResults } from './plugin-hooks.js';
|
|
37
45
|
import { PromptBuilder } from './prompt.js';
|
|
38
46
|
import { PendingAnswers, QuestionParkBinding } from './question-park.js';
|
|
47
|
+
import { RepeatCallTracker } from './repeat-call.js';
|
|
39
48
|
import { ResultAssembler } from './result.js';
|
|
40
49
|
import { applyPendingResume, planCrashResume, planPendingResume, recoverCompletedCalls, unansweredToolCalls, } from './resume-pending.js';
|
|
41
50
|
import { ToolGrantSet } from './tool-grants.js';
|
|
@@ -117,14 +126,93 @@ function assertBudgetIsMeasurable(params) {
|
|
|
117
126
|
details: { model, providerId: params.provider.id, costLimitUsd: limit },
|
|
118
127
|
});
|
|
119
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Ask the driver what this model's window is, and never let the answer
|
|
131
|
+
* cost the run.
|
|
132
|
+
*
|
|
133
|
+
* Three outcomes collapse to two here on purpose. No member and a resolved
|
|
134
|
+
* `undefined` both mean "no answer" — the distinction matters to a driver
|
|
135
|
+
* author, not to a caller about to fall through to the table. A rejection
|
|
136
|
+
* is the third, and it is logged rather than propagated: a run that would
|
|
137
|
+
* have worked on the table must not fail because a listing endpoint was
|
|
138
|
+
* down.
|
|
139
|
+
*/
|
|
140
|
+
async function resolveProviderContextWindow(provider, model, signal, log) {
|
|
141
|
+
if (!provider.resolveContextWindow || !model)
|
|
142
|
+
return undefined;
|
|
143
|
+
try {
|
|
144
|
+
const reported = await provider.resolveContextWindow(model, signal);
|
|
145
|
+
return typeof reported === 'number' && reported > 0 ? reported : undefined;
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
log.debug('Provider could not report a context window; using the table', {
|
|
149
|
+
'namzu.model.id': model,
|
|
150
|
+
'namzu.error.message': toErrorMessage(err),
|
|
151
|
+
});
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
120
155
|
export async function* query(params) {
|
|
156
|
+
// Resolved at the DOOR, before a run id exists or a logger is built.
|
|
157
|
+
// A caller who set both spellings of a renamed field has a config bug,
|
|
158
|
+
// and refusing it here costs them nothing; refusing it at the read site
|
|
159
|
+
// deep in the loop turns the same bug into a mid-run failure, after a
|
|
160
|
+
// provider call has been paid for and a partial transcript written.
|
|
161
|
+
const promptCache = params.promptCache;
|
|
162
|
+
const taskScheduler = params.taskScheduler;
|
|
163
|
+
// The run's one correlated logger, built before anything below needs
|
|
164
|
+
// one — the migration check, the retry/fallback wrappers and `ctx`
|
|
165
|
+
// itself all read this SAME object, so a retry warning and the run
|
|
166
|
+
// record it retried for carry the identical `namzu.run.id` instead of
|
|
167
|
+
// three separate `getRootLogger()` reads that happened to agree by
|
|
168
|
+
// accident. `runId` is resolved here, once, rather than left to
|
|
169
|
+
// `build`'s own `config.runId ?? generateRunId()` fallback —
|
|
170
|
+
// generating it twice would silently hand the log and the run two
|
|
171
|
+
// different ids.
|
|
172
|
+
const runId = params.runId ?? generateRunId();
|
|
173
|
+
const log = RunContextFactory.buildLogger({
|
|
174
|
+
agentName: params.agentName,
|
|
175
|
+
runConfig: params.runConfig,
|
|
176
|
+
runId,
|
|
177
|
+
parentRunId: params.parentRunId,
|
|
178
|
+
sessionId: params.sessionId,
|
|
179
|
+
topicId: params.topicId,
|
|
180
|
+
projectId: params.projectId,
|
|
181
|
+
tenantId: params.tenantId,
|
|
182
|
+
});
|
|
121
183
|
// Boot-time filesystem migration (session-hierarchy.md §13.4.1). First
|
|
122
184
|
// call per process per root actually runs; subsequent calls short-circuit
|
|
123
185
|
// via the in-memory guard in `context.ts`. Kept here rather than inside
|
|
124
186
|
// the synchronous `RunContextFactory.build` so the factory signature stays
|
|
125
187
|
// sync for tests / non-async call sites.
|
|
188
|
+
//
|
|
189
|
+
// The migrator built here — not `ensureMigrated`'s own default — is what
|
|
190
|
+
// turns the migration facts `DefaultFilesystemMigrator` already computes
|
|
191
|
+
// into a `namzu.migration.completed` record instead of discarding them.
|
|
192
|
+
// `ensureMigrated`'s default parameter stays
|
|
193
|
+
// `NOOP_FILESYSTEM_MIGRATION_SINK` (see `context.ts`), so any other path
|
|
194
|
+
// that reaches `ensureMigrated` keeps today's silent behaviour.
|
|
126
195
|
const cwdForMigration = params.workingDirectory ?? process.cwd();
|
|
127
|
-
await RunContextFactory.ensureMigrated(`${cwdForMigration}/.namzu
|
|
196
|
+
const migrationResult = await RunContextFactory.ensureMigrated(`${cwdForMigration}/.namzu`, new DefaultFilesystemMigrator(loggingMigrationSink(log)));
|
|
197
|
+
// `loggingMigrationSink` only ever hears about `kind: 'migrated'` — the
|
|
198
|
+
// only outcome `DefaultFilesystemMigrator` ever hands its sink (see the
|
|
199
|
+
// module doc on `FilesystemMigrationSink`). The other two are logged
|
|
200
|
+
// here, straight off the resolved result, rather than by widening
|
|
201
|
+
// `FilesystemMigrationEvent` to carry them: a wider union would need a
|
|
202
|
+
// new arm in every exhaustive switch already written over it — a major —
|
|
203
|
+
// for two outcomes `migrationResult.kind` already fully describes.
|
|
204
|
+
if (migrationResult.kind !== 'migrated') {
|
|
205
|
+
log.debug('filesystem migration: nothing to do', {
|
|
206
|
+
[EVENT_NAME_ATTRIBUTE]: BOOT_EVENT_NAMES.MIGRATION_COMPLETED,
|
|
207
|
+
// `namzu.migration.*`, matching `loggingMigrationSink` — the OTHER
|
|
208
|
+
// emitter of this same event name. Two emitters of one event writing
|
|
209
|
+
// two namespaces for the same fact is precisely the collision the
|
|
210
|
+
// namespaced-key rule exists to stop, and a per-module derivation is
|
|
211
|
+
// how it would be reintroduced.
|
|
212
|
+
'namzu.migration.kind': migrationResult.kind,
|
|
213
|
+
'namzu.migration.marker_path': migrationResult.markerPath,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
128
216
|
// Every model call in the run — the loop's turns, the forced-final
|
|
129
217
|
// summary, advisory and compaction side calls — goes through this one
|
|
130
218
|
// wrapped provider, so the retry policy cannot be bypassed by a code
|
|
@@ -149,9 +237,7 @@ export async function* query(params) {
|
|
|
149
237
|
];
|
|
150
238
|
assertCostIsAttributable(chain, params.pricing);
|
|
151
239
|
assertBudgetIsMeasurable(params);
|
|
152
|
-
const withRetry = (provider) => params.retry === false
|
|
153
|
-
? provider
|
|
154
|
-
: withProviderRetry(provider, { config: params.retry, log: getRootLogger() });
|
|
240
|
+
const withRetry = (provider) => params.retry === false ? provider : withProviderRetry(provider, { config: params.retry, log });
|
|
155
241
|
// Who is serving right now, for the run RECORD rather than for the request.
|
|
156
242
|
//
|
|
157
243
|
// It starts at the head and moves only when the chain does, which is the
|
|
@@ -163,7 +249,7 @@ export async function* query(params) {
|
|
|
163
249
|
current: { index: 0, providerId: params.provider.id },
|
|
164
250
|
};
|
|
165
251
|
const resilientProvider = withProviderFallback(chain.map((member) => ({ ...member, provider: withRetry(member.provider) })), {
|
|
166
|
-
log
|
|
252
|
+
log,
|
|
167
253
|
onSwap: (to) => {
|
|
168
254
|
serving.current = to;
|
|
169
255
|
// `ctx` is declared below and is initialized before anything can
|
|
@@ -172,7 +258,62 @@ export async function* query(params) {
|
|
|
172
258
|
ctx.runMgr.setServingProvider(to.providerId);
|
|
173
259
|
},
|
|
174
260
|
});
|
|
261
|
+
// Asked ONCE, here, before the loop exists. Both readers are synchronous
|
|
262
|
+
// and hot, so this can never move inside the iteration — and a driver
|
|
263
|
+
// that rejects, or one that hangs until the run is cancelled, must not
|
|
264
|
+
// take down a run the table could have served perfectly well. That is
|
|
265
|
+
// why the failure path is a swallow with a log rather than a throw: the
|
|
266
|
+
// window is an optimisation over a working default, not a prerequisite.
|
|
267
|
+
const providerContextWindow = await resolveProviderContextWindow(resilientProvider, params.runConfig.model, params.signal, log);
|
|
268
|
+
// The mode this conversation was left in, when the run config names none.
|
|
269
|
+
// Read once, before the loop exists, for the same reason the context
|
|
270
|
+
// window is: the executor's resolver is synchronous and hot.
|
|
271
|
+
//
|
|
272
|
+
// A store that throws is not a run failure — the run falls back to the
|
|
273
|
+
// config's answer, which is exactly what it did before this existed.
|
|
274
|
+
const topicState = params.topicStateStore
|
|
275
|
+
? await params.topicStateStore
|
|
276
|
+
.getState(params.topicId, params.tenantId)
|
|
277
|
+
.catch((err) => {
|
|
278
|
+
log.debug('Could not read the topic state; using the run config', {
|
|
279
|
+
'namzu.topic.id': params.topicId,
|
|
280
|
+
'namzu.error.message': toErrorMessage(err),
|
|
281
|
+
});
|
|
282
|
+
return null;
|
|
283
|
+
})
|
|
284
|
+
: null;
|
|
285
|
+
// Whatever a host left for "the next run", taken and cleared in one
|
|
286
|
+
// compare-and-set write. Prepended to the messages this run starts from,
|
|
287
|
+
// so it is in the FIRST request rather than arriving a turn late.
|
|
288
|
+
//
|
|
289
|
+
// Cleared as it is read: a queue read and cleared separately re-delivers
|
|
290
|
+
// on a crash between the two, and "start with this" arriving twice is a
|
|
291
|
+
// different instruction from the one that was left.
|
|
292
|
+
const queuedForThisRun = params.topicStateStore
|
|
293
|
+
? await drainQueuedMessages(params.topicStateStore, params.topicId, params.tenantId).catch((err) => {
|
|
294
|
+
log.debug('Could not drain the topic queue; starting without it', {
|
|
295
|
+
'namzu.topic.id': params.topicId,
|
|
296
|
+
'namzu.error.message': toErrorMessage(err),
|
|
297
|
+
});
|
|
298
|
+
return [];
|
|
299
|
+
})
|
|
300
|
+
: [];
|
|
301
|
+
// One effective list, used everywhere the run is seeded from. Three
|
|
302
|
+
// branches below push from it, and computing it at each would be three
|
|
303
|
+
// places to forget the queue.
|
|
304
|
+
//
|
|
305
|
+
// Stored attachments are resolved HERE, once, before the messages reach
|
|
306
|
+
// the run record. Resolving later — at the provider boundary — would put
|
|
307
|
+
// refs in the durable transcript and in every checkpoint, and a run
|
|
308
|
+
// resumed against a store that had since forgotten a ref would fail
|
|
309
|
+
// replaying its own history rather than at the moment somebody asked for
|
|
310
|
+
// the bytes. Every failure refuses: a message that silently lost its
|
|
311
|
+
// image is a model answering about a picture it never saw.
|
|
312
|
+
const seeded = queuedForThisRun.length > 0 ? [...queuedForThisRun, ...params.messages] : params.messages;
|
|
313
|
+
const initialMessages = [...(await resolveAttachments(seeded, params.attachmentStore))];
|
|
175
314
|
const ctx = RunContextFactory.build({
|
|
315
|
+
...(topicState ? { topicPermissionMode: topicState.permissionMode } : {}),
|
|
316
|
+
...(params.permissionModeRef ? { permissionModeRef: params.permissionModeRef } : {}),
|
|
176
317
|
agentId: params.agentId,
|
|
177
318
|
agentName: params.agentName,
|
|
178
319
|
runConfig: params.runConfig,
|
|
@@ -180,21 +321,49 @@ export async function* query(params) {
|
|
|
180
321
|
workingDirectory: params.workingDirectory,
|
|
181
322
|
pricing: params.pricing,
|
|
182
323
|
enableActivityTracking: params.enableActivityTracking,
|
|
183
|
-
messages:
|
|
324
|
+
messages: initialMessages,
|
|
184
325
|
signal: params.signal,
|
|
185
326
|
sessionId: params.sessionId,
|
|
186
|
-
|
|
327
|
+
topicId: params.topicId,
|
|
187
328
|
projectId: params.projectId,
|
|
188
329
|
tenantId: params.tenantId,
|
|
189
330
|
pathBuilder: params.pathBuilder,
|
|
190
331
|
checkpointStore: params.checkpointStore,
|
|
191
332
|
runStore: params.runStore,
|
|
192
|
-
runId
|
|
333
|
+
runId,
|
|
193
334
|
parentRunId: params.parentRunId,
|
|
194
335
|
depth: params.depth,
|
|
336
|
+
log,
|
|
337
|
+
});
|
|
338
|
+
// Built here because the plan-approval closure below captures it, and
|
|
339
|
+
// its `emit` resolves `eventTranslator` at CALL time — the translator is
|
|
340
|
+
// a `const` some lines further down.
|
|
341
|
+
//
|
|
342
|
+
// The HANDOUT is therefore deliberately NOT here. A host given the box
|
|
343
|
+
// at this point can call `set` synchronously, `emit` reaches
|
|
344
|
+
// `eventTranslator` inside its temporal dead zone, and the run dies
|
|
345
|
+
// before it starts. That is not hypothetical: it is what the first
|
|
346
|
+
// version of this did, and the test that hands out the box and
|
|
347
|
+
// immediately swaps the policy is the one that found it.
|
|
348
|
+
const approvalPolicy = createRunApprovalPolicy({
|
|
349
|
+
runId: ctx.runId,
|
|
350
|
+
initial: {
|
|
351
|
+
// By identity against the default, not by presence. `resumeHandler`
|
|
352
|
+
// is REQUIRED on `QueryParams` — `drainQuery` substitutes
|
|
353
|
+
// `autoApproveHandler` before calling here — so "is it set" is
|
|
354
|
+
// always yes and would name every run `host`, including the ones
|
|
355
|
+
// approving everything unattended. Identity is what actually
|
|
356
|
+
// separates the two.
|
|
357
|
+
name: params.approvalPolicyName ??
|
|
358
|
+
(params.resumeHandler === autoApproveHandler ? AUTO_APPROVE_POLICY_NAME : 'host'),
|
|
359
|
+
handler: params.resumeHandler,
|
|
360
|
+
},
|
|
361
|
+
emit: (event) => eventTranslator.emitEvent(event),
|
|
195
362
|
});
|
|
196
363
|
ctx.planManager.setApprovalHandler(async (request) => {
|
|
197
|
-
|
|
364
|
+
// `.current.handler`, never a captured `params.resumeHandler`. That
|
|
365
|
+
// capture is what made changing the policy mean ending the run.
|
|
366
|
+
const decision = await approvalPolicy.current.handler({
|
|
198
367
|
type: 'plan_approval',
|
|
199
368
|
runId: ctx.runId,
|
|
200
369
|
checkpointId: `cp_plan_${request.planId}`,
|
|
@@ -228,7 +397,7 @@ export async function* query(params) {
|
|
|
228
397
|
}
|
|
229
398
|
return { approved: false, feedback: `Action: ${decision.action}` };
|
|
230
399
|
});
|
|
231
|
-
const eventTranslator = new EventTranslator(ctx.runMgr);
|
|
400
|
+
const eventTranslator = new EventTranslator(ctx.runMgr, undefined, ctx.log);
|
|
232
401
|
eventTranslator.wireActivityStore(ctx.activityStore, ctx.runId);
|
|
233
402
|
eventTranslator.wirePlanManager(ctx.planManager, ctx.runId);
|
|
234
403
|
const unsubscribeTaskStore = params.taskStore
|
|
@@ -287,9 +456,10 @@ export async function* query(params) {
|
|
|
287
456
|
details: { providerId: params.provider.id, capability: 'tools', registeredToolCount },
|
|
288
457
|
});
|
|
289
458
|
}
|
|
290
|
-
ctx.log.warn(
|
|
291
|
-
|
|
292
|
-
|
|
459
|
+
ctx.log.warn('Capability mismatch: the provider declares no tool support', {
|
|
460
|
+
'namzu.capability.detail': message,
|
|
461
|
+
[GENAI.SYSTEM]: params.provider.id,
|
|
462
|
+
'namzu.runtime.registered_tool_count': registeredToolCount,
|
|
293
463
|
});
|
|
294
464
|
}
|
|
295
465
|
if (attachmentMessageCount > 0) {
|
|
@@ -301,9 +471,10 @@ export async function* query(params) {
|
|
|
301
471
|
details: { providerId: params.provider.id, capability: 'vision', attachmentMessageCount },
|
|
302
472
|
});
|
|
303
473
|
}
|
|
304
|
-
ctx.log.warn(
|
|
305
|
-
|
|
306
|
-
|
|
474
|
+
ctx.log.warn('Capability mismatch: the provider declares no vision support', {
|
|
475
|
+
'namzu.capability.detail': message,
|
|
476
|
+
[GENAI.SYSTEM]: params.provider.id,
|
|
477
|
+
'namzu.runtime.attachment_message_count': attachmentMessageCount,
|
|
307
478
|
});
|
|
308
479
|
}
|
|
309
480
|
if (documentMessageCount > 0) {
|
|
@@ -315,14 +486,30 @@ export async function* query(params) {
|
|
|
315
486
|
details: { providerId: params.provider.id, capability: 'documents', documentMessageCount },
|
|
316
487
|
});
|
|
317
488
|
}
|
|
318
|
-
ctx.log.warn(
|
|
319
|
-
|
|
320
|
-
|
|
489
|
+
ctx.log.warn('Capability mismatch: the provider declares no document support', {
|
|
490
|
+
'namzu.capability.detail': message,
|
|
491
|
+
[GENAI.SYSTEM]: params.provider.id,
|
|
492
|
+
'namzu.runtime.document_message_count': documentMessageCount,
|
|
321
493
|
});
|
|
322
494
|
}
|
|
323
|
-
|
|
495
|
+
// Denied names are subtracted LAST, after the allow-list is resolved
|
|
496
|
+
// against the registry — so a deny reaches a run that named no
|
|
497
|
+
// allow-list at all, which is the ordinary case for a delegated child.
|
|
498
|
+
// Applied to `effectiveAllowedTools`, which `query()` binds to both the
|
|
499
|
+
// request tool list AND the `ToolExecutor`: narrowing only the request
|
|
500
|
+
// shows the model fewer tools and lets it call any of them by name.
|
|
501
|
+
const allowedBeforeDenial = stripToolSurfaces
|
|
324
502
|
? []
|
|
325
503
|
: withDeferredDiscoveryTool(params.tools, params.allowedTools);
|
|
504
|
+
const denied = new Set(params.deniedTools ?? []);
|
|
505
|
+
const effectiveAllowedTools = denied.size === 0
|
|
506
|
+
? allowedBeforeDenial
|
|
507
|
+
: // An absent allow-list means "every registered tool", so a deny
|
|
508
|
+
// with no allow-list has to be resolved against the registry
|
|
509
|
+
// here — otherwise the subtraction would be from an empty list
|
|
510
|
+
// and would deny nothing, which is the shape a delegated child
|
|
511
|
+
// arrives in.
|
|
512
|
+
[...(allowedBeforeDenial ?? params.tools.listNames())].filter((name) => !denied.has(name));
|
|
326
513
|
// The two halves of a durable pause, owned by the RUN when the host
|
|
327
514
|
// does not own them.
|
|
328
515
|
//
|
|
@@ -349,12 +536,18 @@ export async function* query(params) {
|
|
|
349
536
|
tools: params.tools,
|
|
350
537
|
runId: ctx.runId,
|
|
351
538
|
workingDirectory: ctx.cwd,
|
|
352
|
-
permissionMode: ctx.permissionMode,
|
|
539
|
+
permissionMode: () => ctx.permissionMode.current,
|
|
353
540
|
env: params.runConfig.env ?? {},
|
|
354
541
|
abortSignal: ctx.abortController.signal,
|
|
355
542
|
allowedTools: effectiveAllowedTools,
|
|
356
543
|
invocationState: params.invocationState,
|
|
357
544
|
pluginManager: params.pluginManager,
|
|
545
|
+
...(params.backgroundJobs ? { backgroundJobs: params.backgroundJobs } : {}),
|
|
546
|
+
// The `skill` tool's registry. Threaded from the run rather than
|
|
547
|
+
// held by the tool, because a tool that reached for a module-level
|
|
548
|
+
// registry would answer about whatever the last run configured.
|
|
549
|
+
...(params.skillRegistry ? { skills: params.skillRegistry } : {}),
|
|
550
|
+
...(params.web ? { web: params.web } : {}),
|
|
358
551
|
...(params.toolTimeoutMs !== undefined ? { toolTimeoutMs: params.toolTimeoutMs } : {}),
|
|
359
552
|
...(params.toolRetryBackoff !== undefined
|
|
360
553
|
? { toolRetryBackoff: params.toolRetryBackoff }
|
|
@@ -381,7 +574,7 @@ export async function* query(params) {
|
|
|
381
574
|
toolPause: (toolUseId) => createToolPause({
|
|
382
575
|
runId: ctx.runId,
|
|
383
576
|
toolUseId,
|
|
384
|
-
parkHandler:
|
|
577
|
+
parkHandler: (request) => approvalPolicy.current.handler(request),
|
|
385
578
|
recorder: questionParks,
|
|
386
579
|
pendingAnswers,
|
|
387
580
|
}),
|
|
@@ -399,6 +592,7 @@ export async function* query(params) {
|
|
|
399
592
|
tools: params.tools,
|
|
400
593
|
allowedTools: effectiveAllowedTools,
|
|
401
594
|
runtimeContext: params.runtimeContext,
|
|
595
|
+
...(params.promptContributions ? { contributions: params.promptContributions } : {}),
|
|
402
596
|
});
|
|
403
597
|
const guard = new GuardCoordinator({
|
|
404
598
|
tokenBudget: params.runConfig.tokenBudget,
|
|
@@ -426,6 +620,10 @@ export async function* query(params) {
|
|
|
426
620
|
// Read at settle time, not now: checkpoints are written per
|
|
427
621
|
// iteration, so the answer changes as the run proceeds.
|
|
428
622
|
resumeCheckpointId: () => checkpointMgr.lastCheckpointId,
|
|
623
|
+
// Read only to recover WHY a cancellation happened. The run loop
|
|
624
|
+
// already knows THAT it was cancelled; the origin lives on the abort
|
|
625
|
+
// reason and nothing else carries it this far.
|
|
626
|
+
signal: ctx.abortController.signal,
|
|
429
627
|
});
|
|
430
628
|
let advisoryCtx;
|
|
431
629
|
if (params.advisory && params.advisory.advisors.length > 0) {
|
|
@@ -470,8 +668,9 @@ export async function* query(params) {
|
|
|
470
668
|
}
|
|
471
669
|
}
|
|
472
670
|
}
|
|
473
|
-
const
|
|
474
|
-
|
|
671
|
+
const gateConfig = params.authorizationGate;
|
|
672
|
+
const verificationGate = gateConfig?.enabled
|
|
673
|
+
? new AuthorizationGate(gateConfig, ctx.log)
|
|
475
674
|
: undefined;
|
|
476
675
|
const iterationOrchestrator = new IterationOrchestrator({
|
|
477
676
|
provider: resilientProvider,
|
|
@@ -479,6 +678,7 @@ export async function* query(params) {
|
|
|
479
678
|
runConfig: params.runConfig,
|
|
480
679
|
...(params.stopWhen ? { stopWhen: params.stopWhen } : {}),
|
|
481
680
|
...(params.prepareStep ? { prepareStep: params.prepareStep } : {}),
|
|
681
|
+
...(params.beforeStep ? { beforeStep: params.beforeStep } : {}),
|
|
482
682
|
...(params.onStepFinish ? { onStepFinish: params.onStepFinish } : {}),
|
|
483
683
|
...(params.reviewAnswer ? { reviewAnswer: params.reviewAnswer } : {}),
|
|
484
684
|
...(params.maxAnswerReviews !== undefined ? { maxAnswerReviews: params.maxAnswerReviews } : {}),
|
|
@@ -496,17 +696,27 @@ export async function* query(params) {
|
|
|
496
696
|
drainPending: () => eventTranslator.drainPending(),
|
|
497
697
|
abortController: ctx.abortController,
|
|
498
698
|
log: ctx.log,
|
|
499
|
-
|
|
699
|
+
// Read through the box on every call, so a swap lands on the next
|
|
700
|
+
// question rather than the next run.
|
|
701
|
+
resumeHandler: (request) => approvalPolicy.current.handler(request),
|
|
702
|
+
takeApprovalPolicyChange: () => approvalPolicy.takeUnannouncedChange(),
|
|
703
|
+
...(params.promptContributions ? { promptContributions: params.promptContributions } : {}),
|
|
500
704
|
...(params.steering ? { steering: params.steering } : {}),
|
|
501
705
|
checkpointMgr,
|
|
502
706
|
planManager: ctx.planManager,
|
|
503
|
-
taskGateway:
|
|
707
|
+
taskGateway: taskScheduler,
|
|
504
708
|
completionInbox: params.completionInbox,
|
|
505
709
|
taskStore: params.taskStore,
|
|
506
710
|
// Run-scoped. An approval is a statement about this run's work;
|
|
507
711
|
// carrying one into a later run would be reuse nobody agreed to.
|
|
508
712
|
toolGrants: new ToolGrantSet(),
|
|
713
|
+
// Run-scoped for the same reason. A repeat count carried into a later
|
|
714
|
+
// run is a claim about work nobody repeated, and a module-level map
|
|
715
|
+
// would leak exactly that way.
|
|
716
|
+
...(params.repeatCallAdvisory === false ? {} : { repeatCalls: new RepeatCallTracker() }),
|
|
509
717
|
compactionConfig: params.compactionConfig,
|
|
718
|
+
...(params.inboundMessages ? { inboundMessages: params.inboundMessages } : {}),
|
|
719
|
+
...(providerContextWindow !== undefined ? { providerContextWindow } : {}),
|
|
510
720
|
workingStateManager,
|
|
511
721
|
taskRouter: params.taskRouter,
|
|
512
722
|
contextReducer: params.contextReducer,
|
|
@@ -585,9 +795,9 @@ export async function* query(params) {
|
|
|
585
795
|
// because a host building an approval queue from durable
|
|
586
796
|
// state will not see this question.
|
|
587
797
|
ctx.log.error('Failed to record a question park — it is not resumable', {
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
798
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
799
|
+
'namzu.runtime.question_id': question.questionId,
|
|
800
|
+
'exception.message': err instanceof Error ? err.message : String(err),
|
|
591
801
|
});
|
|
592
802
|
return null;
|
|
593
803
|
}
|
|
@@ -595,9 +805,9 @@ export async function* query(params) {
|
|
|
595
805
|
resolve: async (checkpointId, decision) => {
|
|
596
806
|
await checkpointMgr.unpark(checkpointId, decision).catch((err) => {
|
|
597
807
|
ctx.log.error('Failed to clear a recorded question park', {
|
|
598
|
-
|
|
599
|
-
checkpointId,
|
|
600
|
-
|
|
808
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
809
|
+
'namzu.checkpoint.id': checkpointId,
|
|
810
|
+
'exception.message': err instanceof Error ? err.message : String(err),
|
|
601
811
|
});
|
|
602
812
|
return null;
|
|
603
813
|
});
|
|
@@ -651,13 +861,13 @@ export async function* query(params) {
|
|
|
651
861
|
// callback actually makes.
|
|
652
862
|
params.onContextCreated?.({ planManager: ctx.planManager });
|
|
653
863
|
ctx.log.info('Starting query', {
|
|
654
|
-
|
|
655
|
-
agent: params.agentName,
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
864
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
865
|
+
'namzu.runtime.agent': params.agentName,
|
|
866
|
+
[GENAI.REQUEST_MODEL]: params.runConfig.model,
|
|
867
|
+
'namzu.runtime.token_budget': params.runConfig.tokenBudget,
|
|
868
|
+
'namzu.runtime.activity_tracking': ctx.activityStore.enabled,
|
|
869
|
+
'namzu.runtime.permission_mode': ctx.permissionMode.current,
|
|
870
|
+
'namzu.runtime.resume_from_checkpoint': params.resumeFromCheckpoint ?? null,
|
|
661
871
|
});
|
|
662
872
|
const contextLevel = params.contextLevel ?? 'full';
|
|
663
873
|
const cacheInput = {
|
|
@@ -668,13 +878,14 @@ export async function* query(params) {
|
|
|
668
878
|
tools: params.tools,
|
|
669
879
|
allowedTools: effectiveAllowedTools,
|
|
670
880
|
runtimeContext: params.runtimeContext,
|
|
881
|
+
...(params.promptContributions ? { contributions: params.promptContributions } : {}),
|
|
671
882
|
};
|
|
672
|
-
const segments =
|
|
673
|
-
?
|
|
883
|
+
const segments = promptCache
|
|
884
|
+
? promptCache.getSystemPromptSegmented(cacheInput, contextLevel, params.workingDirectory)
|
|
674
885
|
: promptBuilder.buildSegmented(contextLevel, params.workingDirectory);
|
|
675
886
|
ctx.log.info('Prompt segments assembled', {
|
|
676
|
-
|
|
677
|
-
|
|
887
|
+
'namzu.runtime.static_length': segments.static.length,
|
|
888
|
+
'namzu.runtime.dynamic_length': segments.dynamic.length,
|
|
678
889
|
});
|
|
679
890
|
const pushSystemMessages = () => {
|
|
680
891
|
ctx.runMgr.pushMessage(createSystemMessage(segments.static, 'cache'));
|
|
@@ -709,18 +920,18 @@ export async function* query(params) {
|
|
|
709
920
|
const revived = restoreWorkingState(checkpoint.workingState, params.compactionConfig);
|
|
710
921
|
workingStateManager.replaceState(revived.getState());
|
|
711
922
|
ctx.log.info('Restored compaction working state from checkpoint', {
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
slots: workingStateManager.slotCount(),
|
|
923
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
924
|
+
'namzu.checkpoint.id': checkpoint.id,
|
|
925
|
+
'namzu.runtime.slots': workingStateManager.slotCount(),
|
|
715
926
|
});
|
|
716
927
|
}
|
|
717
928
|
ctx.log.info('Restored budgets from checkpoint', {
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
929
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
930
|
+
'namzu.checkpoint.id': checkpoint.id,
|
|
931
|
+
'namzu.usage.total_tokens': checkpoint.tokenUsage.totalTokens,
|
|
932
|
+
'namzu.runtime.total_cost': checkpoint.costInfo.totalCost,
|
|
933
|
+
[NAMZU.ITERATION]: checkpoint.guardState.iterationCount,
|
|
934
|
+
'namzu.runtime.elapsed_ms': checkpoint.guardState.elapsedMs,
|
|
724
935
|
});
|
|
725
936
|
pushSystemMessages();
|
|
726
937
|
// A human answered the park in a different process; apply that
|
|
@@ -768,11 +979,11 @@ export async function* query(params) {
|
|
|
768
979
|
: removeDanglingMessages(checkpoint.messages);
|
|
769
980
|
if (!dangling.isValid && !pendingResume) {
|
|
770
981
|
ctx.log.warn('Checkpoint contained unanswered tool calls — repaired on restore', {
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
removed: checkpoint.messages.length - restoredMessages.length,
|
|
982
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
983
|
+
'namzu.checkpoint.id': checkpoint.id,
|
|
984
|
+
'namzu.runtime.unanswered_assistant_turns': dangling.assistantsWithUnmatchedCalls.length,
|
|
985
|
+
'namzu.runtime.orphaned_tool_messages': dangling.orphanedToolMessages.length,
|
|
986
|
+
'namzu.runtime.removed': checkpoint.messages.length - restoredMessages.length,
|
|
776
987
|
});
|
|
777
988
|
}
|
|
778
989
|
for (const msg of restoredMessages) {
|
|
@@ -790,16 +1001,26 @@ export async function* query(params) {
|
|
|
790
1001
|
}
|
|
791
1002
|
ctx.runMgr.pushMessage(msg);
|
|
792
1003
|
}
|
|
1004
|
+
// The queue, on the resume path too. It is drained
|
|
1005
|
+
// unconditionally above, so leaving this out would take a
|
|
1006
|
+
// host's "start with this" off the record and deliver it
|
|
1007
|
+
// nowhere — the one outcome a durable queue must not have.
|
|
1008
|
+
//
|
|
1009
|
+
// AFTER the restored history rather than before it: on a
|
|
1010
|
+
// resume the conversation already exists, and a message left
|
|
1011
|
+
// for "the next run" is the newest thing said, not the oldest.
|
|
1012
|
+
for (const queued of queuedForThisRun)
|
|
1013
|
+
ctx.runMgr.pushMessage(queued);
|
|
793
1014
|
}
|
|
794
1015
|
else if (params.continuationMode) {
|
|
795
|
-
for (const msg of
|
|
1016
|
+
for (const msg of initialMessages) {
|
|
796
1017
|
ctx.runMgr.pushMessage(msg);
|
|
797
1018
|
}
|
|
798
1019
|
}
|
|
799
1020
|
else {
|
|
800
1021
|
pushSystemMessages();
|
|
801
1022
|
let isFirstUserMessage = true;
|
|
802
|
-
for (const msg of
|
|
1023
|
+
for (const msg of initialMessages) {
|
|
803
1024
|
if (msg.role === 'system')
|
|
804
1025
|
continue;
|
|
805
1026
|
ctx.runMgr.pushMessage(msg);
|
|
@@ -819,6 +1040,22 @@ export async function* query(params) {
|
|
|
819
1040
|
systemPrompt: assembledPrompt,
|
|
820
1041
|
});
|
|
821
1042
|
yield* eventTranslator.drainPending();
|
|
1043
|
+
// The box is handed out HERE, after `run_started`, and the position
|
|
1044
|
+
// is load-bearing rather than tidy. It moved twice:
|
|
1045
|
+
//
|
|
1046
|
+
// 1. Beside the box's construction — a host that called `set`
|
|
1047
|
+
// synchronously reached `eventTranslator` inside its temporal
|
|
1048
|
+
// dead zone and killed the run before it started.
|
|
1049
|
+
// 2. Beside the translator's construction — the translator existed,
|
|
1050
|
+
// but the run directory did not, so the durable append hit
|
|
1051
|
+
// ENOENT on `transcript.jsonl`.
|
|
1052
|
+
//
|
|
1053
|
+
// Both were found by the test that takes the box and immediately
|
|
1054
|
+
// swaps the policy, which is not an exotic host: it is the shape of
|
|
1055
|
+
// "start unattended" wiring. A policy change is durably recorded
|
|
1056
|
+
// before it takes effect, so the handout cannot precede the run
|
|
1057
|
+
// being writable.
|
|
1058
|
+
params.onApprovalPolicy?.(approvalPolicy);
|
|
822
1059
|
// Surface capability degradation to the host as run events —
|
|
823
1060
|
// explicit, not silent (the log.warn above fires at setup time;
|
|
824
1061
|
// this is the machine-readable channel).
|
|
@@ -849,7 +1086,26 @@ export async function* query(params) {
|
|
|
849
1086
|
}
|
|
850
1087
|
// --- Sandbox lifecycle: create before iteration loop ---
|
|
851
1088
|
if (params.sandboxProvider) {
|
|
1089
|
+
const rootAtCwd = params.runConfig.sandbox?.workspace === 'working-directory';
|
|
1090
|
+
// Checked against what the CALLER passed, not against `ctx.cwd`.
|
|
1091
|
+
// `ctx.cwd` falls back to `process.cwd()`, so reading it here
|
|
1092
|
+
// would silently root the sandbox at whatever directory the
|
|
1093
|
+
// host process happens to be in — which is not the directory
|
|
1094
|
+
// anybody asked to confine, and is worse than the temp dir the
|
|
1095
|
+
// caller declined. Refused before the sandbox exists, and not
|
|
1096
|
+
// downgraded to ephemeral: a caller who asked for confinement
|
|
1097
|
+
// of a specific tree and quietly got an empty one has been
|
|
1098
|
+
// told their files are protected by something that is not
|
|
1099
|
+
// looking at them.
|
|
1100
|
+
if (rootAtCwd && params.workingDirectory === undefined) {
|
|
1101
|
+
throw new NamzuError({
|
|
1102
|
+
code: 'invalid_config',
|
|
1103
|
+
message: "sandbox.workspace is 'working-directory' but this run has no workingDirectory. Pass one, or use the default 'ephemeral' — the kernel will not fall back to a temp directory, because that would confine a directory you did not name.",
|
|
1104
|
+
details: { workspace: 'working-directory' },
|
|
1105
|
+
});
|
|
1106
|
+
}
|
|
852
1107
|
sandbox = await params.sandboxProvider.create({
|
|
1108
|
+
...(rootAtCwd ? { workingDirectory: ctx.cwd } : {}),
|
|
853
1109
|
timeoutMs: params.runConfig.sandbox?.timeoutMs,
|
|
854
1110
|
memoryLimitMb: params.runConfig.sandbox?.memoryLimitMb,
|
|
855
1111
|
maxProcesses: params.runConfig.sandbox?.maxProcesses,
|
|
@@ -863,9 +1119,9 @@ export async function* query(params) {
|
|
|
863
1119
|
});
|
|
864
1120
|
yield* eventTranslator.drainPending();
|
|
865
1121
|
ctx.log.info('Sandbox created for run', {
|
|
866
|
-
|
|
867
|
-
environment: sandbox.environment,
|
|
868
|
-
|
|
1122
|
+
'namzu.sandbox.id': sandbox.id,
|
|
1123
|
+
'namzu.execution.environment': sandbox.environment,
|
|
1124
|
+
'namzu.runtime.root_dir': sandbox.rootDir,
|
|
869
1125
|
});
|
|
870
1126
|
}
|
|
871
1127
|
// Crash-save handlers live for exactly the run's lifetime, and are
|
|
@@ -877,7 +1133,7 @@ export async function* query(params) {
|
|
|
877
1133
|
emergencyManager.attach(ctx.runMgr, runDir, ctx.log);
|
|
878
1134
|
}
|
|
879
1135
|
else {
|
|
880
|
-
ctx.log.warn('emergencySave requested but the run has no output directory — crash dumps disabled', {
|
|
1136
|
+
ctx.log.warn('emergencySave requested but the run has no output directory — crash dumps disabled', { [NAMZU.RUN_ID]: ctx.runId });
|
|
881
1137
|
}
|
|
882
1138
|
}
|
|
883
1139
|
// Before the first model call: the cheapest place to refuse, since
|
|
@@ -899,6 +1155,15 @@ export async function* query(params) {
|
|
|
899
1155
|
...(inputVerdict.reason ? { reason: inputVerdict.reason } : {}),
|
|
900
1156
|
});
|
|
901
1157
|
yield* eventTranslator.drainPending();
|
|
1158
|
+
// A guardrail block is a refusal — first-class in the audit trail
|
|
1159
|
+
// (LOG-14, design §5), not merely a RunEvent a host happens to be
|
|
1160
|
+
// subscribed to when it fires.
|
|
1161
|
+
await ctx.runMgr.recordAudit({
|
|
1162
|
+
what: { action: 'guardrail:input', resource: inputVerdict.name },
|
|
1163
|
+
outcome: 'refused',
|
|
1164
|
+
reason: inputVerdict.reason ?? 'blocked by an input guardrail',
|
|
1165
|
+
...(params.persona?.identity.role ? { persona: params.persona.identity.role } : {}),
|
|
1166
|
+
});
|
|
902
1167
|
ctx.runMgr.setStopReason('input_guardrail');
|
|
903
1168
|
ctx.runMgr.setLastError(inputVerdict.reason ?? 'blocked by an input guardrail');
|
|
904
1169
|
yield* resultAssembler.completeRun(rootSpan);
|
|
@@ -909,9 +1174,9 @@ export async function* query(params) {
|
|
|
909
1174
|
// tool that needs one gets it.
|
|
910
1175
|
if (pendingResume) {
|
|
911
1176
|
ctx.log.info('Applying a pending HITL decision to the checkpointed tool calls', {
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
denied: pendingResume.denials.size,
|
|
1177
|
+
[NAMZU.RUN_ID]: ctx.runId,
|
|
1178
|
+
'namzu.tool.names': pendingResume.response.message.toolCalls?.map((tc) => tc.function.name),
|
|
1179
|
+
'namzu.runtime.denied': pendingResume.denials.size,
|
|
915
1180
|
});
|
|
916
1181
|
// Hand the recorded answer to the already-built tool. The tool
|
|
917
1182
|
// closed over its registry when the agent was constructed,
|
|
@@ -935,9 +1200,9 @@ export async function* query(params) {
|
|
|
935
1200
|
.unpark(resolvedCheckpointId, params.pendingDecision)
|
|
936
1201
|
.catch((err) => {
|
|
937
1202
|
ctx.log.error('Applied a pending decision but failed to clear the park', {
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
1203
|
+
[NAMZU.RUN_ID]: ctx.runId,
|
|
1204
|
+
'namzu.checkpoint.id': resolvedCheckpointId,
|
|
1205
|
+
'exception.message': err instanceof Error ? err.message : String(err),
|
|
941
1206
|
});
|
|
942
1207
|
return null;
|
|
943
1208
|
});
|
|
@@ -975,6 +1240,13 @@ export async function* query(params) {
|
|
|
975
1240
|
...(outputVerdict.reason ? { reason: outputVerdict.reason } : {}),
|
|
976
1241
|
});
|
|
977
1242
|
yield* eventTranslator.drainPending();
|
|
1243
|
+
// Same reasoning as the input-guardrail branch above.
|
|
1244
|
+
await ctx.runMgr.recordAudit({
|
|
1245
|
+
what: { action: 'guardrail:output', resource: outputVerdict.name },
|
|
1246
|
+
outcome: 'refused',
|
|
1247
|
+
reason: outputVerdict.reason ?? 'blocked by an output guardrail',
|
|
1248
|
+
...(params.persona?.identity.role ? { persona: params.persona.identity.role } : {}),
|
|
1249
|
+
});
|
|
978
1250
|
ctx.runMgr.setStopReason('output_guardrail');
|
|
979
1251
|
ctx.runMgr.setLastError(outputVerdict.reason ?? 'blocked by an output guardrail');
|
|
980
1252
|
ctx.runMgr.setResult('');
|
|
@@ -1005,6 +1277,30 @@ export async function* query(params) {
|
|
|
1005
1277
|
// WeakRef'd, settled run as the crash target for the rest of the
|
|
1006
1278
|
// process's life.
|
|
1007
1279
|
emergencyManager?.detach();
|
|
1280
|
+
// A background job outlives the tool call that started it — that
|
|
1281
|
+
// is what it is for — so nothing but this stops it outliving the
|
|
1282
|
+
// RUN. Scoped to this run's id: a shared registry serving several
|
|
1283
|
+
// runs must not have one of them tear down another's work.
|
|
1284
|
+
//
|
|
1285
|
+
// Awaited, and its failure swallowed. A job that would not die is
|
|
1286
|
+
// worth a log line, and is not worth retracting a run's answer.
|
|
1287
|
+
if (params.backgroundJobs) {
|
|
1288
|
+
try {
|
|
1289
|
+
const stopped = await params.backgroundJobs.killOwner(ctx.runId);
|
|
1290
|
+
if (stopped.length > 0) {
|
|
1291
|
+
ctx.log.info('Background jobs stopped with the run', {
|
|
1292
|
+
[NAMZU.RUN_ID]: ctx.runId,
|
|
1293
|
+
'namzu.jobs.stopped': stopped.length,
|
|
1294
|
+
});
|
|
1295
|
+
}
|
|
1296
|
+
}
|
|
1297
|
+
catch (jobErr) {
|
|
1298
|
+
ctx.log.error('A background job did not stop cleanly', {
|
|
1299
|
+
[NAMZU.RUN_ID]: ctx.runId,
|
|
1300
|
+
...errorAttributes(jobErr),
|
|
1301
|
+
});
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1008
1304
|
// Same reasoning for the question channel: the tools outlive the
|
|
1009
1305
|
// run that bound them, so leaving it attached would have a later
|
|
1010
1306
|
// run's question written into this run's checkpoint store.
|
|
@@ -1022,8 +1318,8 @@ export async function* query(params) {
|
|
|
1022
1318
|
}
|
|
1023
1319
|
catch (promoteErr) {
|
|
1024
1320
|
ctx.log.error('Memory promotion threw — the run is unaffected', {
|
|
1025
|
-
|
|
1026
|
-
|
|
1321
|
+
[NAMZU.RUN_ID]: ctx.runId,
|
|
1322
|
+
'exception.message': promoteErr instanceof Error ? promoteErr.message : String(promoteErr),
|
|
1027
1323
|
});
|
|
1028
1324
|
}
|
|
1029
1325
|
}
|
|
@@ -1037,12 +1333,12 @@ export async function* query(params) {
|
|
|
1037
1333
|
runId: ctx.runId,
|
|
1038
1334
|
sandboxId,
|
|
1039
1335
|
});
|
|
1040
|
-
ctx.log.info('Sandbox destroyed', { sandboxId });
|
|
1336
|
+
ctx.log.info('Sandbox destroyed', { 'namzu.sandbox.id': sandboxId });
|
|
1041
1337
|
}
|
|
1042
1338
|
catch (destroyErr) {
|
|
1043
1339
|
ctx.log.error('Sandbox destroy failed', {
|
|
1044
|
-
sandboxId,
|
|
1045
|
-
|
|
1340
|
+
'namzu.sandbox.id': sandboxId,
|
|
1341
|
+
'exception.message': destroyErr instanceof Error ? destroyErr.message : String(destroyErr),
|
|
1046
1342
|
});
|
|
1047
1343
|
}
|
|
1048
1344
|
}
|