@namzu/sdk 27.0.0 → 28.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 +1714 -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 -5
- 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 -14
- 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 +99 -28
- 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/adapter.d.ts +30 -0
- package/dist/connector/mcp/adapter.d.ts.map +1 -1
- package/dist/connector/mcp/adapter.js +43 -1
- package/dist/connector/mcp/adapter.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 +54 -54
- package/dist/contracts/api.d.ts +12 -1
- package/dist/contracts/api.d.ts.map +1 -1
- package/dist/contracts/schemas.d.ts +12 -12
- package/dist/deprecated-aliases.d.ts +80 -0
- package/dist/deprecated-aliases.d.ts.map +1 -0
- package/dist/deprecated-aliases.js +60 -0
- package/dist/deprecated-aliases.js.map +1 -0
- 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 +79 -15
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +173 -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 +1 -0
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +46 -13
- 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 +33 -0
- package/dist/registry/tool/screen.d.ts.map +1 -0
- package/dist/registry/tool/screen.js +103 -0
- package/dist/registry/tool/screen.js.map +1 -0
- 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 +30 -1
- package/dist/runtime/query/guardrail-presets.d.ts.map +1 -1
- package/dist/runtime/query/guardrail-presets.js +59 -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 +140 -16
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +379 -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 +2 -2
- package/dist/session/handoff/broadcast.d.ts.map +1 -1
- package/dist/session/handoff/broadcast.js +7 -7
- package/dist/session/handoff/broadcast.js.map +1 -1
- package/dist/session/handoff/single.d.ts +4 -4
- package/dist/session/handoff/single.d.ts.map +1 -1
- package/dist/session/handoff/single.js +4 -4
- 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 +50 -19
- package/dist/session/migration/id-prefix.d.ts.map +1 -1
- package/dist/session/migration/id-prefix.js +54 -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 +25 -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/computer-use.d.ts +8 -8
- 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 +24 -3
- package/dist/types/agent/reactive.d.ts.map +1 -1
- package/dist/types/agent/{gateway.d.ts → scheduler.d.ts} +41 -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 +23 -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/authorization/index.d.ts +634 -0
- package/dist/types/authorization/index.d.ts.map +1 -0
- package/dist/types/authorization/index.js +103 -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 +19 -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 +74 -1
- package/dist/types/guardrail/index.d.ts.map +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 +98 -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 +2 -2
- 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 +29 -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 +3 -1
- package/dist/types/session/ids.d.ts.map +1 -1
- package/dist/types/session/index.d.ts +4 -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 +55 -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 +186 -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 +90 -2
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +113 -5
- 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 -13
- package/src/agents/RouterAgent.ts +33 -21
- package/src/agents/SupervisorAgent.ts +51 -26
- 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/adapter.ts +51 -1
- 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/deprecated-aliases.ts +86 -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 +16 -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 +378 -14
- 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 +52 -13
- package/src/registry/tool/presentation.ts +116 -0
- package/src/registry/tool/screen.ts +132 -0
- 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 +61 -14
- package/src/runtime/query/guardrails.ts +16 -12
- package/src/runtime/query/index.ts +579 -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 +9 -9
- package/src/session/handoff/single.ts +8 -8
- package/src/session/migration/filesystem.ts +46 -2
- package/src/session/migration/id-prefix.ts +60 -22
- package/src/session/migration/index.ts +5 -0
- package/src/session/migration/marker.ts +19 -4
- package/src/session/retention/archive.ts +32 -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 +27 -3
- package/src/types/agent/{gateway.ts → scheduler.ts} +41 -4
- package/src/types/agent/supervisor.ts +26 -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 +79 -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 +26 -2
- package/src/types/connector/mcp.ts +8 -0
- package/src/types/guardrail/index.ts +72 -1
- package/src/types/hitl/policy.ts +83 -0
- package/src/types/ids/brand.ts +58 -0
- package/src/types/ids/index.ts +109 -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 +31 -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 +2 -0
- package/src/types/session/index.ts +2 -0
- package/src/types/session/store.ts +53 -22
- package/src/types/session/sub-session.ts +50 -9
- package/src/types/skills/index.ts +50 -0
- package/src/types/tool/index.ts +171 -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 +172 -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 +0 -317
- 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,12 @@ 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 { pickRenamed } from '../../utils/renamed-field.js';
|
|
36
|
+
import { AUTO_APPROVE_POLICY_NAME, createRunApprovalPolicy } from './approval-policy.js';
|
|
28
37
|
import { CheckpointManager } from './checkpoint.js';
|
|
29
38
|
import { RunContextFactory } from './context.js';
|
|
30
39
|
import { EventTranslator } from './events.js';
|
|
@@ -36,6 +45,7 @@ import { isWorkingMemoryMessage } from './iteration/phases/working-memory.js';
|
|
|
36
45
|
import { applyLifecycleHookResults } from './plugin-hooks.js';
|
|
37
46
|
import { PromptBuilder } from './prompt.js';
|
|
38
47
|
import { PendingAnswers, QuestionParkBinding } from './question-park.js';
|
|
48
|
+
import { RepeatCallTracker } from './repeat-call.js';
|
|
39
49
|
import { ResultAssembler } from './result.js';
|
|
40
50
|
import { applyPendingResume, planCrashResume, planPendingResume, recoverCompletedCalls, unansweredToolCalls, } from './resume-pending.js';
|
|
41
51
|
import { ToolGrantSet } from './tool-grants.js';
|
|
@@ -117,14 +127,93 @@ function assertBudgetIsMeasurable(params) {
|
|
|
117
127
|
details: { model, providerId: params.provider.id, costLimitUsd: limit },
|
|
118
128
|
});
|
|
119
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Ask the driver what this model's window is, and never let the answer
|
|
132
|
+
* cost the run.
|
|
133
|
+
*
|
|
134
|
+
* Three outcomes collapse to two here on purpose. No member and a resolved
|
|
135
|
+
* `undefined` both mean "no answer" — the distinction matters to a driver
|
|
136
|
+
* author, not to a caller about to fall through to the table. A rejection
|
|
137
|
+
* is the third, and it is logged rather than propagated: a run that would
|
|
138
|
+
* have worked on the table must not fail because a listing endpoint was
|
|
139
|
+
* down.
|
|
140
|
+
*/
|
|
141
|
+
async function resolveProviderContextWindow(provider, model, signal, log) {
|
|
142
|
+
if (!provider.resolveContextWindow || !model)
|
|
143
|
+
return undefined;
|
|
144
|
+
try {
|
|
145
|
+
const reported = await provider.resolveContextWindow(model, signal);
|
|
146
|
+
return typeof reported === 'number' && reported > 0 ? reported : undefined;
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
log.debug('Provider could not report a context window; using the table', {
|
|
150
|
+
'namzu.model.id': model,
|
|
151
|
+
'namzu.error.message': toErrorMessage(err),
|
|
152
|
+
});
|
|
153
|
+
return undefined;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
120
156
|
export async function* query(params) {
|
|
157
|
+
// Resolved at the DOOR, before a run id exists or a logger is built.
|
|
158
|
+
// A caller who set both spellings of a renamed field has a config bug,
|
|
159
|
+
// and refusing it here costs them nothing; refusing it at the read site
|
|
160
|
+
// deep in the loop turns the same bug into a mid-run failure, after a
|
|
161
|
+
// provider call has been paid for and a partial transcript written.
|
|
162
|
+
const promptCache = pickRenamed('contextCache', params.contextCache, 'promptCache', params.promptCache);
|
|
163
|
+
const taskScheduler = pickRenamed('taskGateway', params.taskGateway, 'taskScheduler', params.taskScheduler);
|
|
164
|
+
// The run's one correlated logger, built before anything below needs
|
|
165
|
+
// one — the migration check, the retry/fallback wrappers and `ctx`
|
|
166
|
+
// itself all read this SAME object, so a retry warning and the run
|
|
167
|
+
// record it retried for carry the identical `namzu.run.id` instead of
|
|
168
|
+
// three separate `getRootLogger()` reads that happened to agree by
|
|
169
|
+
// accident. `runId` is resolved here, once, rather than left to
|
|
170
|
+
// `build`'s own `config.runId ?? generateRunId()` fallback —
|
|
171
|
+
// generating it twice would silently hand the log and the run two
|
|
172
|
+
// different ids.
|
|
173
|
+
const runId = params.runId ?? generateRunId();
|
|
174
|
+
const log = RunContextFactory.buildLogger({
|
|
175
|
+
agentName: params.agentName,
|
|
176
|
+
runConfig: params.runConfig,
|
|
177
|
+
runId,
|
|
178
|
+
parentRunId: params.parentRunId,
|
|
179
|
+
sessionId: params.sessionId,
|
|
180
|
+
topicId: params.topicId,
|
|
181
|
+
projectId: params.projectId,
|
|
182
|
+
tenantId: params.tenantId,
|
|
183
|
+
});
|
|
121
184
|
// Boot-time filesystem migration (session-hierarchy.md §13.4.1). First
|
|
122
185
|
// call per process per root actually runs; subsequent calls short-circuit
|
|
123
186
|
// via the in-memory guard in `context.ts`. Kept here rather than inside
|
|
124
187
|
// the synchronous `RunContextFactory.build` so the factory signature stays
|
|
125
188
|
// sync for tests / non-async call sites.
|
|
189
|
+
//
|
|
190
|
+
// The migrator built here — not `ensureMigrated`'s own default — is what
|
|
191
|
+
// turns the migration facts `DefaultFilesystemMigrator` already computes
|
|
192
|
+
// into a `namzu.migration.completed` record instead of discarding them.
|
|
193
|
+
// `ensureMigrated`'s default parameter stays
|
|
194
|
+
// `NOOP_FILESYSTEM_MIGRATION_SINK` (see `context.ts`), so any other path
|
|
195
|
+
// that reaches `ensureMigrated` keeps today's silent behaviour.
|
|
126
196
|
const cwdForMigration = params.workingDirectory ?? process.cwd();
|
|
127
|
-
await RunContextFactory.ensureMigrated(`${cwdForMigration}/.namzu
|
|
197
|
+
const migrationResult = await RunContextFactory.ensureMigrated(`${cwdForMigration}/.namzu`, new DefaultFilesystemMigrator(loggingMigrationSink(log)));
|
|
198
|
+
// `loggingMigrationSink` only ever hears about `kind: 'migrated'` — the
|
|
199
|
+
// only outcome `DefaultFilesystemMigrator` ever hands its sink (see the
|
|
200
|
+
// module doc on `FilesystemMigrationSink`). The other two are logged
|
|
201
|
+
// here, straight off the resolved result, rather than by widening
|
|
202
|
+
// `FilesystemMigrationEvent` to carry them: a wider union would need a
|
|
203
|
+
// new arm in every exhaustive switch already written over it — a major —
|
|
204
|
+
// for two outcomes `migrationResult.kind` already fully describes.
|
|
205
|
+
if (migrationResult.kind !== 'migrated') {
|
|
206
|
+
log.debug('filesystem migration: nothing to do', {
|
|
207
|
+
[EVENT_NAME_ATTRIBUTE]: BOOT_EVENT_NAMES.MIGRATION_COMPLETED,
|
|
208
|
+
// `namzu.migration.*`, matching `loggingMigrationSink` — the OTHER
|
|
209
|
+
// emitter of this same event name. Two emitters of one event writing
|
|
210
|
+
// two namespaces for the same fact is precisely the collision the
|
|
211
|
+
// namespaced-key rule exists to stop, and a per-module derivation is
|
|
212
|
+
// how it would be reintroduced.
|
|
213
|
+
'namzu.migration.kind': migrationResult.kind,
|
|
214
|
+
'namzu.migration.marker_path': migrationResult.markerPath,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
128
217
|
// Every model call in the run — the loop's turns, the forced-final
|
|
129
218
|
// summary, advisory and compaction side calls — goes through this one
|
|
130
219
|
// wrapped provider, so the retry policy cannot be bypassed by a code
|
|
@@ -149,9 +238,7 @@ export async function* query(params) {
|
|
|
149
238
|
];
|
|
150
239
|
assertCostIsAttributable(chain, params.pricing);
|
|
151
240
|
assertBudgetIsMeasurable(params);
|
|
152
|
-
const withRetry = (provider) => params.retry === false
|
|
153
|
-
? provider
|
|
154
|
-
: withProviderRetry(provider, { config: params.retry, log: getRootLogger() });
|
|
241
|
+
const withRetry = (provider) => params.retry === false ? provider : withProviderRetry(provider, { config: params.retry, log });
|
|
155
242
|
// Who is serving right now, for the run RECORD rather than for the request.
|
|
156
243
|
//
|
|
157
244
|
// It starts at the head and moves only when the chain does, which is the
|
|
@@ -163,7 +250,7 @@ export async function* query(params) {
|
|
|
163
250
|
current: { index: 0, providerId: params.provider.id },
|
|
164
251
|
};
|
|
165
252
|
const resilientProvider = withProviderFallback(chain.map((member) => ({ ...member, provider: withRetry(member.provider) })), {
|
|
166
|
-
log
|
|
253
|
+
log,
|
|
167
254
|
onSwap: (to) => {
|
|
168
255
|
serving.current = to;
|
|
169
256
|
// `ctx` is declared below and is initialized before anything can
|
|
@@ -172,7 +259,62 @@ export async function* query(params) {
|
|
|
172
259
|
ctx.runMgr.setServingProvider(to.providerId);
|
|
173
260
|
},
|
|
174
261
|
});
|
|
262
|
+
// Asked ONCE, here, before the loop exists. Both readers are synchronous
|
|
263
|
+
// and hot, so this can never move inside the iteration — and a driver
|
|
264
|
+
// that rejects, or one that hangs until the run is cancelled, must not
|
|
265
|
+
// take down a run the table could have served perfectly well. That is
|
|
266
|
+
// why the failure path is a swallow with a log rather than a throw: the
|
|
267
|
+
// window is an optimisation over a working default, not a prerequisite.
|
|
268
|
+
const providerContextWindow = await resolveProviderContextWindow(resilientProvider, params.runConfig.model, params.signal, log);
|
|
269
|
+
// The mode this conversation was left in, when the run config names none.
|
|
270
|
+
// Read once, before the loop exists, for the same reason the context
|
|
271
|
+
// window is: the executor's resolver is synchronous and hot.
|
|
272
|
+
//
|
|
273
|
+
// A store that throws is not a run failure — the run falls back to the
|
|
274
|
+
// config's answer, which is exactly what it did before this existed.
|
|
275
|
+
const topicState = params.topicStateStore
|
|
276
|
+
? await params.topicStateStore
|
|
277
|
+
.getState(params.topicId, params.tenantId)
|
|
278
|
+
.catch((err) => {
|
|
279
|
+
log.debug('Could not read the topic state; using the run config', {
|
|
280
|
+
'namzu.topic.id': params.topicId,
|
|
281
|
+
'namzu.error.message': toErrorMessage(err),
|
|
282
|
+
});
|
|
283
|
+
return null;
|
|
284
|
+
})
|
|
285
|
+
: null;
|
|
286
|
+
// Whatever a host left for "the next run", taken and cleared in one
|
|
287
|
+
// compare-and-set write. Prepended to the messages this run starts from,
|
|
288
|
+
// so it is in the FIRST request rather than arriving a turn late.
|
|
289
|
+
//
|
|
290
|
+
// Cleared as it is read: a queue read and cleared separately re-delivers
|
|
291
|
+
// on a crash between the two, and "start with this" arriving twice is a
|
|
292
|
+
// different instruction from the one that was left.
|
|
293
|
+
const queuedForThisRun = params.topicStateStore
|
|
294
|
+
? await drainQueuedMessages(params.topicStateStore, params.topicId, params.tenantId).catch((err) => {
|
|
295
|
+
log.debug('Could not drain the topic queue; starting without it', {
|
|
296
|
+
'namzu.topic.id': params.topicId,
|
|
297
|
+
'namzu.error.message': toErrorMessage(err),
|
|
298
|
+
});
|
|
299
|
+
return [];
|
|
300
|
+
})
|
|
301
|
+
: [];
|
|
302
|
+
// One effective list, used everywhere the run is seeded from. Three
|
|
303
|
+
// branches below push from it, and computing it at each would be three
|
|
304
|
+
// places to forget the queue.
|
|
305
|
+
//
|
|
306
|
+
// Stored attachments are resolved HERE, once, before the messages reach
|
|
307
|
+
// the run record. Resolving later — at the provider boundary — would put
|
|
308
|
+
// refs in the durable transcript and in every checkpoint, and a run
|
|
309
|
+
// resumed against a store that had since forgotten a ref would fail
|
|
310
|
+
// replaying its own history rather than at the moment somebody asked for
|
|
311
|
+
// the bytes. Every failure refuses: a message that silently lost its
|
|
312
|
+
// image is a model answering about a picture it never saw.
|
|
313
|
+
const seeded = queuedForThisRun.length > 0 ? [...queuedForThisRun, ...params.messages] : params.messages;
|
|
314
|
+
const initialMessages = [...(await resolveAttachments(seeded, params.attachmentStore))];
|
|
175
315
|
const ctx = RunContextFactory.build({
|
|
316
|
+
...(topicState ? { topicPermissionMode: topicState.permissionMode } : {}),
|
|
317
|
+
...(params.permissionModeRef ? { permissionModeRef: params.permissionModeRef } : {}),
|
|
176
318
|
agentId: params.agentId,
|
|
177
319
|
agentName: params.agentName,
|
|
178
320
|
runConfig: params.runConfig,
|
|
@@ -180,21 +322,49 @@ export async function* query(params) {
|
|
|
180
322
|
workingDirectory: params.workingDirectory,
|
|
181
323
|
pricing: params.pricing,
|
|
182
324
|
enableActivityTracking: params.enableActivityTracking,
|
|
183
|
-
messages:
|
|
325
|
+
messages: initialMessages,
|
|
184
326
|
signal: params.signal,
|
|
185
327
|
sessionId: params.sessionId,
|
|
186
|
-
|
|
328
|
+
topicId: params.topicId,
|
|
187
329
|
projectId: params.projectId,
|
|
188
330
|
tenantId: params.tenantId,
|
|
189
331
|
pathBuilder: params.pathBuilder,
|
|
190
332
|
checkpointStore: params.checkpointStore,
|
|
191
333
|
runStore: params.runStore,
|
|
192
|
-
runId
|
|
334
|
+
runId,
|
|
193
335
|
parentRunId: params.parentRunId,
|
|
194
336
|
depth: params.depth,
|
|
337
|
+
log,
|
|
338
|
+
});
|
|
339
|
+
// Built here because the plan-approval closure below captures it, and
|
|
340
|
+
// its `emit` resolves `eventTranslator` at CALL time — the translator is
|
|
341
|
+
// a `const` some lines further down.
|
|
342
|
+
//
|
|
343
|
+
// The HANDOUT is therefore deliberately NOT here. A host given the box
|
|
344
|
+
// at this point can call `set` synchronously, `emit` reaches
|
|
345
|
+
// `eventTranslator` inside its temporal dead zone, and the run dies
|
|
346
|
+
// before it starts. That is not hypothetical: it is what the first
|
|
347
|
+
// version of this did, and the test that hands out the box and
|
|
348
|
+
// immediately swaps the policy is the one that found it.
|
|
349
|
+
const approvalPolicy = createRunApprovalPolicy({
|
|
350
|
+
runId: ctx.runId,
|
|
351
|
+
initial: {
|
|
352
|
+
// By identity against the default, not by presence. `resumeHandler`
|
|
353
|
+
// is REQUIRED on `QueryParams` — `drainQuery` substitutes
|
|
354
|
+
// `autoApproveHandler` before calling here — so "is it set" is
|
|
355
|
+
// always yes and would name every run `host`, including the ones
|
|
356
|
+
// approving everything unattended. Identity is what actually
|
|
357
|
+
// separates the two.
|
|
358
|
+
name: params.approvalPolicyName ??
|
|
359
|
+
(params.resumeHandler === autoApproveHandler ? AUTO_APPROVE_POLICY_NAME : 'host'),
|
|
360
|
+
handler: params.resumeHandler,
|
|
361
|
+
},
|
|
362
|
+
emit: (event) => eventTranslator.emitEvent(event),
|
|
195
363
|
});
|
|
196
364
|
ctx.planManager.setApprovalHandler(async (request) => {
|
|
197
|
-
|
|
365
|
+
// `.current.handler`, never a captured `params.resumeHandler`. That
|
|
366
|
+
// capture is what made changing the policy mean ending the run.
|
|
367
|
+
const decision = await approvalPolicy.current.handler({
|
|
198
368
|
type: 'plan_approval',
|
|
199
369
|
runId: ctx.runId,
|
|
200
370
|
checkpointId: `cp_plan_${request.planId}`,
|
|
@@ -228,7 +398,7 @@ export async function* query(params) {
|
|
|
228
398
|
}
|
|
229
399
|
return { approved: false, feedback: `Action: ${decision.action}` };
|
|
230
400
|
});
|
|
231
|
-
const eventTranslator = new EventTranslator(ctx.runMgr);
|
|
401
|
+
const eventTranslator = new EventTranslator(ctx.runMgr, undefined, ctx.log);
|
|
232
402
|
eventTranslator.wireActivityStore(ctx.activityStore, ctx.runId);
|
|
233
403
|
eventTranslator.wirePlanManager(ctx.planManager, ctx.runId);
|
|
234
404
|
const unsubscribeTaskStore = params.taskStore
|
|
@@ -287,9 +457,10 @@ export async function* query(params) {
|
|
|
287
457
|
details: { providerId: params.provider.id, capability: 'tools', registeredToolCount },
|
|
288
458
|
});
|
|
289
459
|
}
|
|
290
|
-
ctx.log.warn(
|
|
291
|
-
|
|
292
|
-
|
|
460
|
+
ctx.log.warn('Capability mismatch: the provider declares no tool support', {
|
|
461
|
+
'namzu.capability.detail': message,
|
|
462
|
+
[GENAI.SYSTEM]: params.provider.id,
|
|
463
|
+
'namzu.runtime.registered_tool_count': registeredToolCount,
|
|
293
464
|
});
|
|
294
465
|
}
|
|
295
466
|
if (attachmentMessageCount > 0) {
|
|
@@ -301,9 +472,10 @@ export async function* query(params) {
|
|
|
301
472
|
details: { providerId: params.provider.id, capability: 'vision', attachmentMessageCount },
|
|
302
473
|
});
|
|
303
474
|
}
|
|
304
|
-
ctx.log.warn(
|
|
305
|
-
|
|
306
|
-
|
|
475
|
+
ctx.log.warn('Capability mismatch: the provider declares no vision support', {
|
|
476
|
+
'namzu.capability.detail': message,
|
|
477
|
+
[GENAI.SYSTEM]: params.provider.id,
|
|
478
|
+
'namzu.runtime.attachment_message_count': attachmentMessageCount,
|
|
307
479
|
});
|
|
308
480
|
}
|
|
309
481
|
if (documentMessageCount > 0) {
|
|
@@ -315,14 +487,30 @@ export async function* query(params) {
|
|
|
315
487
|
details: { providerId: params.provider.id, capability: 'documents', documentMessageCount },
|
|
316
488
|
});
|
|
317
489
|
}
|
|
318
|
-
ctx.log.warn(
|
|
319
|
-
|
|
320
|
-
|
|
490
|
+
ctx.log.warn('Capability mismatch: the provider declares no document support', {
|
|
491
|
+
'namzu.capability.detail': message,
|
|
492
|
+
[GENAI.SYSTEM]: params.provider.id,
|
|
493
|
+
'namzu.runtime.document_message_count': documentMessageCount,
|
|
321
494
|
});
|
|
322
495
|
}
|
|
323
|
-
|
|
496
|
+
// Denied names are subtracted LAST, after the allow-list is resolved
|
|
497
|
+
// against the registry — so a deny reaches a run that named no
|
|
498
|
+
// allow-list at all, which is the ordinary case for a delegated child.
|
|
499
|
+
// Applied to `effectiveAllowedTools`, which `query()` binds to both the
|
|
500
|
+
// request tool list AND the `ToolExecutor`: narrowing only the request
|
|
501
|
+
// shows the model fewer tools and lets it call any of them by name.
|
|
502
|
+
const allowedBeforeDenial = stripToolSurfaces
|
|
324
503
|
? []
|
|
325
504
|
: withDeferredDiscoveryTool(params.tools, params.allowedTools);
|
|
505
|
+
const denied = new Set(params.deniedTools ?? []);
|
|
506
|
+
const effectiveAllowedTools = denied.size === 0
|
|
507
|
+
? allowedBeforeDenial
|
|
508
|
+
: // An absent allow-list means "every registered tool", so a deny
|
|
509
|
+
// with no allow-list has to be resolved against the registry
|
|
510
|
+
// here — otherwise the subtraction would be from an empty list
|
|
511
|
+
// and would deny nothing, which is the shape a delegated child
|
|
512
|
+
// arrives in.
|
|
513
|
+
[...(allowedBeforeDenial ?? params.tools.listNames())].filter((name) => !denied.has(name));
|
|
326
514
|
// The two halves of a durable pause, owned by the RUN when the host
|
|
327
515
|
// does not own them.
|
|
328
516
|
//
|
|
@@ -349,12 +537,18 @@ export async function* query(params) {
|
|
|
349
537
|
tools: params.tools,
|
|
350
538
|
runId: ctx.runId,
|
|
351
539
|
workingDirectory: ctx.cwd,
|
|
352
|
-
permissionMode: ctx.permissionMode,
|
|
540
|
+
permissionMode: () => ctx.permissionMode.current,
|
|
353
541
|
env: params.runConfig.env ?? {},
|
|
354
542
|
abortSignal: ctx.abortController.signal,
|
|
355
543
|
allowedTools: effectiveAllowedTools,
|
|
356
544
|
invocationState: params.invocationState,
|
|
357
545
|
pluginManager: params.pluginManager,
|
|
546
|
+
...(params.backgroundJobs ? { backgroundJobs: params.backgroundJobs } : {}),
|
|
547
|
+
// The `skill` tool's registry. Threaded from the run rather than
|
|
548
|
+
// held by the tool, because a tool that reached for a module-level
|
|
549
|
+
// registry would answer about whatever the last run configured.
|
|
550
|
+
...(params.skillRegistry ? { skills: params.skillRegistry } : {}),
|
|
551
|
+
...(params.web ? { web: params.web } : {}),
|
|
358
552
|
...(params.toolTimeoutMs !== undefined ? { toolTimeoutMs: params.toolTimeoutMs } : {}),
|
|
359
553
|
...(params.toolRetryBackoff !== undefined
|
|
360
554
|
? { toolRetryBackoff: params.toolRetryBackoff }
|
|
@@ -381,7 +575,7 @@ export async function* query(params) {
|
|
|
381
575
|
toolPause: (toolUseId) => createToolPause({
|
|
382
576
|
runId: ctx.runId,
|
|
383
577
|
toolUseId,
|
|
384
|
-
parkHandler:
|
|
578
|
+
parkHandler: (request) => approvalPolicy.current.handler(request),
|
|
385
579
|
recorder: questionParks,
|
|
386
580
|
pendingAnswers,
|
|
387
581
|
}),
|
|
@@ -399,6 +593,7 @@ export async function* query(params) {
|
|
|
399
593
|
tools: params.tools,
|
|
400
594
|
allowedTools: effectiveAllowedTools,
|
|
401
595
|
runtimeContext: params.runtimeContext,
|
|
596
|
+
...(params.promptContributions ? { contributions: params.promptContributions } : {}),
|
|
402
597
|
});
|
|
403
598
|
const guard = new GuardCoordinator({
|
|
404
599
|
tokenBudget: params.runConfig.tokenBudget,
|
|
@@ -426,6 +621,10 @@ export async function* query(params) {
|
|
|
426
621
|
// Read at settle time, not now: checkpoints are written per
|
|
427
622
|
// iteration, so the answer changes as the run proceeds.
|
|
428
623
|
resumeCheckpointId: () => checkpointMgr.lastCheckpointId,
|
|
624
|
+
// Read only to recover WHY a cancellation happened. The run loop
|
|
625
|
+
// already knows THAT it was cancelled; the origin lives on the abort
|
|
626
|
+
// reason and nothing else carries it this far.
|
|
627
|
+
signal: ctx.abortController.signal,
|
|
429
628
|
});
|
|
430
629
|
let advisoryCtx;
|
|
431
630
|
if (params.advisory && params.advisory.advisors.length > 0) {
|
|
@@ -470,8 +669,15 @@ export async function* query(params) {
|
|
|
470
669
|
}
|
|
471
670
|
}
|
|
472
671
|
}
|
|
473
|
-
|
|
474
|
-
|
|
672
|
+
// One resolve, one construction. Four sites read this field, and had
|
|
673
|
+
// each read `params.verificationGate` directly a host that set only the
|
|
674
|
+
// new name would get a gate on one path and none on another — which for
|
|
675
|
+
// an AUTHORIZATION gate means a tool call permitted somewhere it should
|
|
676
|
+
// have been refused. That is the failure this field's window has to not
|
|
677
|
+
// have.
|
|
678
|
+
const gateConfig = pickRenamed('verificationGate', params.verificationGate, 'authorizationGate', params.authorizationGate);
|
|
679
|
+
const verificationGate = gateConfig?.enabled
|
|
680
|
+
? new AuthorizationGate(gateConfig, ctx.log)
|
|
475
681
|
: undefined;
|
|
476
682
|
const iterationOrchestrator = new IterationOrchestrator({
|
|
477
683
|
provider: resilientProvider,
|
|
@@ -479,6 +685,7 @@ export async function* query(params) {
|
|
|
479
685
|
runConfig: params.runConfig,
|
|
480
686
|
...(params.stopWhen ? { stopWhen: params.stopWhen } : {}),
|
|
481
687
|
...(params.prepareStep ? { prepareStep: params.prepareStep } : {}),
|
|
688
|
+
...(params.beforeStep ? { beforeStep: params.beforeStep } : {}),
|
|
482
689
|
...(params.onStepFinish ? { onStepFinish: params.onStepFinish } : {}),
|
|
483
690
|
...(params.reviewAnswer ? { reviewAnswer: params.reviewAnswer } : {}),
|
|
484
691
|
...(params.maxAnswerReviews !== undefined ? { maxAnswerReviews: params.maxAnswerReviews } : {}),
|
|
@@ -496,17 +703,27 @@ export async function* query(params) {
|
|
|
496
703
|
drainPending: () => eventTranslator.drainPending(),
|
|
497
704
|
abortController: ctx.abortController,
|
|
498
705
|
log: ctx.log,
|
|
499
|
-
|
|
706
|
+
// Read through the box on every call, so a swap lands on the next
|
|
707
|
+
// question rather than the next run.
|
|
708
|
+
resumeHandler: (request) => approvalPolicy.current.handler(request),
|
|
709
|
+
takeApprovalPolicyChange: () => approvalPolicy.takeUnannouncedChange(),
|
|
710
|
+
...(params.promptContributions ? { promptContributions: params.promptContributions } : {}),
|
|
500
711
|
...(params.steering ? { steering: params.steering } : {}),
|
|
501
712
|
checkpointMgr,
|
|
502
713
|
planManager: ctx.planManager,
|
|
503
|
-
taskGateway:
|
|
714
|
+
taskGateway: taskScheduler,
|
|
504
715
|
completionInbox: params.completionInbox,
|
|
505
716
|
taskStore: params.taskStore,
|
|
506
717
|
// Run-scoped. An approval is a statement about this run's work;
|
|
507
718
|
// carrying one into a later run would be reuse nobody agreed to.
|
|
508
719
|
toolGrants: new ToolGrantSet(),
|
|
720
|
+
// Run-scoped for the same reason. A repeat count carried into a later
|
|
721
|
+
// run is a claim about work nobody repeated, and a module-level map
|
|
722
|
+
// would leak exactly that way.
|
|
723
|
+
...(params.repeatCallAdvisory === false ? {} : { repeatCalls: new RepeatCallTracker() }),
|
|
509
724
|
compactionConfig: params.compactionConfig,
|
|
725
|
+
...(params.inboundMessages ? { inboundMessages: params.inboundMessages } : {}),
|
|
726
|
+
...(providerContextWindow !== undefined ? { providerContextWindow } : {}),
|
|
510
727
|
workingStateManager,
|
|
511
728
|
taskRouter: params.taskRouter,
|
|
512
729
|
contextReducer: params.contextReducer,
|
|
@@ -585,9 +802,9 @@ export async function* query(params) {
|
|
|
585
802
|
// because a host building an approval queue from durable
|
|
586
803
|
// state will not see this question.
|
|
587
804
|
ctx.log.error('Failed to record a question park — it is not resumable', {
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
805
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
806
|
+
'namzu.runtime.question_id': question.questionId,
|
|
807
|
+
'exception.message': err instanceof Error ? err.message : String(err),
|
|
591
808
|
});
|
|
592
809
|
return null;
|
|
593
810
|
}
|
|
@@ -595,9 +812,9 @@ export async function* query(params) {
|
|
|
595
812
|
resolve: async (checkpointId, decision) => {
|
|
596
813
|
await checkpointMgr.unpark(checkpointId, decision).catch((err) => {
|
|
597
814
|
ctx.log.error('Failed to clear a recorded question park', {
|
|
598
|
-
|
|
599
|
-
checkpointId,
|
|
600
|
-
|
|
815
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
816
|
+
'namzu.checkpoint.id': checkpointId,
|
|
817
|
+
'exception.message': err instanceof Error ? err.message : String(err),
|
|
601
818
|
});
|
|
602
819
|
return null;
|
|
603
820
|
});
|
|
@@ -651,13 +868,13 @@ export async function* query(params) {
|
|
|
651
868
|
// callback actually makes.
|
|
652
869
|
params.onContextCreated?.({ planManager: ctx.planManager });
|
|
653
870
|
ctx.log.info('Starting query', {
|
|
654
|
-
|
|
655
|
-
agent: params.agentName,
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
871
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
872
|
+
'namzu.runtime.agent': params.agentName,
|
|
873
|
+
[GENAI.REQUEST_MODEL]: params.runConfig.model,
|
|
874
|
+
'namzu.runtime.token_budget': params.runConfig.tokenBudget,
|
|
875
|
+
'namzu.runtime.activity_tracking': ctx.activityStore.enabled,
|
|
876
|
+
'namzu.runtime.permission_mode': ctx.permissionMode.current,
|
|
877
|
+
'namzu.runtime.resume_from_checkpoint': params.resumeFromCheckpoint ?? null,
|
|
661
878
|
});
|
|
662
879
|
const contextLevel = params.contextLevel ?? 'full';
|
|
663
880
|
const cacheInput = {
|
|
@@ -668,13 +885,14 @@ export async function* query(params) {
|
|
|
668
885
|
tools: params.tools,
|
|
669
886
|
allowedTools: effectiveAllowedTools,
|
|
670
887
|
runtimeContext: params.runtimeContext,
|
|
888
|
+
...(params.promptContributions ? { contributions: params.promptContributions } : {}),
|
|
671
889
|
};
|
|
672
|
-
const segments =
|
|
673
|
-
?
|
|
890
|
+
const segments = promptCache
|
|
891
|
+
? promptCache.getSystemPromptSegmented(cacheInput, contextLevel, params.workingDirectory)
|
|
674
892
|
: promptBuilder.buildSegmented(contextLevel, params.workingDirectory);
|
|
675
893
|
ctx.log.info('Prompt segments assembled', {
|
|
676
|
-
|
|
677
|
-
|
|
894
|
+
'namzu.runtime.static_length': segments.static.length,
|
|
895
|
+
'namzu.runtime.dynamic_length': segments.dynamic.length,
|
|
678
896
|
});
|
|
679
897
|
const pushSystemMessages = () => {
|
|
680
898
|
ctx.runMgr.pushMessage(createSystemMessage(segments.static, 'cache'));
|
|
@@ -709,18 +927,18 @@ export async function* query(params) {
|
|
|
709
927
|
const revived = restoreWorkingState(checkpoint.workingState, params.compactionConfig);
|
|
710
928
|
workingStateManager.replaceState(revived.getState());
|
|
711
929
|
ctx.log.info('Restored compaction working state from checkpoint', {
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
slots: workingStateManager.slotCount(),
|
|
930
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
931
|
+
'namzu.checkpoint.id': checkpoint.id,
|
|
932
|
+
'namzu.runtime.slots': workingStateManager.slotCount(),
|
|
715
933
|
});
|
|
716
934
|
}
|
|
717
935
|
ctx.log.info('Restored budgets from checkpoint', {
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
936
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
937
|
+
'namzu.checkpoint.id': checkpoint.id,
|
|
938
|
+
'namzu.usage.total_tokens': checkpoint.tokenUsage.totalTokens,
|
|
939
|
+
'namzu.runtime.total_cost': checkpoint.costInfo.totalCost,
|
|
940
|
+
[NAMZU.ITERATION]: checkpoint.guardState.iterationCount,
|
|
941
|
+
'namzu.runtime.elapsed_ms': checkpoint.guardState.elapsedMs,
|
|
724
942
|
});
|
|
725
943
|
pushSystemMessages();
|
|
726
944
|
// A human answered the park in a different process; apply that
|
|
@@ -768,11 +986,11 @@ export async function* query(params) {
|
|
|
768
986
|
: removeDanglingMessages(checkpoint.messages);
|
|
769
987
|
if (!dangling.isValid && !pendingResume) {
|
|
770
988
|
ctx.log.warn('Checkpoint contained unanswered tool calls — repaired on restore', {
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
removed: checkpoint.messages.length - restoredMessages.length,
|
|
989
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
990
|
+
'namzu.checkpoint.id': checkpoint.id,
|
|
991
|
+
'namzu.runtime.unanswered_assistant_turns': dangling.assistantsWithUnmatchedCalls.length,
|
|
992
|
+
'namzu.runtime.orphaned_tool_messages': dangling.orphanedToolMessages.length,
|
|
993
|
+
'namzu.runtime.removed': checkpoint.messages.length - restoredMessages.length,
|
|
776
994
|
});
|
|
777
995
|
}
|
|
778
996
|
for (const msg of restoredMessages) {
|
|
@@ -790,16 +1008,26 @@ export async function* query(params) {
|
|
|
790
1008
|
}
|
|
791
1009
|
ctx.runMgr.pushMessage(msg);
|
|
792
1010
|
}
|
|
1011
|
+
// The queue, on the resume path too. It is drained
|
|
1012
|
+
// unconditionally above, so leaving this out would take a
|
|
1013
|
+
// host's "start with this" off the record and deliver it
|
|
1014
|
+
// nowhere — the one outcome a durable queue must not have.
|
|
1015
|
+
//
|
|
1016
|
+
// AFTER the restored history rather than before it: on a
|
|
1017
|
+
// resume the conversation already exists, and a message left
|
|
1018
|
+
// for "the next run" is the newest thing said, not the oldest.
|
|
1019
|
+
for (const queued of queuedForThisRun)
|
|
1020
|
+
ctx.runMgr.pushMessage(queued);
|
|
793
1021
|
}
|
|
794
1022
|
else if (params.continuationMode) {
|
|
795
|
-
for (const msg of
|
|
1023
|
+
for (const msg of initialMessages) {
|
|
796
1024
|
ctx.runMgr.pushMessage(msg);
|
|
797
1025
|
}
|
|
798
1026
|
}
|
|
799
1027
|
else {
|
|
800
1028
|
pushSystemMessages();
|
|
801
1029
|
let isFirstUserMessage = true;
|
|
802
|
-
for (const msg of
|
|
1030
|
+
for (const msg of initialMessages) {
|
|
803
1031
|
if (msg.role === 'system')
|
|
804
1032
|
continue;
|
|
805
1033
|
ctx.runMgr.pushMessage(msg);
|
|
@@ -819,6 +1047,22 @@ export async function* query(params) {
|
|
|
819
1047
|
systemPrompt: assembledPrompt,
|
|
820
1048
|
});
|
|
821
1049
|
yield* eventTranslator.drainPending();
|
|
1050
|
+
// The box is handed out HERE, after `run_started`, and the position
|
|
1051
|
+
// is load-bearing rather than tidy. It moved twice:
|
|
1052
|
+
//
|
|
1053
|
+
// 1. Beside the box's construction — a host that called `set`
|
|
1054
|
+
// synchronously reached `eventTranslator` inside its temporal
|
|
1055
|
+
// dead zone and killed the run before it started.
|
|
1056
|
+
// 2. Beside the translator's construction — the translator existed,
|
|
1057
|
+
// but the run directory did not, so the durable append hit
|
|
1058
|
+
// ENOENT on `transcript.jsonl`.
|
|
1059
|
+
//
|
|
1060
|
+
// Both were found by the test that takes the box and immediately
|
|
1061
|
+
// swaps the policy, which is not an exotic host: it is the shape of
|
|
1062
|
+
// "start unattended" wiring. A policy change is durably recorded
|
|
1063
|
+
// before it takes effect, so the handout cannot precede the run
|
|
1064
|
+
// being writable.
|
|
1065
|
+
params.onApprovalPolicy?.(approvalPolicy);
|
|
822
1066
|
// Surface capability degradation to the host as run events —
|
|
823
1067
|
// explicit, not silent (the log.warn above fires at setup time;
|
|
824
1068
|
// this is the machine-readable channel).
|
|
@@ -849,7 +1093,26 @@ export async function* query(params) {
|
|
|
849
1093
|
}
|
|
850
1094
|
// --- Sandbox lifecycle: create before iteration loop ---
|
|
851
1095
|
if (params.sandboxProvider) {
|
|
1096
|
+
const rootAtCwd = params.runConfig.sandbox?.workspace === 'working-directory';
|
|
1097
|
+
// Checked against what the CALLER passed, not against `ctx.cwd`.
|
|
1098
|
+
// `ctx.cwd` falls back to `process.cwd()`, so reading it here
|
|
1099
|
+
// would silently root the sandbox at whatever directory the
|
|
1100
|
+
// host process happens to be in — which is not the directory
|
|
1101
|
+
// anybody asked to confine, and is worse than the temp dir the
|
|
1102
|
+
// caller declined. Refused before the sandbox exists, and not
|
|
1103
|
+
// downgraded to ephemeral: a caller who asked for confinement
|
|
1104
|
+
// of a specific tree and quietly got an empty one has been
|
|
1105
|
+
// told their files are protected by something that is not
|
|
1106
|
+
// looking at them.
|
|
1107
|
+
if (rootAtCwd && params.workingDirectory === undefined) {
|
|
1108
|
+
throw new NamzuError({
|
|
1109
|
+
code: 'invalid_config',
|
|
1110
|
+
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.",
|
|
1111
|
+
details: { workspace: 'working-directory' },
|
|
1112
|
+
});
|
|
1113
|
+
}
|
|
852
1114
|
sandbox = await params.sandboxProvider.create({
|
|
1115
|
+
...(rootAtCwd ? { workingDirectory: ctx.cwd } : {}),
|
|
853
1116
|
timeoutMs: params.runConfig.sandbox?.timeoutMs,
|
|
854
1117
|
memoryLimitMb: params.runConfig.sandbox?.memoryLimitMb,
|
|
855
1118
|
maxProcesses: params.runConfig.sandbox?.maxProcesses,
|
|
@@ -863,9 +1126,9 @@ export async function* query(params) {
|
|
|
863
1126
|
});
|
|
864
1127
|
yield* eventTranslator.drainPending();
|
|
865
1128
|
ctx.log.info('Sandbox created for run', {
|
|
866
|
-
|
|
867
|
-
environment: sandbox.environment,
|
|
868
|
-
|
|
1129
|
+
'namzu.sandbox.id': sandbox.id,
|
|
1130
|
+
'namzu.execution.environment': sandbox.environment,
|
|
1131
|
+
'namzu.runtime.root_dir': sandbox.rootDir,
|
|
869
1132
|
});
|
|
870
1133
|
}
|
|
871
1134
|
// Crash-save handlers live for exactly the run's lifetime, and are
|
|
@@ -877,7 +1140,7 @@ export async function* query(params) {
|
|
|
877
1140
|
emergencyManager.attach(ctx.runMgr, runDir, ctx.log);
|
|
878
1141
|
}
|
|
879
1142
|
else {
|
|
880
|
-
ctx.log.warn('emergencySave requested but the run has no output directory — crash dumps disabled', {
|
|
1143
|
+
ctx.log.warn('emergencySave requested but the run has no output directory — crash dumps disabled', { [NAMZU.RUN_ID]: ctx.runId });
|
|
881
1144
|
}
|
|
882
1145
|
}
|
|
883
1146
|
// Before the first model call: the cheapest place to refuse, since
|
|
@@ -899,6 +1162,15 @@ export async function* query(params) {
|
|
|
899
1162
|
...(inputVerdict.reason ? { reason: inputVerdict.reason } : {}),
|
|
900
1163
|
});
|
|
901
1164
|
yield* eventTranslator.drainPending();
|
|
1165
|
+
// A guardrail block is a refusal — first-class in the audit trail
|
|
1166
|
+
// (LOG-14, design §5), not merely a RunEvent a host happens to be
|
|
1167
|
+
// subscribed to when it fires.
|
|
1168
|
+
await ctx.runMgr.recordAudit({
|
|
1169
|
+
what: { action: 'guardrail:input', resource: inputVerdict.name },
|
|
1170
|
+
outcome: 'refused',
|
|
1171
|
+
reason: inputVerdict.reason ?? 'blocked by an input guardrail',
|
|
1172
|
+
...(params.persona?.identity.role ? { persona: params.persona.identity.role } : {}),
|
|
1173
|
+
});
|
|
902
1174
|
ctx.runMgr.setStopReason('input_guardrail');
|
|
903
1175
|
ctx.runMgr.setLastError(inputVerdict.reason ?? 'blocked by an input guardrail');
|
|
904
1176
|
yield* resultAssembler.completeRun(rootSpan);
|
|
@@ -909,9 +1181,9 @@ export async function* query(params) {
|
|
|
909
1181
|
// tool that needs one gets it.
|
|
910
1182
|
if (pendingResume) {
|
|
911
1183
|
ctx.log.info('Applying a pending HITL decision to the checkpointed tool calls', {
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
denied: pendingResume.denials.size,
|
|
1184
|
+
[NAMZU.RUN_ID]: ctx.runId,
|
|
1185
|
+
'namzu.tool.names': pendingResume.response.message.toolCalls?.map((tc) => tc.function.name),
|
|
1186
|
+
'namzu.runtime.denied': pendingResume.denials.size,
|
|
915
1187
|
});
|
|
916
1188
|
// Hand the recorded answer to the already-built tool. The tool
|
|
917
1189
|
// closed over its registry when the agent was constructed,
|
|
@@ -935,9 +1207,9 @@ export async function* query(params) {
|
|
|
935
1207
|
.unpark(resolvedCheckpointId, params.pendingDecision)
|
|
936
1208
|
.catch((err) => {
|
|
937
1209
|
ctx.log.error('Applied a pending decision but failed to clear the park', {
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
1210
|
+
[NAMZU.RUN_ID]: ctx.runId,
|
|
1211
|
+
'namzu.checkpoint.id': resolvedCheckpointId,
|
|
1212
|
+
'exception.message': err instanceof Error ? err.message : String(err),
|
|
941
1213
|
});
|
|
942
1214
|
return null;
|
|
943
1215
|
});
|
|
@@ -975,6 +1247,13 @@ export async function* query(params) {
|
|
|
975
1247
|
...(outputVerdict.reason ? { reason: outputVerdict.reason } : {}),
|
|
976
1248
|
});
|
|
977
1249
|
yield* eventTranslator.drainPending();
|
|
1250
|
+
// Same reasoning as the input-guardrail branch above.
|
|
1251
|
+
await ctx.runMgr.recordAudit({
|
|
1252
|
+
what: { action: 'guardrail:output', resource: outputVerdict.name },
|
|
1253
|
+
outcome: 'refused',
|
|
1254
|
+
reason: outputVerdict.reason ?? 'blocked by an output guardrail',
|
|
1255
|
+
...(params.persona?.identity.role ? { persona: params.persona.identity.role } : {}),
|
|
1256
|
+
});
|
|
978
1257
|
ctx.runMgr.setStopReason('output_guardrail');
|
|
979
1258
|
ctx.runMgr.setLastError(outputVerdict.reason ?? 'blocked by an output guardrail');
|
|
980
1259
|
ctx.runMgr.setResult('');
|
|
@@ -1005,6 +1284,30 @@ export async function* query(params) {
|
|
|
1005
1284
|
// WeakRef'd, settled run as the crash target for the rest of the
|
|
1006
1285
|
// process's life.
|
|
1007
1286
|
emergencyManager?.detach();
|
|
1287
|
+
// A background job outlives the tool call that started it — that
|
|
1288
|
+
// is what it is for — so nothing but this stops it outliving the
|
|
1289
|
+
// RUN. Scoped to this run's id: a shared registry serving several
|
|
1290
|
+
// runs must not have one of them tear down another's work.
|
|
1291
|
+
//
|
|
1292
|
+
// Awaited, and its failure swallowed. A job that would not die is
|
|
1293
|
+
// worth a log line, and is not worth retracting a run's answer.
|
|
1294
|
+
if (params.backgroundJobs) {
|
|
1295
|
+
try {
|
|
1296
|
+
const stopped = await params.backgroundJobs.killOwner(ctx.runId);
|
|
1297
|
+
if (stopped.length > 0) {
|
|
1298
|
+
ctx.log.info('Background jobs stopped with the run', {
|
|
1299
|
+
[NAMZU.RUN_ID]: ctx.runId,
|
|
1300
|
+
'namzu.jobs.stopped': stopped.length,
|
|
1301
|
+
});
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
catch (jobErr) {
|
|
1305
|
+
ctx.log.error('A background job did not stop cleanly', {
|
|
1306
|
+
[NAMZU.RUN_ID]: ctx.runId,
|
|
1307
|
+
...errorAttributes(jobErr),
|
|
1308
|
+
});
|
|
1309
|
+
}
|
|
1310
|
+
}
|
|
1008
1311
|
// Same reasoning for the question channel: the tools outlive the
|
|
1009
1312
|
// run that bound them, so leaving it attached would have a later
|
|
1010
1313
|
// run's question written into this run's checkpoint store.
|
|
@@ -1022,8 +1325,8 @@ export async function* query(params) {
|
|
|
1022
1325
|
}
|
|
1023
1326
|
catch (promoteErr) {
|
|
1024
1327
|
ctx.log.error('Memory promotion threw — the run is unaffected', {
|
|
1025
|
-
|
|
1026
|
-
|
|
1328
|
+
[NAMZU.RUN_ID]: ctx.runId,
|
|
1329
|
+
'exception.message': promoteErr instanceof Error ? promoteErr.message : String(promoteErr),
|
|
1027
1330
|
});
|
|
1028
1331
|
}
|
|
1029
1332
|
}
|
|
@@ -1037,12 +1340,12 @@ export async function* query(params) {
|
|
|
1037
1340
|
runId: ctx.runId,
|
|
1038
1341
|
sandboxId,
|
|
1039
1342
|
});
|
|
1040
|
-
ctx.log.info('Sandbox destroyed', { sandboxId });
|
|
1343
|
+
ctx.log.info('Sandbox destroyed', { 'namzu.sandbox.id': sandboxId });
|
|
1041
1344
|
}
|
|
1042
1345
|
catch (destroyErr) {
|
|
1043
1346
|
ctx.log.error('Sandbox destroy failed', {
|
|
1044
|
-
sandboxId,
|
|
1045
|
-
|
|
1347
|
+
'namzu.sandbox.id': sandboxId,
|
|
1348
|
+
'exception.message': destroyErr instanceof Error ? destroyErr.message : String(destroyErr),
|
|
1046
1349
|
});
|
|
1047
1350
|
}
|
|
1048
1351
|
}
|