@namzu/sdk 43.0.0 → 44.1.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 +520 -0
- package/README.md +41 -34
- package/dist/advisory/budget.js +3 -3
- package/dist/advisory/budget.js.map +1 -1
- package/dist/advisory/context.d.ts +5 -5
- package/dist/advisory/context.d.ts.map +1 -1
- package/dist/advisory/context.js +6 -6
- package/dist/advisory/context.js.map +1 -1
- package/dist/advisory/evaluator.js +2 -2
- package/dist/advisory/evaluator.js.map +1 -1
- package/dist/advisory/parse.d.ts +1 -1
- package/dist/advisory/parse.js +1 -1
- package/dist/agents/AbstractAgent.d.ts +47 -40
- package/dist/agents/AbstractAgent.d.ts.map +1 -1
- package/dist/agents/AbstractAgent.js +60 -46
- package/dist/agents/AbstractAgent.js.map +1 -1
- package/dist/agents/PipelineAgent.d.ts +7 -7
- package/dist/agents/PipelineAgent.d.ts.map +1 -1
- package/dist/agents/PipelineAgent.js +75 -23
- package/dist/agents/PipelineAgent.js.map +1 -1
- package/dist/agents/ReactiveAgent.d.ts +7 -7
- package/dist/agents/ReactiveAgent.d.ts.map +1 -1
- package/dist/agents/ReactiveAgent.js +32 -25
- package/dist/agents/ReactiveAgent.js.map +1 -1
- package/dist/agents/RouterAgent.d.ts +7 -7
- package/dist/agents/RouterAgent.d.ts.map +1 -1
- package/dist/agents/RouterAgent.js +29 -32
- package/dist/agents/RouterAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts +13 -10
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +50 -36
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/budget.d.ts +17 -4
- package/dist/agents/budget.d.ts.map +1 -1
- package/dist/agents/budget.js +55 -14
- package/dist/agents/budget.js.map +1 -1
- package/dist/agents/defineAgent.d.ts +2 -2
- package/dist/agents/defineAgent.d.ts.map +1 -1
- package/dist/agents/defineAgent.js.map +1 -1
- package/dist/agents/handle.d.ts +12 -14
- package/dist/agents/handle.d.ts.map +1 -1
- package/dist/agents/handle.js +6 -6
- package/dist/agents/handle.js.map +1 -1
- package/dist/agents/lock.js +4 -4
- package/dist/agents/lock.js.map +1 -1
- package/dist/agents/runAgent.d.ts +42 -29
- package/dist/agents/runAgent.d.ts.map +1 -1
- package/dist/agents/runAgent.js +53 -14
- package/dist/agents/runAgent.js.map +1 -1
- package/dist/agents/storage.d.ts +21 -0
- package/dist/agents/storage.d.ts.map +1 -0
- package/dist/agents/storage.js +33 -0
- package/dist/agents/storage.js.map +1 -0
- package/dist/authorization/command-line.d.ts +1 -1
- package/dist/authorization/command-line.js +1 -1
- package/dist/authorization/gate.js +1 -1
- package/dist/authorization/gate.js.map +1 -1
- package/dist/authorization/permission-presets.d.ts +4 -4
- package/dist/authorization/permission-presets.d.ts.map +1 -1
- package/dist/authorization/permission-presets.js +2 -2
- package/dist/bridge/a2a/client.d.ts +1 -1
- package/dist/bridge/a2a/client.js +2 -2
- package/dist/bridge/a2a/client.js.map +1 -1
- package/dist/bridge/a2a/context.d.ts +26 -0
- package/dist/bridge/a2a/context.d.ts.map +1 -0
- package/dist/bridge/a2a/context.js +20 -0
- package/dist/bridge/a2a/context.js.map +1 -0
- package/dist/bridge/a2a/index.d.ts +4 -2
- package/dist/bridge/a2a/index.d.ts.map +1 -1
- package/dist/bridge/a2a/index.js +6 -2
- package/dist/bridge/a2a/index.js.map +1 -1
- package/dist/bridge/a2a/mapper.d.ts +12 -4
- package/dist/bridge/a2a/mapper.d.ts.map +1 -1
- package/dist/bridge/a2a/mapper.js +38 -31
- package/dist/bridge/a2a/mapper.js.map +1 -1
- package/dist/bridge/a2a/task.d.ts +39 -7
- package/dist/bridge/a2a/task.d.ts.map +1 -1
- package/dist/bridge/a2a/task.js +52 -31
- package/dist/bridge/a2a/task.js.map +1 -1
- package/dist/bridge/acp/permission.d.ts +2 -2
- package/dist/bridge/acp/server.d.ts +22 -8
- package/dist/bridge/acp/server.d.ts.map +1 -1
- package/dist/bridge/acp/server.js +18 -5
- package/dist/bridge/acp/server.js.map +1 -1
- package/dist/bridge/acp/update.d.ts +4 -4
- package/dist/bridge/acp/update.d.ts.map +1 -1
- package/dist/bridge/acp/update.js +6 -6
- package/dist/bridge/acp/update.js.map +1 -1
- package/dist/bridge/external-session.d.ts +43 -0
- package/dist/bridge/external-session.d.ts.map +1 -0
- package/dist/bridge/external-session.js +28 -0
- package/dist/bridge/external-session.js.map +1 -0
- package/dist/bridge/sse/index.d.ts +1 -1
- package/dist/bridge/sse/index.d.ts.map +1 -1
- package/dist/bridge/sse/index.js +1 -1
- package/dist/bridge/sse/index.js.map +1 -1
- package/dist/bridge/sse/mapper.d.ts +21 -13
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +100 -129
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/bus/breaker.d.ts +6 -6
- package/dist/bus/breaker.d.ts.map +1 -1
- package/dist/bus/breaker.js +28 -27
- package/dist/bus/breaker.js.map +1 -1
- package/dist/bus/index.d.ts +2 -2
- package/dist/bus/index.d.ts.map +1 -1
- package/dist/bus/index.js +6 -6
- package/dist/bus/index.js.map +1 -1
- package/dist/bus/lock.d.ts +5 -5
- package/dist/bus/lock.d.ts.map +1 -1
- package/dist/bus/lock.js.map +1 -1
- package/dist/bus/ownership.d.ts +8 -8
- package/dist/bus/ownership.d.ts.map +1 -1
- package/dist/bus/ownership.js.map +1 -1
- package/dist/compaction/consolidation.d.ts +23 -11
- package/dist/compaction/consolidation.d.ts.map +1 -1
- package/dist/compaction/consolidation.js +43 -13
- package/dist/compaction/consolidation.js.map +1 -1
- package/dist/compaction/context-window.d.ts +4 -4
- package/dist/compaction/context-window.js +4 -4
- package/dist/compaction/index.d.ts +1 -1
- package/dist/compaction/index.d.ts.map +1 -1
- package/dist/compaction/index.js +2 -2
- package/dist/compaction/index.js.map +1 -1
- package/dist/compaction/manager.d.ts +4 -4
- package/dist/compaction/manager.js +4 -4
- package/dist/compaction/manual.d.ts +2 -2
- package/dist/compaction/manual.js +3 -3
- package/dist/compaction/manual.js.map +1 -1
- package/dist/compaction/plan.d.ts +5 -5
- package/dist/compaction/plan.js +4 -4
- package/dist/compaction/plan.js.map +1 -1
- package/dist/compaction/reducer.d.ts +8 -8
- package/dist/compaction/reducer.d.ts.map +1 -1
- package/dist/compaction/retention.js +2 -2
- package/dist/compaction/salience/bm25.d.ts +2 -2
- package/dist/compaction/salience/bm25.js +2 -2
- package/dist/compaction/salience/goal.d.ts +3 -3
- package/dist/compaction/salience/goal.js +3 -3
- package/dist/compaction/salience/minhash.d.ts +1 -1
- package/dist/compaction/salience/minhash.js +1 -1
- package/dist/compaction/salience/score.d.ts +2 -2
- package/dist/compaction/salience/score.js +3 -3
- package/dist/compaction/salience/score.js.map +1 -1
- package/dist/compaction/salience/tokenize.d.ts +1 -1
- package/dist/compaction/salience/tokenize.js +1 -1
- package/dist/compaction/verifier.d.ts +6 -6
- package/dist/compaction/verifier.js +5 -5
- package/dist/compaction/verifier.js.map +1 -1
- package/dist/compaction/wire.d.ts +1 -1
- package/dist/config/registry.d.ts +4 -4
- package/dist/config/registry.js +2 -2
- package/dist/config/runtime.d.ts +24 -24
- package/dist/config/runtime.js +3 -3
- package/dist/connector/http-operation.d.ts +1 -1
- package/dist/connector/http-operation.js +1 -1
- package/dist/connector/mcp/adapter.js +1 -1
- package/dist/connector/mcp/client.d.ts +1 -1
- package/dist/connector/mcp/client.js +1 -1
- package/dist/connector/mcp/discovery.d.ts +1 -1
- package/dist/connector/mcp/discovery.js +1 -1
- package/dist/connector/mcp/discovery.js.map +1 -1
- package/dist/connector/mcp/policy.d.ts +1 -1
- package/dist/connector/mcp/prompt-adapter.d.ts +1 -1
- package/dist/connector/mcp/prompt-adapter.js +3 -3
- package/dist/connector/mcp/prompt-adapter.js.map +1 -1
- package/dist/constants/a2a/index.d.ts +8 -2
- package/dist/constants/a2a/index.d.ts.map +1 -1
- package/dist/constants/a2a/index.js +9 -2
- package/dist/constants/a2a/index.js.map +1 -1
- package/dist/constants/continuation.d.ts +1 -1
- package/dist/constants/continuation.js +1 -1
- package/dist/constants/index.d.ts +0 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +0 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/limits.d.ts +2 -2
- package/dist/constants/limits.js +2 -2
- package/dist/constants/telemetry/index.d.ts +9 -3
- package/dist/constants/telemetry/index.d.ts.map +1 -1
- package/dist/constants/telemetry/index.js +14 -12
- package/dist/constants/telemetry/index.js.map +1 -1
- package/dist/constants/tools/index.d.ts +2 -2
- package/dist/constants/tools/index.js +2 -2
- package/dist/contracts/a2a.d.ts +2 -2
- package/dist/contracts/api.d.ts +11 -126
- package/dist/contracts/api.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +3 -2
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +7 -2
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/schemas.d.ts +6 -165
- package/dist/contracts/schemas.d.ts.map +1 -1
- package/dist/contracts/schemas.js +6 -36
- package/dist/contracts/schemas.js.map +1 -1
- package/dist/contracts/session/api.d.ts +94 -0
- package/dist/contracts/session/api.d.ts.map +1 -0
- package/dist/contracts/session/api.js +10 -0
- package/dist/contracts/session/api.js.map +1 -0
- package/dist/contracts/session/index.d.ts +7 -0
- package/dist/contracts/session/index.d.ts.map +1 -0
- package/dist/contracts/session/index.js +7 -0
- package/dist/contracts/session/index.js.map +1 -0
- package/dist/contracts/session/schemas.d.ts +173 -0
- package/dist/contracts/session/schemas.d.ts.map +1 -0
- package/dist/contracts/session/schemas.js +52 -0
- package/dist/contracts/session/schemas.js.map +1 -0
- package/dist/contracts/session/turn-status.d.ts +45 -0
- package/dist/contracts/session/turn-status.d.ts.map +1 -0
- package/dist/contracts/session/turn-status.js +46 -0
- package/dist/contracts/session/turn-status.js.map +1 -0
- package/dist/contracts/session/turn.d.ts +64 -0
- package/dist/contracts/session/turn.d.ts.map +1 -0
- package/dist/contracts/session/turn.js +2 -0
- package/dist/contracts/session/turn.js.map +1 -0
- package/dist/directory/derive-supervisor.d.ts +1 -1
- package/dist/directory/derive-supervisor.js +2 -2
- package/dist/directory/derive-supervisor.js.map +1 -1
- package/dist/directory/derive.d.ts +2 -2
- package/dist/directory/derive.d.ts.map +1 -1
- package/dist/directory/derive.js +2 -2
- package/dist/directory/derive.js.map +1 -1
- package/dist/directory/index.d.ts +2 -2
- package/dist/directory/index.d.ts.map +1 -1
- package/dist/directory/index.js +1 -1
- package/dist/directory/index.js.map +1 -1
- package/dist/directory/load.js +2 -2
- package/dist/directory/load.js.map +1 -1
- package/dist/directory/types.d.ts +2 -2
- package/dist/directory/types.d.ts.map +1 -1
- package/dist/eval/experiment.d.ts +5 -5
- package/dist/eval/experiment.d.ts.map +1 -1
- package/dist/eval/experiment.js +18 -18
- package/dist/eval/experiment.js.map +1 -1
- package/dist/eval/from-turn.d.ts +30 -0
- package/dist/eval/from-turn.d.ts.map +1 -0
- package/dist/eval/from-turn.js +46 -0
- package/dist/eval/from-turn.js.map +1 -0
- package/dist/eval/harness-verification.js +7 -7
- package/dist/eval/harness-verification.js.map +1 -1
- package/dist/eval/index.d.ts +2 -2
- package/dist/eval/index.d.ts.map +1 -1
- package/dist/eval/index.js +1 -1
- package/dist/eval/index.js.map +1 -1
- package/dist/eval/judge.d.ts +3 -3
- package/dist/eval/judge.d.ts.map +1 -1
- package/dist/eval/judge.js +6 -6
- package/dist/eval/judge.js.map +1 -1
- package/dist/eval/scorers.d.ts +8 -8
- package/dist/eval/scorers.d.ts.map +1 -1
- package/dist/eval/scorers.js +21 -21
- package/dist/eval/scorers.js.map +1 -1
- package/dist/eval/types.d.ts +12 -12
- package/dist/eval/types.d.ts.map +1 -1
- package/dist/eval/uncertainty.d.ts +2 -2
- package/dist/eval/uncertainty.js +2 -2
- package/dist/execution/code-runtime/types.d.ts +4 -4
- package/dist/execution/code-runtime/types.js +2 -2
- package/dist/execution/code-runtime/worker.d.ts +1 -1
- package/dist/execution/code-runtime/worker.js +1 -1
- package/dist/invariants/index.d.ts +1 -1
- package/dist/manager/agent/child-session.d.ts +49 -0
- package/dist/manager/agent/child-session.d.ts.map +1 -0
- package/dist/manager/agent/child-session.js +94 -0
- package/dist/manager/agent/child-session.js.map +1 -0
- package/dist/manager/agent/lifecycle.d.ts +90 -13
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +332 -88
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/index.d.ts +1 -2
- package/dist/manager/index.d.ts.map +1 -1
- package/dist/manager/index.js +1 -2
- package/dist/manager/index.js.map +1 -1
- package/dist/manager/plan/lifecycle.d.ts +11 -7
- package/dist/manager/plan/lifecycle.d.ts.map +1 -1
- package/dist/manager/plan/lifecycle.js +12 -9
- package/dist/manager/plan/lifecycle.js.map +1 -1
- package/dist/manager/resident/consumption.d.ts +12 -6
- package/dist/manager/resident/consumption.d.ts.map +1 -1
- package/dist/manager/resident/consumption.js +7 -5
- package/dist/manager/resident/consumption.js.map +1 -1
- package/dist/manager/resident/evidence-recall.d.ts +5 -5
- package/dist/manager/resident/evidence-recall.d.ts.map +1 -1
- package/dist/manager/resident/evidence-recall.js +9 -9
- package/dist/manager/resident/evidence-recall.js.map +1 -1
- package/dist/manager/resident/host.d.ts +2 -2
- package/dist/manager/resident/host.d.ts.map +1 -1
- package/dist/manager/resident/host.js +1 -1
- package/dist/manager/resident/learning-cycle.d.ts +8 -4
- package/dist/manager/resident/learning-cycle.d.ts.map +1 -1
- package/dist/manager/resident/learning-cycle.js +4 -2
- package/dist/manager/resident/learning-cycle.js.map +1 -1
- package/dist/manager/resident/learning-observation.d.ts +12 -7
- package/dist/manager/resident/learning-observation.d.ts.map +1 -1
- package/dist/manager/resident/learning-observation.js +8 -4
- package/dist/manager/resident/learning-observation.js.map +1 -1
- package/dist/manager/resident/learning-store.d.ts +13 -0
- package/dist/manager/resident/learning-store.d.ts.map +1 -1
- package/dist/manager/resident/learning-store.js +35 -16
- package/dist/manager/resident/learning-store.js.map +1 -1
- package/dist/manager/resident/learning.d.ts +14 -14
- package/dist/manager/resident/outbox.d.ts +4 -4
- package/dist/manager/resident/store.d.ts +8 -8
- package/dist/manager/resident/tool-evidence.d.ts +15 -10
- package/dist/manager/resident/tool-evidence.d.ts.map +1 -1
- package/dist/manager/resident/tool-evidence.js +14 -14
- package/dist/manager/resident/tool-evidence.js.map +1 -1
- package/dist/manager/session/turn-recorder.d.ts +261 -0
- package/dist/manager/session/turn-recorder.d.ts.map +1 -0
- package/dist/manager/session/turn-recorder.js +1115 -0
- package/dist/manager/session/turn-recorder.js.map +1 -0
- package/dist/plugin/lifecycle.d.ts +4 -4
- package/dist/plugin/lifecycle.d.ts.map +1 -1
- package/dist/plugin/lifecycle.js +17 -10
- package/dist/plugin/lifecycle.js.map +1 -1
- package/dist/plugin/shell-hook.d.ts +35 -12
- package/dist/plugin/shell-hook.d.ts.map +1 -1
- package/dist/plugin/shell-hook.js +52 -20
- package/dist/plugin/shell-hook.js.map +1 -1
- package/dist/pricing/index.d.ts +4 -4
- package/dist/pricing/index.js +5 -5
- package/dist/pricing/index.js.map +1 -1
- package/dist/probe/context.d.ts +3 -2
- package/dist/probe/context.d.ts.map +1 -1
- package/dist/probe/context.js +2 -1
- package/dist/probe/context.js.map +1 -1
- package/dist/probe/registry.js +1 -1
- package/dist/probe/registry.js.map +1 -1
- package/dist/prompt/coding-agent-doctrine.d.ts +1 -1
- package/dist/prompt/coding-agent-doctrine.js +1 -1
- package/dist/prompt/contributions.d.ts +27 -6
- package/dist/prompt/contributions.d.ts.map +1 -1
- package/dist/prompt/contributions.js +1 -1
- package/dist/prompt/contributions.js.map +1 -1
- package/dist/prompt/resident-learning.js +2 -2
- package/dist/prompt/resident-learning.js.map +1 -1
- package/dist/provider/collect-chat-completion.d.ts +2 -2
- package/dist/provider/collect-chat-completion.js +3 -3
- package/dist/provider/collect-chat-completion.js.map +1 -1
- package/dist/provider/conformance.d.ts +8 -1
- package/dist/provider/conformance.d.ts.map +1 -1
- package/dist/provider/conformance.js.map +1 -1
- package/dist/provider/errors.d.ts +1 -1
- package/dist/provider/errors.js +2 -2
- package/dist/provider/fallback.d.ts +4 -4
- package/dist/provider/fallback.js +6 -6
- package/dist/provider/fallback.js.map +1 -1
- package/dist/provider/idle-timeout.d.ts +2 -2
- package/dist/provider/idle-timeout.d.ts.map +1 -1
- package/dist/provider/idle-timeout.js +3 -3
- package/dist/provider/idle-timeout.js.map +1 -1
- package/dist/provider/instrumentation.d.ts +5 -2
- package/dist/provider/instrumentation.d.ts.map +1 -1
- package/dist/provider/instrumentation.js +9 -5
- package/dist/provider/instrumentation.js.map +1 -1
- package/dist/provider/mock.d.ts +1 -1
- package/dist/provider/mock.js +1 -1
- package/dist/provider/retry.d.ts +2 -2
- package/dist/provider/retry.js +6 -6
- package/dist/provider/retry.js.map +1 -1
- package/dist/provider/stream-text.d.ts +1 -1
- package/dist/provider/stream-text.d.ts.map +1 -1
- package/dist/provider/stream-text.js +1 -1
- package/dist/provider/stream-text.js.map +1 -1
- package/dist/provider/thinking-support.js +2 -2
- package/dist/provider/thinking-support.js.map +1 -1
- package/dist/provider/token-budget.d.ts +2 -2
- package/dist/provider/token-budget.d.ts.map +1 -1
- package/dist/provider/token-budget.js.map +1 -1
- package/dist/public-runtime.d.ts +69 -55
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +104 -99
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +2 -2
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +7 -7
- package/dist/public-tools.js.map +1 -1
- package/dist/public-types.d.ts +18 -16
- package/dist/public-types.d.ts.map +1 -1
- package/dist/rag/embedding.js +1 -1
- package/dist/rag/embedding.js.map +1 -1
- package/dist/read-model/index.d.ts +2 -2
- package/dist/read-model/index.d.ts.map +1 -1
- package/dist/read-model/index.js +1 -1
- package/dist/read-model/index.js.map +1 -1
- package/dist/read-model/registry.d.ts +11 -11
- package/dist/read-model/registry.d.ts.map +1 -1
- package/dist/read-model/registry.js +2 -2
- package/dist/read-model/registry.js.map +1 -1
- package/dist/read-model/session-status.d.ts +34 -0
- package/dist/read-model/session-status.d.ts.map +1 -0
- package/dist/read-model/session-status.js +58 -0
- package/dist/read-model/session-status.js.map +1 -0
- package/dist/registry/command/kernel-commands.d.ts +4 -4
- package/dist/registry/command/kernel-commands.d.ts.map +1 -1
- package/dist/registry/command/kernel-commands.js +6 -6
- package/dist/registry/command/kernel-commands.js.map +1 -1
- package/dist/registry/tool/dialect.js +1 -1
- package/dist/registry/tool/execute.d.ts +2 -2
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +19 -7
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/registry/tool/portable.d.ts +1 -1
- package/dist/registry/tool/portable.js +1 -1
- package/dist/registry/tool/presentation.d.ts +1 -1
- package/dist/registry/tool/presentation.js +1 -1
- package/dist/registry/tool/schema.js +1 -1
- package/dist/registry/tool/screen.js +3 -3
- package/dist/registry/tool/screen.js.map +1 -1
- package/dist/runtime/bidi/index.d.ts +2 -2
- package/dist/runtime/bidi/index.d.ts.map +1 -1
- package/dist/runtime/bidi/index.js +1 -1
- package/dist/runtime/bidi/index.js.map +1 -1
- package/dist/runtime/bidi/session.d.ts +14 -11
- package/dist/runtime/bidi/session.d.ts.map +1 -1
- package/dist/runtime/bidi/session.js +27 -21
- package/dist/runtime/bidi/session.js.map +1 -1
- package/dist/runtime/jobs/awaited-jobs.d.ts +15 -15
- package/dist/runtime/jobs/awaited-jobs.d.ts.map +1 -1
- package/dist/runtime/jobs/awaited-jobs.js +13 -13
- package/dist/runtime/jobs/awaited-jobs.js.map +1 -1
- package/dist/runtime/jobs/registry.d.ts +10 -10
- package/dist/runtime/jobs/registry.d.ts.map +1 -1
- package/dist/runtime/jobs/registry.js +5 -5
- package/dist/runtime/jobs/registry.js.map +1 -1
- package/dist/runtime/query/abandon-turn.d.ts +35 -0
- package/dist/runtime/query/abandon-turn.d.ts.map +1 -0
- package/dist/runtime/query/abandon-turn.js +81 -0
- package/dist/runtime/query/abandon-turn.js.map +1 -0
- package/dist/runtime/query/approval-policy.d.ts +10 -10
- package/dist/runtime/query/approval-policy.d.ts.map +1 -1
- package/dist/runtime/query/approval-policy.js +5 -5
- package/dist/runtime/query/approval-policy.js.map +1 -1
- package/dist/runtime/query/callback-inference.d.ts +1 -1
- package/dist/runtime/query/callback-inference.d.ts.map +1 -1
- package/dist/runtime/query/callback-inference.js +4 -4
- package/dist/runtime/query/callback-inference.js.map +1 -1
- package/dist/runtime/query/cancelled-before-start.d.ts +20 -20
- package/dist/runtime/query/cancelled-before-start.d.ts.map +1 -1
- package/dist/runtime/query/cancelled-before-start.js +72 -55
- package/dist/runtime/query/cancelled-before-start.js.map +1 -1
- package/dist/runtime/query/checkpoint.d.ts +153 -220
- package/dist/runtime/query/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/checkpoint.js +399 -370
- package/dist/runtime/query/checkpoint.js.map +1 -1
- package/dist/runtime/query/compact-session.d.ts +20 -0
- package/dist/runtime/query/compact-session.d.ts.map +1 -0
- package/dist/runtime/query/compact-session.js +81 -0
- package/dist/runtime/query/compact-session.js.map +1 -0
- package/dist/runtime/query/context.d.ts +42 -85
- package/dist/runtime/query/context.d.ts.map +1 -1
- package/dist/runtime/query/context.js +36 -75
- package/dist/runtime/query/context.js.map +1 -1
- package/dist/runtime/query/events.d.ts +54 -26
- package/dist/runtime/query/events.d.ts.map +1 -1
- package/dist/runtime/query/events.js +122 -114
- package/dist/runtime/query/events.js.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.js +6 -5
- package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +56 -34
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +165 -85
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/file-evidence-seed.d.ts +1 -1
- package/dist/runtime/query/file-evidence-seed.d.ts.map +1 -1
- package/dist/runtime/query/file-evidence-seed.js +1 -1
- package/dist/runtime/query/finalize-turn.d.ts +55 -0
- package/dist/runtime/query/finalize-turn.d.ts.map +1 -0
- package/dist/runtime/query/finalize-turn.js +129 -0
- package/dist/runtime/query/finalize-turn.js.map +1 -0
- package/dist/runtime/query/fork/list.d.ts +15 -0
- package/dist/runtime/query/fork/list.d.ts.map +1 -0
- package/dist/runtime/query/fork/list.js +11 -0
- package/dist/runtime/query/fork/list.js.map +1 -0
- package/dist/runtime/query/fork/mutate.d.ts +17 -0
- package/dist/runtime/query/fork/mutate.d.ts.map +1 -0
- package/dist/runtime/query/fork/mutate.js +69 -0
- package/dist/runtime/query/fork/mutate.js.map +1 -0
- package/dist/runtime/query/fork/prepare.d.ts +52 -0
- package/dist/runtime/query/fork/prepare.d.ts.map +1 -0
- package/dist/runtime/query/fork/prepare.js +43 -0
- package/dist/runtime/query/fork/prepare.js.map +1 -0
- package/dist/runtime/query/guard.d.ts +16 -16
- package/dist/runtime/query/guard.d.ts.map +1 -1
- package/dist/runtime/query/guard.js +16 -16
- package/dist/runtime/query/guard.js.map +1 -1
- package/dist/runtime/query/guardrail-presets.d.ts +10 -10
- package/dist/runtime/query/guardrail-presets.js +12 -12
- package/dist/runtime/query/guardrail-presets.js.map +1 -1
- package/dist/runtime/query/guardrails.d.ts +4 -4
- package/dist/runtime/query/guardrails.js +11 -11
- package/dist/runtime/query/guardrails.js.map +1 -1
- package/dist/runtime/query/index.d.ts +193 -155
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +1295 -1260
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +16 -16
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +285 -243
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/outstanding-work.d.ts +22 -22
- package/dist/runtime/query/iteration/outstanding-work.d.ts.map +1 -1
- package/dist/runtime/query/iteration/outstanding-work.js +63 -63
- package/dist/runtime/query/iteration/outstanding-work.js.map +1 -1
- package/dist/runtime/query/iteration/phases/advisory.js +16 -16
- package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
- package/dist/runtime/query/iteration/phases/checkpoint.d.ts +2 -2
- package/dist/runtime/query/iteration/phases/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/checkpoint.js +25 -8
- package/dist/runtime/query/iteration/phases/checkpoint.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.d.ts +2 -2
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +74 -72
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +34 -29
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js +29 -29
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/plan.d.ts +2 -2
- package/dist/runtime/query/iteration/phases/plan.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/plan.js +5 -4
- package/dist/runtime/query/iteration/phases/plan.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 +140 -25
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/phases/working-memory.d.ts +27 -3
- package/dist/runtime/query/iteration/phases/working-memory.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/working-memory.js +54 -20
- package/dist/runtime/query/iteration/phases/working-memory.js.map +1 -1
- package/dist/runtime/query/iteration/step-context.d.ts +11 -0
- package/dist/runtime/query/iteration/step-context.d.ts.map +1 -0
- package/dist/runtime/query/iteration/step-context.js +14 -0
- package/dist/runtime/query/iteration/step-context.js.map +1 -0
- package/dist/runtime/query/iteration/step-shaping.d.ts +4 -3
- package/dist/runtime/query/iteration/step-shaping.d.ts.map +1 -1
- package/dist/runtime/query/iteration/step-shaping.js +20 -19
- package/dist/runtime/query/iteration/step-shaping.js.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.d.ts +5 -3
- package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.js +32 -28
- package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
- package/dist/runtime/query/plugin-hooks.js +1 -1
- package/dist/runtime/query/plugin-hooks.js.map +1 -1
- package/dist/runtime/query/prepare-turn.d.ts +105 -0
- package/dist/runtime/query/prepare-turn.d.ts.map +1 -0
- package/dist/runtime/query/prepare-turn.js +779 -0
- package/dist/runtime/query/prepare-turn.js.map +1 -0
- package/dist/runtime/query/project-instructions.d.ts +5 -4
- package/dist/runtime/query/project-instructions.d.ts.map +1 -1
- package/dist/runtime/query/project-instructions.js.map +1 -1
- package/dist/runtime/query/prompt-cache.js +1 -1
- package/dist/runtime/query/prompt-cache.js.map +1 -1
- package/dist/runtime/query/prompt.d.ts +3 -3
- package/dist/runtime/query/prompt.d.ts.map +1 -1
- package/dist/runtime/query/prompt.js +3 -3
- package/dist/runtime/query/prompt.js.map +1 -1
- package/dist/runtime/query/question-park.d.ts +7 -7
- package/dist/runtime/query/question-park.d.ts.map +1 -1
- package/dist/runtime/query/question-park.js +5 -5
- package/dist/runtime/query/question-park.js.map +1 -1
- package/dist/runtime/query/release-turn.d.ts +53 -0
- package/dist/runtime/query/release-turn.d.ts.map +1 -0
- package/dist/runtime/query/release-turn.js +95 -0
- package/dist/runtime/query/release-turn.js.map +1 -0
- package/dist/runtime/query/repeat-call.d.ts +2 -2
- package/dist/runtime/query/repeat-call.js +7 -7
- package/dist/runtime/query/repeat-call.js.map +1 -1
- package/dist/runtime/query/result.d.ts +25 -17
- package/dist/runtime/query/result.d.ts.map +1 -1
- package/dist/runtime/query/result.js +110 -115
- package/dist/runtime/query/result.js.map +1 -1
- package/dist/runtime/query/resume-pending.d.ts +34 -17
- package/dist/runtime/query/resume-pending.d.ts.map +1 -1
- package/dist/runtime/query/resume-pending.js +70 -30
- package/dist/runtime/query/resume-pending.js.map +1 -1
- package/dist/runtime/query/resume-session.d.ts +65 -0
- package/dist/runtime/query/resume-session.d.ts.map +1 -0
- package/dist/runtime/query/resume-session.js +88 -0
- package/dist/runtime/query/resume-session.js.map +1 -0
- package/dist/runtime/query/review-policy.d.ts +57 -16
- package/dist/runtime/query/review-policy.d.ts.map +1 -1
- package/dist/runtime/query/review-policy.js +115 -11
- package/dist/runtime/query/review-policy.js.map +1 -1
- package/dist/runtime/query/sandbox-lifecycle.d.ts +5 -5
- package/dist/runtime/query/sandbox-lifecycle.d.ts.map +1 -1
- package/dist/runtime/query/sandbox-lifecycle.js +4 -4
- package/dist/runtime/query/sandbox-lifecycle.js.map +1 -1
- package/dist/runtime/query/session-storage.d.ts +75 -0
- package/dist/runtime/query/session-storage.d.ts.map +1 -0
- package/dist/runtime/query/session-storage.js +236 -0
- package/dist/runtime/query/session-storage.js.map +1 -0
- package/dist/runtime/query/steering.d.ts +9 -3
- package/dist/runtime/query/steering.d.ts.map +1 -1
- package/dist/runtime/query/steering.js +12 -2
- package/dist/runtime/query/steering.js.map +1 -1
- package/dist/runtime/query/token-budget.d.ts +19 -5
- package/dist/runtime/query/token-budget.d.ts.map +1 -1
- package/dist/runtime/query/token-budget.js +43 -74
- package/dist/runtime/query/token-budget.js.map +1 -1
- package/dist/runtime/query/tool-call-budget.d.ts +6 -5
- package/dist/runtime/query/tool-call-budget.d.ts.map +1 -1
- package/dist/runtime/query/tool-call-budget.js +10 -12
- package/dist/runtime/query/tool-call-budget.js.map +1 -1
- package/dist/runtime/query/tool-executions.d.ts +26 -0
- package/dist/runtime/query/tool-executions.d.ts.map +1 -0
- package/dist/runtime/query/tool-executions.js +66 -0
- package/dist/runtime/query/tool-executions.js.map +1 -0
- package/dist/runtime/query/tool-grants.d.ts +3 -3
- package/dist/runtime/query/tool-grants.js +3 -3
- package/dist/runtime/query/tool-output-budget.d.ts +2 -2
- package/dist/runtime/query/tool-output-budget.js +4 -4
- package/dist/runtime/query/tool-output-budget.js.map +1 -1
- package/dist/runtime/query/tool-pause.d.ts +4 -3
- package/dist/runtime/query/tool-pause.d.ts.map +1 -1
- package/dist/runtime/query/tool-pause.js +5 -4
- package/dist/runtime/query/tool-pause.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +15 -10
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +7 -4
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/runtime/query/turn-state.d.ts +56 -0
- package/dist/runtime/query/turn-state.d.ts.map +1 -0
- package/dist/runtime/query/turn-state.js +99 -0
- package/dist/runtime/query/turn-state.js.map +1 -0
- package/dist/sandbox/isolation.d.ts +1 -1
- package/dist/sandbox/isolation.js +2 -2
- package/dist/sandbox/isolation.js.map +1 -1
- package/dist/sandbox/provider/local.d.ts +2 -2
- package/dist/sandbox/provider/local.js +7 -7
- package/dist/sandbox/provider/local.js.map +1 -1
- package/dist/scheduler/completion-inbox.d.ts +21 -21
- package/dist/scheduler/completion-inbox.js +36 -36
- package/dist/scheduler/completion-inbox.js.map +1 -1
- package/dist/scheduler/delegating.d.ts +6 -3
- package/dist/scheduler/delegating.d.ts.map +1 -1
- package/dist/scheduler/delegating.js +15 -8
- package/dist/scheduler/delegating.js.map +1 -1
- package/dist/scheduler/local.d.ts +10 -8
- package/dist/scheduler/local.d.ts.map +1 -1
- package/dist/scheduler/local.js +37 -11
- package/dist/scheduler/local.js.map +1 -1
- package/dist/session/events/index.d.ts +3 -3
- package/dist/session/events/index.d.ts.map +1 -1
- package/dist/session/events/index.js +4 -8
- package/dist/session/events/index.js.map +1 -1
- package/dist/session/handoff/broadcast.d.ts +3 -3
- package/dist/session/handoff/broadcast.d.ts.map +1 -1
- package/dist/session/handoff/broadcast.js +4 -4
- package/dist/session/handoff/broadcast.js.map +1 -1
- package/dist/session/handoff/events.d.ts +1 -1
- package/dist/session/handoff/events.js +1 -1
- package/dist/session/handoff/index.d.ts +1 -1
- package/dist/session/handoff/index.d.ts.map +1 -1
- package/dist/session/handoff/single.d.ts +12 -12
- package/dist/session/handoff/single.d.ts.map +1 -1
- package/dist/session/handoff/single.js +9 -9
- package/dist/session/handoff/single.js.map +1 -1
- package/dist/session/handoff/version.d.ts +7 -7
- package/dist/session/handoff/version.d.ts.map +1 -1
- package/dist/session/handoff/version.js +2 -2
- package/dist/session/handoff/version.js.map +1 -1
- package/dist/session/home.d.ts +23 -0
- package/dist/session/home.d.ts.map +1 -0
- package/dist/session/home.js +45 -0
- package/dist/session/home.js.map +1 -0
- package/dist/session/index.d.ts +1 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +1 -0
- package/dist/session/index.js.map +1 -1
- package/dist/session/log-hash.d.ts +25 -0
- package/dist/session/log-hash.d.ts.map +1 -0
- package/dist/session/log-hash.js +82 -0
- package/dist/session/log-hash.js.map +1 -0
- package/dist/session/messages.d.ts +11 -0
- package/dist/session/messages.d.ts.map +1 -0
- package/dist/session/messages.js +32 -0
- package/dist/session/messages.js.map +1 -0
- package/dist/session/paths.d.ts +168 -0
- package/dist/session/paths.d.ts.map +1 -0
- package/dist/session/paths.js +338 -0
- package/dist/session/paths.js.map +1 -0
- package/dist/session/retention/archive.d.ts +8 -1
- package/dist/session/retention/archive.d.ts.map +1 -1
- package/dist/session/retention/archive.js +3 -5
- package/dist/session/retention/archive.js.map +1 -1
- package/dist/session/status/derive.d.ts +13 -13
- package/dist/session/status/derive.d.ts.map +1 -1
- package/dist/session/status/derive.js +20 -20
- package/dist/session/status/derive.js.map +1 -1
- package/dist/session/workspace/git-worktree.d.ts +8 -1
- package/dist/session/workspace/git-worktree.d.ts.map +1 -1
- package/dist/session/workspace/git-worktree.js +29 -1
- package/dist/session/workspace/git-worktree.js.map +1 -1
- package/dist/session/workspace/index.d.ts +2 -4
- package/dist/session/workspace/index.d.ts.map +1 -1
- package/dist/session/workspace/index.js +2 -3
- package/dist/session/workspace/index.js.map +1 -1
- package/dist/session/workspace/shared-session.d.ts +112 -0
- package/dist/session/workspace/shared-session.d.ts.map +1 -0
- package/dist/session/workspace/shared-session.js +290 -0
- package/dist/session/workspace/shared-session.js.map +1 -0
- package/dist/session-query/index.d.ts +67 -0
- package/dist/session-query/index.d.ts.map +1 -0
- package/dist/session-query/index.js +100 -0
- package/dist/session-query/index.js.map +1 -0
- package/dist/skills/registry.d.ts +1 -1
- package/dist/skills/registry.js +1 -1
- package/dist/store/activity/memory.d.ts +3 -3
- package/dist/store/activity/memory.d.ts.map +1 -1
- package/dist/store/activity/memory.js +4 -4
- package/dist/store/activity/memory.js.map +1 -1
- package/dist/store/attachment/index.d.ts +4 -4
- package/dist/store/attachment/index.d.ts.map +1 -1
- package/dist/store/attachment/index.js +3 -3
- package/dist/store/attachment/index.js.map +1 -1
- package/dist/store/budget/disk.d.ts +59 -0
- package/dist/store/budget/disk.d.ts.map +1 -0
- package/dist/store/budget/disk.js +179 -0
- package/dist/store/budget/disk.js.map +1 -0
- package/dist/store/budget/index.d.ts +6 -0
- package/dist/store/budget/index.d.ts.map +1 -0
- package/dist/store/budget/index.js +6 -0
- package/dist/store/budget/index.js.map +1 -0
- package/dist/store/budget/ledger.d.ts +156 -0
- package/dist/store/budget/ledger.d.ts.map +1 -0
- package/dist/store/budget/ledger.js +683 -0
- package/dist/store/budget/ledger.js.map +1 -0
- package/dist/store/budget/memory.d.ts +18 -0
- package/dist/store/budget/memory.d.ts.map +1 -0
- package/dist/store/budget/memory.js +31 -0
- package/dist/store/budget/memory.js.map +1 -0
- package/dist/store/checkpoint/contract.d.ts +140 -0
- package/dist/store/checkpoint/contract.d.ts.map +1 -0
- package/dist/store/checkpoint/contract.js +91 -0
- package/dist/store/checkpoint/contract.js.map +1 -0
- package/dist/store/checkpoint/disk.d.ts +44 -0
- package/dist/store/checkpoint/disk.d.ts.map +1 -0
- package/dist/store/checkpoint/disk.js +168 -0
- package/dist/store/checkpoint/disk.js.map +1 -0
- package/dist/store/checkpoint/index.d.ts +9 -0
- package/dist/store/checkpoint/index.d.ts.map +1 -0
- package/dist/store/checkpoint/index.js +7 -0
- package/dist/store/checkpoint/index.js.map +1 -0
- package/dist/store/checkpoint/memory.d.ts +27 -0
- package/dist/store/checkpoint/memory.d.ts.map +1 -0
- package/dist/store/checkpoint/memory.js +80 -0
- package/dist/store/checkpoint/memory.js.map +1 -0
- package/dist/store/checkpoint/prune.d.ts +45 -0
- package/dist/store/checkpoint/prune.d.ts.map +1 -0
- package/dist/store/checkpoint/prune.js +71 -0
- package/dist/store/checkpoint/prune.js.map +1 -0
- package/dist/store/config/index.d.ts +1 -1
- package/dist/store/config/index.js +1 -1
- package/dist/store/evidence/disk.d.ts +25 -8
- package/dist/store/evidence/disk.d.ts.map +1 -1
- package/dist/store/evidence/disk.js +148 -47
- package/dist/store/evidence/disk.js.map +1 -1
- package/dist/store/evidence/index-page.d.ts +31 -140
- package/dist/store/evidence/index-page.d.ts.map +1 -1
- package/dist/store/evidence/index-page.js +59 -129
- package/dist/store/evidence/index-page.js.map +1 -1
- package/dist/store/evidence/source-text.d.ts +7 -6
- package/dist/store/evidence/source-text.d.ts.map +1 -1
- package/dist/store/evidence/source-text.js +16 -23
- package/dist/store/evidence/source-text.js.map +1 -1
- package/dist/store/evidence/types.d.ts +38 -39
- package/dist/store/evidence/types.d.ts.map +1 -1
- package/dist/store/feedback/conformance.d.ts +6 -6
- package/dist/store/feedback/conformance.d.ts.map +1 -1
- package/dist/store/feedback/conformance.js +30 -29
- package/dist/store/feedback/conformance.js.map +1 -1
- package/dist/store/feedback/disk.d.ts +20 -19
- package/dist/store/feedback/disk.d.ts.map +1 -1
- package/dist/store/feedback/disk.js +53 -53
- package/dist/store/feedback/disk.js.map +1 -1
- package/dist/store/feedback/index.d.ts +1 -1
- package/dist/store/feedback/index.d.ts.map +1 -1
- package/dist/store/feedback/index.js +1 -1
- package/dist/store/feedback/index.js.map +1 -1
- package/dist/store/feedback/memory.d.ts +8 -5
- package/dist/store/feedback/memory.d.ts.map +1 -1
- package/dist/store/feedback/memory.js +0 -0
- package/dist/store/feedback/memory.js.map +1 -1
- package/dist/store/feedback/types.d.ts +12 -11
- package/dist/store/feedback/types.d.ts.map +1 -1
- package/dist/store/feedback/types.js +3 -3
- package/dist/store/feedback/types.js.map +1 -1
- package/dist/store/index.d.ts +7 -8
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +4 -16
- package/dist/store/index.js.map +1 -1
- package/dist/store/memory/digest.d.ts +15 -0
- package/dist/store/memory/digest.d.ts.map +1 -0
- package/dist/store/memory/digest.js +27 -0
- package/dist/store/memory/digest.js.map +1 -0
- package/dist/store/memory/disk.d.ts.map +1 -1
- package/dist/store/memory/disk.js +42 -7
- package/dist/store/memory/disk.js.map +1 -1
- package/dist/store/memory/index-file.d.ts +56 -0
- package/dist/store/memory/index-file.d.ts.map +1 -0
- package/dist/store/memory/index-file.js +92 -0
- package/dist/store/memory/index-file.js.map +1 -0
- package/dist/store/memory/index.d.ts.map +1 -1
- package/dist/store/memory/index.js +4 -2
- package/dist/store/memory/index.js.map +1 -1
- package/dist/store/memory/links.d.ts +15 -0
- package/dist/store/memory/links.d.ts.map +1 -0
- package/dist/store/memory/links.js +35 -0
- package/dist/store/memory/links.js.map +1 -0
- package/dist/store/memory/markdown-format.d.ts +88 -0
- package/dist/store/memory/markdown-format.d.ts.map +1 -0
- package/dist/store/memory/markdown-format.js +222 -0
- package/dist/store/memory/markdown-format.js.map +1 -0
- package/dist/store/memory/markdown.d.ts +109 -0
- package/dist/store/memory/markdown.d.ts.map +1 -0
- package/dist/store/memory/markdown.js +606 -0
- package/dist/store/memory/markdown.js.map +1 -0
- package/dist/store/memory/memory.d.ts.map +1 -1
- package/dist/store/memory/memory.js +17 -4
- package/dist/store/memory/memory.js.map +1 -1
- package/dist/store/memory/naming.d.ts +66 -0
- package/dist/store/memory/naming.d.ts.map +1 -0
- package/dist/store/memory/naming.js +162 -0
- package/dist/store/memory/naming.js.map +1 -0
- package/dist/store/memory/origin.d.ts +25 -0
- package/dist/store/memory/origin.d.ts.map +1 -0
- package/dist/store/memory/origin.js +26 -0
- package/dist/store/memory/origin.js.map +1 -0
- package/dist/store/session/disk.d.ts +21 -24
- package/dist/store/session/disk.d.ts.map +1 -1
- package/dist/store/session/disk.js +27 -132
- package/dist/store/session/disk.js.map +1 -1
- package/dist/store/session/index.d.ts +0 -3
- package/dist/store/session/index.d.ts.map +1 -1
- package/dist/store/session/index.js +5 -7
- package/dist/store/session/index.js.map +1 -1
- package/dist/store/session/memory.d.ts +1 -8
- package/dist/store/session/memory.d.ts.map +1 -1
- package/dist/store/session/memory.js +1 -58
- package/dist/store/session/memory.js.map +1 -1
- package/dist/store/session-claim.d.ts +30 -0
- package/dist/store/session-claim.d.ts.map +1 -0
- package/dist/store/session-claim.js +71 -0
- package/dist/store/session-claim.js.map +1 -0
- package/dist/store/session-index/fts.d.ts +60 -0
- package/dist/store/session-index/fts.d.ts.map +1 -0
- package/dist/store/session-index/fts.js +160 -0
- package/dist/store/session-index/fts.js.map +1 -0
- package/dist/store/session-index/index.d.ts +206 -0
- package/dist/store/session-index/index.d.ts.map +1 -0
- package/dist/store/session-index/index.js +22 -0
- package/dist/store/session-index/index.js.map +1 -0
- package/dist/store/session-index/rebuild.d.ts +180 -0
- package/dist/store/session-index/rebuild.d.ts.map +1 -0
- package/dist/store/session-index/rebuild.js +669 -0
- package/dist/store/session-index/rebuild.js.map +1 -0
- package/dist/store/session-index/refs.d.ts +66 -0
- package/dist/store/session-index/refs.d.ts.map +1 -0
- package/dist/store/session-index/refs.js +107 -0
- package/dist/store/session-index/refs.js.map +1 -0
- package/dist/store/session-index/scan.d.ts +42 -0
- package/dist/store/session-index/scan.d.ts.map +1 -0
- package/dist/store/session-index/scan.js +188 -0
- package/dist/store/session-index/scan.js.map +1 -0
- package/dist/store/session-index/sqlite.d.ts +76 -0
- package/dist/store/session-index/sqlite.d.ts.map +1 -0
- package/dist/store/session-index/sqlite.js +547 -0
- package/dist/store/session-index/sqlite.js.map +1 -0
- package/dist/store/session-log/chain.d.ts +111 -0
- package/dist/store/session-log/chain.d.ts.map +1 -0
- package/dist/store/session-log/chain.js +212 -0
- package/dist/store/session-log/chain.js.map +1 -0
- package/dist/store/session-log/conformance.d.ts +61 -0
- package/dist/store/session-log/conformance.d.ts.map +1 -0
- package/dist/store/session-log/conformance.js +392 -0
- package/dist/store/session-log/conformance.js.map +1 -0
- package/dist/store/session-log/core.d.ts +203 -0
- package/dist/store/session-log/core.d.ts.map +1 -0
- package/dist/store/session-log/core.js +516 -0
- package/dist/store/session-log/core.js.map +1 -0
- package/dist/store/session-log/disk.d.ts +56 -0
- package/dist/store/session-log/disk.d.ts.map +1 -0
- package/dist/store/session-log/disk.js +169 -0
- package/dist/store/session-log/disk.js.map +1 -0
- package/dist/store/session-log/fold.d.ts +115 -0
- package/dist/store/session-log/fold.d.ts.map +1 -0
- package/dist/store/session-log/fold.js +265 -0
- package/dist/store/session-log/fold.js.map +1 -0
- package/dist/store/session-log/heal.d.ts +34 -0
- package/dist/store/session-log/heal.d.ts.map +1 -0
- package/dist/store/session-log/heal.js +12 -0
- package/dist/store/session-log/heal.js.map +1 -0
- package/dist/store/session-log/held-leases.d.ts +56 -0
- package/dist/store/session-log/held-leases.d.ts.map +1 -0
- package/dist/store/session-log/held-leases.js +67 -0
- package/dist/store/session-log/held-leases.js.map +1 -0
- package/dist/store/session-log/index.d.ts +10 -0
- package/dist/store/session-log/index.d.ts.map +1 -0
- package/dist/store/session-log/index.js +16 -0
- package/dist/store/session-log/index.js.map +1 -0
- package/dist/store/session-log/lease.d.ts +126 -0
- package/dist/store/session-log/lease.d.ts.map +1 -0
- package/dist/store/session-log/lease.js +226 -0
- package/dist/store/session-log/lease.js.map +1 -0
- package/dist/store/session-log/memory.d.ts +43 -0
- package/dist/store/session-log/memory.d.ts.map +1 -0
- package/dist/store/session-log/memory.js +78 -0
- package/dist/store/session-log/memory.js.map +1 -0
- package/dist/store/session-log/spill.d.ts +109 -0
- package/dist/store/session-log/spill.d.ts.map +1 -0
- package/dist/store/session-log/spill.js +223 -0
- package/dist/store/session-log/spill.js.map +1 -0
- package/dist/store/task/context.d.ts +25 -0
- package/dist/store/task/context.d.ts.map +1 -0
- package/dist/store/task/context.js +18 -0
- package/dist/store/task/context.js.map +1 -0
- package/dist/store/task/disk.d.ts +29 -26
- package/dist/store/task/disk.d.ts.map +1 -1
- package/dist/store/task/disk.js +102 -137
- package/dist/store/task/disk.js.map +1 -1
- package/dist/store/task/memory.d.ts +2 -2
- package/dist/store/task/memory.d.ts.map +1 -1
- package/dist/store/task/memory.js +10 -6
- package/dist/store/task/memory.js.map +1 -1
- package/dist/store/topic/index.js +2 -2
- package/dist/store/topic/index.js.map +1 -1
- package/dist/store/topic/objective.d.ts.map +1 -1
- package/dist/store/topic/objective.js +10 -3
- package/dist/store/topic/objective.js.map +1 -1
- package/dist/store/topic/state.js +1 -1
- package/dist/streaming/coalesce.d.ts +3 -3
- package/dist/streaming/coalesce.d.ts.map +1 -1
- package/dist/streaming/coalesce.js +1 -1
- package/dist/streaming/coalesce.js.map +1 -1
- package/dist/telemetry/attributes.d.ts +9 -8
- package/dist/telemetry/attributes.d.ts.map +1 -1
- package/dist/telemetry/attributes.js +6 -5
- package/dist/telemetry/attributes.js.map +1 -1
- package/dist/telemetry/metrics.d.ts +2 -2
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +5 -5
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/telemetry/runtime-accessors.js +1 -1
- package/dist/telemetry/runtime-accessors.js.map +1 -1
- package/dist/test-support/ids.d.ts +4 -4
- package/dist/test-support/ids.d.ts.map +1 -1
- package/dist/test-support/ids.js +3 -3
- package/dist/test-support/ids.js.map +1 -1
- package/dist/testing.d.ts +4 -6
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +3 -5
- package/dist/testing.js.map +1 -1
- package/dist/tools/advisory/index.js +1 -1
- package/dist/tools/advisory/index.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts +6 -0
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +37 -5
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/content-fingerprint.d.ts +2 -2
- package/dist/tools/builtins/content-fingerprint.js +2 -2
- package/dist/tools/builtins/edit-apply.js +1 -1
- package/dist/tools/builtins/edit-apply.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +3 -0
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/glob.d.ts.map +1 -1
- package/dist/tools/builtins/glob.js +3 -0
- 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 +3 -0
- package/dist/tools/builtins/grep.js.map +1 -1
- package/dist/tools/builtins/job.js +5 -5
- package/dist/tools/builtins/job.js.map +1 -1
- package/dist/tools/builtins/ls.d.ts +1 -1
- package/dist/tools/builtins/ls.d.ts.map +1 -1
- package/dist/tools/builtins/ls.js +3 -0
- package/dist/tools/builtins/ls.js.map +1 -1
- package/dist/tools/builtins/lsp.d.ts +1 -1
- package/dist/tools/builtins/lsp.d.ts.map +1 -1
- package/dist/tools/builtins/lsp.js +5 -2
- package/dist/tools/builtins/lsp.js.map +1 -1
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +3 -0
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/run-code.js +9 -9
- package/dist/tools/builtins/run-code.js.map +1 -1
- package/dist/tools/builtins/skill.js +3 -3
- package/dist/tools/builtins/skill.js.map +1 -1
- package/dist/tools/builtins/wait-for-job-bounds.d.ts +4 -4
- package/dist/tools/builtins/wait-for-job-bounds.d.ts.map +1 -1
- package/dist/tools/builtins/wait-for-job-bounds.js +2 -2
- package/dist/tools/builtins/wait-for-job-bounds.js.map +1 -1
- package/dist/tools/builtins/wait-for-job.js +3 -3
- package/dist/tools/builtins/wait-for-job.js.map +1 -1
- package/dist/tools/builtins/web-guidance.d.ts +2 -2
- package/dist/tools/builtins/web-guidance.js +2 -2
- package/dist/tools/builtins/web.js +3 -3
- package/dist/tools/builtins/web.js.map +1 -1
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +3 -0
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/coordinator/agent.d.ts +1 -1
- package/dist/tools/coordinator/agent.js +7 -7
- package/dist/tools/coordinator/agent.js.map +1 -1
- package/dist/tools/coordinator/ask-user-question.d.ts +10 -9
- package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
- package/dist/tools/coordinator/ask-user-question.js +9 -8
- package/dist/tools/coordinator/ask-user-question.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts +17 -11
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +45 -44
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/coordinator/outcome.d.ts +5 -5
- package/dist/tools/coordinator/outcome.js +7 -7
- package/dist/tools/coordinator/outcome.js.map +1 -1
- package/dist/tools/coordinator/plan-dependencies.js +1 -1
- package/dist/tools/coordinator/plan-dependencies.js.map +1 -1
- package/dist/tools/coordinator/wait-with-idle-bound.d.ts +4 -4
- package/dist/tools/coordinator/wait-with-idle-bound.d.ts.map +1 -1
- package/dist/tools/coordinator/wait-with-idle-bound.js +2 -2
- package/dist/tools/coordinator/wait-with-idle-bound.js.map +1 -1
- package/dist/tools/defineTool.d.ts +5 -1
- package/dist/tools/defineTool.d.ts.map +1 -1
- package/dist/tools/defineTool.js +4 -0
- package/dist/tools/defineTool.js.map +1 -1
- package/dist/tools/env-scrub.d.ts +1 -1
- package/dist/tools/env-scrub.js +1 -1
- package/dist/tools/goal/index.d.ts +10 -6
- package/dist/tools/goal/index.d.ts.map +1 -1
- package/dist/tools/goal/index.js +9 -9
- package/dist/tools/goal/index.js.map +1 -1
- package/dist/tools/memory/fields.d.ts +8 -0
- package/dist/tools/memory/fields.d.ts.map +1 -0
- package/dist/tools/memory/fields.js +22 -0
- package/dist/tools/memory/fields.js.map +1 -0
- package/dist/tools/memory/read.d.ts.map +1 -1
- package/dist/tools/memory/read.js +60 -7
- package/dist/tools/memory/read.js.map +1 -1
- package/dist/tools/memory/resolve.d.ts +21 -0
- package/dist/tools/memory/resolve.d.ts.map +1 -0
- package/dist/tools/memory/resolve.js +23 -0
- package/dist/tools/memory/resolve.js.map +1 -0
- package/dist/tools/memory/save.d.ts.map +1 -1
- package/dist/tools/memory/save.js +57 -18
- package/dist/tools/memory/save.js.map +1 -1
- package/dist/tools/memory/search.d.ts.map +1 -1
- package/dist/tools/memory/search.js +9 -2
- package/dist/tools/memory/search.js.map +1 -1
- package/dist/tools/memory/update.d.ts.map +1 -1
- package/dist/tools/memory/update.js +45 -7
- package/dist/tools/memory/update.js.map +1 -1
- package/dist/tools/paths.d.ts +29 -3
- package/dist/tools/paths.d.ts.map +1 -1
- package/dist/tools/paths.js +81 -23
- package/dist/tools/paths.js.map +1 -1
- package/dist/tools/posix-path.js +1 -1
- package/dist/tools/posix-path.js.map +1 -1
- package/dist/tools/resident-history.d.ts +1 -1
- package/dist/tools/resident-history.js +1 -1
- package/dist/tools/resident-tool-evidence.d.ts +1 -1
- package/dist/tools/resident-tool-evidence.d.ts.map +1 -1
- package/dist/tools/resident-tool-evidence.js +1 -1
- package/dist/tools/resident-tool-evidence.js.map +1 -1
- package/dist/tools/task/create.d.ts +2 -2
- package/dist/tools/task/create.d.ts.map +1 -1
- package/dist/tools/task/create.js +7 -3
- package/dist/tools/task/create.js.map +1 -1
- package/dist/tools/task/index.d.ts +16 -2
- package/dist/tools/task/index.d.ts.map +1 -1
- package/dist/tools/task/index.js +4 -3
- package/dist/tools/task/index.js.map +1 -1
- package/dist/tools/task/list.d.ts +4 -2
- package/dist/tools/task/list.d.ts.map +1 -1
- package/dist/tools/task/list.js +12 -5
- package/dist/tools/task/list.js.map +1 -1
- package/dist/tools/task/present.d.ts +18 -0
- package/dist/tools/task/present.d.ts.map +1 -0
- package/dist/tools/task/present.js +88 -0
- package/dist/tools/task/present.js.map +1 -0
- package/dist/tools/task/update.d.ts.map +1 -1
- package/dist/tools/task/update.js +9 -1
- package/dist/tools/task/update.js.map +1 -1
- package/dist/turn/LimitChecker.d.ts +30 -0
- package/dist/turn/LimitChecker.d.ts.map +1 -0
- package/dist/turn/LimitChecker.js +57 -0
- package/dist/turn/LimitChecker.js.map +1 -0
- package/dist/turn/command-gate.d.ts +107 -0
- package/dist/turn/command-gate.d.ts.map +1 -0
- package/dist/turn/command-gate.js +221 -0
- package/dist/turn/command-gate.js.map +1 -0
- package/dist/turn/drain.d.ts +138 -0
- package/dist/turn/drain.d.ts.map +1 -0
- package/dist/turn/drain.js +209 -0
- package/dist/turn/drain.js.map +1 -0
- package/dist/turn/evidence-query.d.ts +41 -0
- package/dist/turn/evidence-query.d.ts.map +1 -0
- package/dist/turn/evidence-query.js +270 -0
- package/dist/turn/evidence-query.js.map +1 -0
- package/dist/turn/evidence-recall.d.ts +102 -0
- package/dist/turn/evidence-recall.d.ts.map +1 -0
- package/dist/turn/evidence-recall.js +635 -0
- package/dist/turn/evidence-recall.js.map +1 -0
- package/dist/turn/index.d.ts +17 -0
- package/dist/turn/index.d.ts.map +1 -0
- package/dist/turn/index.js +9 -0
- package/dist/turn/index.js.map +1 -0
- package/dist/turn/json-claim-verifier.d.ts +83 -0
- package/dist/turn/json-claim-verifier.d.ts.map +1 -0
- package/dist/turn/json-claim-verifier.js +200 -0
- package/dist/turn/json-claim-verifier.js.map +1 -0
- package/dist/turn/memory-promoter.d.ts +43 -0
- package/dist/turn/memory-promoter.d.ts.map +1 -0
- package/dist/turn/memory-promoter.js +111 -0
- package/dist/turn/memory-promoter.js.map +1 -0
- package/dist/turn/memory-recall.d.ts +33 -0
- package/dist/turn/memory-recall.d.ts.map +1 -0
- package/dist/turn/memory-recall.js +248 -0
- package/dist/turn/memory-recall.js.map +1 -0
- package/dist/turn/preparation-context-error.d.ts.map +1 -0
- package/dist/turn/preparation-context-error.js.map +1 -0
- package/dist/turn/reporter.d.ts +8 -0
- package/dist/turn/reporter.d.ts.map +1 -0
- package/dist/turn/reporter.js +420 -0
- package/dist/turn/reporter.js.map +1 -0
- package/dist/turn/workspace-fingerprint.d.ts.map +1 -0
- package/dist/turn/workspace-fingerprint.js.map +1 -0
- package/dist/types/activity/index.d.ts +2 -2
- package/dist/types/activity/index.d.ts.map +1 -1
- package/dist/types/advisory/config.d.ts +7 -7
- package/dist/types/advisory/config.d.ts.map +1 -1
- package/dist/types/agent/base.d.ts +71 -44
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/agent/core.d.ts +10 -10
- package/dist/types/agent/core.d.ts.map +1 -1
- package/dist/types/agent/delegate.d.ts +2 -2
- package/dist/types/agent/factory.d.ts +6 -4
- package/dist/types/agent/factory.d.ts.map +1 -1
- package/dist/types/agent/manager.d.ts +6 -6
- package/dist/types/agent/manager.d.ts.map +1 -1
- package/dist/types/agent/pipeline.d.ts +5 -4
- package/dist/types/agent/pipeline.d.ts.map +1 -1
- package/dist/types/agent/reactive.d.ts +11 -10
- package/dist/types/agent/reactive.d.ts.map +1 -1
- package/dist/types/agent/router.d.ts +1 -1
- package/dist/types/agent/scheduler.d.ts +27 -11
- package/dist/types/agent/scheduler.d.ts.map +1 -1
- package/dist/types/agent/supervisor.d.ts +13 -13
- package/dist/types/agent/task.d.ts +48 -12
- package/dist/types/agent/task.d.ts.map +1 -1
- package/dist/types/agent/working-memory.d.ts +5 -4
- package/dist/types/agent/working-memory.d.ts.map +1 -1
- package/dist/types/authorization/index.d.ts +6 -6
- package/dist/types/bidi/index.d.ts +21 -12
- package/dist/types/bidi/index.d.ts.map +1 -1
- package/dist/types/bus/index.d.ts +34 -28
- package/dist/types/bus/index.d.ts.map +1 -1
- package/dist/types/code-navigation/index.d.ts +1 -1
- package/dist/types/common/index.d.ts +10 -18
- package/dist/types/common/index.d.ts.map +1 -1
- package/dist/types/common/index.js +3 -2
- package/dist/types/common/index.js.map +1 -1
- package/dist/types/connector/core.d.ts +2 -2
- package/dist/types/connector/definition.d.ts +1 -1
- package/dist/types/connector/mcp.d.ts +1 -1
- package/dist/types/errors/catalog.js +4 -4
- package/dist/types/errors/catalog.js.map +1 -1
- package/dist/types/errors/index.d.ts +5 -5
- package/dist/types/errors/index.d.ts.map +1 -1
- package/dist/types/guardrail/index.d.ts +12 -10
- package/dist/types/guardrail/index.d.ts.map +1 -1
- package/dist/types/hitl/index.d.ts +60 -117
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/hitl/policy.d.ts +8 -6
- package/dist/types/hitl/policy.d.ts.map +1 -1
- package/dist/types/ids/brand.d.ts +10 -3
- package/dist/types/ids/brand.d.ts.map +1 -1
- package/dist/types/ids/brand.js.map +1 -1
- package/dist/types/ids/index.d.ts +10 -4
- package/dist/types/ids/index.d.ts.map +1 -1
- package/dist/types/ids/index.js.map +1 -1
- package/dist/types/memory/index.d.ts +35 -0
- package/dist/types/memory/index.d.ts.map +1 -1
- package/dist/types/memory/index.js +17 -0
- package/dist/types/memory/index.js.map +1 -1
- package/dist/types/message/index.d.ts +4 -4
- package/dist/types/plan/index.d.ts +5 -3
- package/dist/types/plan/index.d.ts.map +1 -1
- package/dist/types/plugin/index.d.ts +27 -19
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/plugin/index.js +16 -3
- package/dist/types/plugin/index.js.map +1 -1
- package/dist/types/probe/event-kind.d.ts +3 -3
- package/dist/types/probe/event-kind.d.ts.map +1 -1
- package/dist/types/probe/registry.d.ts +3 -2
- package/dist/types/probe/registry.d.ts.map +1 -1
- package/dist/types/project/entity.d.ts +3 -3
- package/dist/types/provider/config.d.ts +3 -3
- package/dist/types/provider/error.d.ts +1 -1
- package/dist/types/provider/errors.d.ts +2 -2
- package/dist/types/provider/errors.js +2 -2
- package/dist/types/provider/errors.js.map +1 -1
- package/dist/types/provider/interface.d.ts +5 -5
- package/dist/types/router/task-router.d.ts +1 -1
- package/dist/types/sandbox/index.d.ts +14 -14
- package/dist/types/sandbox/index.d.ts.map +1 -1
- package/dist/types/sandbox/index.js +4 -4
- package/dist/types/session/answer-review.d.ts +80 -0
- package/dist/types/session/answer-review.d.ts.map +1 -0
- package/dist/types/session/answer-review.js.map +1 -0
- package/dist/types/session/audit.d.ts +153 -0
- package/dist/types/session/audit.d.ts.map +1 -0
- package/dist/types/session/audit.js +35 -0
- package/dist/types/session/audit.js.map +1 -0
- package/dist/types/session/cancel-cause.d.ts +49 -0
- package/dist/types/session/cancel-cause.d.ts.map +1 -0
- package/dist/types/session/cancel-cause.js +39 -0
- package/dist/types/session/cancel-cause.js.map +1 -0
- package/dist/types/session/checkpoint.d.ts +325 -0
- package/dist/types/session/checkpoint.d.ts.map +1 -0
- package/dist/types/session/checkpoint.js +100 -0
- package/dist/types/session/checkpoint.js.map +1 -0
- package/dist/types/session/config.d.ts +199 -0
- package/dist/types/session/config.d.ts.map +1 -0
- package/dist/types/session/config.js.map +1 -0
- package/dist/types/session/derive-status.d.ts +28 -0
- package/dist/types/session/derive-status.d.ts.map +1 -0
- package/dist/types/session/derive-status.js +49 -0
- package/dist/types/session/derive-status.js.map +1 -0
- package/dist/types/session/durable.d.ts +142 -0
- package/dist/types/session/durable.d.ts.map +1 -0
- package/dist/types/session/durable.js +11 -0
- package/dist/types/session/durable.js.map +1 -0
- package/dist/types/session/entity.d.ts +1 -1
- package/dist/types/session/events.d.ts +1147 -0
- package/dist/types/session/events.d.ts.map +1 -0
- package/dist/types/session/events.js +15 -0
- package/dist/types/session/events.js.map +1 -0
- package/dist/types/session/fork.d.ts +45 -0
- package/dist/types/session/fork.d.ts.map +1 -0
- package/dist/types/session/fork.js +15 -0
- package/dist/types/session/fork.js.map +1 -0
- package/dist/types/session/ids.d.ts +1 -1
- package/dist/types/session/ids.d.ts.map +1 -1
- package/dist/types/session/index.d.ts +20 -1
- package/dist/types/session/index.d.ts.map +1 -1
- package/dist/types/session/index.js +22 -4
- package/dist/types/session/index.js.map +1 -1
- package/dist/types/session/lineage.d.ts +15 -0
- package/dist/types/session/lineage.d.ts.map +1 -0
- package/dist/types/session/lineage.js.map +1 -0
- package/dist/types/session/log-cursor.d.ts +57 -0
- package/dist/types/session/log-cursor.d.ts.map +1 -0
- package/dist/types/session/log-cursor.js +34 -0
- package/dist/types/session/log-cursor.js.map +1 -0
- package/dist/types/session/memory-promotion.d.ts +91 -0
- package/dist/types/session/memory-promotion.d.ts.map +1 -0
- package/dist/types/session/memory-promotion.js +39 -0
- package/dist/types/session/memory-promotion.js.map +1 -0
- package/dist/types/session/messages.d.ts +1 -1
- package/dist/types/session/messages.js +1 -1
- package/dist/types/session/prepare-step.d.ts +278 -0
- package/dist/types/session/prepare-step.d.ts.map +1 -0
- package/dist/types/session/prepare-step.js.map +1 -0
- package/dist/types/session/records.d.ts +5597 -0
- package/dist/types/session/records.d.ts.map +1 -0
- package/dist/types/session/records.js +721 -0
- package/dist/types/session/records.js.map +1 -0
- package/dist/types/session/step.d.ts +195 -0
- package/dist/types/session/step.d.ts.map +1 -0
- package/dist/types/session/step.js +26 -0
- package/dist/types/session/step.js.map +1 -0
- package/dist/types/session/stop-reason.d.ts +67 -0
- package/dist/types/session/stop-reason.d.ts.map +1 -0
- package/dist/types/session/stop-reason.js.map +1 -0
- package/dist/types/session/store.d.ts +2 -43
- package/dist/types/session/store.d.ts.map +1 -1
- package/dist/types/session/tool-execution.d.ts +34 -0
- package/dist/types/session/tool-execution.d.ts.map +1 -0
- package/dist/types/session/tool-execution.js +11 -0
- package/dist/types/session/tool-execution.js.map +1 -0
- package/dist/types/session/turn-state.d.ts +74 -0
- package/dist/types/session/turn-state.d.ts.map +1 -0
- package/dist/types/session/turn-state.js +59 -0
- package/dist/types/session/turn-state.js.map +1 -0
- package/dist/types/session/turn.d.ts +215 -0
- package/dist/types/session/turn.d.ts.map +1 -0
- package/dist/types/session/turn.js +44 -0
- package/dist/types/session/turn.js.map +1 -0
- package/dist/types/structured-output/index.d.ts +2 -2
- package/dist/types/structured-output/index.d.ts.map +1 -1
- package/dist/types/summary/deliverable.d.ts +4 -4
- package/dist/types/summary/deliverable.d.ts.map +1 -1
- package/dist/types/task/index.d.ts +8 -4
- package/dist/types/task/index.d.ts.map +1 -1
- package/dist/types/tool/index.d.ts +73 -26
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/types/topic/entity.d.ts +6 -6
- package/dist/types/topic/objective.d.ts +10 -5
- package/dist/types/topic/objective.d.ts.map +1 -1
- package/dist/types/topic/objective.js.map +1 -1
- package/dist/types/topic/state.d.ts +4 -4
- package/dist/types/topic/store.d.ts +1 -1
- package/dist/types/topic/store.js +1 -1
- package/dist/types/workspace/index.d.ts +1 -1
- package/dist/types/workspace/index.d.ts.map +1 -1
- package/dist/types/workspace/index.js +1 -1
- package/dist/types/workspace/index.js.map +1 -1
- package/dist/types/workspace/ref.d.ts +3 -3
- package/dist/types/workspace/shared-session.d.ts +61 -0
- package/dist/types/workspace/shared-session.d.ts.map +1 -0
- package/dist/types/workspace/shared-session.js +2 -0
- package/dist/types/workspace/shared-session.js.map +1 -0
- package/dist/utils/abort.js +4 -4
- package/dist/utils/abort.js.map +1 -1
- package/dist/utils/atomic-write.d.ts +29 -1
- package/dist/utils/atomic-write.d.ts.map +1 -1
- package/dist/utils/atomic-write.js +60 -4
- package/dist/utils/atomic-write.js.map +1 -1
- package/dist/utils/cost.d.ts +3 -3
- package/dist/utils/cost.d.ts.map +1 -1
- package/dist/utils/cost.js +11 -12
- package/dist/utils/cost.js.map +1 -1
- package/dist/utils/env.d.ts +1 -1
- package/dist/utils/env.js +1 -1
- package/dist/utils/id.d.ts +9 -8
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +20 -13
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/log/create-logger.js +1 -1
- package/dist/utils/log/create-logger.js.map +1 -1
- package/dist/utils/log/redact.js +1 -1
- package/dist/utils/log/redact.js.map +1 -1
- package/dist/utils/log/sinks.d.ts +1 -1
- package/dist/utils/log/sinks.js +2 -2
- package/dist/utils/log/sinks.js.map +1 -1
- package/dist/utils/log/types.js +1 -1
- package/dist/utils/log/types.js.map +1 -1
- package/dist/utils/shell-compress.js +2 -2
- package/dist/utils/shell-compress.js.map +1 -1
- package/dist/utils/uuidv7.d.ts +33 -0
- package/dist/utils/uuidv7.d.ts.map +1 -0
- package/dist/utils/uuidv7.js +70 -0
- package/dist/utils/uuidv7.js.map +1 -0
- package/dist/vault/instrumentation.d.ts +5 -2
- package/dist/vault/instrumentation.d.ts.map +1 -1
- package/dist/vault/instrumentation.js +12 -6
- package/dist/vault/instrumentation.js.map +1 -1
- package/package.json +1 -1
- package/src/advisory/budget.ts +3 -3
- package/src/advisory/context.ts +9 -9
- package/src/advisory/evaluator.ts +2 -2
- package/src/advisory/parse.ts +1 -1
- package/src/agents/AbstractAgent.ts +74 -50
- package/src/agents/PipelineAgent.ts +91 -26
- package/src/agents/ReactiveAgent.ts +35 -29
- package/src/agents/RouterAgent.ts +32 -44
- package/src/agents/SupervisorAgent.ts +55 -41
- package/src/agents/budget.ts +73 -16
- package/src/agents/defineAgent.ts +7 -3
- package/src/agents/handle.ts +17 -19
- package/src/agents/lock.ts +4 -4
- package/src/agents/runAgent.ts +96 -38
- package/src/agents/storage.ts +36 -0
- package/src/authorization/command-line.ts +1 -1
- package/src/authorization/gate.ts +1 -1
- package/src/authorization/permission-presets.ts +4 -4
- package/src/bridge/a2a/client.ts +2 -2
- package/src/bridge/a2a/context.ts +46 -0
- package/src/bridge/a2a/index.ts +12 -5
- package/src/bridge/a2a/mapper.ts +48 -38
- package/src/bridge/a2a/task.ts +91 -37
- package/src/bridge/acp/permission.ts +2 -2
- package/src/bridge/acp/server.ts +45 -11
- package/src/bridge/acp/update.ts +9 -9
- package/src/bridge/external-session.ts +82 -0
- package/src/bridge/sse/index.ts +1 -1
- package/src/bridge/sse/mapper.ts +117 -145
- package/src/bus/breaker.ts +30 -29
- package/src/bus/index.ts +7 -7
- package/src/bus/lock.ts +7 -7
- package/src/bus/ownership.ts +8 -8
- package/src/compaction/consolidation.ts +61 -15
- package/src/compaction/context-window.ts +4 -4
- package/src/compaction/index.ts +2 -2
- package/src/compaction/manager.ts +4 -4
- package/src/compaction/manual.ts +5 -5
- package/src/compaction/plan.ts +8 -8
- package/src/compaction/reducer.ts +8 -8
- package/src/compaction/retention.ts +2 -2
- package/src/compaction/salience/bm25.ts +2 -2
- package/src/compaction/salience/goal.ts +3 -3
- package/src/compaction/salience/minhash.ts +1 -1
- package/src/compaction/salience/score.ts +3 -3
- package/src/compaction/salience/tokenize.ts +1 -1
- package/src/compaction/verifier.ts +7 -7
- package/src/compaction/wire.ts +1 -1
- package/src/config/registry.ts +4 -4
- package/src/config/runtime.ts +3 -3
- package/src/connector/http-operation.ts +1 -1
- package/src/connector/mcp/adapter.ts +1 -1
- package/src/connector/mcp/client.ts +1 -1
- package/src/connector/mcp/discovery.ts +2 -2
- package/src/connector/mcp/policy.ts +1 -1
- package/src/connector/mcp/prompt-adapter.ts +3 -3
- package/src/constants/a2a/index.ts +10 -3
- package/src/constants/continuation.ts +1 -1
- package/src/constants/index.ts +0 -1
- package/src/constants/limits.ts +2 -2
- package/src/constants/telemetry/index.ts +15 -12
- package/src/constants/tools/index.ts +2 -2
- package/src/contracts/api.ts +11 -202
- package/src/contracts/index.ts +8 -15
- package/src/contracts/schemas.ts +6 -39
- package/src/contracts/session/api.ts +150 -0
- package/src/contracts/session/index.ts +29 -0
- package/src/contracts/session/schemas.ts +60 -0
- package/src/contracts/session/turn-status.ts +83 -0
- package/src/contracts/session/turn.ts +67 -0
- package/src/directory/derive-supervisor.ts +2 -2
- package/src/directory/derive.ts +4 -4
- package/src/directory/index.ts +2 -2
- package/src/directory/load.ts +2 -2
- package/src/directory/types.ts +2 -2
- package/src/eval/experiment.ts +23 -23
- package/src/eval/from-turn.ts +50 -0
- package/src/eval/harness-verification.ts +7 -7
- package/src/eval/index.ts +2 -2
- package/src/eval/judge.ts +10 -10
- package/src/eval/scorers.ts +23 -23
- package/src/eval/types.ts +12 -12
- package/src/eval/uncertainty.ts +2 -2
- package/src/execution/code-runtime/types.ts +4 -4
- package/src/execution/code-runtime/worker.ts +1 -1
- package/src/invariants/index.ts +2 -2
- package/src/manager/agent/child-session.ts +120 -0
- package/src/manager/agent/lifecycle.ts +422 -102
- package/src/manager/index.ts +1 -2
- package/src/manager/plan/lifecycle.ts +16 -10
- package/src/manager/resident/consumption.ts +8 -6
- package/src/manager/resident/evidence-recall.ts +14 -14
- package/src/manager/resident/host.ts +2 -2
- package/src/manager/resident/learning-cycle.ts +5 -3
- package/src/manager/resident/learning-observation.ts +9 -4
- package/src/manager/resident/learning-store.ts +46 -16
- package/src/manager/resident/tool-evidence.ts +38 -31
- package/src/manager/session/turn-recorder.ts +1291 -0
- package/src/plugin/lifecycle.ts +20 -13
- package/src/plugin/shell-hook.ts +64 -25
- package/src/pricing/index.ts +5 -5
- package/src/pricing/rates.source.json +5 -5
- package/src/probe/context.ts +5 -3
- package/src/probe/registry.ts +1 -1
- package/src/prompt/coding-agent-doctrine.ts +1 -1
- package/src/prompt/contributions.ts +28 -6
- package/src/prompt/resident-learning.ts +2 -2
- package/src/provider/collect-chat-completion.ts +3 -3
- package/src/provider/conformance.ts +8 -5
- package/src/provider/errors.ts +2 -2
- package/src/provider/fallback.ts +8 -8
- package/src/provider/idle-timeout.ts +4 -4
- package/src/provider/instrumentation.ts +14 -7
- package/src/provider/mock.ts +1 -1
- package/src/provider/retry.ts +7 -7
- package/src/provider/stream-text.ts +1 -1
- package/src/provider/thinking-support.ts +2 -2
- package/src/provider/token-budget.ts +2 -2
- package/src/public-runtime.ts +213 -141
- package/src/public-tools.ts +14 -7
- package/src/public-types.ts +71 -59
- package/src/rag/embedding.ts +1 -1
- package/src/read-model/index.ts +2 -2
- package/src/read-model/registry.ts +11 -11
- package/src/read-model/session-status.ts +87 -0
- package/src/registry/command/kernel-commands.ts +10 -10
- package/src/registry/tool/dialect.ts +1 -1
- package/src/registry/tool/execute.ts +20 -7
- package/src/registry/tool/portable.ts +1 -1
- package/src/registry/tool/presentation.ts +1 -1
- package/src/registry/tool/schema.ts +1 -1
- package/src/registry/tool/screen.ts +3 -3
- package/src/runtime/bidi/index.ts +2 -2
- package/src/runtime/bidi/session.ts +45 -34
- package/src/runtime/jobs/awaited-jobs.ts +13 -13
- package/src/runtime/jobs/registry.ts +11 -11
- package/src/runtime/query/abandon-turn.ts +110 -0
- package/src/runtime/query/approval-policy.ts +13 -13
- package/src/runtime/query/callback-inference.ts +8 -5
- package/src/runtime/query/cancelled-before-start.ts +96 -79
- package/src/runtime/query/checkpoint.ts +519 -420
- package/src/runtime/query/compact-session.ts +92 -0
- package/src/runtime/query/context.ts +80 -136
- package/src/runtime/query/events.ts +160 -126
- package/src/runtime/query/executor/tool-call-admission.ts +6 -5
- package/src/runtime/query/executor.ts +206 -111
- package/src/runtime/query/file-evidence-seed.ts +2 -2
- package/src/runtime/query/finalize-turn.ts +209 -0
- package/src/runtime/query/fork/list.ts +20 -0
- package/src/runtime/query/fork/mutate.ts +82 -0
- package/src/runtime/query/fork/prepare.ts +92 -0
- package/src/runtime/query/guard.ts +22 -22
- package/src/runtime/query/guardrail-presets.ts +12 -12
- package/src/runtime/query/guardrails.ts +11 -11
- package/src/runtime/query/index.ts +1624 -1533
- package/src/runtime/query/iteration/index.ts +304 -253
- package/src/runtime/query/iteration/outstanding-work.ts +65 -65
- package/src/runtime/query/iteration/phases/advisory.ts +16 -16
- package/src/runtime/query/iteration/phases/checkpoint.ts +26 -10
- package/src/runtime/query/iteration/phases/compaction.ts +74 -72
- package/src/runtime/query/iteration/phases/context.ts +59 -60
- package/src/runtime/query/iteration/phases/plan.ts +9 -6
- package/src/runtime/query/iteration/phases/tool-review.ts +153 -28
- package/src/runtime/query/iteration/phases/working-memory.ts +57 -22
- package/src/runtime/query/iteration/step-context.ts +17 -0
- package/src/runtime/query/iteration/step-shaping.ts +21 -24
- package/src/runtime/query/iteration/stream-turn.ts +36 -32
- package/src/runtime/query/plugin-hooks.ts +1 -1
- package/src/runtime/query/prepare-turn.ts +932 -0
- package/src/runtime/query/project-instructions.ts +5 -4
- package/src/runtime/query/prompt-cache.ts +1 -1
- package/src/runtime/query/prompt.ts +5 -5
- package/src/runtime/query/question-park.ts +7 -7
- package/src/runtime/query/release-turn.ts +157 -0
- package/src/runtime/query/repeat-call.ts +7 -7
- package/src/runtime/query/result.ts +123 -131
- package/src/runtime/query/resume-pending.ts +101 -44
- package/src/runtime/query/resume-session.ts +153 -0
- package/src/runtime/query/review-policy.ts +147 -19
- package/src/runtime/query/sandbox-lifecycle.ts +5 -5
- package/src/runtime/query/session-storage.ts +302 -0
- package/src/runtime/query/steering.ts +17 -4
- package/src/runtime/query/token-budget.ts +59 -93
- package/src/runtime/query/tool-call-budget.ts +14 -14
- package/src/runtime/query/tool-executions.ts +77 -0
- package/src/runtime/query/tool-grants.ts +3 -3
- package/src/runtime/query/tool-output-budget.ts +4 -4
- package/src/runtime/query/tool-pause.ts +8 -6
- package/src/runtime/query/tooling.ts +22 -14
- package/src/runtime/query/turn-state.ts +153 -0
- package/src/sandbox/isolation.ts +2 -2
- package/src/sandbox/provider/local.ts +8 -8
- package/src/scheduler/completion-inbox.ts +36 -36
- package/src/scheduler/delegating.ts +27 -13
- package/src/scheduler/local.ts +49 -21
- package/src/session/events/index.ts +10 -14
- package/src/session/handoff/broadcast.ts +7 -7
- package/src/session/handoff/events.ts +1 -1
- package/src/session/handoff/index.ts +1 -1
- package/src/session/handoff/single.ts +21 -21
- package/src/session/handoff/version.ts +11 -7
- package/src/session/home.ts +66 -0
- package/src/session/index.ts +1 -0
- package/src/session/log-hash.ts +115 -0
- package/src/session/messages.ts +39 -0
- package/src/session/paths.ts +449 -0
- package/src/session/retention/archive.ts +13 -5
- package/src/session/status/derive.ts +21 -21
- package/src/session/workspace/git-worktree.ts +31 -2
- package/src/session/workspace/index.ts +5 -8
- package/src/session/workspace/shared-session.ts +354 -0
- package/src/session-query/index.ts +152 -0
- package/src/skills/registry.ts +1 -1
- package/src/store/activity/memory.ts +5 -5
- package/src/store/attachment/index.ts +5 -5
- package/src/store/budget/disk.ts +243 -0
- package/src/store/budget/index.ts +24 -0
- package/src/store/budget/ledger.ts +836 -0
- package/src/store/budget/memory.ts +39 -0
- package/src/store/checkpoint/contract.ts +225 -0
- package/src/store/checkpoint/disk.ts +209 -0
- package/src/store/checkpoint/index.ts +22 -0
- package/src/store/checkpoint/memory.ts +112 -0
- package/src/store/checkpoint/prune.ts +93 -0
- package/src/store/config/index.ts +1 -1
- package/src/store/evidence/disk.ts +185 -81
- package/src/store/evidence/index-page.ts +67 -140
- package/src/store/evidence/source-text.ts +23 -28
- package/src/store/evidence/types.ts +51 -41
- package/src/store/feedback/conformance.ts +37 -35
- package/src/store/feedback/disk.ts +61 -63
- package/src/store/feedback/index.ts +1 -1
- package/src/store/feedback/memory.ts +0 -0
- package/src/store/feedback/types.ts +14 -13
- package/src/store/index.ts +24 -28
- package/src/store/memory/digest.ts +35 -0
- package/src/store/memory/disk.ts +66 -20
- package/src/store/memory/index-file.ts +121 -0
- package/src/store/memory/index.ts +4 -2
- package/src/store/memory/links.ts +37 -0
- package/src/store/memory/markdown-format.ts +276 -0
- package/src/store/memory/markdown.ts +741 -0
- package/src/store/memory/memory.ts +39 -17
- package/src/store/memory/naming.ts +195 -0
- package/src/store/memory/origin.ts +35 -0
- package/src/store/session/disk.ts +27 -200
- package/src/store/session/index.ts +5 -9
- package/src/store/session/memory.ts +1 -78
- package/src/store/session-claim.ts +101 -0
- package/src/store/session-index/fts.ts +215 -0
- package/src/store/session-index/index.ts +253 -0
- package/src/store/session-index/rebuild.ts +869 -0
- package/src/store/session-index/refs.ts +164 -0
- package/src/store/session-index/scan.ts +273 -0
- package/src/store/session-index/sqlite.ts +772 -0
- package/src/store/session-log/chain.ts +314 -0
- package/src/store/session-log/conformance.ts +487 -0
- package/src/store/session-log/core.ts +809 -0
- package/src/store/session-log/disk.ts +217 -0
- package/src/store/session-log/fold.ts +368 -0
- package/src/store/session-log/heal.ts +44 -0
- package/src/store/session-log/held-leases.ts +103 -0
- package/src/store/session-log/index.ts +87 -0
- package/src/store/session-log/lease.ts +354 -0
- package/src/store/session-log/memory.ts +111 -0
- package/src/store/session-log/spill.ts +311 -0
- package/src/store/task/context.ts +33 -0
- package/src/store/task/disk.ts +122 -141
- package/src/store/task/memory.ts +14 -8
- package/src/store/topic/index.ts +2 -2
- package/src/store/topic/objective.ts +12 -3
- package/src/store/topic/state.ts +1 -1
- package/src/streaming/coalesce.ts +8 -7
- package/src/telemetry/attributes.ts +10 -9
- package/src/telemetry/metrics.ts +6 -6
- package/src/telemetry/runtime-accessors.ts +1 -1
- package/src/test-support/ids.ts +5 -6
- package/src/testing.ts +11 -16
- package/src/tools/advisory/index.ts +1 -1
- package/src/tools/builtins/bash.ts +43 -5
- package/src/tools/builtins/content-fingerprint.ts +2 -2
- package/src/tools/builtins/edit-apply.ts +1 -1
- package/src/tools/builtins/edit.ts +3 -0
- package/src/tools/builtins/glob.ts +3 -0
- package/src/tools/builtins/grep.ts +3 -0
- package/src/tools/builtins/job.ts +5 -5
- package/src/tools/builtins/ls.ts +3 -0
- package/src/tools/builtins/lsp.ts +5 -2
- package/src/tools/builtins/read-file.ts +3 -0
- package/src/tools/builtins/run-code.ts +11 -11
- package/src/tools/builtins/skill.ts +3 -3
- package/src/tools/builtins/wait-for-job-bounds.ts +6 -6
- package/src/tools/builtins/wait-for-job.ts +3 -3
- package/src/tools/builtins/web-guidance.ts +2 -2
- package/src/tools/builtins/web.ts +3 -3
- package/src/tools/builtins/write-file.ts +3 -0
- package/src/tools/coordinator/agent.ts +8 -8
- package/src/tools/coordinator/ask-user-question.ts +16 -14
- package/src/tools/coordinator/index.ts +64 -54
- package/src/tools/coordinator/outcome.ts +7 -7
- package/src/tools/coordinator/plan-dependencies.ts +1 -1
- package/src/tools/coordinator/wait-with-idle-bound.ts +6 -6
- package/src/tools/defineTool.ts +9 -1
- package/src/tools/env-scrub.ts +1 -1
- package/src/tools/goal/index.ts +16 -12
- package/src/tools/memory/fields.ts +26 -0
- package/src/tools/memory/read.ts +75 -8
- package/src/tools/memory/resolve.ts +37 -0
- package/src/tools/memory/save.ts +54 -18
- package/src/tools/memory/search.ts +9 -5
- package/src/tools/memory/update.ts +43 -7
- package/src/tools/paths.ts +87 -27
- package/src/tools/posix-path.ts +1 -1
- package/src/tools/resident-history.ts +1 -1
- package/src/tools/resident-tool-evidence.ts +1 -1
- package/src/tools/task/create.ts +11 -4
- package/src/tools/task/index.ts +20 -4
- package/src/tools/task/list.ts +16 -7
- package/src/tools/task/present.ts +102 -0
- package/src/tools/task/update.ts +9 -1
- package/src/turn/LimitChecker.ts +99 -0
- package/src/turn/command-gate.ts +294 -0
- package/src/turn/drain.ts +324 -0
- package/src/turn/evidence-query.ts +333 -0
- package/src/turn/evidence-recall.ts +860 -0
- package/src/turn/index.ts +38 -0
- package/src/turn/json-claim-verifier.ts +298 -0
- package/src/turn/memory-promoter.ts +160 -0
- package/src/turn/memory-recall.ts +285 -0
- package/src/turn/reporter.ts +469 -0
- package/src/types/activity/index.ts +2 -2
- package/src/types/advisory/config.ts +7 -7
- package/src/types/agent/base.ts +74 -44
- package/src/types/agent/core.ts +10 -10
- package/src/types/agent/delegate.ts +2 -2
- package/src/types/agent/factory.ts +8 -4
- package/src/types/agent/manager.ts +6 -6
- package/src/types/agent/pipeline.ts +5 -4
- package/src/types/agent/reactive.ts +11 -10
- package/src/types/agent/router.ts +1 -1
- package/src/types/agent/scheduler.ts +28 -11
- package/src/types/agent/supervisor.ts +13 -13
- package/src/types/agent/task.ts +53 -12
- package/src/types/agent/working-memory.ts +6 -4
- package/src/types/bidi/index.ts +31 -12
- package/src/types/bus/index.ts +32 -26
- package/src/types/code-navigation/index.ts +1 -1
- package/src/types/common/index.ts +12 -26
- package/src/types/connector/core.ts +2 -2
- package/src/types/connector/definition.ts +1 -1
- package/src/types/connector/mcp.ts +1 -1
- package/src/types/errors/catalog.ts +4 -4
- package/src/types/errors/index.ts +5 -5
- package/src/types/guardrail/index.ts +12 -10
- package/src/types/hitl/index.ts +81 -125
- package/src/types/hitl/policy.ts +8 -6
- package/src/types/ids/brand.ts +10 -2
- package/src/types/ids/index.ts +10 -4
- package/src/types/memory/index.ts +53 -0
- package/src/types/message/index.ts +4 -4
- package/src/types/plan/index.ts +5 -3
- package/src/types/plugin/index.ts +41 -24
- package/src/types/probe/event-kind.ts +3 -3
- package/src/types/probe/registry.ts +3 -2
- package/src/types/project/entity.ts +3 -3
- package/src/types/provider/config.ts +3 -3
- package/src/types/provider/error.ts +1 -1
- package/src/types/provider/errors.ts +3 -3
- package/src/types/provider/interface.ts +5 -5
- package/src/types/router/task-router.ts +1 -1
- package/src/types/sandbox/index.ts +12 -12
- package/src/types/session/answer-review.ts +85 -0
- package/src/types/session/audit.ts +167 -0
- package/src/types/session/cancel-cause.ts +60 -0
- package/src/types/session/checkpoint.ts +167 -0
- package/src/types/session/config.ts +212 -0
- package/src/types/session/derive-status.ts +61 -0
- package/src/types/session/durable.ts +150 -0
- package/src/types/session/entity.ts +1 -1
- package/src/types/session/events.ts +1195 -0
- package/src/types/session/fork.ts +52 -0
- package/src/types/session/ids.ts +1 -1
- package/src/types/session/index.ts +24 -4
- package/src/types/session/lineage.ts +15 -0
- package/src/types/session/log-cursor.ts +69 -0
- package/src/types/session/memory-promotion.ts +116 -0
- package/src/types/session/messages.ts +1 -1
- package/src/types/session/prepare-step.ts +299 -0
- package/src/types/session/records.ts +931 -0
- package/src/types/session/step.ts +214 -0
- package/src/types/session/stop-reason.ts +83 -0
- package/src/types/session/store.ts +5 -52
- package/src/types/session/tool-execution.ts +32 -0
- package/src/types/session/turn-state.ts +136 -0
- package/src/types/session/turn.ts +289 -0
- package/src/types/structured-output/index.ts +4 -4
- package/src/types/summary/deliverable.ts +4 -4
- package/src/types/task/index.ts +8 -4
- package/src/types/tool/index.ts +74 -27
- package/src/types/topic/entity.ts +6 -6
- package/src/types/topic/objective.ts +7 -5
- package/src/types/topic/state.ts +4 -4
- package/src/types/topic/store.ts +1 -1
- package/src/types/workspace/index.ts +8 -8
- package/src/types/workspace/ref.ts +3 -3
- package/src/types/workspace/shared-session.ts +65 -0
- package/src/utils/abort.ts +4 -4
- package/src/utils/atomic-write.ts +67 -4
- package/src/utils/cost.ts +11 -12
- package/src/utils/env.ts +1 -1
- package/src/utils/id.ts +25 -18
- package/src/utils/log/attributes.ts +2 -2
- package/src/utils/log/create-logger.ts +1 -1
- package/src/utils/log/redact.ts +1 -1
- package/src/utils/log/sinks.ts +2 -2
- package/src/utils/log/types.ts +1 -1
- package/src/utils/shell-compress.ts +2 -2
- package/src/utils/uuidv7.ts +107 -0
- package/src/vault/instrumentation.ts +21 -8
- package/dist/constants/emergency.d.ts +0 -4
- package/dist/constants/emergency.d.ts.map +0 -1
- package/dist/constants/emergency.js +0 -4
- package/dist/constants/emergency.js.map +0 -1
- package/dist/contracts/run-status.d.ts +0 -17
- package/dist/contracts/run-status.d.ts.map +0 -1
- package/dist/contracts/run-status.js +0 -41
- package/dist/contracts/run-status.js.map +0 -1
- package/dist/eval/from-run.d.ts +0 -30
- package/dist/eval/from-run.d.ts.map +0 -1
- package/dist/eval/from-run.js +0 -46
- package/dist/eval/from-run.js.map +0 -1
- package/dist/manager/run/emergency.d.ts +0 -19
- package/dist/manager/run/emergency.d.ts.map +0 -1
- package/dist/manager/run/emergency.js +0 -122
- package/dist/manager/run/emergency.js.map +0 -1
- package/dist/manager/run/persistence.d.ts +0 -312
- package/dist/manager/run/persistence.d.ts.map +0 -1
- package/dist/manager/run/persistence.js +0 -656
- package/dist/manager/run/persistence.js.map +0 -1
- package/dist/read-model/run-status.d.ts +0 -43
- package/dist/read-model/run-status.d.ts.map +0 -1
- package/dist/read-model/run-status.js +0 -89
- package/dist/read-model/run-status.js.map +0 -1
- package/dist/run/LimitChecker.d.ts +0 -30
- package/dist/run/LimitChecker.d.ts.map +0 -1
- package/dist/run/LimitChecker.js +0 -57
- package/dist/run/LimitChecker.js.map +0 -1
- package/dist/run/command-gate.d.ts +0 -107
- package/dist/run/command-gate.d.ts.map +0 -1
- package/dist/run/command-gate.js +0 -221
- package/dist/run/command-gate.js.map +0 -1
- package/dist/run/drain.d.ts +0 -204
- package/dist/run/drain.d.ts.map +0 -1
- package/dist/run/drain.js +0 -238
- package/dist/run/drain.js.map +0 -1
- package/dist/run/evidence-query.d.ts +0 -41
- package/dist/run/evidence-query.d.ts.map +0 -1
- package/dist/run/evidence-query.js +0 -270
- package/dist/run/evidence-query.js.map +0 -1
- package/dist/run/evidence-recall.d.ts +0 -99
- package/dist/run/evidence-recall.d.ts.map +0 -1
- package/dist/run/evidence-recall.js +0 -633
- package/dist/run/evidence-recall.js.map +0 -1
- package/dist/run/index.d.ts +0 -19
- package/dist/run/index.d.ts.map +0 -1
- package/dist/run/index.js +0 -11
- package/dist/run/index.js.map +0 -1
- package/dist/run/json-claim-verifier.d.ts +0 -83
- package/dist/run/json-claim-verifier.d.ts.map +0 -1
- package/dist/run/json-claim-verifier.js +0 -200
- package/dist/run/json-claim-verifier.js.map +0 -1
- package/dist/run/memory-promoter.d.ts +0 -38
- package/dist/run/memory-promoter.d.ts.map +0 -1
- package/dist/run/memory-promoter.js +0 -109
- package/dist/run/memory-promoter.js.map +0 -1
- package/dist/run/memory-recall.d.ts +0 -25
- package/dist/run/memory-recall.d.ts.map +0 -1
- package/dist/run/memory-recall.js +0 -228
- package/dist/run/memory-recall.js.map +0 -1
- package/dist/run/preparation-context-error.d.ts.map +0 -1
- package/dist/run/preparation-context-error.js.map +0 -1
- package/dist/run/reporter.d.ts +0 -8
- package/dist/run/reporter.d.ts.map +0 -1
- package/dist/run/reporter.js +0 -420
- package/dist/run/reporter.js.map +0 -1
- package/dist/run/token-budget.d.ts +0 -116
- package/dist/run/token-budget.d.ts.map +0 -1
- package/dist/run/token-budget.js +0 -626
- package/dist/run/token-budget.js.map +0 -1
- package/dist/run/workspace-fingerprint.d.ts.map +0 -1
- package/dist/run/workspace-fingerprint.js.map +0 -1
- package/dist/run-query/index.d.ts +0 -90
- package/dist/run-query/index.d.ts.map +0 -1
- package/dist/run-query/index.js +0 -127
- package/dist/run-query/index.js.map +0 -1
- package/dist/runtime/query/finalize-run.d.ts +0 -55
- package/dist/runtime/query/finalize-run.d.ts.map +0 -1
- package/dist/runtime/query/finalize-run.js +0 -113
- package/dist/runtime/query/finalize-run.js.map +0 -1
- package/dist/runtime/query/prepare-run.d.ts +0 -94
- package/dist/runtime/query/prepare-run.d.ts.map +0 -1
- package/dist/runtime/query/prepare-run.js +0 -589
- package/dist/runtime/query/prepare-run.js.map +0 -1
- package/dist/runtime/query/release-run.d.ts +0 -56
- package/dist/runtime/query/release-run.d.ts.map +0 -1
- package/dist/runtime/query/release-run.js +0 -101
- package/dist/runtime/query/release-run.js.map +0 -1
- package/dist/runtime/query/replay/list.d.ts +0 -40
- package/dist/runtime/query/replay/list.d.ts.map +0 -1
- package/dist/runtime/query/replay/list.js +0 -38
- package/dist/runtime/query/replay/list.js.map +0 -1
- package/dist/runtime/query/replay/mutate.d.ts +0 -17
- package/dist/runtime/query/replay/mutate.d.ts.map +0 -1
- package/dist/runtime/query/replay/mutate.js +0 -69
- package/dist/runtime/query/replay/mutate.js.map +0 -1
- package/dist/runtime/query/replay/prepare.d.ts +0 -66
- package/dist/runtime/query/replay/prepare.d.ts.map +0 -1
- package/dist/runtime/query/replay/prepare.js +0 -81
- package/dist/runtime/query/replay/prepare.js.map +0 -1
- package/dist/runtime/query/resume-run.d.ts +0 -103
- package/dist/runtime/query/resume-run.d.ts.map +0 -1
- package/dist/runtime/query/resume-run.js +0 -105
- package/dist/runtime/query/resume-run.js.map +0 -1
- package/dist/runtime/query/run-state.d.ts +0 -57
- package/dist/runtime/query/run-state.d.ts.map +0 -1
- package/dist/runtime/query/run-state.js +0 -96
- package/dist/runtime/query/run-state.js.map +0 -1
- package/dist/session/workspace/path-builder.d.ts +0 -50
- package/dist/session/workspace/path-builder.d.ts.map +0 -1
- package/dist/session/workspace/path-builder.js +0 -51
- package/dist/session/workspace/path-builder.js.map +0 -1
- package/dist/session/workspace/shared-run.d.ts +0 -112
- package/dist/session/workspace/shared-run.d.ts.map +0 -1
- package/dist/session/workspace/shared-run.js +0 -290
- package/dist/session/workspace/shared-run.js.map +0 -1
- package/dist/store/evidence/compaction-archive.d.ts +0 -109
- package/dist/store/evidence/compaction-archive.d.ts.map +0 -1
- package/dist/store/evidence/compaction-archive.js +0 -125
- package/dist/store/evidence/compaction-archive.js.map +0 -1
- package/dist/store/evidence/linked.d.ts +0 -9
- package/dist/store/evidence/linked.d.ts.map +0 -1
- package/dist/store/evidence/linked.js +0 -314
- package/dist/store/evidence/linked.js.map +0 -1
- package/dist/store/evidence/record-chain.d.ts +0 -42
- package/dist/store/evidence/record-chain.d.ts.map +0 -1
- package/dist/store/evidence/record-chain.js +0 -111
- package/dist/store/evidence/record-chain.js.map +0 -1
- package/dist/store/run/checkpoint-disk.d.ts +0 -98
- package/dist/store/run/checkpoint-disk.d.ts.map +0 -1
- package/dist/store/run/checkpoint-disk.js +0 -190
- package/dist/store/run/checkpoint-disk.js.map +0 -1
- package/dist/store/run/checkpoint-memory.d.ts +0 -51
- package/dist/store/run/checkpoint-memory.d.ts.map +0 -1
- package/dist/store/run/checkpoint-memory.js +0 -178
- package/dist/store/run/checkpoint-memory.js.map +0 -1
- package/dist/store/run/claim-disk.d.ts +0 -130
- package/dist/store/run/claim-disk.d.ts.map +0 -1
- package/dist/store/run/claim-disk.js +0 -570
- package/dist/store/run/claim-disk.js.map +0 -1
- package/dist/store/run/conformance.d.ts +0 -159
- package/dist/store/run/conformance.d.ts.map +0 -1
- package/dist/store/run/conformance.js +0 -466
- package/dist/store/run/conformance.js.map +0 -1
- package/dist/store/run/disk.d.ts +0 -189
- package/dist/store/run/disk.d.ts.map +0 -1
- package/dist/store/run/disk.js +0 -804
- package/dist/store/run/disk.js.map +0 -1
- package/dist/store/run/listing.d.ts +0 -118
- package/dist/store/run/listing.d.ts.map +0 -1
- package/dist/store/run/listing.js +0 -333
- package/dist/store/run/listing.js.map +0 -1
- package/dist/store/run/memory.d.ts +0 -55
- package/dist/store/run/memory.d.ts.map +0 -1
- package/dist/store/run/memory.js +0 -176
- package/dist/store/run/memory.js.map +0 -1
- package/dist/store/run/token-budget-disk.d.ts +0 -37
- package/dist/store/run/token-budget-disk.d.ts.map +0 -1
- package/dist/store/run/token-budget-disk.js +0 -211
- package/dist/store/run/token-budget-disk.js.map +0 -1
- package/dist/store/run/tool-executions.d.ts +0 -13
- package/dist/store/run/tool-executions.d.ts.map +0 -1
- package/dist/store/run/tool-executions.js +0 -99
- package/dist/store/run/tool-executions.js.map +0 -1
- package/dist/store/session/sqlite.d.ts +0 -57
- package/dist/store/session/sqlite.d.ts.map +0 -1
- package/dist/store/session/sqlite.js +0 -430
- package/dist/store/session/sqlite.js.map +0 -1
- package/dist/types/run/answer-review.d.ts +0 -79
- package/dist/types/run/answer-review.d.ts.map +0 -1
- package/dist/types/run/answer-review.js.map +0 -1
- package/dist/types/run/audit.d.ts +0 -150
- package/dist/types/run/audit.d.ts.map +0 -1
- package/dist/types/run/audit.js +0 -39
- package/dist/types/run/audit.js.map +0 -1
- package/dist/types/run/cancel-cause.d.ts +0 -49
- package/dist/types/run/cancel-cause.d.ts.map +0 -1
- package/dist/types/run/cancel-cause.js +0 -39
- package/dist/types/run/cancel-cause.js.map +0 -1
- package/dist/types/run/checkpoint-store.d.ts +0 -511
- package/dist/types/run/checkpoint-store.d.ts.map +0 -1
- package/dist/types/run/checkpoint-store.js +0 -12
- package/dist/types/run/checkpoint-store.js.map +0 -1
- package/dist/types/run/config.d.ts +0 -207
- package/dist/types/run/config.d.ts.map +0 -1
- package/dist/types/run/config.js.map +0 -1
- package/dist/types/run/derive-status.d.ts +0 -29
- package/dist/types/run/derive-status.d.ts.map +0 -1
- package/dist/types/run/derive-status.js +0 -49
- package/dist/types/run/derive-status.js.map +0 -1
- package/dist/types/run/emergency.d.ts +0 -32
- package/dist/types/run/emergency.d.ts.map +0 -1
- package/dist/types/run/emergency.js +0 -6
- package/dist/types/run/emergency.js.map +0 -1
- package/dist/types/run/entity.d.ts +0 -151
- package/dist/types/run/entity.d.ts.map +0 -1
- package/dist/types/run/entity.js +0 -2
- package/dist/types/run/entity.js.map +0 -1
- package/dist/types/run/event-cursor.d.ts +0 -90
- package/dist/types/run/event-cursor.d.ts.map +0 -1
- package/dist/types/run/event-cursor.js +0 -47
- package/dist/types/run/event-cursor.js.map +0 -1
- package/dist/types/run/events.d.ts +0 -1064
- package/dist/types/run/events.d.ts.map +0 -1
- package/dist/types/run/events.js +0 -31
- package/dist/types/run/events.js.map +0 -1
- package/dist/types/run/index.d.ts +0 -24
- package/dist/types/run/index.d.ts.map +0 -1
- package/dist/types/run/index.js +0 -23
- package/dist/types/run/index.js.map +0 -1
- package/dist/types/run/lineage.d.ts +0 -15
- package/dist/types/run/lineage.d.ts.map +0 -1
- package/dist/types/run/lineage.js.map +0 -1
- package/dist/types/run/memory-promotion.d.ts +0 -90
- package/dist/types/run/memory-promotion.d.ts.map +0 -1
- package/dist/types/run/memory-promotion.js +0 -38
- package/dist/types/run/memory-promotion.js.map +0 -1
- package/dist/types/run/metadata.d.ts +0 -47
- package/dist/types/run/metadata.d.ts.map +0 -1
- package/dist/types/run/metadata.js +0 -2
- package/dist/types/run/metadata.js.map +0 -1
- package/dist/types/run/prepare-step.d.ts +0 -271
- package/dist/types/run/prepare-step.d.ts.map +0 -1
- package/dist/types/run/prepare-step.js.map +0 -1
- package/dist/types/run/replay.d.ts +0 -53
- package/dist/types/run/replay.d.ts.map +0 -1
- package/dist/types/run/replay.js +0 -15
- package/dist/types/run/replay.js.map +0 -1
- package/dist/types/run/schema-version.d.ts +0 -19
- package/dist/types/run/schema-version.d.ts.map +0 -1
- package/dist/types/run/schema-version.js +0 -18
- package/dist/types/run/schema-version.js.map +0 -1
- package/dist/types/run/state.d.ts +0 -109
- package/dist/types/run/state.d.ts.map +0 -1
- package/dist/types/run/state.js +0 -109
- package/dist/types/run/state.js.map +0 -1
- package/dist/types/run/status.d.ts +0 -26
- package/dist/types/run/status.d.ts.map +0 -1
- package/dist/types/run/status.js +0 -2
- package/dist/types/run/status.js.map +0 -1
- package/dist/types/run/step.d.ts +0 -198
- package/dist/types/run/step.d.ts.map +0 -1
- package/dist/types/run/step.js +0 -26
- package/dist/types/run/step.js.map +0 -1
- package/dist/types/run/stop-reason.d.ts +0 -67
- package/dist/types/run/stop-reason.d.ts.map +0 -1
- package/dist/types/run/stop-reason.js.map +0 -1
- package/dist/types/run/store.d.ts +0 -300
- package/dist/types/run/store.d.ts.map +0 -1
- package/dist/types/run/store.js +0 -2
- package/dist/types/run/store.js.map +0 -1
- package/dist/types/run/subsession-events.d.ts +0 -64
- package/dist/types/run/subsession-events.d.ts.map +0 -1
- package/dist/types/run/subsession-events.js +0 -2
- package/dist/types/run/subsession-events.js.map +0 -1
- package/dist/types/run/token-budget-store.d.ts +0 -29
- package/dist/types/run/token-budget-store.d.ts.map +0 -1
- package/dist/types/run/token-budget-store.js +0 -25
- package/dist/types/run/token-budget-store.js.map +0 -1
- package/dist/types/workspace/shared-run.d.ts +0 -61
- package/dist/types/workspace/shared-run.d.ts.map +0 -1
- package/dist/types/workspace/shared-run.js +0 -2
- package/dist/types/workspace/shared-run.js.map +0 -1
- package/src/constants/emergency.ts +0 -3
- package/src/contracts/run-status.ts +0 -43
- package/src/eval/from-run.ts +0 -48
- package/src/manager/run/emergency.ts +0 -148
- package/src/manager/run/persistence.ts +0 -746
- package/src/read-model/run-status.ts +0 -127
- package/src/run/LimitChecker.ts +0 -99
- package/src/run/command-gate.ts +0 -294
- package/src/run/drain.ts +0 -403
- package/src/run/evidence-query.ts +0 -333
- package/src/run/evidence-recall.ts +0 -854
- package/src/run/index.ts +0 -42
- package/src/run/json-claim-verifier.ts +0 -298
- package/src/run/memory-promoter.ts +0 -147
- package/src/run/memory-recall.ts +0 -254
- package/src/run/reporter.ts +0 -469
- package/src/run/token-budget.ts +0 -733
- package/src/run-query/index.ts +0 -177
- package/src/runtime/query/finalize-run.ts +0 -192
- package/src/runtime/query/prepare-run.ts +0 -718
- package/src/runtime/query/release-run.ts +0 -168
- package/src/runtime/query/replay/list.ts +0 -66
- package/src/runtime/query/replay/mutate.ts +0 -82
- package/src/runtime/query/replay/prepare.ts +0 -147
- package/src/runtime/query/resume-run.ts +0 -202
- package/src/runtime/query/run-state.ts +0 -138
- package/src/session/workspace/path-builder.ts +0 -72
- package/src/session/workspace/shared-run.ts +0 -354
- package/src/store/evidence/compaction-archive.ts +0 -139
- package/src/store/evidence/linked.ts +0 -365
- package/src/store/evidence/record-chain.ts +0 -108
- package/src/store/run/checkpoint-disk.ts +0 -264
- package/src/store/run/checkpoint-memory.ts +0 -216
- package/src/store/run/claim-disk.ts +0 -638
- package/src/store/run/conformance.ts +0 -728
- package/src/store/run/disk.ts +0 -911
- package/src/store/run/listing.ts +0 -422
- package/src/store/run/memory.ts +0 -204
- package/src/store/run/token-budget-disk.ts +0 -250
- package/src/store/run/tool-executions.ts +0 -112
- package/src/store/session/sqlite.ts +0 -584
- package/src/types/run/answer-review.ts +0 -84
- package/src/types/run/audit.ts +0 -164
- package/src/types/run/cancel-cause.ts +0 -60
- package/src/types/run/checkpoint-store.ts +0 -545
- package/src/types/run/config.ts +0 -221
- package/src/types/run/derive-status.ts +0 -62
- package/src/types/run/emergency.ts +0 -28
- package/src/types/run/entity.ts +0 -161
- package/src/types/run/event-cursor.ts +0 -118
- package/src/types/run/events.ts +0 -1146
- package/src/types/run/index.ts +0 -32
- package/src/types/run/lineage.ts +0 -15
- package/src/types/run/memory-promotion.ts +0 -112
- package/src/types/run/metadata.ts +0 -51
- package/src/types/run/prepare-step.ts +0 -292
- package/src/types/run/replay.ts +0 -61
- package/src/types/run/schema-version.ts +0 -19
- package/src/types/run/state.ts +0 -206
- package/src/types/run/status.ts +0 -33
- package/src/types/run/step.ts +0 -217
- package/src/types/run/stop-reason.ts +0 -83
- package/src/types/run/store.ts +0 -325
- package/src/types/run/subsession-events.ts +0 -71
- package/src/types/run/token-budget-store.ts +0 -54
- package/src/types/workspace/shared-run.ts +0 -65
- /package/dist/{run → turn}/preparation-context-error.d.ts +0 -0
- /package/dist/{run → turn}/preparation-context-error.js +0 -0
- /package/dist/{run → turn}/workspace-fingerprint.d.ts +0 -0
- /package/dist/{run → turn}/workspace-fingerprint.js +0 -0
- /package/dist/types/{run → session}/answer-review.js +0 -0
- /package/dist/types/{run → session}/config.js +0 -0
- /package/dist/types/{run → session}/lineage.js +0 -0
- /package/dist/types/{run → session}/prepare-step.js +0 -0
- /package/dist/types/{run → session}/stop-reason.js +0 -0
- /package/src/{run → turn}/preparation-context-error.ts +0 -0
- /package/src/{run → turn}/workspace-fingerprint.ts +0 -0
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { WorkingStateSnapshot } from '../../compaction/wire.js'
|
|
2
|
-
import type
|
|
2
|
+
import { type TurnRecorder, readFoldedHistory } from '../../manager/session/turn-recorder.js'
|
|
3
|
+
import type { CheckpointScope, SessionCheckpointStore } from '../../store/checkpoint/index.js'
|
|
4
|
+
import type { SessionLog } from '../../store/session-log/index.js'
|
|
3
5
|
import type { SerializedSpanContext } from '../../telemetry/attributes.js'
|
|
4
6
|
import { NamzuError } from '../../types/errors/index.js'
|
|
5
7
|
import type {
|
|
@@ -7,25 +9,20 @@ import type {
|
|
|
7
9
|
CheckpointSummary,
|
|
8
10
|
HITLDecisionRequest,
|
|
9
11
|
HITLResumeDecision,
|
|
10
|
-
IterationCheckpoint,
|
|
11
12
|
PendingDecision,
|
|
12
13
|
} from '../../types/hitl/index.js'
|
|
13
|
-
import type {
|
|
14
|
-
import type {
|
|
15
|
-
CheckpointRunScope,
|
|
16
|
-
CheckpointStore,
|
|
17
|
-
FencingToken,
|
|
18
|
-
} from '../../types/run/checkpoint-store.js'
|
|
19
|
-
import type { EmergencySaveData } from '../../types/run/emergency.js'
|
|
20
|
-
import type { CheckpointListEntry } from '../../types/run/replay.js'
|
|
21
|
-
import { ZERO_COST } from '../../utils/cost.js'
|
|
22
|
-
import { buildToolResultHashes } from '../../utils/hash.js'
|
|
14
|
+
import type { MessageId, TurnId } from '../../types/ids/index.js'
|
|
23
15
|
import {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
} from '../../
|
|
16
|
+
type AssistantMessage,
|
|
17
|
+
type Message,
|
|
18
|
+
type UserMessage,
|
|
19
|
+
createRuntimeContextMessage,
|
|
20
|
+
} from '../../types/message/index.js'
|
|
21
|
+
import { CHECKPOINT_DOCUMENT_VERSION, type Checkpoint } from '../../types/session/checkpoint.js'
|
|
22
|
+
import type { CheckpointListEntry } from '../../types/session/fork.js'
|
|
23
|
+
import type { SessionRecord } from '../../types/session/records.js'
|
|
24
|
+
import { asGoalId, generateCheckpointId } from '../../utils/id.js'
|
|
25
|
+
import { formatSteeringNote, readSteeringNote } from './steering.js'
|
|
29
26
|
|
|
30
27
|
/** Keep intent text/provenance without copying attachment payloads into a second slot. */
|
|
31
28
|
function snapshotUserIntent(value: unknown): UserMessage {
|
|
@@ -68,108 +65,145 @@ function snapshotUserIntent(value: unknown): UserMessage {
|
|
|
68
65
|
return result
|
|
69
66
|
}
|
|
70
67
|
|
|
68
|
+
/** A checkpoint the turn just wrote: its id and the document. */
|
|
69
|
+
export interface CreatedCheckpoint {
|
|
70
|
+
readonly id: CheckpointId
|
|
71
|
+
readonly document: Checkpoint
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** What a checkpoint document records about the turn at the instant it describes. */
|
|
75
|
+
type CheckpointState = Pick<
|
|
76
|
+
Checkpoint,
|
|
77
|
+
| 'throughSeq'
|
|
78
|
+
| 'throughSha256'
|
|
79
|
+
| 'tokenUsage'
|
|
80
|
+
| 'costInfo'
|
|
81
|
+
| 'guards'
|
|
82
|
+
| 'review'
|
|
83
|
+
| 'latestUserMessageId'
|
|
84
|
+
| 'workingState'
|
|
85
|
+
>
|
|
86
|
+
|
|
71
87
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
88
|
+
* A checkpoint read back for a resume: the document, the context it
|
|
89
|
+
* restores (the fold of the session log through `throughSeq`), and the
|
|
90
|
+
* decision it is parked on, if any.
|
|
75
91
|
*/
|
|
76
|
-
export
|
|
92
|
+
export interface RestoredCheckpoint {
|
|
93
|
+
readonly id: CheckpointId
|
|
94
|
+
readonly document: Checkpoint
|
|
95
|
+
readonly messages: Message[]
|
|
96
|
+
/** Ids of the restored messages that have records, by message. */
|
|
97
|
+
readonly messageIds: ReadonlyMap<Message, MessageId>
|
|
98
|
+
readonly pending?: PendingDecision
|
|
99
|
+
readonly latestUserMessage?: UserMessage
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** A decision one of a turn's checkpoints was parked on, as the log records it. */
|
|
103
|
+
export interface RecordedPark {
|
|
104
|
+
readonly decisionId: string
|
|
105
|
+
readonly turnId: TurnId
|
|
106
|
+
readonly checkpointId: CheckpointId
|
|
107
|
+
readonly pending: PendingDecision
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/** Projection from a checkpoint document to the public listing entry. */
|
|
111
|
+
export function toCheckpointListEntry(cp: Checkpoint): CheckpointListEntry {
|
|
77
112
|
return {
|
|
78
|
-
id: cp.
|
|
79
|
-
|
|
113
|
+
id: cp.checkpointId,
|
|
114
|
+
sessionId: cp.sessionId,
|
|
115
|
+
turnId: cp.turnId,
|
|
80
116
|
iteration: cp.iteration,
|
|
81
|
-
createdAt: cp.createdAt,
|
|
82
|
-
|
|
117
|
+
createdAt: Date.parse(cp.createdAt),
|
|
118
|
+
throughSeq: cp.throughSeq,
|
|
83
119
|
}
|
|
84
120
|
}
|
|
85
121
|
|
|
86
122
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
* the same restore path as any other checkpoint.
|
|
90
|
-
*
|
|
91
|
-
* The projection is lossy: `costInfo`, `guardState.elapsedMs` and
|
|
92
|
-
* `toolResultHashes` are not captured at emergency-save time. The synthetic
|
|
93
|
-
* checkpoint id is derived deterministically from the emergency save id so
|
|
94
|
-
* re-projecting the same dump yields the same {@link CheckpointId}.
|
|
95
|
-
*
|
|
96
|
-
* ## The cost projection says "unknown", not "zero"
|
|
97
|
-
*
|
|
98
|
-
* `costInfo` used to default to `{ ...ZERO_COST }` beside a `tokenUsage` the
|
|
99
|
-
* dump preserves faithfully — a run that had spent real money coming back as
|
|
100
|
-
* one that had spent nothing. That is the same lie the price catalogue was
|
|
101
|
-
* added to end, arriving through the restore path instead of the accumulation
|
|
102
|
-
* one, and it took `runConfig.costLimitUsd` back to being enforced against a
|
|
103
|
-
* zero with it.
|
|
104
|
-
*
|
|
105
|
-
* It also broke the accumulator downstream. `accumulateCost` decides whether
|
|
106
|
-
* one rate card describes the whole total by asking whether the total is
|
|
107
|
-
* FRESH — zero cost, zero unpriced tokens, no rates — and `ZERO_COST` is
|
|
108
|
-
* exactly that shape. So the first turn after such a resume adopted its own
|
|
109
|
-
* rate card as covering the pre-crash spend too, and reported a number that
|
|
110
|
-
* was confidently wrong while looking like a measured one.
|
|
111
|
-
*
|
|
112
|
-
* Saying instead that the pre-crash tokens are UNPRICED is the true statement,
|
|
113
|
-
* in the vocabulary {@link CostInfo} already has: nobody knows what they cost,
|
|
114
|
-
* because nothing recorded it. It needs no marker of its own to stay correct,
|
|
115
|
-
* and it is not fresh-shaped, so the accumulator does the right thing without
|
|
116
|
-
* being told about this path at all.
|
|
117
|
-
*
|
|
118
|
-
* See ses_005-deterministic-replay design §2 + §5.2.
|
|
123
|
+
* Every park a session log records, newest last: `decision_requested`, and
|
|
124
|
+
* whether a `decision_resolved` or `decision_expired` has answered it.
|
|
119
125
|
*/
|
|
120
|
-
export function
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
126
|
+
export async function readParks(
|
|
127
|
+
log: SessionLog,
|
|
128
|
+
options: { readonly turnId?: TurnId } = {},
|
|
129
|
+
): Promise<RecordedPark[]> {
|
|
130
|
+
const parks = new Map<
|
|
131
|
+
string,
|
|
132
|
+
{
|
|
133
|
+
decisionId: string
|
|
134
|
+
turnId: TurnId
|
|
135
|
+
checkpointId: CheckpointId
|
|
136
|
+
request: HITLDecisionRequest
|
|
137
|
+
parkedAt: number
|
|
138
|
+
deadlineAt?: number
|
|
139
|
+
resolvedAt?: number
|
|
140
|
+
decision?: HITLResumeDecision
|
|
141
|
+
}
|
|
142
|
+
>()
|
|
143
|
+
for await (const { record } of log.read({ mode: 'tolerant' })) {
|
|
144
|
+
const r = record as SessionRecord
|
|
145
|
+
if (r.type === 'decision_requested') {
|
|
146
|
+
if (options.turnId !== undefined && r.turnId !== options.turnId) continue
|
|
147
|
+
parks.set(r.decisionId, {
|
|
148
|
+
decisionId: r.decisionId,
|
|
149
|
+
turnId: r.turnId as TurnId,
|
|
150
|
+
checkpointId: r.checkpointId,
|
|
151
|
+
request: r.request as unknown as HITLDecisionRequest,
|
|
152
|
+
parkedAt: Date.parse(r.ts),
|
|
153
|
+
...(r.deadlineAt !== undefined ? { deadlineAt: Date.parse(r.deadlineAt) } : {}),
|
|
154
|
+
})
|
|
155
|
+
} else if (r.type === 'decision_resolved') {
|
|
156
|
+
const park = parks.get(r.decisionId)
|
|
157
|
+
if (park) {
|
|
158
|
+
park.resolvedAt = Date.parse(r.ts)
|
|
159
|
+
park.decision = r.decision
|
|
160
|
+
}
|
|
161
|
+
} else if (r.type === 'decision_expired') {
|
|
162
|
+
const park = parks.get(r.decisionId)
|
|
163
|
+
if (park) {
|
|
164
|
+
park.resolvedAt = Date.parse(r.ts)
|
|
165
|
+
// The park ended by running out of time, not by a decision. An
|
|
166
|
+
// `abort` here would read as somebody having refused it.
|
|
167
|
+
park.decision = {
|
|
168
|
+
action: 'pause',
|
|
169
|
+
reason: 'The approval request expired without an answer.',
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
144
173
|
}
|
|
174
|
+
return [...parks.values()].map((park) => ({
|
|
175
|
+
decisionId: park.decisionId,
|
|
176
|
+
turnId: park.turnId,
|
|
177
|
+
checkpointId: park.checkpointId,
|
|
178
|
+
pending: {
|
|
179
|
+
request: park.request,
|
|
180
|
+
parkedAt: park.parkedAt,
|
|
181
|
+
...(park.deadlineAt !== undefined ? { deadlineAt: park.deadlineAt } : {}),
|
|
182
|
+
...(park.resolvedAt !== undefined ? { resolvedAt: park.resolvedAt } : {}),
|
|
183
|
+
...(park.decision !== undefined ? { decision: park.decision } : {}),
|
|
184
|
+
},
|
|
185
|
+
}))
|
|
145
186
|
}
|
|
146
187
|
|
|
147
188
|
/**
|
|
148
|
-
* The newest
|
|
149
|
-
* or `null` when
|
|
189
|
+
* The newest park of a session (or of one of its turns) that is still
|
|
190
|
+
* awaiting a human decision, or `null` when nothing is parked.
|
|
150
191
|
*
|
|
151
|
-
* Standalone
|
|
152
|
-
*
|
|
153
|
-
*
|
|
192
|
+
* Standalone so a host can ask the question without constructing a turn: an
|
|
193
|
+
* approval-queue worker in a different process has the session log and
|
|
194
|
+
* nothing else. An expired park is not outstanding.
|
|
154
195
|
*/
|
|
155
196
|
export async function findPendingCheckpoint(
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
if (!cp.pending || cp.pending.resolvedAt !== undefined) continue
|
|
167
|
-
// An expired park is not outstanding. Serving it re-presents an
|
|
168
|
-
// approval whose window has closed, and every queue reader would
|
|
169
|
-
// keep re-presenting it forever — a redeployed worker leaves a park
|
|
170
|
-
// nobody will ever answer and nothing in-process can time out.
|
|
171
|
-
if (isExpiredPark(cp.pending, now)) continue
|
|
172
|
-
return cp
|
|
197
|
+
log: SessionLog,
|
|
198
|
+
options: { readonly turnId?: TurnId; readonly now?: number } = {},
|
|
199
|
+
): Promise<RecordedPark | null> {
|
|
200
|
+
const parks = await readParks(log, options.turnId ? { turnId: options.turnId } : {})
|
|
201
|
+
const now = options.now ?? Date.now()
|
|
202
|
+
for (let i = parks.length - 1; i >= 0; i--) {
|
|
203
|
+
const park = parks[i] as RecordedPark
|
|
204
|
+
if (park.pending.resolvedAt !== undefined) continue
|
|
205
|
+
if (isExpiredPark(park.pending, now)) continue
|
|
206
|
+
return park
|
|
173
207
|
}
|
|
174
208
|
return null
|
|
175
209
|
}
|
|
@@ -180,108 +214,74 @@ export function isExpiredPark(pending: PendingDecision, now = Date.now()): boole
|
|
|
180
214
|
}
|
|
181
215
|
|
|
182
216
|
/**
|
|
183
|
-
* Every outstanding park
|
|
184
|
-
* sweep them.
|
|
185
|
-
*
|
|
186
|
-
* The out-of-process timer stays a host concern — consistent with the same
|
|
187
|
-
* decision made for retention — but a host cannot sweep what it cannot
|
|
188
|
-
* enumerate, and this is the read that makes a sweep a few lines rather
|
|
189
|
-
* than a re-implementation of the store contract.
|
|
217
|
+
* Every outstanding park of a session whose deadline has passed, so a host
|
|
218
|
+
* can sweep them (`CheckpointManager.expire`, or `decision_expired` appended
|
|
219
|
+
* under the session lease).
|
|
190
220
|
*/
|
|
191
221
|
export async function listExpiredParks(
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
(cp) => cp.pending && cp.pending.resolvedAt === undefined && isExpiredPark(cp.pending, now),
|
|
222
|
+
log: SessionLog,
|
|
223
|
+
options: { readonly turnId?: TurnId; readonly now?: number } = {},
|
|
224
|
+
): Promise<RecordedPark[]> {
|
|
225
|
+
const parks = await readParks(log, options.turnId ? { turnId: options.turnId } : {})
|
|
226
|
+
const now = options.now ?? Date.now()
|
|
227
|
+
return parks.filter(
|
|
228
|
+
(park) => park.pending.resolvedAt === undefined && isExpiredPark(park.pending, now),
|
|
200
229
|
)
|
|
201
230
|
}
|
|
202
231
|
|
|
232
|
+
/**
|
|
233
|
+
* What a {@link CheckpointManager} needs of the turn it serves: the log it
|
|
234
|
+
* reads and appends to (in order with the turn's other records), and the
|
|
235
|
+
* tenant decisions are attributed under. A {@link TurnRecorder} is one.
|
|
236
|
+
*/
|
|
237
|
+
export type CheckpointRecords = Pick<TurnRecorder, 'log' | 'appendRecord' | 'flush' | 'tenantId'>
|
|
238
|
+
|
|
239
|
+
/** Who answered a decision the turn itself carried out. */
|
|
240
|
+
function resolver(recorder: CheckpointRecords) {
|
|
241
|
+
return {
|
|
242
|
+
kind: 'system' as const,
|
|
243
|
+
role: 'sys_approval_policy' as const,
|
|
244
|
+
tenantId: recorder.tenantId,
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* A turn's checkpoints: documents in the session's checkpoint store,
|
|
250
|
+
* committed by a `checkpoint_written` record, and the parks (`decision_*`
|
|
251
|
+
* records) that reference them.
|
|
252
|
+
*
|
|
253
|
+
* A checkpoint holds no messages. Its context is the fold of the session log
|
|
254
|
+
* through `throughSeq`; `restore` reads it back from the log and refuses a
|
|
255
|
+
* checkpoint whose document or covered prefix no longer matches its record.
|
|
256
|
+
*/
|
|
203
257
|
export class CheckpointManager {
|
|
204
|
-
private
|
|
205
|
-
private
|
|
206
|
-
|
|
207
|
-
* Compaction's state source, when the run has one.
|
|
208
|
-
*
|
|
209
|
-
* Every checkpoint snapshots it, so a resumed run can carry forward the
|
|
210
|
-
* state its earlier summary was built from. Without that the next
|
|
211
|
-
* compaction supersedes that summary with one covering only post-resume
|
|
212
|
-
* activity, and the record of everything before the resume is gone.
|
|
213
|
-
*/
|
|
258
|
+
private readonly recorder: CheckpointRecords
|
|
259
|
+
private readonly store: SessionCheckpointStore
|
|
260
|
+
private readonly scope: CheckpointScope
|
|
214
261
|
private workingStateSource?: () => WorkingStateSnapshot | undefined
|
|
215
262
|
private latestUserMessageSource?: () => UserMessage | undefined
|
|
216
263
|
private restoredUserMessage?: UserMessage
|
|
264
|
+
private restoredUserMessageId?: MessageId
|
|
217
265
|
private answerReviewAttemptsSource?: () => number
|
|
218
266
|
private restoredAnswerAttempts = 0
|
|
219
267
|
private structuredReviewAttemptsSource?: () => number
|
|
220
268
|
private restoredReviewAttempts = 0
|
|
221
269
|
private nativeStructuredAttemptsSource?: () => number
|
|
222
270
|
private restoredNativeAttempts = 0
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* The most recent checkpoint this manager wrote, if any.
|
|
226
|
-
*
|
|
227
|
-
* A run that fails on a transient error needs to name the state a host
|
|
228
|
-
* should resume from. Re-listing the store to find it would be a disk
|
|
229
|
-
* read on the failure path, at the moment the run is least able to
|
|
230
|
-
* afford one; the id is already in hand.
|
|
231
|
-
*/
|
|
232
271
|
private lastCreatedId?: CheckpointId
|
|
233
|
-
|
|
234
|
-
/** See {@link setTraceSource}. */
|
|
235
272
|
private traceSource?: () => SerializedSpanContext | undefined
|
|
236
|
-
|
|
237
|
-
/** See {@link setParkTtl}. */
|
|
238
273
|
private parkTtlMs?: number
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* The claim this run holds, presented on every checkpoint write.
|
|
242
|
-
*
|
|
243
|
-
* Unset means unfenced, which is correct for a single-writer deployment
|
|
244
|
-
* and is what every run did before claims existed. Set it and a write from
|
|
245
|
-
* a superseded holding is refused by the store.
|
|
246
|
-
*
|
|
247
|
-
* This existed nowhere for one release, and the omission was invisible in
|
|
248
|
-
* the worst way: the claim, the fence and the refusal were all built and
|
|
249
|
-
* tested, and no code path between a run and its store carried the number,
|
|
250
|
-
* so every checkpoint a RUN wrote went out unfenced. A capability that is
|
|
251
|
-
* complete except for the wire between its halves reads exactly like a
|
|
252
|
-
* working one.
|
|
253
|
-
*/
|
|
254
|
-
private claimFence?: FencingToken
|
|
255
|
-
|
|
256
274
|
/**
|
|
257
|
-
* The
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
* Settled exactly once, by whichever of two things happens first, and
|
|
261
|
-
* never reassigned — every write to it below is `??=`, and there are only
|
|
262
|
-
* two:
|
|
263
|
-
*
|
|
264
|
-
* - `restore` ADOPTS it from the checkpoint a resume came back through.
|
|
265
|
-
* A resumed run is the same run, and its creation is already on the
|
|
266
|
-
* record; a fresh process minting a new one would move the key that
|
|
267
|
-
* exists specifically because it does not move.
|
|
268
|
-
* - `create` MINTS it from the run's own start instant when nothing was
|
|
269
|
-
* adopted, which is the fresh-run case.
|
|
270
|
-
*
|
|
271
|
-
* Restore runs during run setup, before the first iteration and therefore
|
|
272
|
-
* before the first `create`, so the adopt always wins on the resume path
|
|
273
|
-
* without either site needing to know which path it is on.
|
|
275
|
+
* The turn's attribution instant, identical on every checkpoint of the
|
|
276
|
+
* turn: adopted from the checkpoint a resume came back through, or minted
|
|
277
|
+
* from the turn's own start.
|
|
274
278
|
*/
|
|
275
|
-
private
|
|
279
|
+
private turnCreatedAt?: string
|
|
280
|
+
/** The turn where its iteration loop began; see {@link markLoopStart}. */
|
|
281
|
+
private loopStart?: CheckpointState
|
|
276
282
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
* pipeline passes the run's disk-backed store
|
|
280
|
-
* ({@link import('../../store/run/checkpoint-disk.js').DiskCheckpointStore});
|
|
281
|
-
* hosts inject their own via `QueryParams.checkpointStore`.
|
|
282
|
-
* @param scope the run every operation of this manager is keyed to.
|
|
283
|
-
*/
|
|
284
|
-
constructor(store: CheckpointStore, scope: CheckpointRunScope) {
|
|
283
|
+
constructor(recorder: CheckpointRecords, store: SessionCheckpointStore, scope: CheckpointScope) {
|
|
284
|
+
this.recorder = recorder
|
|
285
285
|
this.store = store
|
|
286
286
|
this.scope = scope
|
|
287
287
|
}
|
|
@@ -322,312 +322,411 @@ export class CheckpointManager {
|
|
|
322
322
|
return this.restoredReviewAttempts
|
|
323
323
|
}
|
|
324
324
|
|
|
325
|
-
/**
|
|
326
|
-
* The run's root span, so every checkpoint records the trace it was
|
|
327
|
-
* taken inside and a resume can join it rather than starting a second,
|
|
328
|
-
* unlinked one.
|
|
329
|
-
*/
|
|
325
|
+
/** The turn's root span, so every checkpoint records the trace it was taken inside. */
|
|
330
326
|
setTraceSource(source: () => SerializedSpanContext | undefined): void {
|
|
331
327
|
this.traceSource = source
|
|
332
328
|
}
|
|
333
329
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
330
|
+
/** Default time-to-live applied to every park this manager records. */
|
|
331
|
+
setParkTtl(ttlMs: number | undefined): void {
|
|
332
|
+
this.parkTtlMs = ttlMs
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Write a checkpoint of the turn as it stands: every queued record lands
|
|
337
|
+
* first, the document names the log's head as `throughSeq`, and a
|
|
338
|
+
* `checkpoint_written` record commits it.
|
|
339
|
+
*/
|
|
340
|
+
async create(recorder: TurnRecorder, iteration: number): Promise<CreatedCheckpoint> {
|
|
341
|
+
await recorder.budget?.flush()
|
|
342
|
+
const state = await this.captureState(recorder)
|
|
343
|
+
if (!state) throw new Error('A checkpoint needs a session log with records in it.')
|
|
344
|
+
return this.write(recorder, iteration, state)
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* Remember the turn as it stands where its iteration loop begins, before
|
|
349
|
+
* the loop's first provider request. Nothing is written: the state is
|
|
350
|
+
* only committed, by {@link createAtLoopStart}, when the turn has to
|
|
351
|
+
* pause before it wrote a checkpoint of its own.
|
|
352
|
+
*/
|
|
353
|
+
async markLoopStart(recorder: TurnRecorder): Promise<void> {
|
|
354
|
+
this.loopStart = await this.captureState(recorder)
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* A checkpoint of the turn as {@link markLoopStart} found it, so a turn
|
|
359
|
+
* that fails recoverably before any checkpoint of its own has something
|
|
360
|
+
* to pause on and resume from. It covers the log only through the loop's
|
|
361
|
+
* start and counts none of the guards used since, so resuming from it
|
|
362
|
+
* discards every iteration the turn ran before the fault, completed ones
|
|
363
|
+
* included (a `max_tokens` continuation request opens a new iteration).
|
|
364
|
+
* Its iteration is the one the loop began at: 0 for a fresh
|
|
365
|
+
* turn, the restored count for a resumed one. `undefined` when no loop
|
|
366
|
+
* start was marked.
|
|
367
|
+
*/
|
|
368
|
+
async createAtLoopStart(recorder: TurnRecorder): Promise<CreatedCheckpoint | undefined> {
|
|
369
|
+
const state = this.loopStart
|
|
370
|
+
if (!state) return undefined
|
|
371
|
+
// The ledger is the account, not the turn's view of it: whatever the
|
|
372
|
+
// failed request spent stays spent.
|
|
373
|
+
await recorder.budget?.flush()
|
|
374
|
+
return this.write(recorder, state.guards.iteration, state)
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/** The part of a checkpoint document that describes the turn at one instant. */
|
|
378
|
+
private async captureState(recorder: TurnRecorder): Promise<CheckpointState | undefined> {
|
|
379
|
+
const startedAt = recorder.getTurn().startedAt
|
|
380
|
+
this.turnCreatedAt ??= new Date(startedAt).toISOString()
|
|
348
381
|
const latestUserMessage = this.latestUserMessageSource?.() ?? this.restoredUserMessage
|
|
382
|
+
const head = await recorder.head()
|
|
383
|
+
if (!head) return undefined
|
|
384
|
+
const latestUserMessageId = latestUserMessage
|
|
385
|
+
? this.messageIdOf(recorder, latestUserMessage)
|
|
386
|
+
: undefined
|
|
387
|
+
return {
|
|
388
|
+
throughSeq: head.pointer.seq,
|
|
389
|
+
throughSha256: head.pointer.sha256,
|
|
390
|
+
tokenUsage: { ...recorder.tokenUsage },
|
|
391
|
+
costInfo: { ...recorder.costInfo },
|
|
392
|
+
guards: {
|
|
393
|
+
iteration: recorder.currentIteration,
|
|
394
|
+
elapsedMs: Math.max(0, Date.now() - startedAt),
|
|
395
|
+
},
|
|
396
|
+
review: {
|
|
397
|
+
structuredAttempts: this.structuredReviewAttemptsSource?.() ?? this.restoredReviewAttempts,
|
|
398
|
+
answerAttempts: this.answerReviewAttemptsSource?.() ?? this.restoredAnswerAttempts,
|
|
399
|
+
nativeStructuredAttempts:
|
|
400
|
+
this.nativeStructuredAttemptsSource?.() ?? this.restoredNativeAttempts,
|
|
401
|
+
},
|
|
402
|
+
...(latestUserMessageId ? { latestUserMessageId } : {}),
|
|
403
|
+
...withDefined('workingState', this.workingStateSource?.()),
|
|
404
|
+
}
|
|
405
|
+
}
|
|
349
406
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
407
|
+
private async write(
|
|
408
|
+
recorder: TurnRecorder,
|
|
409
|
+
iteration: number,
|
|
410
|
+
state: CheckpointState,
|
|
411
|
+
): Promise<CreatedCheckpoint> {
|
|
412
|
+
const binding = recorder.budget?.binding
|
|
413
|
+
const accountId = recorder.budget?.accountId
|
|
414
|
+
const document: Checkpoint = {
|
|
415
|
+
v: CHECKPOINT_DOCUMENT_VERSION,
|
|
416
|
+
kind: 'checkpoint',
|
|
417
|
+
checkpointId: generateCheckpointId(),
|
|
418
|
+
sessionId: this.scope.sessionId,
|
|
419
|
+
turnId: this.scope.turnId,
|
|
354
420
|
iteration,
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
},
|
|
370
|
-
createdAt: Date.now(),
|
|
371
|
-
toolResultHashes: extra?.toolResults ? buildToolResultHashes(extra.toolResults) : undefined,
|
|
372
|
-
workingState: extra?.workingState ?? this.workingStateSource?.(),
|
|
373
|
-
traceContext: this.traceSource?.(),
|
|
421
|
+
throughSeq: state.throughSeq,
|
|
422
|
+
throughSha256: state.throughSha256,
|
|
423
|
+
tokenUsage: state.tokenUsage,
|
|
424
|
+
costInfo: state.costInfo,
|
|
425
|
+
...(accountId !== undefined
|
|
426
|
+
? { budget: { ...(binding ? { binding } : {}), accountId } }
|
|
427
|
+
: {}),
|
|
428
|
+
guards: state.guards,
|
|
429
|
+
review: state.review,
|
|
430
|
+
...(state.latestUserMessageId ? { latestUserMessageId: state.latestUserMessageId } : {}),
|
|
431
|
+
...withDefined('workingState', state.workingState),
|
|
432
|
+
...withDefined('trace', this.traceSource?.()),
|
|
433
|
+
turnCreatedAt: this.turnCreatedAt ?? new Date(recorder.getTurn().startedAt).toISOString(),
|
|
434
|
+
createdAt: new Date().toISOString(),
|
|
374
435
|
}
|
|
436
|
+
const receipt = await this.store.write(this.scope, document)
|
|
437
|
+
await recorder.appendRecord({
|
|
438
|
+
type: 'checkpoint_written',
|
|
439
|
+
turnId: this.scope.turnId,
|
|
440
|
+
...receipt,
|
|
441
|
+
})
|
|
442
|
+
this.lastCreatedId = document.checkpointId
|
|
443
|
+
return { id: document.checkpointId, document }
|
|
444
|
+
}
|
|
375
445
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
446
|
+
/**
|
|
447
|
+
* The id of the record that carries a message's text: its own record,
|
|
448
|
+
* or — for operator guidance delivered attached to a tool result — the
|
|
449
|
+
* record of the tool result that carries it.
|
|
450
|
+
*/
|
|
451
|
+
private messageIdOf(recorder: TurnRecorder, message: Message): MessageId | undefined {
|
|
452
|
+
if (message === this.restoredUserMessage) return this.restoredUserMessageId
|
|
453
|
+
return recorder.recordedIdOf(message) ?? this.steeringCarrierOf(recorder, message)
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
/** Found once and kept: a compaction may later drop the carrier from the context. */
|
|
457
|
+
private readonly steeringCarriers = new WeakMap<Message, MessageId>()
|
|
458
|
+
|
|
459
|
+
private steeringCarrierOf(recorder: TurnRecorder, message: Message): MessageId | undefined {
|
|
460
|
+
const known = this.steeringCarriers.get(message)
|
|
461
|
+
if (known) return known
|
|
462
|
+
const source = (message as UserMessage).source
|
|
463
|
+
if (
|
|
464
|
+
message.role !== 'user' ||
|
|
465
|
+
typeof message.content !== 'string' ||
|
|
466
|
+
source?.type !== 'runtime-context' ||
|
|
467
|
+
source.kind !== 'steering'
|
|
468
|
+
) {
|
|
469
|
+
return undefined
|
|
470
|
+
}
|
|
471
|
+
const note = formatSteeringNote(message.content)
|
|
472
|
+
const messages = recorder.messages
|
|
473
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
474
|
+
const candidate = messages[i] as Message
|
|
475
|
+
if (
|
|
476
|
+
candidate.role === 'tool' &&
|
|
477
|
+
typeof candidate.content === 'string' &&
|
|
478
|
+
candidate.content.endsWith(note)
|
|
479
|
+
) {
|
|
480
|
+
const id = recorder.recordedIdOf(candidate)
|
|
481
|
+
if (id) this.steeringCarriers.set(message, id)
|
|
482
|
+
return id
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
return undefined
|
|
380
486
|
}
|
|
381
487
|
|
|
382
|
-
/**
|
|
488
|
+
/** The most recent checkpoint this manager wrote, if any. */
|
|
383
489
|
get lastCheckpointId(): CheckpointId | undefined {
|
|
384
490
|
return this.lastCreatedId
|
|
385
491
|
}
|
|
386
492
|
|
|
387
493
|
/**
|
|
388
|
-
* The trace a checkpoint was taken inside, for parenting a resumed
|
|
389
|
-
*
|
|
390
|
-
* Read separately and BEFORE the run's root span, because a span's
|
|
391
|
-
* parent can only be set at creation and the root is minted before the
|
|
392
|
-
* restore branch runs.
|
|
393
|
-
*
|
|
394
|
-
* Never throws. Telemetry continuity is worth a disk read; it is not
|
|
395
|
-
* worth failing a resume over, and the restore path immediately after
|
|
396
|
-
* will report a genuinely unreadable checkpoint far better than a
|
|
397
|
-
* tracing helper could.
|
|
494
|
+
* The trace a checkpoint was taken inside, for parenting a resumed turn.
|
|
495
|
+
* Never throws: telemetry continuity is not worth failing a resume over.
|
|
398
496
|
*/
|
|
399
497
|
async readTraceContext(checkpointId: CheckpointId): Promise<SerializedSpanContext | undefined> {
|
|
400
498
|
try {
|
|
401
|
-
const checkpoint = await this.store.
|
|
402
|
-
return checkpoint?.
|
|
499
|
+
const checkpoint = await this.store.read(this.scope, checkpointId)
|
|
500
|
+
return checkpoint?.trace
|
|
403
501
|
} catch {
|
|
404
502
|
return undefined
|
|
405
503
|
}
|
|
406
504
|
}
|
|
407
505
|
|
|
408
506
|
/**
|
|
409
|
-
* Record that the
|
|
410
|
-
*
|
|
411
|
-
*
|
|
412
|
-
* A park used to exist only as a suspended `await`: the checkpoint
|
|
413
|
-
* written just before it was indistinguishable from any mid-run
|
|
414
|
-
* checkpoint, so a host could not tell from durable state that a
|
|
415
|
-
* decision was outstanding — and a process boundary lost the request
|
|
416
|
-
* entirely. Writing the request down is what lets an approval queue be
|
|
417
|
-
* rebuilt, and what lets a resumed run apply the answer to the exact
|
|
418
|
-
* tool calls the human saw.
|
|
419
|
-
*
|
|
420
|
-
* Called after `create` rather than as an argument to it because the
|
|
421
|
-
* request carries the checkpoint's own id.
|
|
507
|
+
* Record that the turn parked at `checkpoint` awaiting a human: a
|
|
508
|
+
* `decision_requested` record naming the checkpoint, with an absolute
|
|
509
|
+
* deadline when the turn has a park time-to-live.
|
|
422
510
|
*/
|
|
423
511
|
async park(
|
|
424
|
-
checkpoint:
|
|
512
|
+
checkpoint: { readonly id: CheckpointId },
|
|
425
513
|
request: HITLDecisionRequest,
|
|
426
514
|
options?: { readonly ttlMs?: number },
|
|
427
|
-
): Promise<
|
|
515
|
+
): Promise<PendingDecision> {
|
|
428
516
|
const parkedAt = Date.now()
|
|
429
517
|
const ttl = options?.ttlMs ?? this.parkTtlMs
|
|
430
|
-
const
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
}
|
|
441
|
-
await this.store.writeCheckpoint(this.scope, parked, this.claimFence)
|
|
442
|
-
return parked
|
|
518
|
+
const deadlineAt = ttl !== undefined && ttl > 0 ? parkedAt + ttl : undefined
|
|
519
|
+
await this.recorder.appendRecord({
|
|
520
|
+
type: 'decision_requested',
|
|
521
|
+
turnId: this.scope.turnId,
|
|
522
|
+
decisionId: checkpoint.id,
|
|
523
|
+
checkpointId: checkpoint.id,
|
|
524
|
+
request: request as never,
|
|
525
|
+
...(deadlineAt !== undefined ? { deadlineAt: new Date(deadlineAt).toISOString() } : {}),
|
|
526
|
+
})
|
|
527
|
+
return { request, parkedAt, ...(deadlineAt !== undefined ? { deadlineAt } : {}) }
|
|
443
528
|
}
|
|
444
529
|
|
|
445
530
|
/**
|
|
446
|
-
*
|
|
447
|
-
*
|
|
448
|
-
* A setter rather than a constructor argument because a run is claimed at
|
|
449
|
-
* a different moment than it is constructed — a worker draining a queue
|
|
450
|
-
* takes the run, then builds the pipeline around it — and because a
|
|
451
|
-
* renewal mints a NEW fence mid-run that has to replace the old one.
|
|
531
|
+
* Mark an expired park as no longer outstanding: `decision_expired`. The
|
|
532
|
+
* request stays in the log as evidence of what was asked.
|
|
452
533
|
*/
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
/** Default time-to-live applied to every park this manager records. */
|
|
463
|
-
setParkTtl(ttlMs: number | undefined): void {
|
|
464
|
-
this.parkTtlMs = ttlMs
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
/**
|
|
468
|
-
* Mark an expired park as no longer outstanding.
|
|
469
|
-
*
|
|
470
|
-
* Recorded rather than deleted: the checkpoint showing what was asked
|
|
471
|
-
* and that nobody answered in time is the evidence an approval gate is
|
|
472
|
-
* worth having, and the same reasoning already keeps a resolved
|
|
473
|
-
* decision on the record.
|
|
474
|
-
*/
|
|
475
|
-
async expire(checkpointId: CheckpointId): Promise<IterationCheckpoint | null> {
|
|
476
|
-
const checkpoint = await this.store.readCheckpoint(this.scope, checkpointId)
|
|
477
|
-
if (!checkpoint?.pending || checkpoint.pending.resolvedAt !== undefined) return null
|
|
478
|
-
|
|
479
|
-
const expired: IterationCheckpoint = {
|
|
480
|
-
...checkpoint,
|
|
481
|
-
pending: {
|
|
482
|
-
...checkpoint.pending,
|
|
483
|
-
resolvedAt: Date.now(),
|
|
484
|
-
// The park ended by running out of time, not by a decision.
|
|
485
|
-
// An `abort` here would read as somebody having refused it.
|
|
486
|
-
decision: { action: 'pause', reason: 'The approval request expired without an answer.' },
|
|
487
|
-
},
|
|
488
|
-
}
|
|
489
|
-
await this.store.writeCheckpoint(this.scope, expired, this.claimFence)
|
|
490
|
-
return expired
|
|
534
|
+
async expire(checkpointId: CheckpointId): Promise<RecordedPark | null> {
|
|
535
|
+
const park = await this.openPark(checkpointId)
|
|
536
|
+
if (!park) return null
|
|
537
|
+
await this.recorder.appendRecord({
|
|
538
|
+
type: 'decision_expired',
|
|
539
|
+
turnId: this.scope.turnId,
|
|
540
|
+
decisionId: park.decisionId,
|
|
541
|
+
})
|
|
542
|
+
return park
|
|
491
543
|
}
|
|
492
544
|
|
|
493
545
|
/**
|
|
494
|
-
* Record the answer, so an outstanding park stops looking outstanding
|
|
495
|
-
*
|
|
496
|
-
*
|
|
497
|
-
* what was asked and what was answered is the evidence trail an
|
|
498
|
-
* approval gate is worth having. A no-op when the checkpoint is gone
|
|
499
|
-
* (pruned) or was never parked.
|
|
546
|
+
* Record the answer, so an outstanding park stops looking outstanding:
|
|
547
|
+
* `decision_resolved`. A no-op when the checkpoint was never parked or the
|
|
548
|
+
* park is already answered.
|
|
500
549
|
*/
|
|
501
550
|
async unpark(
|
|
502
551
|
checkpointId: CheckpointId,
|
|
503
552
|
decision: HITLResumeDecision,
|
|
504
|
-
): Promise<
|
|
505
|
-
const
|
|
506
|
-
if (!
|
|
553
|
+
): Promise<RecordedPark | null> {
|
|
554
|
+
const park = await this.openPark(checkpointId)
|
|
555
|
+
if (!park) return null
|
|
556
|
+
await this.recorder.appendRecord({
|
|
557
|
+
type: 'decision_resolved',
|
|
558
|
+
turnId: this.scope.turnId,
|
|
559
|
+
decisionId: park.decisionId,
|
|
560
|
+
decision,
|
|
561
|
+
resolvedBy: resolver(this.recorder),
|
|
562
|
+
})
|
|
563
|
+
return park
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
private async openPark(checkpointId: CheckpointId): Promise<RecordedPark | null> {
|
|
567
|
+
await this.recorder.flush()
|
|
568
|
+
const parks = await readParks(this.recorder.log, { turnId: this.scope.turnId })
|
|
569
|
+
return (
|
|
570
|
+
parks.find(
|
|
571
|
+
(park) => park.checkpointId === checkpointId && park.pending.resolvedAt === undefined,
|
|
572
|
+
) ?? null
|
|
573
|
+
)
|
|
574
|
+
}
|
|
507
575
|
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
}
|
|
512
|
-
await this.store.writeCheckpoint(this.scope, resolved, this.claimFence)
|
|
513
|
-
return resolved
|
|
576
|
+
/** The turn's outstanding park, if it has one. */
|
|
577
|
+
async findPending(): Promise<RecordedPark | null> {
|
|
578
|
+
await this.recorder.flush()
|
|
579
|
+
return findPendingCheckpoint(this.recorder.log, { turnId: this.scope.turnId })
|
|
514
580
|
}
|
|
515
581
|
|
|
516
582
|
/**
|
|
517
|
-
*
|
|
518
|
-
*
|
|
519
|
-
*
|
|
520
|
-
* This is the read a host's approval queue is built from, and it works
|
|
521
|
-
* across a process boundary because it consults the store rather than
|
|
522
|
-
* in-memory state.
|
|
583
|
+
* Read a checkpoint back for a resume. Refused when it is missing, when
|
|
584
|
+
* its document no longer matches its record, or when the log prefix it
|
|
585
|
+
* covers changed.
|
|
523
586
|
*/
|
|
524
|
-
async
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
async restore(checkpointId: CheckpointId): Promise<IterationCheckpoint> {
|
|
529
|
-
const checkpoint = await this.store.readCheckpoint(this.scope, checkpointId)
|
|
530
|
-
if (!checkpoint) {
|
|
587
|
+
async restore(checkpointId: CheckpointId): Promise<RestoredCheckpoint> {
|
|
588
|
+
const document = await this.store.restore(this.scope, checkpointId)
|
|
589
|
+
if (!document) {
|
|
531
590
|
throw new NamzuError({
|
|
532
591
|
code: 'not_found',
|
|
533
592
|
message: `Checkpoint not found: ${checkpointId}`,
|
|
534
|
-
details: { checkpointId,
|
|
593
|
+
details: { checkpointId, sessionId: this.scope.sessionId, turnId: this.scope.turnId },
|
|
535
594
|
})
|
|
536
595
|
}
|
|
596
|
+
const restored = await restoreCheckpointContext(this.recorder.log, document)
|
|
597
|
+
this.turnCreatedAt ??= document.turnCreatedAt
|
|
598
|
+
this.restoredAnswerAttempts = document.review.answerAttempts
|
|
599
|
+
this.restoredNativeAttempts = document.review.nativeStructuredAttempts
|
|
600
|
+
this.restoredReviewAttempts = document.review.structuredAttempts
|
|
601
|
+
this.restoredUserMessage = restored.latestUserMessage
|
|
602
|
+
this.restoredUserMessageId = restored.latestUserMessage
|
|
603
|
+
? document.latestUserMessageId
|
|
604
|
+
: undefined
|
|
605
|
+
return restored
|
|
606
|
+
}
|
|
537
607
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
// every resume, which is the motion it exists to avoid.
|
|
542
|
-
//
|
|
543
|
-
// This needs no "is it really my run" guard, and one was written and
|
|
544
|
-
// removed: `readCheckpoint` is keyed by THIS manager's scope, so the
|
|
545
|
-
// only checkpoints reachable here are the ones belonging to
|
|
546
|
-
// `scope.runId`. A replay fork never arrives here at all — it reads
|
|
547
|
-
// its origin through the SOURCE scope in `prepareReplayState` and
|
|
548
|
-
// starts a fresh run, so it mints its own stamp rather than claiming
|
|
549
|
-
// its origin's age. A guard that no input can trip would have read as
|
|
550
|
-
// protection and been none.
|
|
551
|
-
this.runCreatedAt ??= checkpoint.runCreatedAt
|
|
552
|
-
const answerAttempts = checkpoint.answerReviewAttempts ?? 0
|
|
553
|
-
if (!Number.isSafeInteger(answerAttempts) || answerAttempts < 0)
|
|
554
|
-
throw new Error('Checkpoint answerReviewAttempts must be a nonnegative safe integer')
|
|
555
|
-
this.restoredAnswerAttempts = answerAttempts
|
|
556
|
-
const nativeAttempts = checkpoint.nativeStructuredAttempts ?? 0
|
|
557
|
-
if (!Number.isSafeInteger(nativeAttempts) || nativeAttempts < 0)
|
|
558
|
-
throw new Error('Invalid nativeStructuredAttempts in checkpoint')
|
|
559
|
-
this.restoredNativeAttempts = nativeAttempts
|
|
560
|
-
const reviewAttempts = checkpoint.structuredReviewAttempts ?? 0
|
|
561
|
-
if (!Number.isSafeInteger(reviewAttempts) || reviewAttempts < 0)
|
|
562
|
-
throw new Error('Checkpoint structuredReviewAttempts must be a nonnegative safe integer')
|
|
563
|
-
this.restoredReviewAttempts = reviewAttempts
|
|
564
|
-
this.restoredUserMessage =
|
|
565
|
-
checkpoint.latestUserMessage === undefined
|
|
566
|
-
? undefined
|
|
567
|
-
: snapshotUserIntent(checkpoint.latestUserMessage)
|
|
568
|
-
|
|
569
|
-
return checkpoint
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
async list(): Promise<IterationCheckpoint[]> {
|
|
573
|
-
return this.store.listCheckpoints(this.scope)
|
|
608
|
+
/** The turn's checkpoint documents, oldest first. */
|
|
609
|
+
async list(): Promise<Checkpoint[]> {
|
|
610
|
+
return this.store.list(this.scope)
|
|
574
611
|
}
|
|
575
612
|
|
|
576
|
-
/**
|
|
577
|
-
* Listing projection used by the public `listCheckpoints` API. Returns
|
|
578
|
-
* only the fields a consumer needs to pick a fork point for
|
|
579
|
-
* {@link import('./replay/prepare.js').prepareReplayState} — not the
|
|
580
|
-
* full checkpoint payload. See ses_005-deterministic-replay design §3.1.
|
|
581
|
-
*/
|
|
613
|
+
/** Listing projection used by the public `listCheckpoints` API. */
|
|
582
614
|
async listEntries(): Promise<CheckpointListEntry[]> {
|
|
583
|
-
|
|
584
|
-
return checkpoints.map(toCheckpointListEntry)
|
|
615
|
+
return (await this.list()).map(toCheckpointListEntry)
|
|
585
616
|
}
|
|
586
617
|
|
|
587
618
|
/**
|
|
588
|
-
* Collect old checkpoints until `keepLast` newer ones remain
|
|
589
|
-
*
|
|
590
|
-
* Growth control, and growth control stops at a park. A checkpoint with
|
|
591
|
-
* an unresolved `pending` is the durable fact that a human was asked
|
|
592
|
-
* something: it is what `findPendingCheckpoint` serves to an approval
|
|
593
|
-
* queue and what `listExpiredParks` enumerates for a sweep. Collecting
|
|
594
|
-
* one deletes the only record of a question somebody may be in the middle
|
|
595
|
-
* of answering, and their answer then lands nowhere — the store refuses
|
|
596
|
-
* the unpark and the run it belonged to resumes without it.
|
|
597
|
-
*
|
|
598
|
-
* So the candidates are still the oldest `all.length - keepLast`, which
|
|
599
|
-
* is what keeps the newest `keepLast` — the run's resume point — out of
|
|
600
|
-
* reach, and a park among them is skipped rather than counted. Pruning
|
|
601
|
-
* therefore holds a few more rows while a park is outstanding. That is
|
|
602
|
-
* the right side to err on: parks resolve, and the next prune collects
|
|
603
|
-
* them. Expired ones are skipped too — the host's sweep is
|
|
604
|
-
* {@link expire}, which resolves the park by running out of time rather
|
|
605
|
-
* than by deleting the evidence, and `prune` racing it would take the
|
|
606
|
-
* question away before it was read.
|
|
619
|
+
* Collect old checkpoints until `keepLast` newer ones remain, never one an
|
|
620
|
+
* open decision references; a `checkpoint_pruned` record names what went.
|
|
607
621
|
*/
|
|
608
622
|
async prune(keepLast: number): Promise<void> {
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
623
|
+
await this.recorder.flush()
|
|
624
|
+
const pruned = await this.store.prune(this.scope, keepLast)
|
|
625
|
+
if (pruned.length > 0) {
|
|
626
|
+
await this.recorder.appendRecord({
|
|
627
|
+
type: 'checkpoint_pruned',
|
|
628
|
+
turnId: this.scope.turnId,
|
|
629
|
+
checkpointIds: pruned,
|
|
630
|
+
})
|
|
617
631
|
}
|
|
618
632
|
}
|
|
619
633
|
|
|
620
|
-
static buildSummary(
|
|
621
|
-
const lastAssistant = [...
|
|
634
|
+
static buildSummary(recorder: TurnRecorder, iteration: number): CheckpointSummary {
|
|
635
|
+
const lastAssistant = [...recorder.messages]
|
|
622
636
|
.reverse()
|
|
623
637
|
.find((m): m is AssistantMessage => m.role === 'assistant' && m.content !== null)
|
|
624
638
|
|
|
625
639
|
return {
|
|
626
640
|
iteration,
|
|
627
|
-
messageCount:
|
|
628
|
-
tokenUsage: { ...
|
|
629
|
-
costInfo: { ...
|
|
641
|
+
messageCount: recorder.messages.length,
|
|
642
|
+
tokenUsage: { ...recorder.tokenUsage },
|
|
643
|
+
costInfo: { ...recorder.costInfo },
|
|
630
644
|
lastAssistantMessage: lastAssistant?.content ?? undefined,
|
|
631
645
|
}
|
|
632
646
|
}
|
|
633
647
|
}
|
|
648
|
+
|
|
649
|
+
/**
|
|
650
|
+
* The context a checkpoint restores: the fold of its session log through
|
|
651
|
+
* `throughSeq`, the decision it is parked on, and the operator intent it
|
|
652
|
+
* names.
|
|
653
|
+
*/
|
|
654
|
+
export async function restoreCheckpointContext(
|
|
655
|
+
log: SessionLog,
|
|
656
|
+
document: Checkpoint,
|
|
657
|
+
): Promise<RestoredCheckpoint> {
|
|
658
|
+
const history = await readFoldedHistory(log, { throughSeq: document.throughSeq })
|
|
659
|
+
const messages = history.map((entry) => entry.message)
|
|
660
|
+
const messageIds = new Map<Message, MessageId>()
|
|
661
|
+
for (const entry of history) {
|
|
662
|
+
if (entry.messageId) messageIds.set(entry.message, entry.messageId)
|
|
663
|
+
}
|
|
664
|
+
const park = (await readParks(log, { turnId: document.turnId }))
|
|
665
|
+
.filter((candidate) => candidate.checkpointId === document.checkpointId)
|
|
666
|
+
.at(-1)
|
|
667
|
+
// The operator intent a checkpoint names survives compaction: when the
|
|
668
|
+
// fold no longer holds it, its own record (with any replacement) does.
|
|
669
|
+
const intentId = document.latestUserMessageId
|
|
670
|
+
const intent =
|
|
671
|
+
intentId === undefined
|
|
672
|
+
? undefined
|
|
673
|
+
: (history.find((entry) => entry.messageId === intentId)?.message ??
|
|
674
|
+
(await readRecordedMessage(log, intentId, document.throughSeq)))
|
|
675
|
+
if (intentId !== undefined && intent === undefined) {
|
|
676
|
+
throw new Error(
|
|
677
|
+
`Checkpoint latestUserMessage names message ${intentId}, which its session log does not hold`,
|
|
678
|
+
)
|
|
679
|
+
}
|
|
680
|
+
// Guidance delivered attached to a tool result: the intent is the note.
|
|
681
|
+
const guidance =
|
|
682
|
+
intent?.role === 'tool' && typeof intent.content === 'string'
|
|
683
|
+
? readSteeringNote(intent.content)
|
|
684
|
+
: undefined
|
|
685
|
+
const operatorIntent =
|
|
686
|
+
guidance !== undefined ? createRuntimeContextMessage(guidance, 'steering') : intent
|
|
687
|
+
return {
|
|
688
|
+
id: document.checkpointId,
|
|
689
|
+
document,
|
|
690
|
+
messages,
|
|
691
|
+
messageIds,
|
|
692
|
+
...(park ? { pending: park.pending } : {}),
|
|
693
|
+
...(operatorIntent ? { latestUserMessage: snapshotUserIntent(operatorIntent) } : {}),
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
/**
|
|
698
|
+
* A message as its own record left it (with any `message_replaced` applied),
|
|
699
|
+
* whether or not a compaction has since dropped it from the fold.
|
|
700
|
+
*/
|
|
701
|
+
async function readRecordedMessage(
|
|
702
|
+
log: SessionLog,
|
|
703
|
+
messageId: MessageId,
|
|
704
|
+
throughSeq: number,
|
|
705
|
+
): Promise<Message | undefined> {
|
|
706
|
+
let found: { content: unknown; spill?: unknown } | undefined
|
|
707
|
+
for await (const { record } of log.read({ throughSeq })) {
|
|
708
|
+
const entry = record as SessionRecord & {
|
|
709
|
+
messageId?: string
|
|
710
|
+
targetMessageId?: string
|
|
711
|
+
content?: unknown
|
|
712
|
+
spill?: unknown
|
|
713
|
+
}
|
|
714
|
+
if (
|
|
715
|
+
(entry.type === 'message' && entry.messageId === messageId) ||
|
|
716
|
+
(entry.type === 'message_replaced' && entry.targetMessageId === messageId)
|
|
717
|
+
) {
|
|
718
|
+
found = { content: entry.content, ...(entry.spill ? { spill: entry.spill } : {}) }
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
if (!found) return undefined
|
|
722
|
+
if (found.spill) {
|
|
723
|
+
return JSON.parse(
|
|
724
|
+
await log.readSpill(found.spill as Parameters<SessionLog['readSpill']>[0]),
|
|
725
|
+
) as Message
|
|
726
|
+
}
|
|
727
|
+
return found.content as Message
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
function withDefined<K extends string, V>(key: K, value: V | undefined): { [P in K]?: V } {
|
|
731
|
+
return (value === undefined ? {} : { [key]: value }) as { [P in K]?: V }
|
|
732
|
+
}
|