@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
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ACP_CLIENT_NOTIFICATIONS,
|
|
3
|
+
ACP_CLIENT_REQUESTS,
|
|
4
|
+
ACP_ERROR_CODES,
|
|
5
|
+
ACP_FILESYSTEM_CAPABILITY,
|
|
6
|
+
ACP_METHODS,
|
|
7
|
+
ACP_PERMISSION_CAPABILITY,
|
|
8
|
+
ACP_PROTOCOL_VERSION,
|
|
9
|
+
} from '../../constants/acp/index.js'
|
|
10
|
+
import type { HostCommandRegistry } from '../../registry/command/index.js'
|
|
11
|
+
import type { ToolPresenter } from '../../registry/tool/presentation.js'
|
|
12
|
+
import type {
|
|
13
|
+
AcpFsReadResult,
|
|
14
|
+
AcpInitializeParams,
|
|
15
|
+
AcpInitializeResult,
|
|
16
|
+
AcpRequestPermissionResult,
|
|
17
|
+
AcpSessionCancelParams,
|
|
18
|
+
AcpSessionLoadParams,
|
|
19
|
+
AcpSessionNewParams,
|
|
20
|
+
AcpSessionNewResult,
|
|
21
|
+
AcpSessionPromptParams,
|
|
22
|
+
AcpSessionPromptResult,
|
|
23
|
+
AcpSessionUpdate,
|
|
24
|
+
} from '../../types/acp/index.js'
|
|
25
|
+
import type { MCPJsonRpcMessage, MCPTransport } from '../../types/connector/mcp.js'
|
|
26
|
+
import type { RunEvent } from '../../types/run/events.js'
|
|
27
|
+
import { type Logger, resolveLogger } from '../../utils/logger.js'
|
|
28
|
+
import type { AcpClientFilesystem } from './filesystem.js'
|
|
29
|
+
import type {
|
|
30
|
+
AcpPermissionAsker,
|
|
31
|
+
AcpPermissionOutcome,
|
|
32
|
+
AcpPermissionRequest,
|
|
33
|
+
} from './permission.js'
|
|
34
|
+
import { toAcpSessionUpdate, toAcpStopReason } from './update.js'
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* An agent-client protocol server over stdio.
|
|
38
|
+
*
|
|
39
|
+
* An editor extension or a CI orchestrator could previously do two things:
|
|
40
|
+
* shell out to the CLI and scrape its output, or embed the SDK in its own
|
|
41
|
+
* process. This is the third — a wire surface a peer written in any language
|
|
42
|
+
* can drive.
|
|
43
|
+
*
|
|
44
|
+
* **The precedent in this tree is a warning, and this change answers it.**
|
|
45
|
+
* `MCPServer` and `ServerStdioTransport` are both exported, and nothing
|
|
46
|
+
* anywhere constructs an `MCPServer`: a complete protocol server with no
|
|
47
|
+
* driver. So `packages/cli/src/commands/acp.ts` ships in the same change,
|
|
48
|
+
* and a subprocess test spawns the real binary — the wire half alone is not
|
|
49
|
+
* a deliverable.
|
|
50
|
+
*
|
|
51
|
+
* **stdout belongs to the protocol.** `ServerStdioTransport`'s own header
|
|
52
|
+
* says it and this is the surface that pays for it: one stray `console.log`
|
|
53
|
+
* anywhere in the process and a client reports malformed JSON with nothing
|
|
54
|
+
* naming the culprit. This repository's logger writes to stderr, and a test
|
|
55
|
+
* asserts zero non-JSON bytes on the child's stdout under info-level
|
|
56
|
+
* logging.
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
/** What the bridge needs from the runtime, taken as an interface. */
|
|
60
|
+
export interface AcpAgentGateway {
|
|
61
|
+
/**
|
|
62
|
+
* Run one prompt, streaming events, and resolve with the stop reason.
|
|
63
|
+
*
|
|
64
|
+
* Deliberately not `AgentManagerContract` itself. This bridge needs one
|
|
65
|
+
* verb, and a session front end holding the whole manager could cancel
|
|
66
|
+
* somebody else's task, spawn children, or drain a queue it does not own
|
|
67
|
+
* — none of which a peer asked for. The CLI passes an adapter over
|
|
68
|
+
* `sendMessage`/`cancel`.
|
|
69
|
+
*/
|
|
70
|
+
prompt(request: {
|
|
71
|
+
readonly sessionId: string
|
|
72
|
+
readonly prompt: string
|
|
73
|
+
readonly cwd: string
|
|
74
|
+
readonly onEvent: (event: RunEvent) => void
|
|
75
|
+
readonly signal: AbortSignal
|
|
76
|
+
/**
|
|
77
|
+
* Ask the human in front of the client about a tool batch.
|
|
78
|
+
*
|
|
79
|
+
* Handed to the gateway rather than installed by it, so the ONE place
|
|
80
|
+
* that knows how to reach the client is this bridge. A gateway that
|
|
81
|
+
* built its own asker would be a second path to the same human, and
|
|
82
|
+
* the one that forgot to latch `approve_all` would be it.
|
|
83
|
+
*/
|
|
84
|
+
readonly ask: AcpPermissionAsker
|
|
85
|
+
/**
|
|
86
|
+
* The client's buffers, when it declared the capability. `undefined`
|
|
87
|
+
* means disk — which is correct, and is what every non-editor peer
|
|
88
|
+
* wants.
|
|
89
|
+
*/
|
|
90
|
+
readonly filesystem: AcpClientFilesystem | undefined
|
|
91
|
+
/** Turns to resume from, oldest first. Empty for a fresh session. */
|
|
92
|
+
readonly history: readonly unknown[]
|
|
93
|
+
}): Promise<{ readonly stopReason?: string }>
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* The turns a prior session left behind, for `session/load`.
|
|
97
|
+
*
|
|
98
|
+
* Optional: a gateway with no session store cannot resume, and saying so
|
|
99
|
+
* by not implementing this is better than returning an empty history that
|
|
100
|
+
* a client cannot tell apart from a session that really had no turns.
|
|
101
|
+
*/
|
|
102
|
+
load?(sessionId: string): Promise<readonly unknown[]>
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface AcpServerOptions {
|
|
106
|
+
readonly transport: MCPTransport
|
|
107
|
+
readonly gateway: AcpAgentGateway
|
|
108
|
+
/**
|
|
109
|
+
* The command surface, verbatim from the registry.
|
|
110
|
+
*
|
|
111
|
+
* Passed as the registry rather than as a list so `describe()` is called
|
|
112
|
+
* per initialize: a host that registers a command after construction
|
|
113
|
+
* still has it appear, and this module has no place to hard-code one.
|
|
114
|
+
*/
|
|
115
|
+
readonly commands: HostCommandRegistry
|
|
116
|
+
readonly presenter: ToolPresenter
|
|
117
|
+
readonly agentInfo: { readonly name: string; readonly version: string }
|
|
118
|
+
/** Injectable so a test does not depend on a random id. */
|
|
119
|
+
readonly newSessionId?: () => string
|
|
120
|
+
readonly log?: Logger
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
interface Session {
|
|
124
|
+
readonly cwd: string
|
|
125
|
+
controller: AbortController
|
|
126
|
+
/**
|
|
127
|
+
* Whether the human said "approve all" for THIS session.
|
|
128
|
+
*
|
|
129
|
+
* Per session, on the session record, and that placement is the whole
|
|
130
|
+
* property: hoisting it to the server — or to a module-level variable —
|
|
131
|
+
* would make one person's "stop asking me" silently cover the next
|
|
132
|
+
* session this process serves, which may be a different repository, a
|
|
133
|
+
* different editor window, or a different human.
|
|
134
|
+
*/
|
|
135
|
+
approveAll: boolean
|
|
136
|
+
/** Prior turns, when this session was loaded rather than created. */
|
|
137
|
+
history: readonly unknown[]
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
type Handler = (params: Record<string, unknown>) => Promise<unknown> | unknown
|
|
141
|
+
|
|
142
|
+
/** A JSON-RPC error this bridge answers with, rather than throwing out. */
|
|
143
|
+
class AcpError extends Error {
|
|
144
|
+
constructor(
|
|
145
|
+
readonly code: number,
|
|
146
|
+
message: string,
|
|
147
|
+
) {
|
|
148
|
+
super(message)
|
|
149
|
+
this.name = 'AcpError'
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export class ACPServer {
|
|
154
|
+
private readonly log: Logger
|
|
155
|
+
private readonly sessions = new Map<string, Session>()
|
|
156
|
+
private initialized = false
|
|
157
|
+
private clientCapabilities: readonly string[] = []
|
|
158
|
+
private sessionSeq = 0
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* The method table, authored INDEPENDENTLY of `ACP_METHODS`.
|
|
162
|
+
*
|
|
163
|
+
* Deriving it from the constant would make the drift test a tautology.
|
|
164
|
+
* Two hand-written sets compared in both directions is the only shape
|
|
165
|
+
* where "a handler nobody advertises" and "an advertised method with no
|
|
166
|
+
* handler" are both catchable.
|
|
167
|
+
*/
|
|
168
|
+
private readonly handlers: Readonly<Record<string, Handler>> = {
|
|
169
|
+
initialize: (p) => this.onInitialize(p as unknown as AcpInitializeParams),
|
|
170
|
+
'session/new': (p) => this.onSessionNew(p as unknown as AcpSessionNewParams),
|
|
171
|
+
'session/prompt': (p) => this.onSessionPrompt(p as unknown as AcpSessionPromptParams),
|
|
172
|
+
'session/cancel': (p) => this.onSessionCancel(p as unknown as AcpSessionCancelParams),
|
|
173
|
+
'session/load': (p) => this.onSessionLoad(p as unknown as AcpSessionLoadParams),
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/** Requests this side has out to the client, keyed by their id. */
|
|
177
|
+
private readonly pending = new Map<
|
|
178
|
+
string | number,
|
|
179
|
+
{ resolve: (value: unknown) => void; reject: (err: Error) => void }
|
|
180
|
+
>()
|
|
181
|
+
|
|
182
|
+
private requestSeq = 0
|
|
183
|
+
|
|
184
|
+
constructor(private readonly options: AcpServerOptions) {
|
|
185
|
+
this.log = resolveLogger(options.log).child({ 'namzu.log.scope': 'bridge/acp' })
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/** The method names this server answers. For the drift test. */
|
|
189
|
+
methodNames(): readonly string[] {
|
|
190
|
+
return Object.keys(this.handlers).sort()
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
async start(): Promise<void> {
|
|
194
|
+
this.options.transport.onMessage((message) => {
|
|
195
|
+
void this.dispatch(message)
|
|
196
|
+
})
|
|
197
|
+
await this.options.transport.connect()
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
async stop(): Promise<void> {
|
|
201
|
+
for (const session of this.sessions.values()) session.controller.abort()
|
|
202
|
+
this.sessions.clear()
|
|
203
|
+
// Anything still waiting on the client is rejected rather than left
|
|
204
|
+
// pending: the transport is about to close, so no answer is coming, and
|
|
205
|
+
// a promise nobody will ever settle keeps whatever awaited it alive.
|
|
206
|
+
for (const waiting of this.pending.values()) {
|
|
207
|
+
waiting.reject(new Error('The client connection closed before it answered.'))
|
|
208
|
+
}
|
|
209
|
+
this.pending.clear()
|
|
210
|
+
await this.options.transport.close()
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Ask the client something and wait for its answer.
|
|
215
|
+
*
|
|
216
|
+
* The direction this bridge did not have. A notification is fire and
|
|
217
|
+
* forget; a permission prompt is a question the run cannot proceed past,
|
|
218
|
+
* so it needs an id, a place to park the promise, and a `dispatch` that
|
|
219
|
+
* recognises a response frame.
|
|
220
|
+
*/
|
|
221
|
+
private request<T>(method: string, params: Record<string, unknown>): Promise<T> {
|
|
222
|
+
this.requestSeq += 1
|
|
223
|
+
const id = `agent_${this.requestSeq}`
|
|
224
|
+
return new Promise<T>((resolve, reject) => {
|
|
225
|
+
this.pending.set(id, { resolve: resolve as (value: unknown) => void, reject })
|
|
226
|
+
void this.send({ jsonrpc: '2.0', id, method, params }).catch((err: unknown) => {
|
|
227
|
+
this.pending.delete(id)
|
|
228
|
+
reject(err instanceof Error ? err : new Error(String(err)))
|
|
229
|
+
})
|
|
230
|
+
})
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
private async dispatch(message: MCPJsonRpcMessage): Promise<void> {
|
|
234
|
+
if (!message.method) {
|
|
235
|
+
// A frame with no method is the client ANSWERING something this side
|
|
236
|
+
// asked. Before permission requests existed there was nothing out on
|
|
237
|
+
// the wire, so ignoring it was right; now dropping it would leave the
|
|
238
|
+
// asker waiting forever and the run parked with nobody coming.
|
|
239
|
+
if (message.id !== undefined && this.pending.has(message.id)) {
|
|
240
|
+
const waiting = this.pending.get(message.id)
|
|
241
|
+
this.pending.delete(message.id)
|
|
242
|
+
if (message.error) {
|
|
243
|
+
waiting?.reject(new Error(message.error.message))
|
|
244
|
+
} else {
|
|
245
|
+
waiting?.resolve(message.result)
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
const handler = this.handlers[message.method]
|
|
252
|
+
if (!handler) {
|
|
253
|
+
// Answered, and the CONNECTION STAYS OPEN. A client probing for a
|
|
254
|
+
// feature must not lose its session because this agent does not have
|
|
255
|
+
// it yet.
|
|
256
|
+
await this.respondError(
|
|
257
|
+
message.id,
|
|
258
|
+
ACP_ERROR_CODES.METHOD_NOT_FOUND,
|
|
259
|
+
`Unknown method "${message.method}". This agent implements: ${this.methodNames().join(', ')}.`,
|
|
260
|
+
)
|
|
261
|
+
return
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
try {
|
|
265
|
+
const result = await handler(message.params ?? {})
|
|
266
|
+
if (message.id !== undefined) {
|
|
267
|
+
await this.send({ jsonrpc: '2.0', id: message.id, result })
|
|
268
|
+
}
|
|
269
|
+
} catch (err) {
|
|
270
|
+
const code = err instanceof AcpError ? err.code : ACP_ERROR_CODES.INTERNAL_ERROR
|
|
271
|
+
await this.respondError(message.id, code, err instanceof Error ? err.message : String(err))
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
private async respondError(
|
|
276
|
+
id: MCPJsonRpcMessage['id'],
|
|
277
|
+
code: number,
|
|
278
|
+
message: string,
|
|
279
|
+
): Promise<void> {
|
|
280
|
+
// A notification (no id) that failed has nowhere to send an error, so
|
|
281
|
+
// it is logged instead of dropped silently — on stderr, where it does
|
|
282
|
+
// not corrupt the protocol stream.
|
|
283
|
+
if (id === undefined) {
|
|
284
|
+
this.log.warn('an acp notification failed', {
|
|
285
|
+
'namzu.acp.error_code': code,
|
|
286
|
+
'namzu.acp.error_message': message,
|
|
287
|
+
})
|
|
288
|
+
return
|
|
289
|
+
}
|
|
290
|
+
await this.send({ jsonrpc: '2.0', id, error: { code, message } })
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
private async send(message: MCPJsonRpcMessage): Promise<void> {
|
|
294
|
+
try {
|
|
295
|
+
await this.options.transport.send(message)
|
|
296
|
+
} catch (err) {
|
|
297
|
+
// The client hung up mid-write. Nothing to recover; a throw here
|
|
298
|
+
// would escape into whichever handler happened to be running.
|
|
299
|
+
this.log.warn('acp send failed', {
|
|
300
|
+
'namzu.acp.error_message': err instanceof Error ? err.message : String(err),
|
|
301
|
+
})
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
private async notifyUpdate(sessionId: string, update: AcpSessionUpdate): Promise<void> {
|
|
306
|
+
await this.send({
|
|
307
|
+
jsonrpc: '2.0',
|
|
308
|
+
method: ACP_CLIENT_NOTIFICATIONS.SESSION_UPDATE,
|
|
309
|
+
params: { sessionId, update } as unknown as Record<string, unknown>,
|
|
310
|
+
})
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
private onInitialize(params: AcpInitializeParams): AcpInitializeResult {
|
|
314
|
+
this.initialized = true
|
|
315
|
+
this.clientCapabilities = params.capabilities ?? []
|
|
316
|
+
return {
|
|
317
|
+
protocolVersion: ACP_PROTOCOL_VERSION,
|
|
318
|
+
agentInfo: this.options.agentInfo,
|
|
319
|
+
// From the registry, per call. A hard-coded list here would be a
|
|
320
|
+
// second definition of the command surface.
|
|
321
|
+
commands: this.options.commands.describe(),
|
|
322
|
+
requiredClientCapabilities: [ACP_PERMISSION_CAPABILITY],
|
|
323
|
+
// Advertised so a client author can see the option exists. Separate
|
|
324
|
+
// from `required` on purpose: a peer that is not an editor has no
|
|
325
|
+
// buffers, and demanding this of it would refuse a session that is
|
|
326
|
+
// perfectly able to run.
|
|
327
|
+
optionalClientCapabilities: [ACP_FILESYSTEM_CAPABILITY],
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
private onSessionNew(params: AcpSessionNewParams): AcpSessionNewResult {
|
|
332
|
+
this.requireInitialized()
|
|
333
|
+
this.requirePermissionCapability()
|
|
334
|
+
return { sessionId: this.openSession(params.cwd, []) }
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Resume a session the store already has.
|
|
339
|
+
*
|
|
340
|
+
* The prior turns come from the gateway, never from this bridge: the
|
|
341
|
+
* history lives in whatever session store the host wired up, and a bridge
|
|
342
|
+
* that kept its own copy would answer a resume with the turns THIS process
|
|
343
|
+
* happened to see rather than the ones the session actually had.
|
|
344
|
+
*/
|
|
345
|
+
private async onSessionLoad(params: AcpSessionLoadParams): Promise<AcpSessionNewResult> {
|
|
346
|
+
this.requireInitialized()
|
|
347
|
+
this.requirePermissionCapability()
|
|
348
|
+
if (!this.options.gateway.load) {
|
|
349
|
+
throw new AcpError(
|
|
350
|
+
ACP_ERROR_CODES.METHOD_NOT_FOUND,
|
|
351
|
+
'This agent has no session store, so there is nothing to resume. Create a new session instead.',
|
|
352
|
+
)
|
|
353
|
+
}
|
|
354
|
+
const history = await this.options.gateway.load(params.sessionId)
|
|
355
|
+
// The SAME id, not a new one. A client that asked to resume `ses_x` and
|
|
356
|
+
// got `ses_y` back has to rewrite whatever it had keyed by the old one.
|
|
357
|
+
this.sessions.set(params.sessionId, {
|
|
358
|
+
cwd: params.cwd ?? process.cwd(),
|
|
359
|
+
controller: new AbortController(),
|
|
360
|
+
approveAll: false,
|
|
361
|
+
history,
|
|
362
|
+
})
|
|
363
|
+
return { sessionId: params.sessionId }
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
private openSession(cwd: string | undefined, history: readonly unknown[]): string {
|
|
367
|
+
this.sessionSeq += 1
|
|
368
|
+
const sessionId = this.options.newSessionId?.() ?? `acp_${this.sessionSeq}`
|
|
369
|
+
this.sessions.set(sessionId, {
|
|
370
|
+
cwd: cwd ?? process.cwd(),
|
|
371
|
+
controller: new AbortController(),
|
|
372
|
+
// Fresh per session. See `Session.approveAll`.
|
|
373
|
+
approveAll: false,
|
|
374
|
+
history,
|
|
375
|
+
})
|
|
376
|
+
return sessionId
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
private requireInitialized(): void {
|
|
380
|
+
if (!this.initialized) {
|
|
381
|
+
throw new AcpError(
|
|
382
|
+
ACP_ERROR_CODES.INVALID_REQUEST,
|
|
383
|
+
`Call "${ACP_METHODS.INITIALIZE}" before creating a session.`,
|
|
384
|
+
)
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
private requirePermissionCapability(): void {
|
|
389
|
+
if (!this.clientCapabilities.includes(ACP_PERMISSION_CAPABILITY)) {
|
|
390
|
+
// REFUSED, not auto-approved. A session that cannot ask a human
|
|
391
|
+
// anything and runs every tool regardless is not a degraded version
|
|
392
|
+
// of asking — it is the opposite of it, arrived at by omission.
|
|
393
|
+
throw new AcpError(
|
|
394
|
+
ACP_ERROR_CODES.INVALID_REQUEST,
|
|
395
|
+
`This agent will not create a session for a client that did not declare the "${ACP_PERMISSION_CAPABILITY}" capability. Tool calls need somewhere to ask, and a session without one would approve everything silently.`,
|
|
396
|
+
)
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
private async onSessionPrompt(params: AcpSessionPromptParams): Promise<AcpSessionPromptResult> {
|
|
401
|
+
const session = this.requireSession(params.sessionId)
|
|
402
|
+
// A fresh controller per turn: the previous one may already be aborted
|
|
403
|
+
// by a cancel of the turn before, and reusing it would start this one
|
|
404
|
+
// already cancelled.
|
|
405
|
+
session.controller = new AbortController()
|
|
406
|
+
|
|
407
|
+
const outcome = await this.options.gateway.prompt({
|
|
408
|
+
sessionId: params.sessionId,
|
|
409
|
+
prompt: params.prompt,
|
|
410
|
+
cwd: session.cwd,
|
|
411
|
+
signal: session.controller.signal,
|
|
412
|
+
onEvent: (event) => {
|
|
413
|
+
const update = toAcpSessionUpdate(event, this.options.presenter)
|
|
414
|
+
if (update) void this.notifyUpdate(params.sessionId, update)
|
|
415
|
+
},
|
|
416
|
+
ask: (request) => this.askPermission(session, request),
|
|
417
|
+
filesystem: this.clientFilesystem(),
|
|
418
|
+
history: session.history,
|
|
419
|
+
})
|
|
420
|
+
|
|
421
|
+
return { stopReason: toAcpStopReason(outcome.stopReason) }
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
private onSessionCancel(params: AcpSessionCancelParams): null {
|
|
425
|
+
this.requireSession(params.sessionId).controller.abort()
|
|
426
|
+
// `null` rather than `{}`: a JSON-RPC result has to be present, and an
|
|
427
|
+
// empty object invites a client to look for a field.
|
|
428
|
+
return null
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* Put a tool batch in front of the human, unless they already said yes to
|
|
433
|
+
* everything for this session.
|
|
434
|
+
*/
|
|
435
|
+
private async askPermission(
|
|
436
|
+
session: Session,
|
|
437
|
+
request: AcpPermissionRequest,
|
|
438
|
+
): Promise<AcpPermissionOutcome> {
|
|
439
|
+
// The latch, read from the SESSION. Checked here rather than in the
|
|
440
|
+
// gateway so no gateway can forget it.
|
|
441
|
+
if (session.approveAll) return { kind: 'approve_all' }
|
|
442
|
+
|
|
443
|
+
const answer = await this.request<AcpRequestPermissionResult>(
|
|
444
|
+
ACP_CLIENT_REQUESTS.REQUEST_PERMISSION,
|
|
445
|
+
{
|
|
446
|
+
sessionId: request.sessionId,
|
|
447
|
+
toolCalls: request.toolCalls,
|
|
448
|
+
},
|
|
449
|
+
)
|
|
450
|
+
|
|
451
|
+
switch (answer?.outcome) {
|
|
452
|
+
case 'approve':
|
|
453
|
+
return { kind: 'approve' }
|
|
454
|
+
case 'approve_all':
|
|
455
|
+
session.approveAll = true
|
|
456
|
+
return { kind: 'approve_all' }
|
|
457
|
+
case 'reject':
|
|
458
|
+
return { kind: 'reject', ...(answer.feedback ? { feedback: answer.feedback } : {}) }
|
|
459
|
+
default:
|
|
460
|
+
// An answer this side cannot read is not an approval. A client that
|
|
461
|
+
// sent something unrecognised has not said yes, and treating
|
|
462
|
+
// "unparseable" as consent is the failure this whole exchange
|
|
463
|
+
// exists to prevent.
|
|
464
|
+
return {
|
|
465
|
+
kind: 'reject',
|
|
466
|
+
feedback: `The client answered the permission request with an outcome this agent does not recognise (${JSON.stringify(answer?.outcome)}), so the calls were not run.`,
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* The client's buffers, when it declared the capability.
|
|
473
|
+
*
|
|
474
|
+
* `undefined` otherwise, and that is the ordinary case: a peer that is not
|
|
475
|
+
* an editor has no buffers, and the agent should read the disk.
|
|
476
|
+
*/
|
|
477
|
+
private clientFilesystem(): AcpClientFilesystem | undefined {
|
|
478
|
+
if (!this.clientCapabilities.includes(ACP_FILESYSTEM_CAPABILITY)) return undefined
|
|
479
|
+
return {
|
|
480
|
+
readTextFile: async (path) => {
|
|
481
|
+
const result = await this.request<AcpFsReadResult>(ACP_CLIENT_REQUESTS.FS_READ, { path })
|
|
482
|
+
return result?.content ?? ''
|
|
483
|
+
},
|
|
484
|
+
writeTextFile: async (path, content) => {
|
|
485
|
+
await this.request(ACP_CLIENT_REQUESTS.FS_WRITE, { path, content })
|
|
486
|
+
},
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
private requireSession(sessionId: string): Session {
|
|
491
|
+
const session = this.sessions.get(sessionId)
|
|
492
|
+
if (!session) {
|
|
493
|
+
throw new AcpError(
|
|
494
|
+
ACP_ERROR_CODES.INVALID_PARAMS,
|
|
495
|
+
`No session "${sessionId}". Create one with "${ACP_METHODS.SESSION_NEW}" first.`,
|
|
496
|
+
)
|
|
497
|
+
}
|
|
498
|
+
return session
|
|
499
|
+
}
|
|
500
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { ToolPresenter } from '../../registry/tool/presentation.js'
|
|
2
|
+
import type { AcpSessionUpdate, AcpStopReason } from '../../types/acp/index.js'
|
|
3
|
+
import type { RunEvent } from '../../types/run/events.js'
|
|
4
|
+
import type { StopReason } from '../../types/run/index.js'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal run events, in the peer's vocabulary.
|
|
8
|
+
*
|
|
9
|
+
* Mirrors `bridge/sse/mapper.ts`: one pure function over one event,
|
|
10
|
+
* returning `null` for the events this protocol has no word for. Pure so a
|
|
11
|
+
* test can assert the whole mapping without a run, and `null` rather than a
|
|
12
|
+
* thrown error because "this protocol does not carry that" is an ordinary
|
|
13
|
+
* answer — a run emits far more than any one peer surface renders.
|
|
14
|
+
*
|
|
15
|
+
* **No tool name is compared anywhere in this file.** Every tool call is
|
|
16
|
+
* rendered by the presenter the registry built, which asks the TOOL how it
|
|
17
|
+
* wants to be shown. A front end that switched on `'edit'` could never give
|
|
18
|
+
* a diff to a tool it had not heard of — an MCP server's, a plugin's — and
|
|
19
|
+
* that is the defect `createToolPresenter` was extracted to fix once rather
|
|
20
|
+
* than in each host.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The kernel's stop reasons, in the peer's.
|
|
25
|
+
*
|
|
26
|
+
* A table rather than a pass-through, because the two vocabularies are not
|
|
27
|
+
* the same set and a peer receiving a word its own union does not contain
|
|
28
|
+
* cannot render it. Anything unmapped becomes `error` rather than being
|
|
29
|
+
* forwarded: an unrecognised terminal state is a state this bridge does not
|
|
30
|
+
* understand, and saying so is more useful than inventing a word for it.
|
|
31
|
+
*/
|
|
32
|
+
const STOP_REASONS: Readonly<Record<string, AcpStopReason>> = {
|
|
33
|
+
end_turn: 'end_turn',
|
|
34
|
+
stop_condition: 'end_turn',
|
|
35
|
+
max_iterations: 'max_turns',
|
|
36
|
+
max_tokens: 'max_turns',
|
|
37
|
+
cancelled: 'cancelled',
|
|
38
|
+
canceled: 'cancelled',
|
|
39
|
+
aborted: 'cancelled',
|
|
40
|
+
paused: 'cancelled',
|
|
41
|
+
guardrail_blocked: 'refused',
|
|
42
|
+
plan_rejected: 'refused',
|
|
43
|
+
answer_rejected: 'refused',
|
|
44
|
+
error: 'error',
|
|
45
|
+
provider_error: 'error',
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function toAcpStopReason(reason: StopReason | string | undefined): AcpStopReason {
|
|
49
|
+
if (reason === undefined) return 'end_turn'
|
|
50
|
+
return STOP_REASONS[reason] ?? 'error'
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* One run event as a session update, or `null`.
|
|
55
|
+
*
|
|
56
|
+
* Takes the presenter rather than reaching for a registry, so this stays
|
|
57
|
+
* pure and so a caller with a narrowed registry gets that narrowing.
|
|
58
|
+
*/
|
|
59
|
+
export function toAcpSessionUpdate(
|
|
60
|
+
event: RunEvent,
|
|
61
|
+
presenter: ToolPresenter,
|
|
62
|
+
): AcpSessionUpdate | null {
|
|
63
|
+
switch (event.type) {
|
|
64
|
+
case 'text_delta':
|
|
65
|
+
return { kind: 'agent_message_chunk', text: event.text }
|
|
66
|
+
|
|
67
|
+
case 'reasoning_delta':
|
|
68
|
+
return { kind: 'agent_thought_chunk', text: event.text }
|
|
69
|
+
|
|
70
|
+
case 'tool_executing':
|
|
71
|
+
return {
|
|
72
|
+
kind: 'tool_call',
|
|
73
|
+
toolCallId: event.toolUseId,
|
|
74
|
+
title: event.toolName,
|
|
75
|
+
status: 'pending',
|
|
76
|
+
view: presenter.presentCall(event.toolName, event.input),
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
case 'tool_completed':
|
|
80
|
+
return {
|
|
81
|
+
kind: 'tool_call',
|
|
82
|
+
toolCallId: event.toolUseId,
|
|
83
|
+
title: event.toolName,
|
|
84
|
+
// `isError`, the field the event actually carries. The INPUT is
|
|
85
|
+
// not on this event — only the result is — so the presenter is
|
|
86
|
+
// asked with `undefined`, and a tool whose `presentResult` needs
|
|
87
|
+
// its input falls back to the generic view rather than being
|
|
88
|
+
// handed a guess at what it was called with.
|
|
89
|
+
status: event.isError === true ? 'failed' : 'completed',
|
|
90
|
+
view: presenter.presentResult(event.toolName, undefined, {
|
|
91
|
+
success: event.isError !== true,
|
|
92
|
+
output: typeof event.result === 'string' ? event.result : String(event.result ?? ''),
|
|
93
|
+
}),
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
case 'run_completed':
|
|
97
|
+
return { kind: 'turn_ended', stopReason: toAcpStopReason(event.stopReason) }
|
|
98
|
+
|
|
99
|
+
case 'run_failed':
|
|
100
|
+
return { kind: 'turn_ended', stopReason: 'error' }
|
|
101
|
+
|
|
102
|
+
default:
|
|
103
|
+
// Everything else: iteration boundaries, token accounting, plan and
|
|
104
|
+
// activity events, compaction. Real events with no word in this
|
|
105
|
+
// protocol, and forwarding them as a generic blob would put text on a
|
|
106
|
+
// client's screen that nothing there knows how to lay out.
|
|
107
|
+
return null
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -11,7 +11,8 @@ import type {
|
|
|
11
11
|
MCPToolResult,
|
|
12
12
|
} from '../../../types/connector/index.js'
|
|
13
13
|
import type { ConnectorInstanceId } from '../../../types/ids/index.js'
|
|
14
|
-
import {
|
|
14
|
+
import { SCOPE_ATTRIBUTE } from '../../../utils/log/types.js'
|
|
15
|
+
import { type Logger, resolveLogger } from '../../../utils/logger.js'
|
|
15
16
|
|
|
16
17
|
export class MCPConnectorBridge {
|
|
17
18
|
private manager: ConnectorManager
|
|
@@ -19,10 +20,10 @@ export class MCPConnectorBridge {
|
|
|
19
20
|
private mappings: MCPConnectorBridgeToolMapping[] = []
|
|
20
21
|
private log: Logger
|
|
21
22
|
|
|
22
|
-
constructor(config: { manager: ConnectorManager; prefix?: string }) {
|
|
23
|
+
constructor(config: { manager: ConnectorManager; prefix?: string; log?: Logger }) {
|
|
23
24
|
this.manager = config.manager
|
|
24
25
|
this.prefix = config.prefix ?? 'namzu'
|
|
25
|
-
this.log =
|
|
26
|
+
this.log = resolveLogger(config.log).child({ [SCOPE_ATTRIBUTE]: 'bridge/mcp/connector' })
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
listTools(instanceId?: ConnectorInstanceId): MCPToolDefinition[] {
|
|
@@ -43,7 +44,10 @@ export class MCPConnectorBridge {
|
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
46
|
|
|
46
|
-
this.log.info(
|
|
47
|
+
this.log.info('Bridge generated MCP tools', {
|
|
48
|
+
'namzu.mcp.tool_count': tools.length,
|
|
49
|
+
'namzu.connector.instance_count': instances.length,
|
|
50
|
+
})
|
|
47
51
|
return tools
|
|
48
52
|
}
|
|
49
53
|
|
package/src/bridge/sse/mapper.ts
CHANGED
|
@@ -47,6 +47,14 @@ const MAPPING: {
|
|
|
47
47
|
transform: (e, runId) => ({ run_id: runId, iteration: e.iteration }),
|
|
48
48
|
},
|
|
49
49
|
|
|
50
|
+
// Named policies only, never the handler: the wire cannot carry a
|
|
51
|
+
// function, and the names are what an operator watching a live run
|
|
52
|
+
// needs in order to see supervision loosen.
|
|
53
|
+
approval_policy_changed: {
|
|
54
|
+
wire: 'approval_policy.changed',
|
|
55
|
+
transform: (e, runId) => ({ run_id: runId, from: e.from, to: e.to, reason: e.reason }),
|
|
56
|
+
},
|
|
57
|
+
|
|
50
58
|
iteration_completed: {
|
|
51
59
|
wire: 'iteration.completed',
|
|
52
60
|
transform: (e, runId) => ({ run_id: runId, iteration: e.iteration }),
|
|
@@ -96,6 +104,10 @@ const MAPPING: {
|
|
|
96
104
|
}),
|
|
97
105
|
},
|
|
98
106
|
|
|
107
|
+
// Declined, for the reason the a2a mapper gives: whole message bodies,
|
|
108
|
+
// tool output included. A subscribed browser must not receive a frame
|
|
109
|
+
// carrying the content a compaction just removed.
|
|
110
|
+
compaction_shed: null,
|
|
99
111
|
compaction_completed: {
|
|
100
112
|
wire: 'compaction.completed',
|
|
101
113
|
transform: (e, runId) => ({
|
|
@@ -115,6 +127,24 @@ const MAPPING: {
|
|
|
115
127
|
// context was dropped must also be able to show them it was not, because a
|
|
116
128
|
// run continuing at full context is the state that ends in an opaque
|
|
117
129
|
// provider rejection later.
|
|
130
|
+
// Declined: it duplicates content already on the wire — the prompt a
|
|
131
|
+
// consumer can read from the transcript — and a system prompt plus a
|
|
132
|
+
// tool catalogue is large enough that streaming it per change would
|
|
133
|
+
// dominate the stream it rides on.
|
|
134
|
+
request_envelope: null,
|
|
135
|
+
|
|
136
|
+
compaction_tool_results_cleared: {
|
|
137
|
+
wire: 'compaction.tool_results_cleared',
|
|
138
|
+
transform: (e, runId) => ({
|
|
139
|
+
run_id: runId,
|
|
140
|
+
iteration: e.iteration,
|
|
141
|
+
cleared_count: e.clearedCount,
|
|
142
|
+
chars_reclaimed: e.charsReclaimed,
|
|
143
|
+
reclaimed_tokens: e.reclaimedTokens,
|
|
144
|
+
relief_was_enough: e.reliefWasEnough,
|
|
145
|
+
}),
|
|
146
|
+
},
|
|
147
|
+
|
|
118
148
|
compaction_failed: {
|
|
119
149
|
wire: 'compaction.failed',
|
|
120
150
|
transform: (e, runId) => ({
|