@namzu/sdk 34.2.0 → 36.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 +171 -0
- package/README.md +2 -6
- package/dist/agents/PipelineAgent.d.ts.map +1 -1
- package/dist/agents/PipelineAgent.js +118 -100
- package/dist/agents/PipelineAgent.js.map +1 -1
- package/dist/agents/ReactiveAgent.d.ts.map +1 -1
- package/dist/agents/ReactiveAgent.js +2 -0
- package/dist/agents/ReactiveAgent.js.map +1 -1
- package/dist/agents/RouterAgent.d.ts.map +1 -1
- package/dist/agents/RouterAgent.js +105 -61
- package/dist/agents/RouterAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +8 -4
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/budget.d.ts +6 -0
- package/dist/agents/budget.d.ts.map +1 -0
- package/dist/agents/budget.js +33 -0
- package/dist/agents/budget.js.map +1 -0
- package/dist/agents/explore.d.ts +20 -0
- package/dist/agents/explore.d.ts.map +1 -0
- package/dist/agents/explore.js +26 -0
- package/dist/agents/explore.js.map +1 -0
- package/dist/agents/file-definitions.d.ts +80 -0
- package/dist/agents/file-definitions.d.ts.map +1 -0
- package/dist/agents/file-definitions.js +179 -0
- package/dist/agents/file-definitions.js.map +1 -0
- package/dist/agents/index.d.ts +3 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +2 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/bridge/a2a/mapper.d.ts.map +1 -1
- package/dist/bridge/a2a/mapper.js +6 -0
- package/dist/bridge/a2a/mapper.js.map +1 -1
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +22 -0
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/bus/lock.d.ts.map +1 -1
- package/dist/bus/lock.js +1 -10
- package/dist/bus/lock.js.map +1 -1
- package/dist/compaction/consolidation.d.ts +31 -0
- package/dist/compaction/consolidation.d.ts.map +1 -0
- package/dist/compaction/consolidation.js +63 -0
- package/dist/compaction/consolidation.js.map +1 -0
- package/dist/compaction/factory.d.ts.map +1 -1
- package/dist/compaction/factory.js +3 -0
- package/dist/compaction/factory.js.map +1 -1
- package/dist/compaction/index.d.ts +6 -1
- package/dist/compaction/index.d.ts.map +1 -1
- package/dist/compaction/index.js +6 -0
- package/dist/compaction/index.js.map +1 -1
- package/dist/compaction/manager.d.ts +7 -0
- package/dist/compaction/manager.d.ts.map +1 -1
- package/dist/compaction/manager.js +31 -0
- package/dist/compaction/manager.js.map +1 -1
- package/dist/compaction/plan.d.ts +23 -0
- package/dist/compaction/plan.d.ts.map +1 -1
- package/dist/compaction/plan.js +41 -24
- package/dist/compaction/plan.js.map +1 -1
- package/dist/compaction/salience/bm25.d.ts +26 -0
- package/dist/compaction/salience/bm25.d.ts.map +1 -0
- package/dist/compaction/salience/bm25.js +56 -0
- package/dist/compaction/salience/bm25.js.map +1 -0
- package/dist/compaction/salience/goal.d.ts +21 -0
- package/dist/compaction/salience/goal.d.ts.map +1 -0
- package/dist/compaction/salience/goal.js +32 -0
- package/dist/compaction/salience/goal.js.map +1 -0
- package/dist/compaction/salience/index.d.ts +4 -0
- package/dist/compaction/salience/index.d.ts.map +1 -0
- package/dist/compaction/salience/index.js +4 -0
- package/dist/compaction/salience/index.js.map +1 -0
- package/dist/compaction/salience/minhash.d.ts +17 -0
- package/dist/compaction/salience/minhash.d.ts.map +1 -0
- package/dist/compaction/salience/minhash.js +54 -0
- package/dist/compaction/salience/minhash.js.map +1 -0
- package/dist/compaction/salience/score.d.ts +64 -0
- package/dist/compaction/salience/score.d.ts.map +1 -0
- package/dist/compaction/salience/score.js +256 -0
- package/dist/compaction/salience/score.js.map +1 -0
- package/dist/compaction/salience/tokenize.d.ts +20 -0
- package/dist/compaction/salience/tokenize.d.ts.map +1 -0
- package/dist/compaction/salience/tokenize.js +92 -0
- package/dist/compaction/salience/tokenize.js.map +1 -0
- package/dist/compaction/salience/working-set.d.ts +59 -0
- package/dist/compaction/salience/working-set.d.ts.map +1 -0
- package/dist/compaction/salience/working-set.js +137 -0
- package/dist/compaction/salience/working-set.js.map +1 -0
- package/dist/compaction/serializer.d.ts +2 -0
- package/dist/compaction/serializer.d.ts.map +1 -1
- package/dist/compaction/serializer.js +15 -0
- package/dist/compaction/serializer.js.map +1 -1
- package/dist/compaction/token-estimate.d.ts +13 -0
- package/dist/compaction/token-estimate.d.ts.map +1 -0
- package/dist/compaction/token-estimate.js +58 -0
- package/dist/compaction/token-estimate.js.map +1 -0
- package/dist/compaction/tool-result-editing.d.ts +10 -2
- package/dist/compaction/tool-result-editing.d.ts.map +1 -1
- package/dist/compaction/tool-result-editing.js +22 -24
- package/dist/compaction/tool-result-editing.js.map +1 -1
- package/dist/compaction/types.d.ts +22 -1
- package/dist/compaction/types.d.ts.map +1 -1
- package/dist/compaction/wire.d.ts +3 -1
- package/dist/compaction/wire.d.ts.map +1 -1
- package/dist/compaction/wire.js +2 -0
- package/dist/compaction/wire.js.map +1 -1
- package/dist/config/runtime.d.ts +58 -28
- package/dist/config/runtime.d.ts.map +1 -1
- package/dist/config/runtime.js +13 -1
- package/dist/config/runtime.js.map +1 -1
- package/dist/connector/builtins/http.d.ts.map +1 -1
- package/dist/connector/builtins/http.js +2 -8
- package/dist/connector/builtins/http.js.map +1 -1
- package/dist/connector/builtins/webhook.js +2 -2
- package/dist/connector/builtins/webhook.js.map +1 -1
- package/dist/connector/mcp/adapter.d.ts +2 -0
- package/dist/connector/mcp/adapter.d.ts.map +1 -1
- package/dist/connector/mcp/adapter.js +30 -0
- package/dist/connector/mcp/adapter.js.map +1 -1
- package/dist/connector/tools/adapter.js +2 -2
- package/dist/connector/tools/adapter.js.map +1 -1
- package/dist/connector/tools/definitions.js +2 -2
- package/dist/connector/tools/definitions.js.map +1 -1
- package/dist/constants/compaction/index.d.ts +1 -0
- package/dist/constants/compaction/index.d.ts.map +1 -1
- package/dist/constants/compaction/index.js +1 -0
- package/dist/constants/compaction/index.js.map +1 -1
- package/dist/constants/telemetry/index.d.ts +0 -1
- package/dist/constants/telemetry/index.d.ts.map +1 -1
- package/dist/constants/telemetry/index.js +0 -1
- package/dist/constants/telemetry/index.js.map +1 -1
- package/dist/contracts/a2a.d.ts +5 -5
- package/dist/contracts/api.d.ts +4 -2
- package/dist/contracts/api.d.ts.map +1 -1
- package/dist/contracts/schemas.d.ts +1 -15
- package/dist/contracts/schemas.d.ts.map +1 -1
- package/dist/contracts/schemas.js +5 -20
- package/dist/contracts/schemas.js.map +1 -1
- package/dist/invariants/index.d.ts +1 -1
- package/dist/manager/agent/lifecycle.d.ts +2 -18
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +373 -340
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/run/persistence.d.ts +3 -0
- package/dist/manager/run/persistence.d.ts.map +1 -1
- package/dist/manager/run/persistence.js +35 -5
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/plugin/index.d.ts +2 -0
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +1 -0
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/shell-hook.d.ts +128 -0
- package/dist/plugin/shell-hook.d.ts.map +1 -0
- package/dist/plugin/shell-hook.js +299 -0
- package/dist/plugin/shell-hook.js.map +1 -0
- package/dist/prompt/coding-agent-doctrine.d.ts +63 -0
- package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -0
- package/dist/prompt/coding-agent-doctrine.js +100 -0
- package/dist/prompt/coding-agent-doctrine.js.map +1 -0
- package/dist/prompt/index.d.ts +2 -0
- package/dist/prompt/index.d.ts.map +1 -1
- package/dist/prompt/index.js +1 -0
- package/dist/prompt/index.js.map +1 -1
- package/dist/provider/errors.d.ts +1 -1
- package/dist/provider/errors.js +1 -1
- package/dist/provider/fallback.d.ts +2 -0
- package/dist/provider/fallback.d.ts.map +1 -1
- package/dist/provider/fallback.js +3 -1
- package/dist/provider/fallback.js.map +1 -1
- package/dist/provider/retry.d.ts +2 -0
- package/dist/provider/retry.d.ts.map +1 -1
- package/dist/provider/retry.js +3 -1
- package/dist/provider/retry.js.map +1 -1
- package/dist/provider/token-budget.d.ts +13 -0
- package/dist/provider/token-budget.d.ts.map +1 -0
- package/dist/provider/token-budget.js +150 -0
- package/dist/provider/token-budget.js.map +1 -0
- package/dist/public-runtime.d.ts +14 -14
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +15 -10
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +2 -0
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +2 -0
- package/dist/public-tools.js.map +1 -1
- package/dist/public-types.d.ts +12 -2
- package/dist/public-types.d.ts.map +1 -1
- package/dist/registry/command/kernel-commands.d.ts.map +1 -1
- package/dist/registry/command/kernel-commands.js +18 -6
- package/dist/registry/command/kernel-commands.js.map +1 -1
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +4 -1
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/run/LimitChecker.js +1 -1
- package/dist/run/LimitChecker.js.map +1 -1
- package/dist/run/drain.js +1 -1
- package/dist/run/reporter.d.ts.map +1 -1
- package/dist/run/reporter.js +15 -0
- package/dist/run/reporter.js.map +1 -1
- package/dist/run/token-budget.d.ts +108 -0
- package/dist/run/token-budget.d.ts.map +1 -0
- package/dist/run/token-budget.js +591 -0
- package/dist/run/token-budget.js.map +1 -0
- package/dist/runtime/jobs/registry.d.ts +29 -0
- package/dist/runtime/jobs/registry.d.ts.map +1 -1
- package/dist/runtime/jobs/registry.js +98 -18
- package/dist/runtime/jobs/registry.js.map +1 -1
- package/dist/runtime/query/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/checkpoint.js +10 -3
- package/dist/runtime/query/checkpoint.js.map +1 -1
- package/dist/runtime/query/context.d.ts +2 -26
- package/dist/runtime/query/context.d.ts.map +1 -1
- package/dist/runtime/query/context.js +1 -29
- package/dist/runtime/query/context.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +13 -9
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +144 -55
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/guard.d.ts.map +1 -1
- package/dist/runtime/query/guard.js +8 -0
- package/dist/runtime/query/guard.js.map +1 -1
- package/dist/runtime/query/index.d.ts +42 -4
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +153 -52
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +3 -3
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +47 -11
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +98 -30
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +4 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +29 -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 +25 -15
- package/dist/runtime/query/iteration/phases/working-memory.js.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.js +10 -5
- package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
- package/dist/runtime/query/plugin-hooks.d.ts +1 -1
- package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
- package/dist/runtime/query/plugin-hooks.js +20 -1
- package/dist/runtime/query/plugin-hooks.js.map +1 -1
- package/dist/runtime/query/prompt.d.ts.map +1 -1
- package/dist/runtime/query/prompt.js +14 -4
- package/dist/runtime/query/prompt.js.map +1 -1
- package/dist/runtime/query/repeat-call.d.ts +20 -2
- package/dist/runtime/query/repeat-call.d.ts.map +1 -1
- package/dist/runtime/query/repeat-call.js +35 -7
- package/dist/runtime/query/repeat-call.js.map +1 -1
- package/dist/runtime/query/result.d.ts.map +1 -1
- package/dist/runtime/query/result.js +9 -0
- package/dist/runtime/query/result.js.map +1 -1
- package/dist/runtime/query/review-policy.d.ts +142 -0
- package/dist/runtime/query/review-policy.d.ts.map +1 -0
- package/dist/runtime/query/review-policy.js +144 -0
- package/dist/runtime/query/review-policy.js.map +1 -0
- package/dist/runtime/query/run-state.d.ts.map +1 -1
- package/dist/runtime/query/run-state.js +4 -0
- package/dist/runtime/query/run-state.js.map +1 -1
- package/dist/runtime/query/steering.d.ts +4 -0
- package/dist/runtime/query/steering.d.ts.map +1 -1
- package/dist/runtime/query/steering.js +29 -0
- package/dist/runtime/query/steering.js.map +1 -1
- package/dist/runtime/query/token-budget.d.ts +7 -0
- package/dist/runtime/query/token-budget.d.ts.map +1 -0
- package/dist/runtime/query/token-budget.js +101 -0
- package/dist/runtime/query/token-budget.js.map +1 -0
- package/dist/runtime/query/tool-output-budget.d.ts +2 -0
- package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
- package/dist/runtime/query/tool-output-budget.js +29 -11
- 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 +4 -2
- package/dist/runtime/query/tool-pause.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +4 -0
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +4 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/sandbox/file-walk-program.d.ts +3 -0
- package/dist/sandbox/file-walk-program.d.ts.map +1 -0
- package/dist/sandbox/file-walk-program.js +94 -0
- package/dist/sandbox/file-walk-program.js.map +1 -0
- package/dist/sandbox/file-walk.d.ts +12 -0
- package/dist/sandbox/file-walk.d.ts.map +1 -0
- package/dist/sandbox/file-walk.js +429 -0
- package/dist/sandbox/file-walk.js.map +1 -0
- package/dist/sandbox/index.d.ts +2 -0
- package/dist/sandbox/index.d.ts.map +1 -1
- package/dist/sandbox/index.js +1 -0
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/provider/local.d.ts +3 -1
- package/dist/sandbox/provider/local.d.ts.map +1 -1
- package/dist/sandbox/provider/local.js +121 -12
- package/dist/sandbox/provider/local.js.map +1 -1
- package/dist/scheduler/completion-inbox.d.ts +3 -2
- package/dist/scheduler/completion-inbox.d.ts.map +1 -1
- package/dist/scheduler/completion-inbox.js +29 -15
- package/dist/scheduler/completion-inbox.js.map +1 -1
- package/dist/scheduler/delegating.d.ts +1 -0
- package/dist/scheduler/delegating.d.ts.map +1 -1
- package/dist/scheduler/delegating.js +29 -12
- package/dist/scheduler/delegating.js.map +1 -1
- package/dist/scheduler/local.d.ts +1 -0
- package/dist/scheduler/local.d.ts.map +1 -1
- package/dist/scheduler/local.js +4 -7
- package/dist/scheduler/local.js.map +1 -1
- package/dist/session/index.d.ts +0 -1
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +0 -1
- package/dist/session/index.js.map +1 -1
- package/dist/session/workspace/path-builder.d.ts.map +1 -1
- package/dist/session/workspace/path-builder.js +5 -4
- package/dist/session/workspace/path-builder.js.map +1 -1
- package/dist/store/feedback/disk.d.ts.map +1 -1
- package/dist/store/feedback/disk.js +4 -6
- package/dist/store/feedback/disk.js.map +1 -1
- package/dist/store/index.d.ts +2 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +1 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store/memory/disk.d.ts.map +1 -1
- package/dist/store/memory/disk.js +3 -12
- package/dist/store/memory/disk.js.map +1 -1
- package/dist/store/run/checkpoint-disk.d.ts +3 -3
- package/dist/store/run/checkpoint-disk.d.ts.map +1 -1
- package/dist/store/run/checkpoint-disk.js +14 -26
- package/dist/store/run/checkpoint-disk.js.map +1 -1
- package/dist/store/run/claim-disk.js +1 -1
- package/dist/store/run/conformance.d.ts +1 -1
- package/dist/store/run/conformance.d.ts.map +1 -1
- package/dist/store/run/conformance.js +41 -33
- package/dist/store/run/conformance.js.map +1 -1
- package/dist/store/run/disk.d.ts.map +1 -1
- package/dist/store/run/disk.js +20 -4
- package/dist/store/run/disk.js.map +1 -1
- package/dist/store/run/token-budget-disk.d.ts +37 -0
- package/dist/store/run/token-budget-disk.d.ts.map +1 -0
- package/dist/store/run/token-budget-disk.js +208 -0
- package/dist/store/run/token-budget-disk.js.map +1 -0
- package/dist/store/session/disk.d.ts +4 -13
- package/dist/store/session/disk.d.ts.map +1 -1
- package/dist/store/session/disk.js +34 -31
- package/dist/store/session/disk.js.map +1 -1
- package/dist/store/session/memory.d.ts +2 -0
- package/dist/store/session/memory.d.ts.map +1 -1
- package/dist/store/session/memory.js +41 -2
- 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 +7 -8
- package/dist/store/task/disk.js.map +1 -1
- package/dist/store/topic/memory.d.ts +2 -0
- package/dist/store/topic/memory.d.ts.map +1 -1
- package/dist/store/topic/memory.js +13 -1
- package/dist/store/topic/memory.js.map +1 -1
- package/dist/test-support/ids.d.ts +4 -19
- package/dist/test-support/ids.d.ts.map +1 -1
- package/dist/test-support/ids.js +51 -59
- package/dist/test-support/ids.js.map +1 -1
- package/dist/tools/advisory/index.d.ts.map +1 -1
- package/dist/tools/advisory/index.js +3 -1
- package/dist/tools/advisory/index.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts +2 -0
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +224 -70
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/computer-use.d.ts +2 -2
- package/dist/tools/builtins/computer-use.d.ts.map +1 -1
- package/dist/tools/builtins/computer-use.js +4 -2
- package/dist/tools/builtins/computer-use.js.map +1 -1
- package/dist/tools/builtins/edit.js +2 -2
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/glob.d.ts +2 -1
- package/dist/tools/builtins/glob.d.ts.map +1 -1
- package/dist/tools/builtins/glob.js +95 -103
- package/dist/tools/builtins/glob.js.map +1 -1
- package/dist/tools/builtins/grep.d.ts.map +1 -1
- package/dist/tools/builtins/grep.js +155 -111
- package/dist/tools/builtins/grep.js.map +1 -1
- package/dist/tools/builtins/ls.js +4 -4
- package/dist/tools/builtins/ls.js.map +1 -1
- package/dist/tools/builtins/lsp.js +2 -2
- package/dist/tools/builtins/lsp.js.map +1 -1
- package/dist/tools/builtins/read-file.js +2 -2
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/write-file.js +2 -2
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/coordinator/ask-user-question.d.ts +33 -0
- package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -0
- package/dist/tools/coordinator/ask-user-question.js +237 -0
- package/dist/tools/coordinator/ask-user-question.js.map +1 -0
- package/dist/tools/coordinator/index.d.ts +1 -2
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +4 -220
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/memory/read.d.ts.map +1 -1
- package/dist/tools/memory/read.js +2 -4
- package/dist/tools/memory/read.js.map +1 -1
- package/dist/tools/paths.d.ts +13 -0
- package/dist/tools/paths.d.ts.map +1 -1
- package/dist/tools/paths.js +53 -0
- package/dist/tools/paths.js.map +1 -1
- package/dist/tools/roster.d.ts +27 -0
- package/dist/tools/roster.d.ts.map +1 -0
- package/dist/tools/roster.js +42 -0
- package/dist/tools/roster.js.map +1 -0
- package/dist/types/agent/base.d.ts +5 -0
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/agent/pipeline.d.ts +3 -0
- package/dist/types/agent/pipeline.d.ts.map +1 -1
- package/dist/types/agent/router.d.ts +2 -3
- package/dist/types/agent/router.d.ts.map +1 -1
- package/dist/types/agent/scheduler.d.ts +3 -0
- package/dist/types/agent/scheduler.d.ts.map +1 -1
- package/dist/types/agent/task.d.ts +5 -16
- package/dist/types/agent/task.d.ts.map +1 -1
- package/dist/types/agent/task.js.map +1 -1
- package/dist/types/common/index.d.ts.map +1 -1
- package/dist/types/common/index.js +3 -0
- package/dist/types/common/index.js.map +1 -1
- package/dist/types/computer-use/index.d.ts +8 -0
- package/dist/types/computer-use/index.d.ts.map +1 -1
- package/dist/types/computer-use/index.js.map +1 -1
- package/dist/types/hitl/index.d.ts +5 -0
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/ids/brand.d.ts +5 -47
- package/dist/types/ids/brand.d.ts.map +1 -1
- package/dist/types/ids/brand.js +2 -39
- package/dist/types/ids/brand.js.map +1 -1
- package/dist/types/ids/index.d.ts +59 -69
- package/dist/types/ids/index.d.ts.map +1 -1
- package/dist/types/ids/index.js +12 -10
- package/dist/types/ids/index.js.map +1 -1
- package/dist/types/permission/index.d.ts +9 -0
- package/dist/types/permission/index.d.ts.map +1 -1
- package/dist/types/permission/index.js +9 -1
- package/dist/types/permission/index.js.map +1 -1
- package/dist/types/plugin/index.d.ts +45 -4
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/plugin/index.js +7 -0
- package/dist/types/plugin/index.js.map +1 -1
- package/dist/types/run/config.d.ts +3 -0
- package/dist/types/run/config.d.ts.map +1 -1
- package/dist/types/run/emergency.d.ts +5 -0
- package/dist/types/run/emergency.d.ts.map +1 -1
- package/dist/types/run/emergency.js.map +1 -1
- package/dist/types/run/entity.d.ts +6 -2
- package/dist/types/run/entity.d.ts.map +1 -1
- package/dist/types/run/events.d.ts +35 -0
- 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 +1 -0
- package/dist/types/run/index.d.ts.map +1 -1
- package/dist/types/run/index.js +1 -0
- package/dist/types/run/index.js.map +1 -1
- package/dist/types/run/state.d.ts +16 -15
- package/dist/types/run/state.d.ts.map +1 -1
- package/dist/types/run/state.js +41 -22
- package/dist/types/run/state.js.map +1 -1
- package/dist/types/run/stop-reason.d.ts +3 -14
- package/dist/types/run/stop-reason.d.ts.map +1 -1
- package/dist/types/run/token-budget-store.d.ts +29 -0
- package/dist/types/run/token-budget-store.d.ts.map +1 -0
- package/dist/types/run/token-budget-store.js +25 -0
- package/dist/types/run/token-budget-store.js.map +1 -0
- package/dist/types/sandbox/index.d.ts +47 -2
- package/dist/types/sandbox/index.d.ts.map +1 -1
- package/dist/types/sandbox/index.js.map +1 -1
- package/dist/types/session/store.d.ts +8 -0
- package/dist/types/session/store.d.ts.map +1 -1
- package/dist/types/tool/index.d.ts +15 -0
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/utils/frontmatter.d.ts +1 -1
- package/dist/utils/frontmatter.js +1 -1
- package/dist/utils/id-format.d.ts +3 -0
- package/dist/utils/id-format.d.ts.map +1 -0
- package/dist/utils/id-format.js +9 -0
- package/dist/utils/id-format.js.map +1 -0
- package/dist/utils/id.d.ts +65 -32
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +168 -148
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/log/exception.js +1 -1
- package/dist/utils/log/exception.js.map +1 -1
- package/dist/utils/log/index.d.ts.map +1 -1
- package/dist/utils/log/index.js +1 -2
- package/dist/utils/log/index.js.map +1 -1
- package/dist/utils/log/templates.d.ts.map +1 -1
- package/dist/utils/log/templates.js +0 -1
- package/dist/utils/log/templates.js.map +1 -1
- package/package.json +6 -1
- package/src/agents/AGENTS.md +1 -1
- package/src/agents/PipelineAgent.ts +129 -109
- package/src/agents/ReactiveAgent.ts +2 -0
- package/src/agents/RouterAgent.ts +120 -73
- package/src/agents/SupervisorAgent.ts +12 -4
- package/src/agents/budget.ts +42 -0
- package/src/agents/explore.ts +29 -0
- package/src/agents/file-definitions.ts +237 -0
- package/src/agents/index.ts +15 -0
- package/src/bridge/a2a/mapper.ts +6 -0
- package/src/bridge/sse/mapper.ts +22 -0
- package/src/bus/lock.ts +1 -10
- package/src/compaction/consolidation.ts +79 -0
- package/src/compaction/factory.ts +3 -0
- package/src/compaction/index.ts +34 -4
- package/src/compaction/manager.ts +39 -1
- package/src/compaction/plan.ts +52 -21
- package/src/compaction/salience/bm25.ts +72 -0
- package/src/compaction/salience/goal.ts +44 -0
- package/src/compaction/salience/index.ts +19 -0
- package/src/compaction/salience/minhash.ts +53 -0
- package/src/compaction/salience/score.ts +305 -0
- package/src/compaction/salience/tokenize.ts +89 -0
- package/src/compaction/salience/working-set.ts +187 -0
- package/src/compaction/serializer.ts +16 -0
- package/src/compaction/token-estimate.ts +57 -0
- package/src/compaction/tool-result-editing.ts +28 -26
- package/src/compaction/types.ts +24 -1
- package/src/compaction/wire.ts +5 -1
- package/src/config/runtime.ts +13 -1
- package/src/connector/builtins/http.ts +2 -8
- package/src/connector/builtins/webhook.ts +2 -2
- package/src/connector/mcp/adapter.ts +32 -0
- package/src/connector/tools/adapter.ts +2 -2
- package/src/connector/tools/definitions.ts +2 -2
- package/src/constants/compaction/index.ts +1 -0
- package/src/constants/telemetry/index.ts +0 -1
- package/src/contracts/api.ts +5 -1
- package/src/contracts/schemas.ts +6 -20
- package/src/invariants/index.ts +1 -1
- package/src/manager/agent/lifecycle.ts +380 -352
- package/src/manager/run/persistence.ts +35 -5
- package/src/plugin/index.ts +19 -0
- package/src/plugin/shell-hook.ts +403 -0
- package/src/prompt/coding-agent-doctrine.ts +118 -0
- package/src/prompt/index.ts +8 -0
- package/src/provider/errors.ts +1 -1
- package/src/provider/fallback.ts +4 -1
- package/src/provider/retry.ts +4 -1
- package/src/provider/token-budget.ts +158 -0
- package/src/public-runtime.ts +56 -28
- package/src/public-tools.ts +5 -0
- package/src/public-types.ts +65 -0
- package/src/registry/command/kernel-commands.ts +16 -6
- package/src/registry/tool/execute.ts +4 -1
- package/src/run/LimitChecker.ts +1 -1
- package/src/run/drain.ts +1 -1
- package/src/run/reporter.ts +15 -0
- package/src/run/token-budget.ts +692 -0
- package/src/runtime/jobs/registry.ts +123 -17
- package/src/runtime/query/checkpoint.ts +10 -3
- package/src/runtime/query/context.ts +3 -57
- package/src/runtime/query/executor.ts +181 -71
- package/src/runtime/query/guard.ts +8 -0
- package/src/runtime/query/index.ts +209 -62
- package/src/runtime/query/iteration/index.ts +53 -15
- package/src/runtime/query/iteration/phases/compaction.ts +130 -31
- package/src/runtime/query/iteration/phases/context.ts +4 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +39 -7
- package/src/runtime/query/iteration/phases/working-memory.ts +23 -14
- package/src/runtime/query/iteration/stream-turn.ts +9 -5
- package/src/runtime/query/plugin-hooks.ts +24 -2
- package/src/runtime/query/prompt.ts +21 -4
- package/src/runtime/query/repeat-call.ts +42 -7
- package/src/runtime/query/result.ts +9 -0
- package/src/runtime/query/review-policy.ts +231 -0
- package/src/runtime/query/run-state.ts +4 -0
- package/src/runtime/query/steering.ts +32 -0
- package/src/runtime/query/token-budget.ts +127 -0
- package/src/runtime/query/tool-output-budget.ts +33 -10
- package/src/runtime/query/tool-pause.ts +4 -2
- package/src/runtime/query/tooling.ts +8 -0
- package/src/sandbox/file-walk-program.ts +93 -0
- package/src/sandbox/file-walk.ts +463 -0
- package/src/sandbox/index.ts +2 -0
- package/src/sandbox/provider/local.ts +136 -13
- package/src/scheduler/completion-inbox.ts +29 -19
- package/src/scheduler/delegating.ts +35 -13
- package/src/scheduler/local.ts +5 -7
- package/src/session/index.ts +0 -1
- package/src/session/workspace/path-builder.ts +5 -4
- package/src/store/feedback/disk.ts +4 -6
- package/src/store/index.ts +2 -0
- package/src/store/memory/disk.ts +3 -11
- package/src/store/run/checkpoint-disk.ts +14 -27
- package/src/store/run/claim-disk.ts +1 -1
- package/src/store/run/conformance.ts +55 -39
- package/src/store/run/disk.ts +19 -4
- package/src/store/run/token-budget-disk.ts +247 -0
- package/src/store/session/disk.ts +36 -29
- package/src/store/session/memory.ts +38 -1
- package/src/store/task/disk.ts +7 -8
- package/src/store/topic/memory.ts +13 -1
- package/src/test-support/ids.ts +62 -59
- package/src/tools/advisory/index.ts +3 -1
- package/src/tools/builtins/bash.ts +241 -70
- package/src/tools/builtins/computer-use.ts +6 -2
- package/src/tools/builtins/edit.ts +2 -2
- package/src/tools/builtins/glob.ts +104 -122
- package/src/tools/builtins/grep.ts +166 -132
- package/src/tools/builtins/ls.ts +4 -4
- package/src/tools/builtins/lsp.ts +2 -2
- package/src/tools/builtins/read-file.ts +2 -2
- package/src/tools/builtins/write-file.ts +2 -2
- package/src/tools/coordinator/ask-user-question.ts +284 -0
- package/src/tools/coordinator/index.ts +5 -248
- package/src/tools/memory/read.ts +2 -4
- package/src/tools/paths.ts +64 -0
- package/src/tools/roster.ts +46 -0
- package/src/types/agent/base.ts +6 -0
- package/src/types/agent/pipeline.ts +3 -0
- package/src/types/agent/router.ts +2 -3
- package/src/types/agent/scheduler.ts +4 -0
- package/src/types/agent/task.ts +5 -18
- package/src/types/common/index.ts +3 -0
- package/src/types/computer-use/index.ts +8 -0
- package/src/types/hitl/index.ts +5 -0
- package/src/types/ids/brand.ts +5 -48
- package/src/types/ids/index.ts +66 -75
- package/src/types/permission/index.ts +11 -0
- package/src/types/plugin/index.ts +49 -1
- package/src/types/run/config.ts +3 -0
- package/src/types/run/emergency.ts +5 -0
- package/src/types/run/entity.ts +6 -2
- package/src/types/run/events.ts +37 -0
- package/src/types/run/index.ts +1 -0
- package/src/types/run/state.ts +58 -30
- package/src/types/run/stop-reason.ts +3 -14
- package/src/types/run/token-budget-store.ts +54 -0
- package/src/types/sandbox/index.ts +53 -0
- package/src/types/session/store.ts +8 -0
- package/src/types/tool/index.ts +15 -0
- package/src/utils/frontmatter.ts +1 -1
- package/src/utils/id-format.ts +9 -0
- package/src/utils/id.ts +222 -181
- package/src/utils/log/exception.ts +1 -1
- package/src/utils/log/index.ts +1 -2
- package/src/utils/log/templates.ts +0 -1
- package/dist/session/migration/errors.d.ts +0 -26
- package/dist/session/migration/errors.d.ts.map +0 -1
- package/dist/session/migration/errors.js +0 -22
- package/dist/session/migration/errors.js.map +0 -1
- package/dist/session/migration/filesystem.d.ts +0 -122
- package/dist/session/migration/filesystem.d.ts.map +0 -1
- package/dist/session/migration/filesystem.js +0 -379
- package/dist/session/migration/filesystem.js.map +0 -1
- package/dist/session/migration/id-prefix.d.ts +0 -113
- package/dist/session/migration/id-prefix.d.ts.map +0 -1
- package/dist/session/migration/id-prefix.js +0 -132
- package/dist/session/migration/id-prefix.js.map +0 -1
- package/dist/session/migration/index.d.ts +0 -12
- package/dist/session/migration/index.d.ts.map +0 -1
- package/dist/session/migration/index.js +0 -12
- package/dist/session/migration/index.js.map +0 -1
- package/dist/session/migration/marker.d.ts +0 -57
- package/dist/session/migration/marker.d.ts.map +0 -1
- package/dist/session/migration/marker.js +0 -123
- package/dist/session/migration/marker.js.map +0 -1
- package/src/session/migration/errors.ts +0 -23
- package/src/session/migration/filesystem.ts +0 -468
- package/src/session/migration/id-prefix.ts +0 -166
- package/src/session/migration/index.ts +0 -41
- package/src/session/migration/marker.ts +0 -142
package/src/provider/fallback.ts
CHANGED
|
@@ -67,6 +67,8 @@ export interface ServingMember {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
export interface WithProviderFallbackOptions {
|
|
70
|
+
/** Additional live admission policy before selecting another provider. */
|
|
71
|
+
readonly canFallback?: () => boolean
|
|
70
72
|
readonly log?: Logger
|
|
71
73
|
/**
|
|
72
74
|
* Called once per swap, with the member that serves from here on.
|
|
@@ -157,7 +159,7 @@ export interface WithProviderFallbackOptions {
|
|
|
157
159
|
* classifier maps a `content_policy_violation` structural code onto it, and
|
|
158
160
|
* `ProviderError` is a public type a third-party driver constructs directly.
|
|
159
161
|
* Named rather than omitted for that reason; see
|
|
160
|
-
*
|
|
162
|
+
* "a check that cannot fail" for why an unnameable one
|
|
161
163
|
* would have been left out.
|
|
162
164
|
*/
|
|
163
165
|
const REQUEST_FAULT_CODES: ReadonlySet<string> = new Set([
|
|
@@ -409,6 +411,7 @@ export function withProviderFallback(
|
|
|
409
411
|
// time, instead of settling as `cancelled`. The retry decorator
|
|
410
412
|
// guards the same way and for the same reason.
|
|
411
413
|
if (isAbortError(err) || params.signal?.aborted) throw err
|
|
414
|
+
if (options.canFallback?.() === false) throw err
|
|
412
415
|
|
|
413
416
|
const next = cursor + 1
|
|
414
417
|
const to = members[next]
|
package/src/provider/retry.ts
CHANGED
|
@@ -41,6 +41,8 @@ export const DEFAULT_PROVIDER_RETRY: ProviderRetryConfig = {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
export interface WithProviderRetryOptions {
|
|
44
|
+
/** Additional live admission policy, checked before scheduling a retry. */
|
|
45
|
+
readonly canRetry?: () => boolean
|
|
44
46
|
readonly config?: Partial<ProviderRetryConfig>
|
|
45
47
|
readonly log?: Logger
|
|
46
48
|
/** Seam for deterministic tests. */
|
|
@@ -113,6 +115,7 @@ export function withProviderRetry(
|
|
|
113
115
|
return
|
|
114
116
|
} catch (err) {
|
|
115
117
|
if (isAbortError(err) || params.signal?.aborted) throw err
|
|
118
|
+
if (options.canRetry?.() === false) throw err
|
|
116
119
|
// A driver that already classified its own failure keeps that
|
|
117
120
|
// classification — `classifyProviderError` reads its `kind`
|
|
118
121
|
// first and does not re-guess.
|
|
@@ -162,7 +165,7 @@ export function withProviderRetry(
|
|
|
162
165
|
//
|
|
163
166
|
// It used to fall through to the jittered backoff instead, and that
|
|
164
167
|
// is degrading where the contract says refuse
|
|
165
|
-
// (
|
|
168
|
+
// ("refuse do not degrade"). The ceiling was
|
|
166
169
|
// read as "how long may I sleep", so a provider asking for fifteen
|
|
167
170
|
// minutes was re-asked in half a second: the one instruction the
|
|
168
171
|
// server gave was the one thing discarded, and the retries that
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { EMPTY_TOKEN_USAGE } from '../constants/limits.js'
|
|
2
|
+
import type { TokenBudget } from '../run/token-budget.js'
|
|
3
|
+
import { type TokenUsage, mergeTokenUsage } from '../types/common/index.js'
|
|
4
|
+
import { ProviderError, classifyProviderError } from '../types/provider/errors.js'
|
|
5
|
+
import type { LLMProvider, StreamChunk } from '../types/provider/index.js'
|
|
6
|
+
import { isProviderRequestError } from './errors.js'
|
|
7
|
+
|
|
8
|
+
export class TokenBudgetAdmissionError extends ProviderError {
|
|
9
|
+
constructor() {
|
|
10
|
+
super({
|
|
11
|
+
code: 'invalid_request',
|
|
12
|
+
message: 'The shared token budget has no available allowance for another model request.',
|
|
13
|
+
retryable: false,
|
|
14
|
+
})
|
|
15
|
+
this.name = 'TokenBudgetAdmissionError'
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function rejectedBeforeGeneration(error: unknown): boolean {
|
|
20
|
+
if (isProviderRequestError(error)) {
|
|
21
|
+
return ['auth', 'throttle', 'context_overflow', 'bad_request'].includes(error.kind)
|
|
22
|
+
}
|
|
23
|
+
const classified = classifyProviderError(error)
|
|
24
|
+
const explicitRejection =
|
|
25
|
+
error instanceof ProviderError ||
|
|
26
|
+
(classified.status !== undefined &&
|
|
27
|
+
[400, 401, 403, 404, 413, 422, 429].includes(classified.status))
|
|
28
|
+
return (
|
|
29
|
+
explicitRejection &&
|
|
30
|
+
['auth', 'rate_limit', 'context_length_exceeded', 'invalid_request', 'not_found'].includes(
|
|
31
|
+
classified.code,
|
|
32
|
+
)
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Account for the observed response once, including advisory/compaction calls.
|
|
37
|
+
* The marker is durable before contacting the provider. A broken or abandoned
|
|
38
|
+
* stream retains its marker: an absent receipt cannot establish zero spend.
|
|
39
|
+
* Driver-internal retries remain one request whose billing the driver reports.
|
|
40
|
+
*/
|
|
41
|
+
export function withTokenBudget(provider: LLMProvider, budget: TokenBudget): LLMProvider {
|
|
42
|
+
async function* chatStream(
|
|
43
|
+
params: Parameters<LLMProvider['chatStream']>[0],
|
|
44
|
+
): AsyncIterable<StreamChunk> {
|
|
45
|
+
params.signal?.throwIfAborted()
|
|
46
|
+
if (budget.remaining <= 0) throw new TokenBudgetAdmissionError()
|
|
47
|
+
const requestId = await budget.beginRequest()
|
|
48
|
+
let usage: TokenUsage | undefined
|
|
49
|
+
let completed = false
|
|
50
|
+
let outputObserved = false
|
|
51
|
+
let uncertainRetry = false
|
|
52
|
+
let contacted = false
|
|
53
|
+
let abandoned = false
|
|
54
|
+
let iterator: AsyncIterator<StreamChunk> | undefined
|
|
55
|
+
let onAbort: (() => void) | undefined
|
|
56
|
+
const signal = params.signal
|
|
57
|
+
const cancellation = signal
|
|
58
|
+
? new Promise<never>((_resolve, reject) => {
|
|
59
|
+
onAbort = () => {
|
|
60
|
+
abandoned = true
|
|
61
|
+
reject(signal.reason)
|
|
62
|
+
}
|
|
63
|
+
signal.addEventListener('abort', onAbort, { once: true })
|
|
64
|
+
})
|
|
65
|
+
: undefined
|
|
66
|
+
// Admission persistence can have outlived the caller's authority. The
|
|
67
|
+
// check below may reject before the first pull attaches a race handler.
|
|
68
|
+
cancellation?.catch(() => {})
|
|
69
|
+
try {
|
|
70
|
+
signal?.throwIfAborted()
|
|
71
|
+
contacted = true
|
|
72
|
+
iterator = provider.chatStream(params)[Symbol.asyncIterator]()
|
|
73
|
+
for (;;) {
|
|
74
|
+
signal?.throwIfAborted()
|
|
75
|
+
const next = iterator.next()
|
|
76
|
+
// Observe an already-issued pull even after cancellation wins the
|
|
77
|
+
// race. A late usage frame is evidence of spend, not permission to
|
|
78
|
+
// reopen the account or to request another frame.
|
|
79
|
+
void next
|
|
80
|
+
.then(async (result) => {
|
|
81
|
+
if (!result.done && result.value.usage) {
|
|
82
|
+
usage = usage ? mergeTokenUsage(usage, result.value.usage) : { ...result.value.usage }
|
|
83
|
+
if (abandoned) await budget.failRequest(requestId, usage)
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
.catch(() => {})
|
|
87
|
+
const result = await (cancellation ? Promise.race([next, cancellation]) : next)
|
|
88
|
+
if (result.done) break
|
|
89
|
+
const chunk = result.value
|
|
90
|
+
const recovery = chunk.retry ?? chunk.fallback
|
|
91
|
+
if (
|
|
92
|
+
recovery &&
|
|
93
|
+
![
|
|
94
|
+
'auth',
|
|
95
|
+
'rate_limit',
|
|
96
|
+
'context_length_exceeded',
|
|
97
|
+
'invalid_request',
|
|
98
|
+
'not_found',
|
|
99
|
+
].includes(recovery.code)
|
|
100
|
+
) {
|
|
101
|
+
uncertainRetry = true
|
|
102
|
+
throw new ProviderError({
|
|
103
|
+
code: 'invalid_request',
|
|
104
|
+
retryable: false,
|
|
105
|
+
message:
|
|
106
|
+
'A prior provider attempt has unresolved token usage; another attempt cannot be admitted.',
|
|
107
|
+
})
|
|
108
|
+
}
|
|
109
|
+
if (Object.keys(chunk.delta).length > 0) outputObserved = true
|
|
110
|
+
if (chunk.error) throw new Error(chunk.error)
|
|
111
|
+
yield chunk
|
|
112
|
+
}
|
|
113
|
+
if (usage === undefined) {
|
|
114
|
+
throw new Error(
|
|
115
|
+
'Provider ended without token usage; the budget reservation remains unresolved.',
|
|
116
|
+
)
|
|
117
|
+
}
|
|
118
|
+
await budget.finishRequest(requestId, usage)
|
|
119
|
+
completed = true
|
|
120
|
+
} catch (error) {
|
|
121
|
+
// A typed rejection before any generation differs from a lost reply.
|
|
122
|
+
// In particular a context-overflow retry must not reset or poison spend.
|
|
123
|
+
if (
|
|
124
|
+
!contacted ||
|
|
125
|
+
(!abandoned &&
|
|
126
|
+
!outputObserved &&
|
|
127
|
+
usage === undefined &&
|
|
128
|
+
!uncertainRetry &&
|
|
129
|
+
rejectedBeforeGeneration(error))
|
|
130
|
+
) {
|
|
131
|
+
await budget.finishRequest(requestId, { ...EMPTY_TOKEN_USAGE })
|
|
132
|
+
completed = true
|
|
133
|
+
}
|
|
134
|
+
throw error
|
|
135
|
+
} finally {
|
|
136
|
+
abandoned = !completed
|
|
137
|
+
if (onAbort) signal?.removeEventListener('abort', onAbort)
|
|
138
|
+
// A blocked async generator queues return() behind its pending next().
|
|
139
|
+
// Waiting for it would also delay the durable unknown-spend marker.
|
|
140
|
+
try {
|
|
141
|
+
void iterator?.return?.().catch(() => {})
|
|
142
|
+
} catch {
|
|
143
|
+
// Cleanup cannot replace the provider outcome.
|
|
144
|
+
}
|
|
145
|
+
if (!completed) await budget.failRequest(requestId, usage)
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Bind optional driver methods to the driver, including methods added later.
|
|
150
|
+
// Object spread loses prototype methods and inherited capability accessors.
|
|
151
|
+
return new Proxy(provider, {
|
|
152
|
+
get(target, property) {
|
|
153
|
+
if (property === 'chatStream') return chatStream
|
|
154
|
+
const value: unknown = Reflect.get(target, property, target)
|
|
155
|
+
return typeof value === 'function' ? value.bind(target) : value
|
|
156
|
+
},
|
|
157
|
+
})
|
|
158
|
+
}
|
package/src/public-runtime.ts
CHANGED
|
@@ -441,6 +441,14 @@ export {
|
|
|
441
441
|
DEFAULT_TIMEOUT_MS,
|
|
442
442
|
DEFAULT_TOKEN_BUDGET,
|
|
443
443
|
SupervisorAgent,
|
|
444
|
+
DEFAULT_RESERVED_AGENT_NAMES,
|
|
445
|
+
discoverAgentDefinitions,
|
|
446
|
+
EXPLORE_AGENT_DESCRIPTION,
|
|
447
|
+
EXPLORE_AGENT_ID,
|
|
448
|
+
EXPLORE_AGENT_PROMPT,
|
|
449
|
+
MAX_AGENT_FILE_CHARS,
|
|
450
|
+
parseAgentFile,
|
|
451
|
+
parseAgentMarkdown,
|
|
444
452
|
} from './agents/index.js'
|
|
445
453
|
|
|
446
454
|
// ─── registries, stores, managers, plugin, gateway ───────────────────────
|
|
@@ -529,11 +537,20 @@ export {
|
|
|
529
537
|
} from './registry/index.js'
|
|
530
538
|
|
|
531
539
|
export {
|
|
540
|
+
attachShellHooks,
|
|
541
|
+
createShellHook,
|
|
542
|
+
DEFAULT_SHELL_HOOK_TIMEOUT_MS,
|
|
532
543
|
discoverAllPluginDirs,
|
|
533
544
|
discoverPlugins,
|
|
534
545
|
loadPluginManifest,
|
|
546
|
+
MAX_SHELL_HOOK_TIMEOUT_MS,
|
|
535
547
|
PluginLifecycleManager,
|
|
536
548
|
PluginResolver,
|
|
549
|
+
runShellHook,
|
|
550
|
+
SHELL_HOOK_EVENTS,
|
|
551
|
+
SHELL_HOOKS_PLUGIN_ID,
|
|
552
|
+
shellHookMatches,
|
|
553
|
+
shellHookVerdict,
|
|
537
554
|
} from './plugin/index.js'
|
|
538
555
|
|
|
539
556
|
export {
|
|
@@ -632,8 +649,9 @@ export {
|
|
|
632
649
|
LocalSandboxProvider,
|
|
633
650
|
missingIsolation,
|
|
634
651
|
SandboxProviderFactory,
|
|
652
|
+
walkFilesViaExec,
|
|
635
653
|
} from './sandbox/index.js'
|
|
636
|
-
export type { LocalSandboxProviderOptions } from './sandbox/index.js'
|
|
654
|
+
export type { LocalSandboxProviderOptions, SandboxFileWalkExec } from './sandbox/index.js'
|
|
637
655
|
|
|
638
656
|
// The classified provider-failure surface: a driver states what went wrong
|
|
639
657
|
// first-hand, and the run boundary reads it to choose between a pause and a
|
|
@@ -919,29 +937,6 @@ export {
|
|
|
919
937
|
validatePrevArtifactChain,
|
|
920
938
|
} from './session/intervention/index.js'
|
|
921
939
|
|
|
922
|
-
export {
|
|
923
|
-
acceptLegacyContainerId,
|
|
924
|
-
/** @deprecated Use {@link acceptLegacyContainerId}. Removal is NZ-TOPIC-05. */
|
|
925
|
-
acquireMigrationLock,
|
|
926
|
-
DefaultFilesystemMigrator,
|
|
927
|
-
FilesystemMigrationError,
|
|
928
|
-
LEGACY_DEFAULT_PROJECT_PREFIX,
|
|
929
|
-
LEGACY_DEFAULT_SESSION_ID,
|
|
930
|
-
LOCK_REL_PATH,
|
|
931
|
-
loggingMigrationSink,
|
|
932
|
-
MARKER_REL_PATH,
|
|
933
|
-
MIGRATION_VERSION,
|
|
934
|
-
NOOP_FILESYSTEM_MIGRATION_SINK,
|
|
935
|
-
NOOP_MIGRATION_WARNING_SINK,
|
|
936
|
-
readMarker,
|
|
937
|
-
rejectLegacyContainerPrefix,
|
|
938
|
-
/** @deprecated Use {@link rejectLegacyContainerPrefix}. Removal is NZ-TOPIC-05. */
|
|
939
|
-
releaseMigrationLock,
|
|
940
|
-
StalePrefixError,
|
|
941
|
-
WINDOW_OPEN,
|
|
942
|
-
writeMarker,
|
|
943
|
-
} from './session/migration/index.js'
|
|
944
|
-
|
|
945
940
|
export {
|
|
946
941
|
ArchivalManager,
|
|
947
942
|
ArchiveNotConfiguredError,
|
|
@@ -1001,7 +996,6 @@ export { isConnectorActive } from './types/connector/core.js'
|
|
|
1001
996
|
export { CONNECTOR_SCOPE_ORDER } from './types/connector/scope.js'
|
|
1002
997
|
export { RoutingResponseSchema } from './types/decision/index.js'
|
|
1003
998
|
export { autoApproveHandler } from './types/hitl/index.js'
|
|
1004
|
-
export { UNKNOWN_TENANT_ID } from './types/ids/index.js'
|
|
1005
999
|
export { deriveChildState } from './types/invocation/index.js'
|
|
1006
1000
|
export { assertMemoryStatus } from './types/memory/index.js'
|
|
1007
1001
|
export {
|
|
@@ -1062,6 +1056,17 @@ export { compactNow, compactRegion } from './compaction/manual.js'
|
|
|
1062
1056
|
// resume. Export the identity predicate rather than making every host copy the
|
|
1063
1057
|
// marker string and eventually disagree with the writer.
|
|
1064
1058
|
export { isCompactionMessage } from './compaction/summary.js'
|
|
1059
|
+
export {
|
|
1060
|
+
DEFAULT_SALIENCE_CONFIG,
|
|
1061
|
+
DEFAULT_SALIENCE_WEIGHTS,
|
|
1062
|
+
buildGoal,
|
|
1063
|
+
isStubbedNarration,
|
|
1064
|
+
messageText,
|
|
1065
|
+
planWorkingSet,
|
|
1066
|
+
scoreMessages,
|
|
1067
|
+
} from './compaction/salience/index.js'
|
|
1068
|
+
export { DEFAULT_SOFT_TARGET, planSalienceWorkingSet } from './compaction/plan.js'
|
|
1069
|
+
export { CONSOLIDATION_TAG, consolidationEntry } from './compaction/consolidation.js'
|
|
1065
1070
|
// The sibling state-bearing system message. A host that carries a Run's
|
|
1066
1071
|
// conversation into a fresh query must distinguish this ledger from the fresh
|
|
1067
1072
|
// identity/environment prompt floor without copying its private header string.
|
|
@@ -1181,13 +1186,33 @@ export type {
|
|
|
1181
1186
|
// policy emits a durable event and only the run holds the emitter. The name
|
|
1182
1187
|
// constant is exported so a host can recognise the unattended default.
|
|
1183
1188
|
export { AUTO_APPROVE_POLICY_NAME } from './runtime/query/approval-policy.js'
|
|
1189
|
+
// The modes a host resolves the undecided under — prompt, auto,
|
|
1190
|
+
// accept-edits, plan, strict — as an `ApprovalPolicy`. See
|
|
1191
|
+
// `runtime/query/review-policy.ts`.
|
|
1192
|
+
export {
|
|
1193
|
+
ACCEPT_EDITS_TOOLS,
|
|
1194
|
+
PLAN_MODE_REFUSAL,
|
|
1195
|
+
REVIEW_EXEMPT_WRITES,
|
|
1196
|
+
REVIEW_MODES,
|
|
1197
|
+
STRICT_MODE_REFUSAL,
|
|
1198
|
+
batchNeedsReview,
|
|
1199
|
+
createReviewHandler,
|
|
1200
|
+
createReviewPolicy,
|
|
1201
|
+
isReviewExempt,
|
|
1202
|
+
isReviewMode,
|
|
1203
|
+
} from './runtime/query/review-policy.js'
|
|
1184
1204
|
|
|
1185
1205
|
// The system prompt is open: a contribution registry the assembler
|
|
1186
1206
|
// consumes, with skills as its first contributor. See `prompt/contributions.ts`.
|
|
1187
1207
|
export {
|
|
1208
|
+
CODING_AGENT_DELEGATION_DOCTRINE,
|
|
1209
|
+
CODING_AGENT_DOCTRINE_CONTRIBUTION_ID,
|
|
1210
|
+
CODING_AGENT_WORKING_DOCTRINE,
|
|
1211
|
+
PLAN_MODE_DOCTRINE,
|
|
1188
1212
|
PromptContributionCollisionError,
|
|
1189
1213
|
PromptContributionRegistry,
|
|
1190
1214
|
SKILLS_CONTRIBUTION_ID,
|
|
1215
|
+
codingAgentDoctrineContribution,
|
|
1191
1216
|
skillsContribution,
|
|
1192
1217
|
} from './prompt/index.js'
|
|
1193
1218
|
|
|
@@ -1297,9 +1322,6 @@ export type {
|
|
|
1297
1322
|
export type { BroadcastHandoffDeps } from './session/handoff/broadcast.js'
|
|
1298
1323
|
export type { SingleHandoffDeps } from './session/handoff/single.js'
|
|
1299
1324
|
export type { InterventionChainLoader } from './session/intervention/prev-artifact.js'
|
|
1300
|
-
export type { FilesystemMigrationSink } from './session/migration/filesystem.js'
|
|
1301
|
-
export type { MigrationWarningSink } from './session/migration/id-prefix.js'
|
|
1302
|
-
export type { MigrationMarker } from './session/migration/marker.js'
|
|
1303
1325
|
export type { ActionInput } from './tools/builtins/computer-use.js'
|
|
1304
1326
|
export type { Project } from './types/project/entity.js'
|
|
1305
1327
|
export type { CreatedLogger } from './utils/log/create-logger.js'
|
|
@@ -1307,3 +1329,9 @@ export type {
|
|
|
1307
1329
|
LoggerOptions,
|
|
1308
1330
|
MutableLogSinkCounters,
|
|
1309
1331
|
} from './utils/log/types.js'
|
|
1332
|
+
export type { JobProcess } from './runtime/jobs/registry.js'
|
|
1333
|
+
export { WORKING_STATE_MIME } from './connector/mcp/adapter.js'
|
|
1334
|
+
|
|
1335
|
+
export { TokenBudget, validateTokenBudgetSnapshot } from './run/token-budget.js'
|
|
1336
|
+
export { DiskTokenBudgetStore, openTokenBudget } from './store/run/token-budget-disk.js'
|
|
1337
|
+
export { validateTokenBudgetBinding } from './types/run/token-budget-store.js'
|
package/src/public-tools.ts
CHANGED
|
@@ -19,6 +19,7 @@ export { isWithin, resolveWithin, resolveWithinReal } from './tools/paths.js'
|
|
|
19
19
|
// A host that surfaces its own untrusted content to a model needs the same
|
|
20
20
|
// framing the kernel applies to connector prompts and delegated results.
|
|
21
21
|
export { neutralizeEnvelopeDelimiter, wrapUntrusted } from './tools/untrusted-envelope.js'
|
|
22
|
+
export { filterReadOnlyTools, filterToolsNamed } from './tools/roster.js'
|
|
22
23
|
export type { UntrustedEnvelope } from './tools/untrusted-envelope.js'
|
|
23
24
|
|
|
24
25
|
// ─── Built-in tools ──────────────────────────────────────────────────────
|
|
@@ -98,6 +99,10 @@ export {
|
|
|
98
99
|
export { buildAdvisoryTools } from './tools/advisory/index.js'
|
|
99
100
|
export { buildMemoryTools } from './tools/memory/index.js'
|
|
100
101
|
export { buildCoordinatorTools } from './tools/coordinator/index.js'
|
|
102
|
+
export {
|
|
103
|
+
buildAskUserQuestionTool,
|
|
104
|
+
type AskUserQuestionToolOptions,
|
|
105
|
+
} from './tools/coordinator/ask-user-question.js'
|
|
101
106
|
export { buildAgentTool, type AgentToolOptions } from './tools/coordinator/agent.js'
|
|
102
107
|
|
|
103
108
|
// ─── RAG tool builder ────────────────────────────────────────────────────
|
package/src/public-types.ts
CHANGED
|
@@ -175,6 +175,21 @@ export type {
|
|
|
175
175
|
} from './registry/index.js'
|
|
176
176
|
|
|
177
177
|
export type { PluginLifecycleManagerConfig } from './plugin/lifecycle.js'
|
|
178
|
+
export type {
|
|
179
|
+
AgentDefinitionRoot,
|
|
180
|
+
AgentFileDefinition,
|
|
181
|
+
DiscoverAgentDefinitionsOptions,
|
|
182
|
+
DiscoveredAgentDefinitions,
|
|
183
|
+
SkippedAgentFile,
|
|
184
|
+
} from './agents/file-definitions.js'
|
|
185
|
+
export type {
|
|
186
|
+
ShellHookEntry,
|
|
187
|
+
ShellHookEvent,
|
|
188
|
+
ShellHookInput,
|
|
189
|
+
ShellHookOptions,
|
|
190
|
+
ShellHookOutcome,
|
|
191
|
+
ShellHooksConfig,
|
|
192
|
+
} from './plugin/shell-hook.js'
|
|
178
193
|
|
|
179
194
|
export type {
|
|
180
195
|
PlanApprovalHandler,
|
|
@@ -263,6 +278,8 @@ export type {
|
|
|
263
278
|
PlanSlot,
|
|
264
279
|
ToolResultSlot,
|
|
265
280
|
WorkingState,
|
|
281
|
+
PinSlot,
|
|
282
|
+
WorkingStatePin,
|
|
266
283
|
} from './compaction/index.js'
|
|
267
284
|
export type * from './eval/index.js'
|
|
268
285
|
export type * from './types/guardrail/index.js'
|
|
@@ -328,6 +345,34 @@ export type {
|
|
|
328
345
|
} from './types/hitl/policy.js'
|
|
329
346
|
|
|
330
347
|
export type {
|
|
348
|
+
GoalSources,
|
|
349
|
+
ProtectedReason,
|
|
350
|
+
SalienceConfig,
|
|
351
|
+
SalienceWeights,
|
|
352
|
+
ScoreOptions,
|
|
353
|
+
ScoredMessage,
|
|
354
|
+
WorkingSetAction,
|
|
355
|
+
WorkingSetOptions,
|
|
356
|
+
WorkingSetPlan,
|
|
357
|
+
} from './compaction/salience/index.js'
|
|
358
|
+
export type { ConsolidationMeta } from './compaction/consolidation.js'
|
|
359
|
+
export type {
|
|
360
|
+
CompactionPlan,
|
|
361
|
+
CompactionPlanInput,
|
|
362
|
+
CompactionSkipReason,
|
|
363
|
+
} from './compaction/plan.js'
|
|
364
|
+
|
|
365
|
+
export type {
|
|
366
|
+
ReviewExemption,
|
|
367
|
+
ReviewMode,
|
|
368
|
+
ReviewPolicyOptions,
|
|
369
|
+
ToolReviewAnswer,
|
|
370
|
+
ToolReviewPrompt,
|
|
371
|
+
ToolReviewRequest,
|
|
372
|
+
} from './runtime/query/review-policy.js'
|
|
373
|
+
|
|
374
|
+
export type {
|
|
375
|
+
CodingAgentDoctrineOptions,
|
|
331
376
|
PromptContribution,
|
|
332
377
|
PromptContributionContext,
|
|
333
378
|
PromptPlacement,
|
|
@@ -373,3 +418,23 @@ export type {
|
|
|
373
418
|
TerminalSession,
|
|
374
419
|
TerminalSize,
|
|
375
420
|
} from './sandbox/terminal.js'
|
|
421
|
+
|
|
422
|
+
// Existing Topic snapshots can initialize an in-memory delegation store.
|
|
423
|
+
export type { Topic, TopicStatus } from './types/topic/entity.js'
|
|
424
|
+
|
|
425
|
+
export type {
|
|
426
|
+
TokenBudgetAccountSnapshot,
|
|
427
|
+
TokenBudgetRequestSnapshot,
|
|
428
|
+
TokenBudgetSnapshot,
|
|
429
|
+
TokenBudgetSummary,
|
|
430
|
+
TokenBudgetPersistence,
|
|
431
|
+
} from './run/token-budget.js'
|
|
432
|
+
export type {
|
|
433
|
+
TokenBudgetStore,
|
|
434
|
+
TokenBudgetScope,
|
|
435
|
+
TokenBudgetBinding,
|
|
436
|
+
} from './types/run/token-budget-store.js'
|
|
437
|
+
export type {
|
|
438
|
+
DiskTokenBudgetStoreConfig,
|
|
439
|
+
OpenTokenBudgetOptions,
|
|
440
|
+
} from './store/run/token-budget-disk.js'
|
|
@@ -53,11 +53,13 @@ export interface GoalCommandScope {
|
|
|
53
53
|
readonly activation?: SessionGoalActivation
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
const
|
|
56
|
+
const GOAL_ARGUMENTS = '[status|set <objective>|<objective>|edit <objective>|pause|resume|clear]'
|
|
57
|
+
const GOAL_USAGE = `Usage: /goal ${GOAL_ARGUMENTS}`
|
|
57
58
|
|
|
58
59
|
type ParsedGoalCommand =
|
|
59
60
|
| { readonly kind: 'show' }
|
|
60
61
|
| { readonly kind: 'create'; readonly objective: string }
|
|
62
|
+
| { readonly kind: 'invalid-create' }
|
|
61
63
|
| { readonly kind: 'edit'; readonly objective: string }
|
|
62
64
|
| { readonly kind: 'invalid-edit' }
|
|
63
65
|
| { readonly kind: 'pause' }
|
|
@@ -68,6 +70,9 @@ function parseGoalCommand(args: readonly string[]): ParsedGoalCommand {
|
|
|
68
70
|
const input = args.join(' ').trim()
|
|
69
71
|
if (input.length === 0) return { kind: 'show' }
|
|
70
72
|
const control = input.toLowerCase()
|
|
73
|
+
if (control === 'status') return { kind: 'show' }
|
|
74
|
+
if (control === 'set') return { kind: 'invalid-create' }
|
|
75
|
+
if (/^set(?=\s)/iu.test(input)) return { kind: 'create', objective: input.slice(3).trim() }
|
|
71
76
|
if (control === 'clear') return { kind: 'clear' }
|
|
72
77
|
if (control === 'pause') return { kind: 'pause' }
|
|
73
78
|
if (control === 'resume') return { kind: 'resume' }
|
|
@@ -87,15 +92,15 @@ function goalCommands(goal: SessionGoal, armed: boolean): string {
|
|
|
87
92
|
if (goal.phase === 'paused' || goal.phase === 'blocked') {
|
|
88
93
|
return '/goal edit <objective>, /goal resume, /goal clear'
|
|
89
94
|
}
|
|
90
|
-
return '/goal <objective>, /goal clear'
|
|
95
|
+
return '/goal set <objective>, /goal clear'
|
|
91
96
|
}
|
|
92
97
|
|
|
93
98
|
function renderGoal(title: string, goal: SessionGoal, armed: boolean): string {
|
|
94
99
|
return [
|
|
95
100
|
title,
|
|
96
101
|
`Status: ${goal.phase}`,
|
|
97
|
-
`Automatic continuation: ${armed ? '
|
|
98
|
-
`
|
|
102
|
+
`Automatic continuation: ${armed ? 'enabled' : 'paused'}`,
|
|
103
|
+
`Automatic turns: ${goal.roundsAdmitted} / ${goal.maxGoalRounds}`,
|
|
99
104
|
...(goal.blockedReason
|
|
100
105
|
? [`Blocker: ${goal.blockedReason.code}: ${goal.blockedReason.message}`]
|
|
101
106
|
: []),
|
|
@@ -134,6 +139,11 @@ async function runGoalCommand(scope: GoalCommandScope | undefined, args: readonl
|
|
|
134
139
|
kind: 'ack' as const,
|
|
135
140
|
message: `No goal is currently set.\n${GOAL_USAGE}`,
|
|
136
141
|
}
|
|
142
|
+
case 'invalid-create':
|
|
143
|
+
return {
|
|
144
|
+
kind: 'refused' as const,
|
|
145
|
+
reason: `Setting a goal requires an objective.\n${GOAL_USAGE}`,
|
|
146
|
+
}
|
|
137
147
|
case 'invalid-edit':
|
|
138
148
|
return {
|
|
139
149
|
kind: 'refused' as const,
|
|
@@ -201,7 +211,7 @@ async function runGoalCommand(scope: GoalCommandScope | undefined, args: readonl
|
|
|
201
211
|
scope.activation?.arm(current)
|
|
202
212
|
return {
|
|
203
213
|
kind: 'ack' as const,
|
|
204
|
-
message: renderScopedGoal('Goal
|
|
214
|
+
message: renderScopedGoal('Goal resumed', current, scope),
|
|
205
215
|
}
|
|
206
216
|
}
|
|
207
217
|
const resumed = await scope.store.resumeGoal(
|
|
@@ -250,7 +260,7 @@ export function kernelHostCommands(options: KernelCommandOptions): HostCommandDe
|
|
|
250
260
|
{
|
|
251
261
|
name: 'goal',
|
|
252
262
|
description: 'Persist or inspect a completion goal for this conversation.',
|
|
253
|
-
hint:
|
|
263
|
+
hint: GOAL_ARGUMENTS,
|
|
254
264
|
handler: async ({ args }) => await runGoalCommand(options.goal, args),
|
|
255
265
|
},
|
|
256
266
|
{
|
|
@@ -5,6 +5,7 @@ import { recordToolCall } from '../../telemetry/metrics.js'
|
|
|
5
5
|
import { getTracer } from '../../telemetry/runtime-accessors.js'
|
|
6
6
|
import { isTrustedReadOnly } from '../../tools/trusted-read-only.js'
|
|
7
7
|
import type { ToolResultGuardrailSpec } from '../../types/guardrail/index.js'
|
|
8
|
+
import { PLAN_MODE_REFUSAL } from '../../types/permission/index.js'
|
|
8
9
|
import type {
|
|
9
10
|
LLMToolSchema,
|
|
10
11
|
PreparedToolExecution,
|
|
@@ -674,7 +675,9 @@ Executable tool names, descriptions, and JSON input schemas are attached through
|
|
|
674
675
|
if (mode === 'plan') {
|
|
675
676
|
const isReadOnly = isTrustedReadOnly(tool, finalInput)
|
|
676
677
|
if (!isReadOnly) {
|
|
677
|
-
|
|
678
|
+
// The same words the review-time policy uses, so the model gets one
|
|
679
|
+
// instruction whichever door refused it.
|
|
680
|
+
const msg = `plan mode: non-read-only tool "${toolName}" blocked. ${PLAN_MODE_REFUSAL}`
|
|
678
681
|
span.setAttributes({
|
|
679
682
|
[NAMZU.TOOL_SUCCESS]: false,
|
|
680
683
|
[NAMZU.TOOL_ERROR]: msg,
|
package/src/run/LimitChecker.ts
CHANGED
|
@@ -49,7 +49,7 @@ export function checkLimitsDetailed(
|
|
|
49
49
|
// bound. Continuing here would be the check answering "the budget is
|
|
50
50
|
// satisfied" to the question "can the budget be evaluated?", which is
|
|
51
51
|
// the strongest available wrong answer — see
|
|
52
|
-
//
|
|
52
|
+
// "an optional dependency may not degrade a check".
|
|
53
53
|
if (state.unpricedTokens > 0) {
|
|
54
54
|
return { type: 'hard_stop', reason: 'cost_unmeasurable' }
|
|
55
55
|
}
|
package/src/run/drain.ts
CHANGED
|
@@ -334,7 +334,7 @@ export async function drainRuns(params: DrainRunsParams): Promise<DrainRunsResul
|
|
|
334
334
|
* the check in the loop, which runs first. A branch nothing can reach is
|
|
335
335
|
* a declaration nothing drives, so it is gone rather than covered by a
|
|
336
336
|
* test that would have proved nothing
|
|
337
|
-
* (
|
|
337
|
+
* ("declared but undriven").
|
|
338
338
|
*/
|
|
339
339
|
const handle = async (entry: DurableRunEntry): Promise<void> => {
|
|
340
340
|
const claim = await claimRun(store, entry, {
|
package/src/run/reporter.ts
CHANGED
|
@@ -302,6 +302,21 @@ export function createRunReporter(parentLogger?: Logger): RunReporter {
|
|
|
302
302
|
})
|
|
303
303
|
break
|
|
304
304
|
|
|
305
|
+
case 'background_job_exited':
|
|
306
|
+
log.info('Background job ended', {
|
|
307
|
+
'namzu.jobs.id': event.jobId,
|
|
308
|
+
'namzu.jobs.status': event.status,
|
|
309
|
+
...(event.exitCode !== undefined ? { 'namzu.jobs.exit_code': event.exitCode } : {}),
|
|
310
|
+
})
|
|
311
|
+
break
|
|
312
|
+
case 'memory_consolidated':
|
|
313
|
+
log.info('Run learnings consolidated into the memory store', {
|
|
314
|
+
'namzu.memory.id': event.memoryId,
|
|
315
|
+
'namzu.memory.decisions': event.decisions,
|
|
316
|
+
'namzu.memory.discoveries': event.discoveries,
|
|
317
|
+
'namzu.memory.failures': event.failures,
|
|
318
|
+
})
|
|
319
|
+
break
|
|
305
320
|
case 'compaction_tool_results_cleared':
|
|
306
321
|
// `info` on both branches. The relieved case is the run
|
|
307
322
|
// avoiding a summarization, which is good news worth stating;
|