@caupulican/pi-adaptative 0.81.42 → 0.81.43
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 +37 -0
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/cli.js.map +1 -1
- package/dist/bun/register-bedrock.d.ts.map +1 -1
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
- package/dist/bun/restore-sandbox-env.js.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.js +52 -49
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.js.map +1 -1
- package/dist/bundled-resources/extensions/tmux-agent-manager/index.ts +62 -57
- package/dist/bundled-resources/prompts/skillify.md +1 -1
- package/dist/bundled-resources/runtimes/pi-shell-engine/commands/fs.py +16 -19
- package/dist/bundled-resources/runtimes/pi-shell-engine/commands/search.py +12 -26
- package/dist/bundled-resources/runtimes/pi-shell-engine/commands/strings.py +15 -121
- package/dist/bundled-resources/runtimes/pi-shell-engine/commands/text.py +52 -79
- package/dist/bundled-resources/runtimes/pi-shell-engine/escapes.py +70 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/exec.py +110 -61
- package/dist/bundled-resources/runtimes/pi-shell-engine/main.py +106 -23
- package/dist/bundled-resources/runtimes/pi-shell-engine/paths.py +10 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/proc.py +12 -4
- package/dist/bundled-resources/runtimes/pi-shell-engine/shell_args.py +22 -0
- package/dist/bundled-resources/runtimes/pi-shell-engine/state.py +9 -2
- package/dist/bundled-resources/runtimes/pi-shell-engine/tokens.py +129 -259
- package/dist/bundled-resources/skills/authorized-web-security-audit/SKILL.md +187 -0
- package/dist/bundled-resources/skills/authorized-web-security-audit/references/assessment-contract.md +92 -0
- package/dist/bundled-resources/skills/deduplicate-by-evidence/SKILL.md +134 -0
- package/dist/bundled-resources/skills/evidence-gated-tdd/SKILL.md +93 -0
- package/dist/bundled-resources/skills/evidence-gated-tdd/references/evidence-model.md +27 -0
- package/dist/bundled-resources/skills/evidence-gated-tdd/references/security-scanners.md +24 -0
- package/dist/bundled-resources/skills/harness-self-adaptation/SKILL.md +4 -2
- package/dist/bundled-resources/skills/secure-agent-tool-surfaces/SKILL.md +217 -0
- package/dist/bundled-resources/skills/secure-agent-tool-surfaces/references/defensive-exploit-catalogue.md +175 -0
- package/dist/bundled-resources/skills/secure-agent-tool-surfaces/references/tool-boundary-checklist.md +87 -0
- package/dist/bundled-resources/skills/skill-architect/SKILL.md +2 -2
- package/dist/bundled-resources/skills/skill-creator/SKILL.md +188 -0
- package/dist/bundled-resources/skills/skill-creator/references/pi-skill-contract.md +73 -0
- package/dist/bundled-resources/skills/skill-creator/scripts/init-skill.mjs +142 -0
- package/dist/bundled-resources/skills/skill-creator/scripts/validate-skill.mjs +122 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +8 -8
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/initial-message.d.ts +1 -1
- package/dist/cli/initial-message.d.ts.map +1 -1
- package/dist/cli/initial-message.js.map +1 -1
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/piped-stdin.d.ts +4 -0
- package/dist/cli/piped-stdin.d.ts.map +1 -0
- package/dist/cli/piped-stdin.js +13 -0
- package/dist/cli/piped-stdin.js.map +1 -0
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -14
- package/dist/config.js.map +1 -1
- package/dist/core/agent-directory-layout.d.ts.map +1 -1
- package/dist/core/agent-directory-layout.js.map +1 -1
- package/dist/core/agent-paths.d.ts.map +1 -1
- package/dist/core/agent-paths.js.map +1 -1
- package/dist/core/agent-session-contracts.d.ts +5 -9
- package/dist/core/agent-session-contracts.d.ts.map +1 -1
- package/dist/core/agent-session-contracts.js +1 -12
- package/dist/core/agent-session-contracts.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +10 -25
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +24 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +210 -237
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-guidance.d.ts.map +1 -1
- package/dist/core/auth-guidance.js.map +1 -1
- package/dist/core/auth-storage.d.ts +4 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +13 -39
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/autonomy/approval-gate.d.ts.map +1 -1
- package/dist/core/autonomy/approval-gate.js.map +1 -1
- package/dist/core/autonomy/bounded-completion.d.ts.map +1 -1
- package/dist/core/autonomy/bounded-completion.js.map +1 -1
- package/dist/core/autonomy/contracts.d.ts.map +1 -1
- package/dist/core/autonomy/envelope-enforcement.d.ts.map +1 -1
- package/dist/core/autonomy/envelope-enforcement.js.map +1 -1
- package/dist/core/autonomy/evidence-finding-projection.d.ts +11 -0
- package/dist/core/autonomy/evidence-finding-projection.d.ts.map +1 -0
- package/dist/core/autonomy/evidence-finding-projection.js +37 -0
- package/dist/core/autonomy/evidence-finding-projection.js.map +1 -0
- package/dist/core/autonomy/foreground-envelope.d.ts.map +1 -1
- package/dist/core/autonomy/foreground-envelope.js.map +1 -1
- package/dist/core/autonomy/gates.d.ts.map +1 -1
- package/dist/core/autonomy/gates.js.map +1 -1
- package/dist/core/autonomy/lane-private-paths.d.ts.map +1 -1
- package/dist/core/autonomy/lane-private-paths.js.map +1 -1
- package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
- package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
- package/dist/core/autonomy/lane-tracker.d.ts.map +1 -1
- package/dist/core/autonomy/lane-tracker.js +2 -3
- package/dist/core/autonomy/lane-tracker.js.map +1 -1
- package/dist/core/autonomy/path-scope.d.ts.map +1 -1
- package/dist/core/autonomy/path-scope.js.map +1 -1
- package/dist/core/autonomy/risk-assessment.d.ts.map +1 -1
- package/dist/core/autonomy/session-lane-record.d.ts.map +1 -1
- package/dist/core/autonomy/session-lane-record.js.map +1 -1
- package/dist/core/autonomy/status.d.ts.map +1 -1
- package/dist/core/autonomy/status.js.map +1 -1
- package/dist/core/autonomy/subagent-prompt.d.ts.map +1 -1
- package/dist/core/autonomy/subagent-prompt.js.map +1 -1
- package/dist/core/autonomy/telemetry-events.d.ts.map +1 -1
- package/dist/core/autonomy/telemetry-events.js.map +1 -1
- package/dist/core/autonomy-telemetry.d.ts.map +1 -1
- package/dist/core/autonomy-telemetry.js +2 -4
- package/dist/core/autonomy-telemetry.js.map +1 -1
- package/dist/core/background-lane-controller.d.ts.map +1 -1
- package/dist/core/background-lane-controller.js +2 -15
- package/dist/core/background-lane-controller.js.map +1 -1
- package/dist/core/background-tool-task-controller.d.ts +88 -0
- package/dist/core/background-tool-task-controller.d.ts.map +1 -0
- package/dist/core/background-tool-task-controller.js +470 -0
- package/dist/core/background-tool-task-controller.js.map +1 -0
- package/dist/core/bash-execution-controller.d.ts +1 -0
- package/dist/core/bash-execution-controller.d.ts.map +1 -1
- package/dist/core/bash-execution-controller.js +5 -4
- package/dist/core/bash-execution-controller.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/bedrock-sso-login.d.ts.map +1 -1
- package/dist/core/bedrock-sso-login.js.map +1 -1
- package/dist/core/billing-failover-controller.d.ts.map +1 -1
- package/dist/core/billing-failover-controller.js +3 -3
- package/dist/core/billing-failover-controller.js.map +1 -1
- package/dist/core/billing-failover.d.ts.map +1 -1
- package/dist/core/billing-failover.js.map +1 -1
- package/dist/core/capability-contract.d.ts.map +1 -1
- package/dist/core/catalog-manager.d.ts.map +1 -1
- package/dist/core/catalog-manager.js +0 -0
- package/dist/core/catalog-manager.js.map +1 -1
- package/dist/core/compaction-controller.d.ts +2 -0
- package/dist/core/compaction-controller.d.ts.map +1 -1
- package/dist/core/compaction-controller.js +21 -8
- package/dist/core/compaction-controller.js.map +1 -1
- package/dist/core/compaction-support.d.ts +8 -0
- package/dist/core/compaction-support.d.ts.map +1 -1
- package/dist/core/compaction-support.js +0 -2
- package/dist/core/compaction-support.js.map +1 -1
- package/dist/core/context/artifact-retrieval.d.ts.map +1 -1
- package/dist/core/context/artifact-retrieval.js.map +1 -1
- package/dist/core/context/brain-curator.d.ts.map +1 -1
- package/dist/core/context/brain-curator.js +14 -33
- package/dist/core/context/brain-curator.js.map +1 -1
- package/dist/core/context/context-artifacts.d.ts.map +1 -1
- package/dist/core/context/context-artifacts.js +16 -24
- package/dist/core/context/context-artifacts.js.map +1 -1
- package/dist/core/context/context-audit.d.ts.map +1 -1
- package/dist/core/context/context-audit.js +3 -17
- package/dist/core/context/context-audit.js.map +1 -1
- package/dist/core/context/context-composition.d.ts.map +1 -1
- package/dist/core/context/context-composition.js.map +1 -1
- package/dist/core/context/context-item.d.ts.map +1 -1
- package/dist/core/context/context-item.js.map +1 -1
- package/dist/core/context/context-prompt-enforcement.d.ts.map +1 -1
- package/dist/core/context/context-prompt-enforcement.js +3 -16
- package/dist/core/context/context-prompt-enforcement.js.map +1 -1
- package/dist/core/context/context-prompt-policy.d.ts.map +1 -1
- package/dist/core/context/context-prompt-policy.js.map +1 -1
- package/dist/core/context/context-retention.d.ts.map +1 -1
- package/dist/core/context/context-retention.js.map +1 -1
- package/dist/core/context/context-store-retention.d.ts.map +1 -1
- package/dist/core/context/context-store-retention.js.map +1 -1
- package/dist/core/context/context-store.d.ts.map +1 -1
- package/dist/core/context/context-store.js.map +1 -1
- package/dist/core/context/context-tool-result.d.ts +4 -0
- package/dist/core/context/context-tool-result.d.ts.map +1 -0
- package/dist/core/context/context-tool-result.js +15 -0
- package/dist/core/context/context-tool-result.js.map +1 -0
- package/dist/core/context/current-work-memory.d.ts.map +1 -1
- package/dist/core/context/current-work-memory.js.map +1 -1
- package/dist/core/context/file-store-memory-provider.d.ts.map +1 -1
- package/dist/core/context/file-store-memory-provider.js +7 -28
- package/dist/core/context/file-store-memory-provider.js.map +1 -1
- package/dist/core/context/local-memory-search.d.ts +11 -0
- package/dist/core/context/local-memory-search.d.ts.map +1 -0
- package/dist/core/context/local-memory-search.js +37 -0
- package/dist/core/context/local-memory-search.js.map +1 -0
- package/dist/core/context/long-term-memory-trigger.d.ts.map +1 -1
- package/dist/core/context/long-term-memory-trigger.js.map +1 -1
- package/dist/core/context/memory-diagnostics.d.ts.map +1 -1
- package/dist/core/context/memory-diagnostics.js.map +1 -1
- package/dist/core/context/memory-index-store.d.ts.map +1 -1
- package/dist/core/context/memory-index-store.js.map +1 -1
- package/dist/core/context/memory-prompt-block.d.ts.map +1 -1
- package/dist/core/context/memory-prompt-block.js.map +1 -1
- package/dist/core/context/memory-prompt-budget.d.ts.map +1 -1
- package/dist/core/context/memory-prompt-budget.js.map +1 -1
- package/dist/core/context/memory-provider-contract.d.ts.map +1 -1
- package/dist/core/context/memory-provider-contract.js.map +1 -1
- package/dist/core/context/memory-retrieval.d.ts.map +1 -1
- package/dist/core/context/memory-retrieval.js.map +1 -1
- package/dist/core/context/memory-tier-composer.d.ts.map +1 -1
- package/dist/core/context/memory-tier-composer.js.map +1 -1
- package/dist/core/context/message-text.d.ts +7 -0
- package/dist/core/context/message-text.d.ts.map +1 -0
- package/dist/core/context/message-text.js +68 -0
- package/dist/core/context/message-text.js.map +1 -0
- package/dist/core/context/okf-memory-provider.d.ts.map +1 -1
- package/dist/core/context/okf-memory-provider.js +4 -30
- package/dist/core/context/okf-memory-provider.js.map +1 -1
- package/dist/core/context/okf-memory.d.ts.map +1 -1
- package/dist/core/context/okf-memory.js.map +1 -1
- package/dist/core/context/policy-engine.d.ts.map +1 -1
- package/dist/core/context/policy-engine.js.map +1 -1
- package/dist/core/context/policy-types.d.ts.map +1 -1
- package/dist/core/context/sqlite-runtime-index.d.ts.map +1 -1
- package/dist/core/context/sqlite-runtime-index.js.map +1 -1
- package/dist/core/context/storage-authority.d.ts.map +1 -1
- package/dist/core/context/tool-output-packer.d.ts.map +1 -1
- package/dist/core/context/tool-output-packer.js.map +1 -1
- package/dist/core/context-gc.d.ts.map +1 -1
- package/dist/core/context-gc.js +14 -21
- package/dist/core/context-gc.js.map +1 -1
- package/dist/core/context-pipeline.d.ts +1 -3
- package/dist/core/context-pipeline.d.ts.map +1 -1
- package/dist/core/context-pipeline.js +64 -145
- package/dist/core/context-pipeline.js.map +1 -1
- package/dist/core/cost/cost-summary.d.ts.map +1 -1
- package/dist/core/cost/cost-summary.js.map +1 -1
- package/dist/core/cost/daily-usage.d.ts.map +1 -1
- package/dist/core/cost/daily-usage.js.map +1 -1
- package/dist/core/cost/session-usage.d.ts.map +1 -1
- package/dist/core/cost/session-usage.js.map +1 -1
- package/dist/core/cost-guard.d.ts.map +1 -1
- package/dist/core/cost-guard.js.map +1 -1
- package/dist/core/default-tool-surface.d.ts.map +1 -1
- package/dist/core/default-tool-surface.js +1 -0
- package/dist/core/default-tool-surface.js.map +1 -1
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/delegation/managed-lane-controller.d.ts.map +1 -1
- package/dist/core/delegation/managed-lane-controller.js +2 -6
- package/dist/core/delegation/managed-lane-controller.js.map +1 -1
- package/dist/core/delegation/session-worker-claim.d.ts.map +1 -1
- package/dist/core/delegation/session-worker-claim.js.map +1 -1
- package/dist/core/delegation/worker-action-journal.d.ts.map +1 -1
- package/dist/core/delegation/worker-action-journal.js +0 -4
- package/dist/core/delegation/worker-action-journal.js.map +1 -1
- package/dist/core/delegation/worker-actions.d.ts.map +1 -1
- package/dist/core/delegation/worker-actions.js.map +1 -1
- package/dist/core/delegation/worker-agent-control-coordinator.d.ts +1 -0
- package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
- package/dist/core/delegation/worker-agent-control-coordinator.js +13 -15
- package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
- package/dist/core/delegation/worker-agent-control.d.ts.map +1 -1
- package/dist/core/delegation/worker-agent-control.js +1 -4
- package/dist/core/delegation/worker-agent-control.js.map +1 -1
- package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -1
- package/dist/core/delegation/worker-attempt-executor.js.map +1 -1
- package/dist/core/delegation/worker-claim.d.ts.map +1 -1
- package/dist/core/delegation/worker-claim.js.map +1 -1
- package/dist/core/delegation/worker-conversation-store.d.ts.map +1 -1
- package/dist/core/delegation/worker-conversation-store.js +0 -2
- package/dist/core/delegation/worker-conversation-store.js.map +1 -1
- package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
- package/dist/core/delegation/worker-delegation-controller.js +5 -14
- package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
- package/dist/core/delegation/worker-delegation-request.d.ts.map +1 -1
- package/dist/core/delegation/worker-dispatch-scheduler.d.ts.map +1 -1
- package/dist/core/delegation/worker-dispatch-scheduler.js +5 -6
- package/dist/core/delegation/worker-dispatch-scheduler.js.map +1 -1
- package/dist/core/delegation/worker-execution-policy.d.ts.map +1 -1
- package/dist/core/delegation/worker-execution-policy.js.map +1 -1
- package/dist/core/delegation/worker-lane-projection.d.ts.map +1 -1
- package/dist/core/delegation/worker-lane-projection.js.map +1 -1
- package/dist/core/delegation/worker-lifecycle.d.ts.map +1 -1
- package/dist/core/delegation/worker-lifecycle.js +0 -3
- package/dist/core/delegation/worker-lifecycle.js.map +1 -1
- package/dist/core/delegation/worker-notification-coordinator.d.ts.map +1 -1
- package/dist/core/delegation/worker-notification-coordinator.js +4 -5
- package/dist/core/delegation/worker-notification-coordinator.js.map +1 -1
- package/dist/core/delegation/worker-process-owner.d.ts.map +1 -1
- package/dist/core/delegation/worker-process-owner.js.map +1 -1
- package/dist/core/delegation/worker-profile-resolver.d.ts.map +1 -1
- package/dist/core/delegation/worker-profile-resolver.js +1 -2
- package/dist/core/delegation/worker-profile-resolver.js.map +1 -1
- package/dist/core/delegation/worker-recovery-coordinator.d.ts.map +1 -1
- package/dist/core/delegation/worker-recovery-coordinator.js +3 -4
- package/dist/core/delegation/worker-recovery-coordinator.js.map +1 -1
- package/dist/core/delegation/worker-resource-catalog.d.ts.map +1 -1
- package/dist/core/delegation/worker-resource-catalog.js.map +1 -1
- package/dist/core/delegation/worker-resource-materializer.d.ts.map +1 -1
- package/dist/core/delegation/worker-resource-materializer.js +1 -4
- package/dist/core/delegation/worker-resource-materializer.js.map +1 -1
- package/dist/core/delegation/worker-runner.d.ts +2 -4
- package/dist/core/delegation/worker-runner.d.ts.map +1 -1
- package/dist/core/delegation/worker-runner.js +6 -18
- package/dist/core/delegation/worker-runner.js.map +1 -1
- package/dist/core/delegation/worker-task-label.d.ts.map +1 -1
- package/dist/core/delegation/worker-task-label.js.map +1 -1
- package/dist/core/delegation/worker-terminal-finalizer.d.ts.map +1 -1
- package/dist/core/delegation/worker-terminal-finalizer.js.map +1 -1
- package/dist/core/delegation/worker-write-reservation-coordinator.d.ts.map +1 -1
- package/dist/core/delegation/worker-write-reservation-coordinator.js +1 -4
- package/dist/core/delegation/worker-write-reservation-coordinator.js.map +1 -1
- package/dist/core/delegation/worker-write-reservation.d.ts.map +1 -1
- package/dist/core/delegation/worker-write-reservation.js +0 -2
- package/dist/core/delegation/worker-write-reservation.js.map +1 -1
- package/dist/core/diagnostics.d.ts.map +1 -1
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js +26 -7
- package/dist/core/exec.js.map +1 -1
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
- package/dist/core/export-html/ansi-to-html.js +21 -74
- package/dist/core/export-html/ansi-to-html.js.map +1 -1
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.js +4 -0
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/session-tree-foundations.d.mts +67 -0
- package/dist/core/export-html/session-tree-foundations.mjs +313 -0
- package/dist/core/export-html/template.css +14 -41
- package/dist/core/export-html/template.html +3 -1
- package/dist/core/export-html/template.js +26 -435
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extension-import-authority.d.ts.map +1 -1
- package/dist/core/extension-import-authority.js.map +1 -1
- package/dist/core/extension-metadata.d.ts.map +1 -1
- package/dist/core/extension-metadata.js.map +1 -1
- package/dist/core/extensions/builtin.d.ts +17 -0
- package/dist/core/extensions/builtin.d.ts.map +1 -1
- package/dist/core/extensions/builtin.js +18 -54
- package/dist/core/extensions/builtin.js.map +1 -1
- package/dist/core/extensions/entry-resolution.d.ts +3 -0
- package/dist/core/extensions/entry-resolution.d.ts.map +1 -0
- package/dist/core/extensions/entry-resolution.js +17 -0
- package/dist/core/extensions/entry-resolution.js.map +1 -0
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +76 -21
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +2 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +41 -112
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/stale-context.d.ts.map +1 -1
- package/dist/core/extensions/storage.d.ts.map +1 -1
- package/dist/core/extensions/storage.js.map +1 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/failure-corpus.d.ts.map +1 -1
- package/dist/core/failure-corpus.js +2 -5
- package/dist/core/failure-corpus.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +27 -33
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/foreground-recovery-controller.d.ts.map +1 -1
- package/dist/core/foreground-recovery-controller.js +0 -4
- package/dist/core/foreground-recovery-controller.js.map +1 -1
- package/dist/core/gateways/channel-provider.d.ts.map +1 -1
- package/dist/core/gateways/channel-provider.js +7 -5
- package/dist/core/gateways/channel-provider.js.map +1 -1
- package/dist/core/goal-loop-controller.d.ts.map +1 -1
- package/dist/core/goal-loop-controller.js +0 -1
- package/dist/core/goal-loop-controller.js.map +1 -1
- package/dist/core/goals/compact-goal-context.d.ts.map +1 -1
- package/dist/core/goals/compact-goal-context.js +2 -4
- package/dist/core/goals/compact-goal-context.js.map +1 -1
- package/dist/core/goals/goal-acceptance.d.ts.map +1 -1
- package/dist/core/goals/goal-acceptance.js.map +1 -1
- package/dist/core/goals/goal-auto-continue-controller.d.ts.map +1 -1
- package/dist/core/goals/goal-auto-continue-controller.js +1 -3
- package/dist/core/goals/goal-auto-continue-controller.js.map +1 -1
- package/dist/core/goals/goal-continuation-controller.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-controller.js.map +1 -1
- package/dist/core/goals/goal-continuation-defaults.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-prompt.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-prompt.js.map +1 -1
- package/dist/core/goals/goal-lifecycle.d.ts.map +1 -1
- package/dist/core/goals/goal-lifecycle.js.map +1 -1
- package/dist/core/goals/goal-record.d.ts.map +1 -1
- package/dist/core/goals/goal-record.js.map +1 -1
- package/dist/core/goals/goal-runtime-snapshot.d.ts.map +1 -1
- package/dist/core/goals/goal-runtime-snapshot.js.map +1 -1
- package/dist/core/goals/goal-session-controller.d.ts +15 -0
- package/dist/core/goals/goal-session-controller.d.ts.map +1 -1
- package/dist/core/goals/goal-session-controller.js +27 -3
- package/dist/core/goals/goal-session-controller.js.map +1 -1
- package/dist/core/goals/goal-state.d.ts.map +1 -1
- package/dist/core/goals/goal-state.js +35 -51
- package/dist/core/goals/goal-state.js.map +1 -1
- package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
- package/dist/core/goals/goal-tool-core.js.map +1 -1
- package/dist/core/goals/natural-language-goal.d.ts +9 -0
- package/dist/core/goals/natural-language-goal.d.ts.map +1 -0
- package/dist/core/goals/natural-language-goal.js +23 -0
- package/dist/core/goals/natural-language-goal.js.map +1 -0
- package/dist/core/goals/session-goal-state.d.ts.map +1 -1
- package/dist/core/goals/session-goal-state.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/human-input-controller.d.ts.map +1 -1
- package/dist/core/human-input-controller.js +2 -3
- package/dist/core/human-input-controller.js.map +1 -1
- package/dist/core/human-input.d.ts.map +1 -1
- package/dist/core/human-input.js.map +1 -1
- package/dist/core/improvement-loop.d.ts.map +1 -1
- package/dist/core/improvement-loop.js +11 -11
- package/dist/core/improvement-loop.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/install-telemetry.d.ts.map +1 -1
- package/dist/core/install-telemetry.js.map +1 -1
- package/dist/core/isolated-text-completion.d.ts +17 -0
- package/dist/core/isolated-text-completion.d.ts.map +1 -0
- package/dist/core/isolated-text-completion.js +15 -0
- package/dist/core/isolated-text-completion.js.map +1 -0
- package/dist/core/keybindings.d.ts +47 -2
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +12 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/learning/learning-audit.d.ts.map +1 -1
- package/dist/core/learning/learning-audit.js.map +1 -1
- package/dist/core/learning/learning-gate.d.ts.map +1 -1
- package/dist/core/learning/learning-gate.js.map +1 -1
- package/dist/core/learning/observation-store.d.ts.map +1 -1
- package/dist/core/learning/observation-store.js +0 -2
- package/dist/core/learning/observation-store.js.map +1 -1
- package/dist/core/learning/reflection-engine.d.ts +1 -1
- package/dist/core/learning/reflection-engine.d.ts.map +1 -1
- package/dist/core/learning/reflection-engine.js +3 -0
- package/dist/core/learning/reflection-engine.js.map +1 -1
- package/dist/core/learning/reflection-turn-analysis.d.ts +20 -0
- package/dist/core/learning/reflection-turn-analysis.d.ts.map +1 -0
- package/dist/core/learning/reflection-turn-analysis.js +136 -0
- package/dist/core/learning/reflection-turn-analysis.js.map +1 -0
- package/dist/core/learning/session-learning-decision.d.ts.map +1 -1
- package/dist/core/learning/session-learning-decision.js.map +1 -1
- package/dist/core/learning/skill-curator.d.ts.map +1 -1
- package/dist/core/learning/skill-curator.js +0 -3
- package/dist/core/learning/skill-curator.js.map +1 -1
- package/dist/core/local-runtime-controller.d.ts +39 -0
- package/dist/core/local-runtime-controller.d.ts.map +1 -1
- package/dist/core/local-runtime-controller.js +41 -62
- package/dist/core/local-runtime-controller.js.map +1 -1
- package/dist/core/memory/effectiveness-tracker.d.ts.map +1 -1
- package/dist/core/memory/effectiveness-tracker.js +4 -2
- package/dist/core/memory/effectiveness-tracker.js.map +1 -1
- package/dist/core/memory/memory-manager.d.ts.map +1 -1
- package/dist/core/memory/memory-manager.js +7 -7
- package/dist/core/memory/memory-manager.js.map +1 -1
- package/dist/core/memory/memory-provider.d.ts.map +1 -1
- package/dist/core/memory/providers/file-store.d.ts +7 -0
- package/dist/core/memory/providers/file-store.d.ts.map +1 -1
- package/dist/core/memory/providers/file-store.js +48 -13
- package/dist/core/memory/providers/file-store.js.map +1 -1
- package/dist/core/memory/providers/transcript-recall-worker-protocol.d.ts +47 -0
- package/dist/core/memory/providers/transcript-recall-worker-protocol.d.ts.map +1 -0
- package/dist/core/memory/providers/transcript-recall-worker-protocol.js +50 -0
- package/dist/core/memory/providers/transcript-recall-worker-protocol.js.map +1 -0
- package/dist/core/memory/providers/transcript-recall-worker.d.ts +2 -0
- package/dist/core/memory/providers/transcript-recall-worker.d.ts.map +1 -0
- package/dist/core/memory/providers/transcript-recall-worker.js +143 -0
- package/dist/core/memory/providers/transcript-recall-worker.js.map +1 -0
- package/dist/core/memory/providers/transcript-recall.d.ts +24 -13
- package/dist/core/memory/providers/transcript-recall.d.ts.map +1 -1
- package/dist/core/memory/providers/transcript-recall.js +143 -141
- package/dist/core/memory/providers/transcript-recall.js.map +1 -1
- package/dist/core/memory/providers/user-memory-archive.d.ts +39 -0
- package/dist/core/memory/providers/user-memory-archive.d.ts.map +1 -0
- package/dist/core/memory/providers/user-memory-archive.js +258 -0
- package/dist/core/memory/providers/user-memory-archive.js.map +1 -0
- package/dist/core/memory/transcript-index.d.ts.map +1 -1
- package/dist/core/memory/transcript-index.js +1 -1
- package/dist/core/memory/transcript-index.js.map +1 -1
- package/dist/core/memory-controller.d.ts +9 -0
- package/dist/core/memory-controller.d.ts.map +1 -1
- package/dist/core/memory-controller.js +57 -16
- package/dist/core/memory-controller.js.map +1 -1
- package/dist/core/model-capability.d.ts.map +1 -1
- package/dist/core/model-capability.js.map +1 -1
- package/dist/core/model-output-json.d.ts +10 -0
- package/dist/core/model-output-json.d.ts.map +1 -0
- package/dist/core/model-output-json.js +43 -0
- package/dist/core/model-output-json.js.map +1 -0
- package/dist/core/model-registry.d.ts +8 -8
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +29 -52
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +1 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-router/config-diagnostics.d.ts.map +1 -1
- package/dist/core/model-router/config-diagnostics.js.map +1 -1
- package/dist/core/model-router/executor-route.d.ts.map +1 -1
- package/dist/core/model-router/executor-route.js.map +1 -1
- package/dist/core/model-router/fitness-gate.d.ts.map +1 -1
- package/dist/core/model-router/fitness-gate.js.map +1 -1
- package/dist/core/model-router/intent-classifier.d.ts.map +1 -1
- package/dist/core/model-router/route-judge.d.ts.map +1 -1
- package/dist/core/model-router/route-judge.js +18 -36
- package/dist/core/model-router/route-judge.js.map +1 -1
- package/dist/core/model-router/session-buffer.d.ts.map +1 -1
- package/dist/core/model-router/session-buffer.js.map +1 -1
- package/dist/core/model-router/status.d.ts.map +1 -1
- package/dist/core/model-router/status.js.map +1 -1
- package/dist/core/model-router/tool-escalation.d.ts.map +1 -1
- package/dist/core/model-router/tool-escalation.js.map +1 -1
- package/dist/core/model-router-controller.d.ts +1 -0
- package/dist/core/model-router-controller.d.ts.map +1 -1
- package/dist/core/model-router-controller.js +25 -56
- package/dist/core/model-router-controller.js.map +1 -1
- package/dist/core/model-selection-controller.d.ts +10 -0
- package/dist/core/model-selection-controller.d.ts.map +1 -1
- package/dist/core/model-selection-controller.js +0 -1
- package/dist/core/model-selection-controller.js.map +1 -1
- package/dist/core/model-tool-protocol.d.ts.map +1 -1
- package/dist/core/model-tool-protocol.js.map +1 -1
- package/dist/core/models/adaptation-store.d.ts.map +1 -1
- package/dist/core/models/adaptation-store.js +0 -1
- package/dist/core/models/adaptation-store.js.map +1 -1
- package/dist/core/models/context-sizing.d.ts.map +1 -1
- package/dist/core/models/context-sizing.js.map +1 -1
- package/dist/core/models/default-model-suggestions.d.ts.map +1 -1
- package/dist/core/models/default-model-suggestions.js.map +1 -1
- package/dist/core/models/fitness-store.d.ts.map +1 -1
- package/dist/core/models/fitness-store.js +0 -1
- package/dist/core/models/fitness-store.js.map +1 -1
- package/dist/core/models/host-state-store.d.ts.map +1 -1
- package/dist/core/models/host-state-store.js +1 -6
- package/dist/core/models/host-state-store.js.map +1 -1
- package/dist/core/models/llamacpp-runtime.d.ts +4 -19
- package/dist/core/models/llamacpp-runtime.d.ts.map +1 -1
- package/dist/core/models/llamacpp-runtime.js +32 -136
- package/dist/core/models/llamacpp-runtime.js.map +1 -1
- package/dist/core/models/local-registration.d.ts.map +1 -1
- package/dist/core/models/local-registration.js +82 -115
- package/dist/core/models/local-registration.js.map +1 -1
- package/dist/core/models/local-runtime.d.ts +12 -18
- package/dist/core/models/local-runtime.d.ts.map +1 -1
- package/dist/core/models/local-runtime.js +60 -204
- package/dist/core/models/local-runtime.js.map +1 -1
- package/dist/core/models/model-endpoint.d.ts.map +1 -1
- package/dist/core/models/model-endpoint.js.map +1 -1
- package/dist/core/models/model-ref.d.ts.map +1 -1
- package/dist/core/models/model-ref.js.map +1 -1
- package/dist/core/models/needle-runtime.d.ts +7 -3
- package/dist/core/models/needle-runtime.d.ts.map +1 -1
- package/dist/core/models/needle-runtime.js +16 -92
- package/dist/core/models/needle-runtime.js.map +1 -1
- package/dist/core/models/perf-profile.d.ts +1 -1
- package/dist/core/models/perf-profile.d.ts.map +1 -1
- package/dist/core/models/perf-profile.js +6 -13
- package/dist/core/models/perf-profile.js.map +1 -1
- package/dist/core/models/prism-llamacpp-lifecycle.d.ts.map +1 -1
- package/dist/core/models/prism-llamacpp-lifecycle.js.map +1 -1
- package/dist/core/models/runtime-arbiter.d.ts.map +1 -1
- package/dist/core/models/runtime-arbiter.js +3 -15
- package/dist/core/models/runtime-arbiter.js.map +1 -1
- package/dist/core/models/runtime-process.d.ts +100 -0
- package/dist/core/models/runtime-process.d.ts.map +1 -0
- package/dist/core/models/runtime-process.js +183 -0
- package/dist/core/models/runtime-process.js.map +1 -0
- package/dist/core/orchestration/agent-resume.d.ts.map +1 -1
- package/dist/core/orchestration/agent-resume.js.map +1 -1
- package/dist/core/orchestration/attempt-usage.d.ts.map +1 -1
- package/dist/core/orchestration/attempt-usage.js.map +1 -1
- package/dist/core/orchestration/capability-gateway.d.ts.map +1 -1
- package/dist/core/orchestration/capability-gateway.js +0 -14
- package/dist/core/orchestration/capability-gateway.js.map +1 -1
- package/dist/core/orchestration/contracts.d.ts.map +1 -1
- package/dist/core/orchestration/contracts.js.map +1 -1
- package/dist/core/orchestration/delegation-ledger.d.ts.map +1 -1
- package/dist/core/orchestration/delegation-ledger.js +0 -2
- package/dist/core/orchestration/delegation-ledger.js.map +1 -1
- package/dist/core/orchestration/event-store.d.ts.map +1 -1
- package/dist/core/orchestration/event-store.js +1 -14
- package/dist/core/orchestration/event-store.js.map +1 -1
- package/dist/core/orchestration/lane-tool-manifests.d.ts.map +1 -1
- package/dist/core/orchestration/lane-tool-manifests.js.map +1 -1
- package/dist/core/orchestration/model-binding.d.ts.map +1 -1
- package/dist/core/orchestration/model-binding.js.map +1 -1
- package/dist/core/orchestration/policy-compiler.d.ts.map +1 -1
- package/dist/core/orchestration/policy-compiler.js +0 -3
- package/dist/core/orchestration/policy-compiler.js.map +1 -1
- package/dist/core/orchestration/policy-gate.d.ts.map +1 -1
- package/dist/core/orchestration/policy-gate.js +0 -2
- package/dist/core/orchestration/policy-gate.js.map +1 -1
- package/dist/core/orchestration/profile-registry.d.ts.map +1 -1
- package/dist/core/orchestration/profile-registry.js +1 -1
- package/dist/core/orchestration/profile-registry.js.map +1 -1
- package/dist/core/orchestration/profile-store.d.ts.map +1 -1
- package/dist/core/orchestration/profile-store.js +0 -3
- package/dist/core/orchestration/profile-store.js.map +1 -1
- package/dist/core/orchestration/risk-budget.d.ts.map +1 -1
- package/dist/core/orchestration/risk-budget.js.map +1 -1
- package/dist/core/orchestration/task-runtime.d.ts +1 -0
- package/dist/core/orchestration/task-runtime.d.ts.map +1 -1
- package/dist/core/orchestration/task-runtime.js +27 -42
- package/dist/core/orchestration/task-runtime.js.map +1 -1
- package/dist/core/orchestration/work-state-projection.d.ts.map +1 -1
- package/dist/core/orchestration/work-state-projection.js.map +1 -1
- package/dist/core/orchestration/worker-execution-contract.d.ts.map +1 -1
- package/dist/core/orchestration/worker-execution-contract.js.map +1 -1
- package/dist/core/orchestration/worker-result-adapter.d.ts.map +1 -1
- package/dist/core/orchestration/worker-result-adapter.js.map +1 -1
- package/dist/core/output-guard.d.ts.map +1 -1
- package/dist/core/output-guard.js.map +1 -1
- package/dist/core/package-manager.d.ts +3 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +88 -353
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/process-identity.d.ts.map +1 -1
- package/dist/core/process-identity.js.map +1 -1
- package/dist/core/process-liveness.d.ts +3 -0
- package/dist/core/process-liveness.d.ts.map +1 -0
- package/dist/core/process-liveness.js +17 -0
- package/dist/core/process-liveness.js.map +1 -0
- package/dist/core/process-matrix/codes.d.ts.map +1 -1
- package/dist/core/process-matrix/resume-launcher.d.ts.map +1 -1
- package/dist/core/process-matrix/resume-launcher.js.map +1 -1
- package/dist/core/process-matrix/runtime.d.ts.map +1 -1
- package/dist/core/process-matrix/runtime.js.map +1 -1
- package/dist/core/process-matrix/store.d.ts.map +1 -1
- package/dist/core/process-matrix/store.js.map +1 -1
- package/dist/core/process-matrix/supervisor.d.ts.map +1 -1
- package/dist/core/process-matrix/supervisor.js.map +1 -1
- package/dist/core/profile-filter-controller.d.ts.map +1 -1
- package/dist/core/profile-filter-controller.js +7 -8
- package/dist/core/profile-filter-controller.js.map +1 -1
- package/dist/core/profile-registry.d.ts.map +1 -1
- package/dist/core/profile-registry.js +1 -2
- package/dist/core/profile-registry.js.map +1 -1
- package/dist/core/profile-resource-selection.d.ts.map +1 -1
- package/dist/core/profile-resource-selection.js +18 -59
- package/dist/core/profile-resource-selection.js.map +1 -1
- package/dist/core/prompt-markup.d.ts +3 -0
- package/dist/core/prompt-markup.d.ts.map +1 -0
- package/dist/core/prompt-markup.js +7 -0
- package/dist/core/prompt-markup.js.map +1 -0
- package/dist/core/prompt-templates.d.ts.map +1 -1
- package/dist/core/prompt-templates.js +13 -39
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/provider-display-names.d.ts.map +1 -1
- package/dist/core/python-runtime.d.ts.map +1 -1
- package/dist/core/python-runtime.js.map +1 -1
- package/dist/core/reflection-controller.d.ts +22 -1
- package/dist/core/reflection-controller.d.ts.map +1 -1
- package/dist/core/reflection-controller.js +143 -25
- package/dist/core/reflection-controller.js.map +1 -1
- package/dist/core/reload-blockers.d.ts +2 -1
- package/dist/core/reload-blockers.d.ts.map +1 -1
- package/dist/core/reload-blockers.js +4 -14
- package/dist/core/reload-blockers.js.map +1 -1
- package/dist/core/request-auth.d.ts.map +1 -1
- package/dist/core/request-auth.js.map +1 -1
- package/dist/core/research/automata-provider.d.ts.map +1 -1
- package/dist/core/research/automata-provider.js.map +1 -1
- package/dist/core/research/evidence-bundle.d.ts.map +1 -1
- package/dist/core/research/evidence-bundle.js.map +1 -1
- package/dist/core/research/lane-model-resolver.d.ts.map +1 -1
- package/dist/core/research/lane-model-resolver.js +0 -1
- package/dist/core/research/lane-model-resolver.js.map +1 -1
- package/dist/core/research/model-fitness-controller.d.ts.map +1 -1
- package/dist/core/research/model-fitness-controller.js +17 -33
- package/dist/core/research/model-fitness-controller.js.map +1 -1
- package/dist/core/research/model-fitness.d.ts.map +1 -1
- package/dist/core/research/model-fitness.js +4 -25
- package/dist/core/research/model-fitness.js.map +1 -1
- package/dist/core/research/research-gate.d.ts.map +1 -1
- package/dist/core/research/research-gate.js.map +1 -1
- package/dist/core/research/research-lane-controller.d.ts.map +1 -1
- package/dist/core/research/research-lane-controller.js +5 -10
- package/dist/core/research/research-lane-controller.js.map +1 -1
- package/dist/core/research/research-runner.d.ts +2 -4
- package/dist/core/research/research-runner.d.ts.map +1 -1
- package/dist/core/research/research-runner.js +17 -48
- package/dist/core/research/research-runner.js.map +1 -1
- package/dist/core/research/session-evidence-bundle.d.ts.map +1 -1
- package/dist/core/research/session-evidence-bundle.js.map +1 -1
- package/dist/core/research/workspace-collector.d.ts.map +1 -1
- package/dist/core/research/workspace-collector.js.map +1 -1
- package/dist/core/resolve-config-value.d.ts.map +1 -1
- package/dist/core/resolve-config-value.js.map +1 -1
- package/dist/core/resource-ignore.d.ts +6 -0
- package/dist/core/resource-ignore.d.ts.map +1 -0
- package/dist/core/resource-ignore.js +44 -0
- package/dist/core/resource-ignore.js.map +1 -0
- package/dist/core/resource-loader.d.ts +0 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +52 -187
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/resource-profile-blocks.d.ts +3 -1
- package/dist/core/resource-profile-blocks.d.ts.map +1 -1
- package/dist/core/resource-profile-blocks.js +8 -5
- package/dist/core/resource-profile-blocks.js.map +1 -1
- package/dist/core/resource-profile-equality.d.ts.map +1 -1
- package/dist/core/resource-profile-equality.js.map +1 -1
- package/dist/core/resource-traversal.d.ts +43 -0
- package/dist/core/resource-traversal.d.ts.map +1 -0
- package/dist/core/resource-traversal.js +84 -0
- package/dist/core/resource-traversal.js.map +1 -0
- package/dist/core/risk-classifier.d.ts.map +1 -1
- package/dist/core/risk-classifier.js.map +1 -1
- package/dist/core/runtime-builder.d.ts +4 -1
- package/dist/core/runtime-builder.d.ts.map +1 -1
- package/dist/core/runtime-builder.js +25 -50
- package/dist/core/runtime-builder.js.map +1 -1
- package/dist/core/scout-controller.d.ts.map +1 -1
- package/dist/core/scout-controller.js +0 -1
- package/dist/core/scout-controller.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/secrets/credential-exposure-guard.d.ts.map +1 -1
- package/dist/core/secrets/credential-exposure-guard.js +70 -44
- package/dist/core/secrets/credential-exposure-guard.js.map +1 -1
- package/dist/core/secrets/secret-dotenv.d.ts.map +1 -1
- package/dist/core/secrets/secret-dotenv.js +0 -1
- package/dist/core/secrets/secret-dotenv.js.map +1 -1
- package/dist/core/secrets/secret-vault-format.d.ts.map +1 -1
- package/dist/core/secrets/secret-vault-format.js +0 -1
- package/dist/core/secrets/secret-vault-format.js.map +1 -1
- package/dist/core/secrets/secret-vault.d.ts.map +1 -1
- package/dist/core/secrets/secret-vault.js +2 -10
- package/dist/core/secrets/secret-vault.js.map +1 -1
- package/dist/core/security/secret-text.d.ts.map +1 -1
- package/dist/core/security/secret-text.js.map +1 -1
- package/dist/core/security/untrusted-boundary.d.ts.map +1 -1
- package/dist/core/security/untrusted-boundary.js.map +1 -1
- package/dist/core/session-analytics.d.ts.map +1 -1
- package/dist/core/session-analytics.js +18 -50
- package/dist/core/session-analytics.js.map +1 -1
- package/dist/core/session-artifact-bundle.d.ts.map +1 -1
- package/dist/core/session-artifact-bundle.js.map +1 -1
- package/dist/core/session-cwd.d.ts.map +1 -1
- package/dist/core/session-cwd.js +0 -1
- package/dist/core/session-cwd.js.map +1 -1
- package/dist/core/session-entry-index.d.ts +8 -0
- package/dist/core/session-entry-index.d.ts.map +1 -0
- package/dist/core/session-entry-index.js +16 -0
- package/dist/core/session-entry-index.js.map +1 -0
- package/dist/core/session-image-store.d.ts.map +1 -1
- package/dist/core/session-image-store.js +0 -3
- package/dist/core/session-image-store.js.map +1 -1
- package/dist/core/session-jsonl-writer.d.ts +3 -0
- package/dist/core/session-jsonl-writer.d.ts.map +1 -0
- package/dist/core/session-jsonl-writer.js +38 -0
- package/dist/core/session-jsonl-writer.js.map +1 -0
- package/dist/core/session-manager-factory.d.ts.map +1 -1
- package/dist/core/session-manager-factory.js.map +1 -1
- package/dist/core/session-role.d.ts.map +1 -1
- package/dist/core/session-role.js.map +1 -1
- package/dist/core/session-snapshot.d.ts.map +1 -1
- package/dist/core/session-snapshot.js.map +1 -1
- package/dist/core/session-supervision-runtime.d.ts.map +1 -1
- package/dist/core/session-supervision-runtime.js +1 -4
- package/dist/core/session-supervision-runtime.js.map +1 -1
- package/dist/core/session-tree-navigator.d.ts.map +1 -1
- package/dist/core/session-tree-navigator.js +0 -1
- package/dist/core/session-tree-navigator.js.map +1 -1
- package/dist/core/settings-manager.d.ts +2 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +64 -162
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skill-block.d.mts +8 -0
- package/dist/core/skill-block.mjs +52 -0
- package/dist/core/skill-discovery.d.ts +5 -0
- package/dist/core/skill-discovery.d.ts.map +1 -0
- package/dist/core/skill-discovery.js +34 -0
- package/dist/core/skill-discovery.js.map +1 -0
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +23 -159
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/source-info.d.ts.map +1 -1
- package/dist/core/source-info.js.map +1 -1
- package/dist/core/spawned-usage.d.ts +21 -0
- package/dist/core/spawned-usage.d.ts.map +1 -0
- package/dist/core/spawned-usage.js +29 -0
- package/dist/core/spawned-usage.js.map +1 -0
- package/dist/core/system-prompt-builder.d.ts +4 -0
- package/dist/core/system-prompt-builder.d.ts.map +1 -1
- package/dist/core/system-prompt-builder.js +15 -8
- package/dist/core/system-prompt-builder.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +52 -35
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tasks/session-task-state.d.ts.map +1 -1
- package/dist/core/tasks/session-task-state.js.map +1 -1
- package/dist/core/tasks/task-command.d.ts.map +1 -1
- package/dist/core/tasks/task-command.js.map +1 -1
- package/dist/core/tasks/task-contract-monitor.d.ts.map +1 -1
- package/dist/core/tasks/task-contract-monitor.js.map +1 -1
- package/dist/core/tasks/task-projection.d.ts.map +1 -1
- package/dist/core/tasks/task-projection.js.map +1 -1
- package/dist/core/tasks/task-state.d.ts.map +1 -1
- package/dist/core/tasks/task-state.js.map +1 -1
- package/dist/core/text-preview.d.ts +4 -0
- package/dist/core/text-preview.d.ts.map +1 -0
- package/dist/core/text-preview.js +33 -0
- package/dist/core/text-preview.js.map +1 -0
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tool-capability-policy.d.ts.map +1 -1
- package/dist/core/tool-capability-policy.js.map +1 -1
- package/dist/core/tool-gate-controller.d.ts.map +1 -1
- package/dist/core/tool-gate-controller.js +86 -87
- package/dist/core/tool-gate-controller.js.map +1 -1
- package/dist/core/tool-protocol-controller.d.ts +4 -1
- package/dist/core/tool-protocol-controller.d.ts.map +1 -1
- package/dist/core/tool-protocol-controller.js +19 -23
- package/dist/core/tool-protocol-controller.js.map +1 -1
- package/dist/core/tool-recovery-log-records.d.ts.map +1 -1
- package/dist/core/tool-recovery-log-records.js.map +1 -1
- package/dist/core/tool-recovery-log-worker.d.ts.map +1 -1
- package/dist/core/tool-recovery-log-worker.js.map +1 -1
- package/dist/core/tool-recovery-logger.d.ts.map +1 -1
- package/dist/core/tool-recovery-logger.js +12 -24
- package/dist/core/tool-recovery-logger.js.map +1 -1
- package/dist/core/tool-recovery-stats.d.ts.map +1 -1
- package/dist/core/tool-recovery-stats.js +16 -22
- package/dist/core/tool-recovery-stats.js.map +1 -1
- package/dist/core/tool-repair-health.d.ts.map +1 -1
- package/dist/core/tool-repair-health.js.map +1 -1
- package/dist/core/tool-repair-settings.d.ts.map +1 -1
- package/dist/core/tool-repair-settings.js.map +1 -1
- package/dist/core/tool-selection/expected-utility.d.ts.map +1 -1
- package/dist/core/tool-selection/expected-utility.js.map +1 -1
- package/dist/core/tool-selection/promotion.d.ts.map +1 -1
- package/dist/core/tool-selection/promotion.js.map +1 -1
- package/dist/core/tool-selection/tool-performance-store.d.ts +2 -0
- package/dist/core/tool-selection/tool-performance-store.d.ts.map +1 -1
- package/dist/core/tool-selection/tool-performance-store.js +49 -7
- package/dist/core/tool-selection/tool-performance-store.js.map +1 -1
- package/dist/core/tool-selection/tool-phase-timing.d.ts +19 -0
- package/dist/core/tool-selection/tool-phase-timing.d.ts.map +1 -0
- package/dist/core/tool-selection/tool-phase-timing.js +63 -0
- package/dist/core/tool-selection/tool-phase-timing.js.map +1 -0
- package/dist/core/tool-selection/tool-selection-controller.d.ts +2 -5
- package/dist/core/tool-selection/tool-selection-controller.d.ts.map +1 -1
- package/dist/core/tool-selection/tool-selection-controller.js +50 -30
- package/dist/core/tool-selection/tool-selection-controller.js.map +1 -1
- package/dist/core/toolkit/reflex-interpreter.d.ts +16 -0
- package/dist/core/toolkit/reflex-interpreter.d.ts.map +1 -1
- package/dist/core/toolkit/reflex-interpreter.js +21 -0
- package/dist/core/toolkit/reflex-interpreter.js.map +1 -1
- package/dist/core/toolkit/script-registry.d.ts.map +1 -1
- package/dist/core/toolkit/script-registry.js.map +1 -1
- package/dist/core/toolkit/script-runner.d.ts.map +1 -1
- package/dist/core/toolkit/script-runner.js.map +1 -1
- package/dist/core/tools/artifact-retrieve.d.ts.map +1 -1
- package/dist/core/tools/artifact-retrieve.js.map +1 -1
- package/dist/core/tools/ask-question.d.ts +2 -3
- package/dist/core/tools/ask-question.d.ts.map +1 -1
- package/dist/core/tools/ask-question.js +14 -40
- package/dist/core/tools/ask-question.js.map +1 -1
- package/dist/core/tools/bash.d.ts +2 -0
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +83 -30
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/context-scout.d.ts.map +1 -1
- package/dist/core/tools/context-scout.js.map +1 -1
- package/dist/core/tools/delegate-status.d.ts.map +1 -1
- package/dist/core/tools/delegate-status.js +9 -7
- package/dist/core/tools/delegate-status.js.map +1 -1
- package/dist/core/tools/delegate.d.ts.map +1 -1
- package/dist/core/tools/delegate.js +6 -6
- package/dist/core/tools/delegate.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/extensionify.d.ts.map +1 -1
- package/dist/core/tools/extensionify.js.map +1 -1
- package/dist/core/tools/fff-search-backend.d.ts +19 -0
- package/dist/core/tools/fff-search-backend.d.ts.map +1 -1
- package/dist/core/tools/fff-search-backend.js +28 -2
- package/dist/core/tools/fff-search-backend.js.map +1 -1
- package/dist/core/tools/file-encoding-policy.d.ts.map +1 -1
- package/dist/core/tools/file-encoding-policy.js.map +1 -1
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
- package/dist/core/tools/file-mutation-queue.js.map +1 -1
- package/dist/core/tools/find.d.ts +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +44 -108
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/git-filter.d.ts.map +1 -1
- package/dist/core/tools/git-filter.js.map +1 -1
- package/dist/core/tools/goal.d.ts.map +1 -1
- package/dist/core/tools/goal.js +7 -7
- package/dist/core/tools/goal.js.map +1 -1
- package/dist/core/tools/grep.d.ts +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +42 -102
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +20 -36
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/model-fitness.d.ts.map +1 -1
- package/dist/core/tools/model-fitness.js.map +1 -1
- package/dist/core/tools/orchestration-panel.d.ts +5 -0
- package/dist/core/tools/orchestration-panel.d.ts.map +1 -1
- package/dist/core/tools/orchestration-panel.js +5 -5
- package/dist/core/tools/orchestration-panel.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +2 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +24 -36
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/path-utils.d.ts.map +1 -1
- package/dist/core/tools/path-utils.js.map +1 -1
- package/dist/core/tools/persistent-process-coordinator.d.ts +31 -0
- package/dist/core/tools/persistent-process-coordinator.d.ts.map +1 -0
- package/dist/core/tools/persistent-process-coordinator.js +123 -0
- package/dist/core/tools/persistent-process-coordinator.js.map +1 -0
- package/dist/core/tools/python.d.ts.map +1 -1
- package/dist/core/tools/python.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +14 -13
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts +29 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js +31 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/run-process.d.ts.map +1 -1
- package/dist/core/tools/run-process.js.map +1 -1
- package/dist/core/tools/run-toolkit-script.d.ts.map +1 -1
- package/dist/core/tools/run-toolkit-script.js.map +1 -1
- package/dist/core/tools/search-command-guard.d.ts +10 -0
- package/dist/core/tools/search-command-guard.d.ts.map +1 -1
- package/dist/core/tools/search-command-guard.js +118 -31
- package/dist/core/tools/search-command-guard.js.map +1 -1
- package/dist/core/tools/search-router.d.ts.map +1 -1
- package/dist/core/tools/search-router.js.map +1 -1
- package/dist/core/tools/search-tool-runtime.d.ts +19 -0
- package/dist/core/tools/search-tool-runtime.d.ts.map +1 -0
- package/dist/core/tools/search-tool-runtime.js +12 -0
- package/dist/core/tools/search-tool-runtime.js.map +1 -0
- package/dist/core/tools/secret-store.d.ts.map +1 -1
- package/dist/core/tools/secret-store.js.map +1 -1
- package/dist/core/tools/shell-command-parser.d.ts.map +1 -1
- package/dist/core/tools/shell-command-parser.js.map +1 -1
- package/dist/core/tools/shell-contract-router.d.ts.map +1 -1
- package/dist/core/tools/shell-contract-router.js +4 -1
- package/dist/core/tools/shell-contract-router.js.map +1 -1
- package/dist/core/tools/shell-execution-session.d.ts +4 -0
- package/dist/core/tools/shell-execution-session.d.ts.map +1 -0
- package/dist/core/tools/shell-execution-session.js +11 -0
- package/dist/core/tools/shell-execution-session.js.map +1 -0
- package/dist/core/tools/shell-output-projection.d.ts +49 -0
- package/dist/core/tools/shell-output-projection.d.ts.map +1 -0
- package/dist/core/tools/shell-output-projection.js +381 -0
- package/dist/core/tools/shell-output-projection.js.map +1 -0
- package/dist/core/tools/shell-session.d.ts +2 -13
- package/dist/core/tools/shell-session.d.ts.map +1 -1
- package/dist/core/tools/shell-session.js +36 -136
- package/dist/core/tools/shell-session.js.map +1 -1
- package/dist/core/tools/skill-audit.d.ts.map +1 -1
- package/dist/core/tools/skill-audit.js.map +1 -1
- package/dist/core/tools/skillify.d.ts.map +1 -1
- package/dist/core/tools/skillify.js.map +1 -1
- package/dist/core/tools/task-steps.d.ts +8 -8
- package/dist/core/tools/task-steps.d.ts.map +1 -1
- package/dist/core/tools/task-steps.js +17 -18
- package/dist/core/tools/task-steps.js.map +1 -1
- package/dist/core/tools/tmux-dispatch.d.ts.map +1 -1
- package/dist/core/tools/tmux-dispatch.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/tools/tool-task.d.ts +23 -0
- package/dist/core/tools/tool-task.d.ts.map +1 -0
- package/dist/core/tools/tool-task.js +93 -0
- package/dist/core/tools/tool-task.js.map +1 -0
- package/dist/core/tools/windows-shell-engine.d.ts +17 -11
- package/dist/core/tools/windows-shell-engine.d.ts.map +1 -1
- package/dist/core/tools/windows-shell-engine.js +339 -117
- package/dist/core/tools/windows-shell-engine.js.map +1 -1
- package/dist/core/tools/windows-shell-state.d.ts.map +1 -1
- package/dist/core/tools/windows-shell-state.js.map +1 -1
- package/dist/core/tools/worktree-sync.d.ts.map +1 -1
- package/dist/core/tools/worktree-sync.js +8 -12
- package/dist/core/tools/worktree-sync.js.map +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +0 -1
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +7 -40
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/core/util/atomic-file.d.ts +19 -0
- package/dist/core/util/atomic-file.d.ts.map +1 -1
- package/dist/core/util/atomic-file.js +50 -15
- package/dist/core/util/atomic-file.js.map +1 -1
- package/dist/core/util/bounded-file.d.ts.map +1 -1
- package/dist/core/util/bounded-file.js.map +1 -1
- package/dist/core/util/bounded-jsonl.d.ts.map +1 -1
- package/dist/core/util/bounded-jsonl.js +2 -9
- package/dist/core/util/bounded-jsonl.js.map +1 -1
- package/dist/core/util/bounded-value.d.ts.map +1 -1
- package/dist/core/util/bounded-value.js.map +1 -1
- package/dist/core/util/json-size.d.ts +3 -0
- package/dist/core/util/json-size.d.ts.map +1 -0
- package/dist/core/util/json-size.js +95 -0
- package/dist/core/util/json-size.js.map +1 -0
- package/dist/core/util/minimatch-cache.d.ts.map +1 -1
- package/dist/core/util/minimatch-cache.js.map +1 -1
- package/dist/core/util/value-guards.d.ts.map +1 -1
- package/dist/core/util/value-guards.js.map +1 -1
- package/dist/core/worktree-sync/codes.d.ts.map +1 -1
- package/dist/core/worktree-sync/git-engine.d.ts.map +1 -1
- package/dist/core/worktree-sync/git-engine.js +20 -36
- package/dist/core/worktree-sync/git-engine.js.map +1 -1
- package/dist/core/worktree-sync/lane-gate.d.ts.map +1 -1
- package/dist/core/worktree-sync/lane-gate.js +1 -4
- package/dist/core/worktree-sync/lane-gate.js.map +1 -1
- package/dist/core/worktree-sync/runtime.d.ts.map +1 -1
- package/dist/core/worktree-sync/runtime.js.map +1 -1
- package/dist/core/worktree-sync/store.d.ts.map +1 -1
- package/dist/core/worktree-sync/store.js.map +1 -1
- package/dist/core/worktree-sync/watcher.d.ts.map +1 -1
- package/dist/core/worktree-sync/watcher.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +10 -32
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +6 -19
- package/dist/migrations.js.map +1 -1
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/interactive/auth-dialogs-controller.d.ts +3 -0
- package/dist/modes/interactive/auth-dialogs-controller.d.ts.map +1 -1
- package/dist/modes/interactive/auth-dialogs-controller.js +96 -132
- package/dist/modes/interactive/auth-dialogs-controller.js.map +1 -1
- package/dist/modes/interactive/auto-learn-controller.d.ts +1 -31
- package/dist/modes/interactive/auto-learn-controller.d.ts.map +1 -1
- package/dist/modes/interactive/auto-learn-controller.js +86 -307
- package/dist/modes/interactive/auto-learn-controller.js.map +1 -1
- package/dist/modes/interactive/autocomplete-provider.d.ts.map +1 -1
- package/dist/modes/interactive/autocomplete-provider.js.map +1 -1
- package/dist/modes/interactive/autonomy-commands.d.ts.map +1 -1
- package/dist/modes/interactive/autonomy-commands.js +2 -8
- package/dist/modes/interactive/autonomy-commands.js.map +1 -1
- package/dist/modes/interactive/clipboard-input.d.ts +5 -1
- package/dist/modes/interactive/clipboard-input.d.ts.map +1 -1
- package/dist/modes/interactive/clipboard-input.js +17 -0
- package/dist/modes/interactive/clipboard-input.js.map +1 -1
- package/dist/modes/interactive/compaction-queue.d.ts.map +1 -1
- package/dist/modes/interactive/compaction-queue.js +13 -18
- package/dist/modes/interactive/compaction-queue.js.map +1 -1
- package/dist/modes/interactive/components/activity-lane.d.ts.map +1 -1
- package/dist/modes/interactive/components/activity-lane.js +6 -10
- package/dist/modes/interactive/components/activity-lane.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts +1 -0
- package/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/dist/modes/interactive/components/armin.js +10 -21
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +1 -6
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +4 -9
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js +0 -3
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts +3 -8
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +13 -35
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +3 -8
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +14 -36
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts +1 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +20 -43
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.js +0 -5
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +2 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +4 -8
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +1 -6
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/dist/modes/interactive/components/daxnuts.js +6 -8
- package/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/dist/modes/interactive/components/diff.d.ts.map +1 -1
- package/dist/modes/interactive/components/diff.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js +0 -1
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/dist/modes/interactive/components/expandable-markdown-message.d.ts +21 -0
- package/dist/modes/interactive/components/expandable-markdown-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/expandable-markdown-message.js +48 -0
- package/dist/modes/interactive/components/expandable-markdown-message.js.map +1 -0
- package/dist/modes/interactive/components/expandable-text.d.ts.map +1 -1
- package/dist/modes/interactive/components/expandable-text.js +0 -2
- package/dist/modes/interactive/components/expandable-text.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +1 -9
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js +2 -8
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +5 -20
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/fitness-role-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/fitness-role-selector.js +0 -1
- package/dist/modes/interactive/components/fitness-role-selector.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +1 -5
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +4 -10
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +2 -2
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +21 -44
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/model-suggestion-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-suggestion-selector.js +0 -1
- package/dist/modes/interactive/components/model-suggestion-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +16 -32
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/profile-resource-editor.d.ts +3 -4
- package/dist/modes/interactive/components/profile-resource-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/profile-resource-editor.js +34 -93
- package/dist/modes/interactive/components/profile-resource-editor.js.map +1 -1
- package/dist/modes/interactive/components/profile-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/profile-selector.js +0 -1
- package/dist/modes/interactive/components/profile-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +3 -4
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +34 -79
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/selector-list.d.ts +63 -0
- package/dist/modes/interactive/components/selector-list.d.ts.map +1 -0
- package/dist/modes/interactive/components/selector-list.js +186 -0
- package/dist/modes/interactive/components/selector-list.js.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +34 -59
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +40 -138
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts +2 -4
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js +9 -28
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +3 -8
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +12 -40
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts +2 -5
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +11 -37
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts +2 -4
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +9 -31
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +9 -28
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-group.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-group.js +2 -3
- package/dist/modes/interactive/components/tool-group.js.map +1 -1
- package/dist/modes/interactive/components/tool-panel-registry.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-panel-registry.js +5 -3
- package/dist/modes/interactive/components/tool-panel-registry.js.map +1 -1
- package/dist/modes/interactive/components/tool-title.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-title.js +0 -4
- package/dist/modes/interactive/components/tool-title.js.map +1 -1
- package/dist/modes/interactive/components/transcript-pager.d.ts +26 -0
- package/dist/modes/interactive/components/transcript-pager.d.ts.map +1 -0
- package/dist/modes/interactive/components/transcript-pager.js +81 -0
- package/dist/modes/interactive/components/transcript-pager.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +1 -12
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +42 -402
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/trust-selector.js +4 -16
- package/dist/modes/interactive/components/trust-selector.js.map +1 -1
- package/dist/modes/interactive/components/usage-action-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/usage-action-selector.js +2 -10
- package/dist/modes/interactive/components/usage-action-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js +3 -6
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +0 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/config-backup.d.ts.map +1 -1
- package/dist/modes/interactive/config-backup.js.map +1 -1
- package/dist/modes/interactive/editor-overlay-host.d.ts.map +1 -1
- package/dist/modes/interactive/editor-overlay-host.js +0 -3
- package/dist/modes/interactive/editor-overlay-host.js.map +1 -1
- package/dist/modes/interactive/extension-ui-host.d.ts +2 -0
- package/dist/modes/interactive/extension-ui-host.d.ts.map +1 -1
- package/dist/modes/interactive/extension-ui-host.js +51 -72
- package/dist/modes/interactive/extension-ui-host.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +2 -15
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/history-reload-math.d.ts.map +1 -1
- package/dist/modes/interactive/history-reload-math.js.map +1 -1
- package/dist/modes/interactive/interactive-event-controller.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-event-controller.js +23 -16
- package/dist/modes/interactive/interactive-event-controller.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +13 -4
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +123 -204
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/interactive-selection-prompts.d.ts +20 -0
- package/dist/modes/interactive/interactive-selection-prompts.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-selection-prompts.js +43 -0
- package/dist/modes/interactive/interactive-selection-prompts.js.map +1 -0
- package/dist/modes/interactive/key-handlers.d.ts +2 -1
- package/dist/modes/interactive/key-handlers.d.ts.map +1 -1
- package/dist/modes/interactive/key-handlers.js +4 -2
- package/dist/modes/interactive/key-handlers.js.map +1 -1
- package/dist/modes/interactive/loaded-resources-view.d.ts.map +1 -1
- package/dist/modes/interactive/loaded-resources-view.js.map +1 -1
- package/dist/modes/interactive/local-model-commands.d.ts.map +1 -1
- package/dist/modes/interactive/local-model-commands.js +4 -9
- package/dist/modes/interactive/local-model-commands.js.map +1 -1
- package/dist/modes/interactive/model-fitness-presentation.d.ts +21 -0
- package/dist/modes/interactive/model-fitness-presentation.d.ts.map +1 -0
- package/dist/modes/interactive/model-fitness-presentation.js +13 -0
- package/dist/modes/interactive/model-fitness-presentation.js.map +1 -0
- package/dist/modes/interactive/profile-menu-controller.d.ts +2 -0
- package/dist/modes/interactive/profile-menu-controller.d.ts.map +1 -1
- package/dist/modes/interactive/profile-menu-controller.js +79 -171
- package/dist/modes/interactive/profile-menu-controller.js.map +1 -1
- package/dist/modes/interactive/report-commands.d.ts +2 -0
- package/dist/modes/interactive/report-commands.d.ts.map +1 -1
- package/dist/modes/interactive/report-commands.js +12 -6
- package/dist/modes/interactive/report-commands.js.map +1 -1
- package/dist/modes/interactive/resource-display.d.ts.map +1 -1
- package/dist/modes/interactive/resource-display.js.map +1 -1
- package/dist/modes/interactive/resource-shell-commands.d.ts.map +1 -1
- package/dist/modes/interactive/resource-shell-commands.js +6 -23
- package/dist/modes/interactive/resource-shell-commands.js.map +1 -1
- package/dist/modes/interactive/session-flow-commands.d.ts.map +1 -1
- package/dist/modes/interactive/session-flow-commands.js +21 -25
- package/dist/modes/interactive/session-flow-commands.js.map +1 -1
- package/dist/modes/interactive/session-io-commands.d.ts.map +1 -1
- package/dist/modes/interactive/session-io-commands.js.map +1 -1
- package/dist/modes/interactive/session-replacement-errors.d.ts.map +1 -1
- package/dist/modes/interactive/session-replacement-errors.js.map +1 -1
- package/dist/modes/interactive/settings-selector-flow.d.ts.map +1 -1
- package/dist/modes/interactive/settings-selector-flow.js.map +1 -1
- package/dist/modes/interactive/signal-lifecycle.d.ts.map +1 -1
- package/dist/modes/interactive/signal-lifecycle.js.map +1 -1
- package/dist/modes/interactive/startup-checks.d.ts.map +1 -1
- package/dist/modes/interactive/startup-checks.js +12 -8
- package/dist/modes/interactive/startup-checks.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +10 -76
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/interactive/usage-commands.d.ts.map +1 -1
- package/dist/modes/interactive/usage-commands.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +5 -22
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/jsonl.d.ts.map +1 -1
- package/dist/modes/rpc/jsonl.js +1 -1
- package/dist/modes/rpc/jsonl.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +7 -8
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +5 -20
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/modes/termination-signals.d.ts +4 -0
- package/dist/modes/termination-signals.d.ts.map +1 -0
- package/dist/modes/termination-signals.js +21 -0
- package/dist/modes/termination-signals.js.map +1 -0
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/ansi-colors.d.ts +5 -0
- package/dist/utils/ansi-colors.d.ts.map +1 -0
- package/dist/utils/ansi-colors.js +38 -0
- package/dist/utils/ansi-colors.js.map +1 -0
- package/dist/utils/ansi.d.ts.map +1 -1
- package/dist/utils/ansi.js.map +1 -1
- package/dist/utils/changelog.d.ts.map +1 -1
- package/dist/utils/changelog.js.map +1 -1
- package/dist/utils/child-process.d.ts.map +1 -1
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard-native.d.ts.map +1 -1
- package/dist/utils/clipboard-native.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/deprecation.d.ts.map +1 -1
- package/dist/utils/deprecation.js.map +1 -1
- package/dist/utils/exif-orientation.d.ts.map +1 -1
- package/dist/utils/exif-orientation.js.map +1 -1
- package/dist/utils/external-editor-command.d.ts.map +1 -1
- package/dist/utils/external-editor-command.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/fs-watch.d.ts.map +1 -1
- package/dist/utils/fs-watch.js.map +1 -1
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +20 -28
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/highlight-js-languages.d.ts.map +1 -1
- package/dist/utils/html.d.ts.map +1 -1
- package/dist/utils/html.js.map +1 -1
- package/dist/utils/image-convert.d.ts.map +1 -1
- package/dist/utils/image-convert.js.map +1 -1
- package/dist/utils/image-resize-core.d.ts.map +1 -1
- package/dist/utils/image-resize-core.js.map +1 -1
- package/dist/utils/image-resize-worker.d.ts.map +1 -1
- package/dist/utils/image-resize-worker.js.map +1 -1
- package/dist/utils/image-resize.d.ts.map +1 -1
- package/dist/utils/image-resize.js.map +1 -1
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js.map +1 -1
- package/dist/utils/open-browser.d.ts.map +1 -1
- package/dist/utils/open-browser.js.map +1 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/photon.d.ts.map +1 -1
- package/dist/utils/photon.js.map +1 -1
- package/dist/utils/pi-user-agent.d.ts.map +1 -1
- package/dist/utils/pi-user-agent.js.map +1 -1
- package/dist/utils/platform.d.ts.map +1 -1
- package/dist/utils/platform.js.map +1 -1
- package/dist/utils/process-memory.d.ts.map +1 -1
- package/dist/utils/process-memory.js.map +1 -1
- package/dist/utils/safe-write-stream.d.ts.map +1 -1
- package/dist/utils/safe-write-stream.js.map +1 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/sleep.d.ts.map +1 -1
- package/dist/utils/sleep.js +2 -15
- package/dist/utils/sleep.js.map +1 -1
- package/dist/utils/stdin-events.d.ts +8 -0
- package/dist/utils/stdin-events.d.ts.map +1 -0
- package/dist/utils/stdin-events.js +19 -0
- package/dist/utils/stdin-events.js.map +1 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/dist/utils/syntax-highlight.js +20 -13
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js.map +1 -1
- package/dist/utils/windows-self-update.d.ts.map +1 -1
- package/dist/utils/windows-self-update.js.map +1 -1
- package/dist/utils/work-directory.d.ts.map +1 -1
- package/dist/utils/work-directory.js.map +1 -1
- package/docs/compaction.md +11 -3
- package/docs/sessions.md +6 -0
- package/docs/settings.md +1 -1
- package/docs/windows.md +26 -1
- package/docs/work-directory.md +9 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +16 -16
- package/package.json +10 -10
- package/dist/utils/streaming-lines.d.ts +0 -20
- package/dist/utils/streaming-lines.d.ts.map +0 -1
- package/dist/utils/streaming-lines.js +0 -79
- package/dist/utils/streaming-lines.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-runtime.js","sourceRoot":"","sources":["../../../src/core/orchestration/task-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { isDeepStrictEqual } from \"node:util\";\nimport type { JsonObject } from \"../autonomy/contracts.ts\";\nimport { createAgentIdentity } from \"./agent-resume.ts\";\nimport { validateAttemptUsageSnapshot } from \"./attempt-usage.ts\";\nimport {\n\ttype AcceptanceCriterion,\n\ttype AgentBindingContract,\n\ttype AgentIdentityContract,\n\ttype AgentResumeContext,\n\ttype AppendOrchestrationEventInput,\n\ttype ApprovalOutcome,\n\ttype ApprovalRequestContract,\n\ttype ApprovalResolutionContract,\n\ttype AttemptCheckpoint,\n\ttype AttemptLease,\n\ttype AttemptStatus,\n\ttype EvidenceContract,\n\ttype ExecutionGrant,\n\tisHarnessCapability,\n\tMAX_ORCHESTRATION_COLLECTION_LENGTH,\n\tMAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH,\n\tMAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\tMAX_ORCHESTRATION_MODEL_PROVIDER_LENGTH,\n\ttype ObjectiveContract,\n\ttype ObjectiveStatus,\n\tORCHESTRATION_SCHEMA_VERSION,\n\ttype OrchestrationDispatchRequest,\n\ttype OrchestrationEvent,\n\ttype OrchestrationTaskStatus,\n\ttype RiskBudget,\n\ttype TaskContract,\n\ttoJsonObject,\n\ttype WorkerExecutionContract,\n\ttype WorkerResultContract,\n} from \"./contracts.ts\";\nimport { type OrchestrationEventStore, OrchestrationSnapshotRequiredError } from \"./event-store.ts\";\nimport { validateRiskBudget } from \"./risk-budget.ts\";\nimport { parseWorkerExecutionContract } from \"./worker-execution-contract.ts\";\n\nexport interface ObjectiveRuntimeState {\n\tobjective: ObjectiveContract;\n\ttaskIds: readonly string[];\n\tevidence: readonly EvidenceContract[];\n}\n\nexport interface TaskRuntimeState {\n\ttask: TaskContract;\n\tattemptIds: readonly string[];\n\tverification?: {\n\t\tverifierTaskId: string;\n\t\tverifierAttemptId: string;\n\t\tverdict: \"accepted\" | \"rejected\" | \"inconclusive\";\n\t\treasonCode: string;\n\t\tcompletedAt: string;\n\t};\n}\n\nexport interface AttemptRuntimeState {\n\tattemptId: string;\n\ttaskId: string;\n\tdispatch: OrchestrationDispatchRequest;\n\tstatus: AttemptStatus;\n\treasonCode?: string;\n\tgrantId?: string;\n\t/** Full compiled authority for new attempts; grantId alone is retained only when replaying legacy events. */\n\tgrant?: ExecutionGrant;\n\tagentId?: string;\n\tlease?: AttemptLease;\n\tcheckpointIds: readonly string[];\n\tresult?: WorkerResultContract;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport interface NotificationRuntimeState {\n\tnotificationId: string;\n\tobjectiveId: string;\n\tattemptId?: string;\n\tstatus: \"pending\" | \"delivered\";\n\tmessage: string;\n\tcreatedAt: string;\n\tdeliveredAt?: string;\n}\n\nexport interface ApprovalRuntimeState {\n\trequest: ApprovalRequestContract;\n\tstatus: \"pending\" | ApprovalOutcome;\n\tresolution?: ApprovalResolutionContract;\n}\n\nexport interface TaskRuntimeProjection {\n\tlastOrdinal: number;\n\tagents: Readonly<Record<string, AgentBindingContract>>;\n\tobjectives: Readonly<Record<string, ObjectiveRuntimeState>>;\n\ttasks: Readonly<Record<string, TaskRuntimeState>>;\n\tattempts: Readonly<Record<string, AttemptRuntimeState>>;\n\tcheckpoints: Readonly<Record<string, AttemptCheckpoint>>;\n\tapprovals: Readonly<Record<string, ApprovalRuntimeState>>;\n\tnotifications: Readonly<Record<string, NotificationRuntimeState>>;\n}\n\nexport interface CreateObjectiveInput {\n\tobjectiveId?: string;\n\ttitle: string;\n\tdescription: string;\n\tconstraints?: readonly string[];\n\tacceptanceCriteria?: readonly AcceptanceCriterion[];\n\triskBudget?: RiskBudget;\n}\n\nexport interface CreateTaskInput {\n\ttaskId?: string;\n\tobjectiveId: string;\n\ttitle: string;\n\tdescription: string;\n\trole: TaskContract[\"role\"];\n\tdependsOn?: readonly string[];\n\trequiredCapabilities?: TaskContract[\"requiredCapabilities\"];\n\tacceptanceCriterionIds?: readonly string[];\n\tverificationOfTaskId?: string;\n\triskBudget?: RiskBudget;\n}\n\nexport interface DurableTaskRuntimeOptions {\n\tstore: OrchestrationEventStore;\n\tnow?: () => number;\n\tcreateId?: () => string;\n}\n\nexport interface RegisterAgentInput {\n\tagentId?: string;\n\trole: AgentBindingContract[\"role\"];\n\tresumeContext: AgentResumeContext;\n}\n\nexport class DurableTaskRuntimeError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"DurableTaskRuntimeError\";\n\t}\n}\n\nfunction emptyProjection(): TaskRuntimeProjection {\n\treturn {\n\t\tlastOrdinal: 0,\n\t\tagents: {},\n\t\tobjectives: {},\n\t\ttasks: {},\n\t\tattempts: {},\n\t\tcheckpoints: {},\n\t\tapprovals: {},\n\t\tnotifications: {},\n\t};\n}\n\nfunction cloneProjection(state: TaskRuntimeProjection): TaskRuntimeProjection {\n\treturn structuredClone(state);\n}\n\nfunction projectionFromSnapshot(projection: JsonObject, throughOrdinal: number): TaskRuntimeProjection {\n\tconst candidate = record(projection, \"orchestration projection snapshot\");\n\tif (candidate.lastOrdinal !== throughOrdinal) {\n\t\tthrow new DurableTaskRuntimeError(\"Orchestration projection snapshot ordinal does not match its baseline.\");\n\t}\n\tfor (const field of [\n\t\t\"agents\",\n\t\t\"objectives\",\n\t\t\"tasks\",\n\t\t\"attempts\",\n\t\t\"checkpoints\",\n\t\t\"approvals\",\n\t\t\"notifications\",\n\t] as const) {\n\t\trecord(candidate[field], `orchestration projection snapshot.${field}`);\n\t}\n\treturn structuredClone(candidate) as unknown as TaskRuntimeProjection;\n}\n\nfunction record(value: unknown, label: string): Record<string, unknown> {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\tthrow new DurableTaskRuntimeError(`${label} is not an object.`);\n\t}\n\treturn value as Record<string, unknown>;\n}\n\nfunction string(value: unknown, label: string): string {\n\tif (typeof value !== \"string\" || value.length === 0) throw new DurableTaskRuntimeError(`${label} is required.`);\n\treturn value;\n}\n\nfunction number(value: unknown, label: string): number {\n\tif (typeof value !== \"number\" || !Number.isFinite(value)) throw new DurableTaskRuntimeError(`${label} is invalid.`);\n\treturn value;\n}\n\nfunction boolean(value: unknown, label: string): boolean {\n\tif (typeof value !== \"boolean\") throw new DurableTaskRuntimeError(`${label} is invalid.`);\n\treturn value;\n}\n\nfunction assertRiskBudget(budget: RiskBudget | undefined, label: string): void {\n\ttry {\n\t\tvalidateRiskBudget(budget ?? {}, label);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n}\n\nfunction stringArray(value: unknown, label: string): string[] {\n\tif (!Array.isArray(value) || !value.every((entry) => typeof entry === \"string\")) {\n\t\tthrow new DurableTaskRuntimeError(`${label} must be a string array.`);\n\t}\n\treturn [...value];\n}\n\nfunction dispatchIdentifier(value: unknown, label: string): string {\n\tconst identifier = string(value, label);\n\tif (identifier.length > MAX_ORCHESTRATION_IDENTIFIER_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn identifier;\n}\n\nfunction optionalDispatchIdentifier(\n\tvalue: unknown,\n\tlabel: string,\n\tmaxLength = MAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n): string | undefined {\n\tif (value === undefined) return undefined;\n\tconst identifier = string(value, label);\n\tif (identifier.length > maxLength) throw new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\treturn identifier;\n}\n\nfunction dispatchInstructions(value: unknown, label: string): string {\n\tconst instructions = string(value, label);\n\tif (instructions.length > MAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn instructions;\n}\n\nfunction dispatchIdentifierArray(value: unknown, label: string): string[] {\n\tif (\n\t\t!Array.isArray(value) ||\n\t\tvalue.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\t!value.every(\n\t\t\t(entry) =>\n\t\t\t\ttypeof entry === \"string\" && entry.length > 0 && entry.length <= MAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\t\t)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label} must be a bounded identifier array.`);\n\t}\n\tif (new Set(value).size !== value.length) {\n\t\tthrow new DurableTaskRuntimeError(`${label} contains duplicates.`);\n\t}\n\treturn [...value];\n}\n\nconst DISPATCH_FIELDS = new Set([\n\t\"taskId\",\n\t\"profileId\",\n\t\"instructions\",\n\t\"resourcePointerIds\",\n\t\"requirementIds\",\n\t\"executionKind\",\n\t\"logicalLaneId\",\n\t\"dispatchSequence\",\n\t\"provider\",\n\t\"authorizationId\",\n\t\"worktreeLaneKey\",\n\t\"executionContract\",\n]);\n\nfunction dispatchFromValue(value: unknown, label: string): OrchestrationDispatchRequest {\n\tconst dispatch = record(value, label);\n\tconst unsupportedField = Object.keys(dispatch).find((field) => !DISPATCH_FIELDS.has(field));\n\tif (unsupportedField) throw new DurableTaskRuntimeError(`${label}.${unsupportedField} is unsupported.`);\n\tconst executionKind = dispatch.executionKind;\n\tif (executionKind !== undefined && executionKind !== \"in-process\" && executionKind !== \"managed-process\") {\n\t\tthrow new DurableTaskRuntimeError(`${label}.executionKind is invalid.`);\n\t}\n\tconst logicalLaneId = optionalDispatchIdentifier(dispatch.logicalLaneId, `${label}.logicalLaneId`);\n\tconst provider = optionalDispatchIdentifier(\n\t\tdispatch.provider,\n\t\t`${label}.provider`,\n\t\tMAX_ORCHESTRATION_MODEL_PROVIDER_LENGTH,\n\t);\n\tconst authorizationId = optionalDispatchIdentifier(dispatch.authorizationId, `${label}.authorizationId`);\n\tconst worktreeLaneKey = optionalDispatchIdentifier(dispatch.worktreeLaneKey, `${label}.worktreeLaneKey`);\n\tif (\n\t\tdispatch.dispatchSequence !== undefined &&\n\t\t(!Number.isSafeInteger(dispatch.dispatchSequence) || Number(dispatch.dispatchSequence) < 1)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.dispatchSequence is invalid.`);\n\t}\n\tlet executionContract: WorkerExecutionContract | undefined;\n\ttry {\n\t\texecutionContract = dispatch.executionContract\n\t\t\t? parseWorkerExecutionContract(dispatch.executionContract)\n\t\t\t: undefined;\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n\tif (executionContract && executionKind === \"managed-process\") {\n\t\tthrow new DurableTaskRuntimeError(`${label} cannot combine a worker execution contract with managed execution.`);\n\t}\n\treturn {\n\t\ttaskId: dispatchIdentifier(dispatch.taskId, `${label}.taskId`),\n\t\tprofileId: dispatchIdentifier(dispatch.profileId, `${label}.profileId`),\n\t\tinstructions: dispatchInstructions(dispatch.instructions, `${label}.instructions`),\n\t\tresourcePointerIds: dispatchIdentifierArray(dispatch.resourcePointerIds, `${label}.resourcePointerIds`),\n\t\trequirementIds:\n\t\t\tdispatch.requirementIds === undefined\n\t\t\t\t? []\n\t\t\t\t: dispatchIdentifierArray(dispatch.requirementIds, `${label}.requirementIds`),\n\t\t...(executionKind ? { executionKind } : {}),\n\t\t...(logicalLaneId ? { logicalLaneId } : {}),\n\t\t...(typeof dispatch.dispatchSequence === \"number\" ? { dispatchSequence: dispatch.dispatchSequence } : {}),\n\t\t...(provider ? { provider } : {}),\n\t\t...(authorizationId ? { authorizationId } : {}),\n\t\t...(worktreeLaneKey ? { worktreeLaneKey } : {}),\n\t\t...(executionContract ? { executionContract } : {}),\n\t};\n}\n\nfunction objectiveFromPayload(payload: JsonObject): ObjectiveContract {\n\treturn structuredClone(record(payload.objective, \"objective\")) as unknown as ObjectiveContract;\n}\n\nfunction evidenceFromPayload(payload: JsonObject): EvidenceContract {\n\treturn structuredClone(record(payload.evidence, \"evidence\")) as unknown as EvidenceContract;\n}\n\nfunction assertAcceptanceCriteria(criteria: readonly AcceptanceCriterion[]): void {\n\tconst criterionIds = criteria.map((criterion) => criterion.id);\n\tif (\n\t\tcriterionIds.some((id) => !id.trim()) ||\n\t\tnew Set(criterionIds).size !== criterionIds.length ||\n\t\tcriteria.some((criterion) => !criterion.description.trim())\n\t) {\n\t\tthrow new DurableTaskRuntimeError(\"Objective acceptance criteria require unique ids and descriptions.\");\n\t}\n}\n\nfunction taskFromPayload(payload: JsonObject): TaskContract {\n\treturn structuredClone(record(payload.task, \"task\")) as unknown as TaskContract;\n}\n\nfunction leaseFromPayload(payload: JsonObject): AttemptLease {\n\tconst lease = record(payload.lease, \"lease\");\n\treturn {\n\t\tleaseId: string(lease.leaseId, \"lease.leaseId\"),\n\t\tattemptId: string(lease.attemptId, \"lease.attemptId\"),\n\t\townerId: string(lease.ownerId, \"lease.ownerId\"),\n\t\tfencingToken: number(lease.fencingToken, \"lease.fencingToken\"),\n\t\tissuedAt: string(lease.issuedAt, \"lease.issuedAt\"),\n\t\texpiresAt: string(lease.expiresAt, \"lease.expiresAt\"),\n\t};\n}\n\nfunction checkpointFromPayload(payload: JsonObject): AttemptCheckpoint {\n\tconst checkpoint = record(payload.checkpoint, \"checkpoint\");\n\tconst usage = checkpoint.usage === undefined ? undefined : usageFromPayload(checkpoint.usage, \"checkpoint.usage\");\n\treturn {\n\t\tcheckpointId: string(checkpoint.checkpointId, \"checkpoint.checkpointId\"),\n\t\tattemptId: string(checkpoint.attemptId, \"checkpoint.attemptId\"),\n\t\tfencingToken: number(checkpoint.fencingToken, \"checkpoint.fencingToken\"),\n\t\tsummary: string(checkpoint.summary, \"checkpoint.summary\"),\n\t\tartifactIds: stringArray(checkpoint.artifactIds, \"checkpoint.artifactIds\"),\n\t\tevidenceIds: stringArray(checkpoint.evidenceIds, \"checkpoint.evidenceIds\"),\n\t\t...(usage ? { usage } : {}),\n\t\tcreatedAt: string(checkpoint.createdAt, \"checkpoint.createdAt\"),\n\t};\n}\n\nfunction usageFromPayload(value: unknown, label: string): AttemptCheckpoint[\"usage\"] {\n\tconst usage = record(value, label);\n\tconst expectedFields = [\n\t\t\"toolCalls\",\n\t\t\"inputTokens\",\n\t\t\"outputTokens\",\n\t\t\"cacheReadTokens\",\n\t\t\"cacheWriteTokens\",\n\t\t\"totalTokens\",\n\t\t\"costUsd\",\n\t\t\"activeWallClockMs\",\n\t];\n\tconst unexpected = Object.keys(usage).find((field) => !expectedFields.includes(field));\n\tif (unexpected) throw new DurableTaskRuntimeError(`${label}.${unexpected} is unsupported.`);\n\ttry {\n\t\treturn validateAttemptUsageSnapshot(\n\t\t\t{\n\t\t\t\ttoolCalls: number(usage.toolCalls, `${label}.toolCalls`),\n\t\t\t\tinputTokens: number(usage.inputTokens, `${label}.inputTokens`),\n\t\t\t\toutputTokens: number(usage.outputTokens, `${label}.outputTokens`),\n\t\t\t\tcacheReadTokens: number(usage.cacheReadTokens, `${label}.cacheReadTokens`),\n\t\t\t\tcacheWriteTokens: number(usage.cacheWriteTokens, `${label}.cacheWriteTokens`),\n\t\t\t\ttotalTokens: number(usage.totalTokens, `${label}.totalTokens`),\n\t\t\t\tcostUsd: number(usage.costUsd, `${label}.costUsd`),\n\t\t\t\tactiveWallClockMs: number(usage.activeWallClockMs, `${label}.activeWallClockMs`),\n\t\t\t},\n\t\t\tlabel,\n\t\t);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n}\n\nfunction resultFromPayload(payload: JsonObject): WorkerResultContract {\n\treturn structuredClone(record(payload.result, \"result\")) as unknown as WorkerResultContract;\n}\n\nfunction agentFromPayload(payload: JsonObject): AgentBindingContract {\n\treturn structuredClone(record(payload.agent, \"agent\")) as unknown as AgentBindingContract;\n}\n\nfunction approvalFromPayload(payload: JsonObject): ApprovalRequestContract {\n\tconst approval = record(payload.approval, \"approval\");\n\tconst capabilities = stringArray(approval.requestedCapabilities, \"approval.requestedCapabilities\");\n\tif (!capabilities.every(isHarnessCapability)) {\n\t\tthrow new DurableTaskRuntimeError(\"Approval contains an unknown capability.\");\n\t}\n\tconst requestedBudget = approval.requestedBudget\n\t\t? (structuredClone(record(approval.requestedBudget, \"approval.requestedBudget\")) as RiskBudget)\n\t\t: undefined;\n\tassertRiskBudget(requestedBudget, \"approval.requestedBudget\");\n\tif (capabilities.length === 0 && !requestedBudget) {\n\t\tthrow new DurableTaskRuntimeError(\"Approval must request capabilities or budget.\");\n\t}\n\tif (approval.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(\"Approval schema version is invalid.\");\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tapprovalId: string(approval.approvalId, \"approval.approvalId\"),\n\t\tobjectiveId: string(approval.objectiveId, \"approval.objectiveId\"),\n\t\t...(typeof approval.taskId === \"string\" ? { taskId: string(approval.taskId, \"approval.taskId\") } : {}),\n\t\t...(typeof approval.attemptId === \"string\"\n\t\t\t? { attemptId: string(approval.attemptId, \"approval.attemptId\") }\n\t\t\t: {}),\n\t\treasonCode: string(approval.reasonCode, \"approval.reasonCode\"),\n\t\tsummary: string(approval.summary, \"approval.summary\"),\n\t\trequestedCapabilities: capabilities,\n\t\t...(requestedBudget ? { requestedBudget } : {}),\n\t\treversible: boolean(approval.reversible, \"approval.reversible\"),\n\t\tcreatedAt: string(approval.createdAt, \"approval.createdAt\"),\n\t};\n}\n\nfunction approvalResolutionFromPayload(payload: JsonObject): ApprovalResolutionContract {\n\tconst resolution = record(payload.resolution, \"resolution\");\n\tif (resolution.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(\"Approval resolution schema version is invalid.\");\n\t}\n\tconst outcome = string(resolution.outcome, \"resolution.outcome\");\n\tif (outcome !== \"approved\" && outcome !== \"rejected\") {\n\t\tthrow new DurableTaskRuntimeError(`Unknown approval outcome '${outcome}'.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tapprovalId: string(resolution.approvalId, \"resolution.approvalId\"),\n\t\toutcome,\n\t\treasonCode: string(resolution.reasonCode, \"resolution.reasonCode\"),\n\t\tresolvedAt: string(resolution.resolvedAt, \"resolution.resolvedAt\"),\n\t};\n}\n\nfunction updateObjectiveStatus(\n\tstate: TaskRuntimeProjection,\n\tobjectiveId: string,\n\tstatus: ObjectiveStatus,\n\tat: string,\n): void {\n\tconst current = state.objectives[objectiveId];\n\tif (!current) throw new DurableTaskRuntimeError(`Unknown objective '${objectiveId}'.`);\n\t(state.objectives as Record<string, ObjectiveRuntimeState>)[objectiveId] = {\n\t\t...current,\n\t\tobjective: { ...current.objective, status, updatedAt: at },\n\t};\n}\n\nfunction terminalAttemptStatus(status: AttemptStatus): boolean {\n\treturn [\"completed\", \"partial\", \"blocked\", \"failed\", \"cancelled\", \"expired\"].includes(status);\n}\n\nfunction cancelOpenObjectiveWork(\n\tstate: TaskRuntimeProjection,\n\tobjectiveId: string,\n\tat: string,\n\treasonCode: string,\n): void {\n\tconst objective = state.objectives[objectiveId];\n\tconst tasks = state.tasks as Record<string, TaskRuntimeState>;\n\tconst attempts = state.attempts as Record<string, AttemptRuntimeState>;\n\tfor (const taskId of objective?.taskIds ?? []) {\n\t\tconst taskState = tasks[taskId];\n\t\tif (taskState && ![\"completed\", \"failed\", \"cancelled\"].includes(taskState.task.status)) {\n\t\t\ttasks[taskId] = {\n\t\t\t\t...taskState,\n\t\t\t\ttask: { ...taskState.task, status: \"cancelled\", updatedAt: at },\n\t\t\t};\n\t\t}\n\t\tfor (const attemptId of taskState?.attemptIds ?? []) {\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (attempt && !terminalAttemptStatus(attempt.status)) {\n\t\t\t\tattempts[attemptId] = { ...attempt, status: \"cancelled\", reasonCode, updatedAt: at };\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction taskStatusForResult(status: WorkerResultContract[\"status\"]): OrchestrationTaskStatus {\n\tif (status === \"completed\") return \"completed\";\n\tif (status === \"failed\") return \"failed\";\n\tif (status === \"cancelled\") return \"cancelled\";\n\treturn \"blocked\";\n}\n\nfunction missingTrustedCriteria(result: WorkerResultContract, criterionIds: readonly string[]): string[] {\n\tconst proven = new Set(\n\t\tresult.evidence.flatMap((evidence) => (evidence.trusted && evidence.criterionId ? [evidence.criterionId] : [])),\n\t);\n\treturn criterionIds.filter((criterionId) => !proven.has(criterionId));\n}\n\nfunction refreshReadyTasks(state: TaskRuntimeProjection, objectiveId: string, at: string): void {\n\tconst objective = state.objectives[objectiveId];\n\tif (!objective || objective.objective.status !== \"active\") return;\n\tconst mutableTasks = state.tasks as Record<string, TaskRuntimeState>;\n\tfor (const taskId of objective.taskIds) {\n\t\tconst current = mutableTasks[taskId];\n\t\tif (!current || current.task.status !== \"pending\") continue;\n\t\tif (current.task.dependsOn.every((dependencyId) => mutableTasks[dependencyId]?.task.status === \"completed\")) {\n\t\t\tmutableTasks[taskId] = { ...current, task: { ...current.task, status: \"ready\", updatedAt: at } };\n\t\t}\n\t}\n}\n\nexport function reduceOrchestrationEvent(\n\tprojection: TaskRuntimeProjection,\n\tevent: OrchestrationEvent,\n): TaskRuntimeProjection {\n\tif (event.ordinal <= projection.lastOrdinal) return projection;\n\tconst state = cloneProjection(projection);\n\tconst agents = state.agents as Record<string, AgentBindingContract>;\n\tconst objectives = state.objectives as Record<string, ObjectiveRuntimeState>;\n\tconst tasks = state.tasks as Record<string, TaskRuntimeState>;\n\tconst attempts = state.attempts as Record<string, AttemptRuntimeState>;\n\tconst checkpoints = state.checkpoints as Record<string, AttemptCheckpoint>;\n\tconst approvals = state.approvals as Record<string, ApprovalRuntimeState>;\n\tconst notifications = state.notifications as Record<string, NotificationRuntimeState>;\n\n\tswitch (event.type) {\n\t\tcase \"objective.created\": {\n\t\t\tconst objective = objectiveFromPayload(event.payload);\n\t\t\tif (objectives[objective.objectiveId]) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objective.objectiveId}' was created more than once.`);\n\t\t\t}\n\t\t\tobjectives[objective.objectiveId] = { objective, taskIds: [], evidence: [] };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"objective.updated\": {\n\t\t\tconst objective = objectiveFromPayload(event.payload);\n\t\t\tconst current = objectives[event.aggregateId];\n\t\t\tif (!current) throw new DurableTaskRuntimeError(`Unknown objective '${event.aggregateId}'.`);\n\t\t\tif (objective.objectiveId !== event.aggregateId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Updated objective id '${objective.objectiveId}' does not match aggregate.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tobjectives[event.aggregateId] = { ...current, objective };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"objective.evidence_recorded\": {\n\t\t\tconst evidence = evidenceFromPayload(event.payload);\n\t\t\tconst current = objectives[event.aggregateId];\n\t\t\tif (!current) throw new DurableTaskRuntimeError(`Unknown objective '${event.aggregateId}'.`);\n\t\t\tconst existing = current.evidence.find((candidate) => candidate.evidenceId === evidence.evidenceId);\n\t\t\tif (existing && !isDeepStrictEqual(existing, evidence)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Objective evidence '${evidence.evidenceId}' has conflicting content.`);\n\t\t\t}\n\t\t\tif (!existing) objectives[event.aggregateId] = { ...current, evidence: [...current.evidence, evidence] };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"objective.paused\":\n\t\t\tupdateObjectiveStatus(state, event.aggregateId, \"paused\", event.occurredAt);\n\t\t\tbreak;\n\t\tcase \"objective.resumed\":\n\t\t\tupdateObjectiveStatus(state, event.aggregateId, \"active\", event.occurredAt);\n\t\t\trefreshReadyTasks(state, event.aggregateId, event.occurredAt);\n\t\t\tbreak;\n\t\tcase \"objective.completed\":\n\t\t\tupdateObjectiveStatus(state, event.aggregateId, \"completed\", event.occurredAt);\n\t\t\tcancelOpenObjectiveWork(state, event.aggregateId, event.occurredAt, \"objective_completed\");\n\t\t\tbreak;\n\t\tcase \"objective.cancelled\": {\n\t\t\tupdateObjectiveStatus(state, event.aggregateId, \"cancelled\", event.occurredAt);\n\t\t\tcancelOpenObjectiveWork(state, event.aggregateId, event.occurredAt, \"objective_cancelled\");\n\t\t\tbreak;\n\t\t}\n\t\tcase \"task.created\": {\n\t\t\tconst task = taskFromPayload(event.payload);\n\t\t\tconst objective = objectives[task.objectiveId];\n\t\t\tif (!objective) throw new DurableTaskRuntimeError(`Task '${task.taskId}' references an unknown objective.`);\n\t\t\tif (tasks[task.taskId]) throw new DurableTaskRuntimeError(`Task '${task.taskId}' was created more than once.`);\n\t\t\ttasks[task.taskId] = { task, attemptIds: [] };\n\t\t\tobjectives[task.objectiveId] = { ...objective, taskIds: [...objective.taskIds, task.taskId] };\n\t\t\trefreshReadyTasks(state, task.objectiveId, event.occurredAt);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"task.ready\": {\n\t\t\tconst taskId = string(event.payload.taskId, \"task.ready.taskId\");\n\t\t\tconst current = tasks[taskId];\n\t\t\tif (!current) throw new DurableTaskRuntimeError(`Unknown task '${taskId}'.`);\n\t\t\ttasks[taskId] = { ...current, task: { ...current.task, status: \"ready\", updatedAt: event.occurredAt } };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"task.failed\": {\n\t\t\tconst taskId = string(event.payload.taskId, \"task.failed.taskId\");\n\t\t\tconst current = tasks[taskId];\n\t\t\tif (!current) throw new DurableTaskRuntimeError(`Unknown task '${taskId}'.`);\n\t\t\ttasks[taskId] = { ...current, task: { ...current.task, status: \"failed\", updatedAt: event.occurredAt } };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"task.verification_finished\": {\n\t\t\tconst taskId = string(event.payload.taskId, \"task.verification_finished.taskId\");\n\t\t\tconst verifierTaskId = string(event.payload.verifierTaskId, \"task.verification_finished.verifierTaskId\");\n\t\t\tconst verifierAttemptId = string(\n\t\t\t\tevent.payload.verifierAttemptId,\n\t\t\t\t\"task.verification_finished.verifierAttemptId\",\n\t\t\t);\n\t\t\tconst verdict = string(event.payload.verdict, \"task.verification_finished.verdict\");\n\t\t\tif (verdict !== \"accepted\" && verdict !== \"rejected\" && verdict !== \"inconclusive\") {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Unknown verification verdict '${verdict}'.`);\n\t\t\t}\n\t\t\tconst current = tasks[taskId];\n\t\t\tif (!current) throw new DurableTaskRuntimeError(`Unknown task '${taskId}'.`);\n\t\t\tconst reasonCode = string(event.payload.reasonCode, \"task.verification_finished.reasonCode\");\n\t\t\ttasks[taskId] = {\n\t\t\t\t...current,\n\t\t\t\ttask: {\n\t\t\t\t\t...current.task,\n\t\t\t\t\tstatus: verdict === \"accepted\" ? \"completed\" : \"blocked\",\n\t\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t\t},\n\t\t\t\tverification: {\n\t\t\t\t\tverifierTaskId,\n\t\t\t\t\tverifierAttemptId,\n\t\t\t\t\tverdict,\n\t\t\t\t\treasonCode,\n\t\t\t\t\tcompletedAt: event.occurredAt,\n\t\t\t\t},\n\t\t\t};\n\t\t\trefreshReadyTasks(state, current.task.objectiveId, event.occurredAt);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"agent.registered\": {\n\t\t\tconst agent = agentFromPayload(event.payload);\n\t\t\tif (agents[agent.agentId])\n\t\t\t\tthrow new DurableTaskRuntimeError(`Agent '${agent.agentId}' was registered more than once.`);\n\t\t\tagents[agent.agentId] = agent;\n\t\t\tbreak;\n\t\t}\n\t\tcase \"agent.suspended\": {\n\t\t\tconst agentId = string(event.payload.agentId, \"agent.suspended.agentId\");\n\t\t\tconst agent = agents[agentId];\n\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\tagents[agentId] = { ...agent, status: \"suspended\", updatedAt: event.occurredAt };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"agent.resume_requested\": {\n\t\t\tconst agentId = string(event.payload.agentId, \"agent.resume_requested.agentId\");\n\t\t\tconst agent = agents[agentId];\n\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\tagents[agentId] = { ...agent, status: \"resuming\", updatedAt: event.occurredAt };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"agent.resumed\": {\n\t\t\tconst agentId = string(event.payload.agentId, \"agent.resumed.agentId\");\n\t\t\tconst attemptId = string(event.payload.attemptId, \"agent.resumed.attemptId\");\n\t\t\tconst agent = agents[agentId];\n\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\tagents[agentId] = { ...agent, status: \"active\", activeAttemptId: attemptId, updatedAt: event.occurredAt };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.queued\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.queued.attemptId\");\n\t\t\tconst taskId = string(event.payload.taskId, \"attempt.queued.taskId\");\n\t\t\tconst task = tasks[taskId];\n\t\t\tif (!task) throw new DurableTaskRuntimeError(`Attempt '${attemptId}' references an unknown task.`);\n\t\t\tif (attempts[attemptId])\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' was queued more than once.`);\n\t\t\tconst dispatch = dispatchFromValue(event.payload.dispatch, \"attempt.queued.dispatch\");\n\t\t\tif (dispatch.taskId !== taskId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' dispatch task does not match its task.`);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tdispatch.executionContract &&\n\t\t\t\t(dispatch.executionContract.worker.profile.profileId !== dispatch.profileId ||\n\t\t\t\t\tdispatch.executionContract.worker.profile.role !== task.task.role)\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' execution contract does not match its dispatch.`);\n\t\t\t}\n\t\t\tattempts[attemptId] = {\n\t\t\t\tattemptId,\n\t\t\t\ttaskId,\n\t\t\t\tdispatch,\n\t\t\t\tstatus: \"queued\",\n\t\t\t\t...(typeof event.payload.grantId === \"string\" ? { grantId: event.payload.grantId } : {}),\n\t\t\t\tcheckpointIds: [],\n\t\t\t\tcreatedAt: event.occurredAt,\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\ttasks[taskId] = {\n\t\t\t\t...task,\n\t\t\t\ttask: { ...task.task, status: \"running\", updatedAt: event.occurredAt },\n\t\t\t\tattemptIds: [...task.attemptIds, attemptId],\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.grant_bound\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.grant_bound.attemptId\");\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\t\tconst grant = event.payload.grant\n\t\t\t\t? (structuredClone(record(event.payload.grant, \"attempt.grant_bound.grant\")) as unknown as ExecutionGrant)\n\t\t\t\t: undefined;\n\t\t\tattempts[attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tgrantId: grant?.grantId ?? string(event.payload.grantId, \"attempt.grant_bound.grantId\"),\n\t\t\t\t...(grant ? { grant } : {}),\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.leased\": {\n\t\t\tconst lease = leaseFromPayload(event.payload);\n\t\t\tconst attempt = attempts[lease.attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${lease.attemptId}'.`);\n\t\t\tconst agentId = typeof event.payload.agentId === \"string\" ? event.payload.agentId : undefined;\n\t\t\tif (agentId) {\n\t\t\t\tconst agent = agents[agentId];\n\t\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\t\tagents[agentId] = {\n\t\t\t\t\t...agent,\n\t\t\t\t\tstatus: \"active\",\n\t\t\t\t\tactiveAttemptId: lease.attemptId,\n\t\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t\t};\n\t\t\t}\n\t\t\tattempts[lease.attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tstatus: \"leased\",\n\t\t\t\tlease,\n\t\t\t\t...(agentId ? { agentId } : {}),\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.started\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.started.attemptId\");\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\t\tattempts[attemptId] = { ...attempt, status: \"running\", updatedAt: event.occurredAt };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.checkpointed\": {\n\t\t\tconst checkpoint = checkpointFromPayload(event.payload);\n\t\t\tconst attempt = attempts[checkpoint.attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${checkpoint.attemptId}'.`);\n\t\t\tcheckpoints[checkpoint.checkpointId] = checkpoint;\n\t\t\tattempts[checkpoint.attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tcheckpointIds: [...attempt.checkpointIds, checkpoint.checkpointId],\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tif (attempt.agentId) {\n\t\t\t\tconst agent = agents[attempt.agentId];\n\t\t\t\tif (agent) {\n\t\t\t\t\tagents[attempt.agentId] = {\n\t\t\t\t\t\t...agent,\n\t\t\t\t\t\tresumeContext: { ...agent.resumeContext, latestCheckpointId: checkpoint.checkpointId },\n\t\t\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.suspended\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.suspended.attemptId\");\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\t\tconst leaseId = string(event.payload.leaseId, \"attempt.suspended.leaseId\");\n\t\t\tconst fencingToken = number(event.payload.fencingToken, \"attempt.suspended.fencingToken\");\n\t\t\tif (!attempt.lease || attempt.lease.leaseId !== leaseId || attempt.lease.fencingToken !== fencingToken) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' lease or fencing token is stale.`);\n\t\t\t}\n\t\t\tif (attempt.status !== \"leased\" && attempt.status !== \"running\") {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' cannot suspend from '${attempt.status}'.`);\n\t\t\t}\n\t\t\tattempts[attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tstatus: \"suspended\",\n\t\t\t\t...(typeof event.payload.reasonCode === \"string\" ? { reasonCode: event.payload.reasonCode } : {}),\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tif (attempt.agentId) {\n\t\t\t\tconst agent = agents[attempt.agentId];\n\t\t\t\tif (agent) agents[attempt.agentId] = { ...agent, status: \"suspended\", updatedAt: event.occurredAt };\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.resumed\": {\n\t\t\tconst lease = leaseFromPayload(event.payload);\n\t\t\tconst agentId = string(event.payload.agentId, \"attempt.resumed.agentId\");\n\t\t\tconst attempt = attempts[lease.attemptId];\n\t\t\tconst agent = agents[agentId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${lease.attemptId}'.`);\n\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\tattempts[lease.attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tstatus: \"leased\",\n\t\t\t\tagentId,\n\t\t\t\tlease,\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tagents[agentId] = {\n\t\t\t\t...agent,\n\t\t\t\tstatus: \"active\",\n\t\t\t\tactiveAttemptId: lease.attemptId,\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.cancelled\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.cancelled.attemptId\");\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\t\tattempts[attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tstatus: \"cancelled\",\n\t\t\t\treasonCode: string(event.payload.reasonCode, \"attempt.cancelled.reasonCode\"),\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tconst task = tasks[attempt.taskId];\n\t\t\tif (task) {\n\t\t\t\ttasks[attempt.taskId] = {\n\t\t\t\t\t...task,\n\t\t\t\t\ttask: { ...task.task, status: \"cancelled\", updatedAt: event.occurredAt },\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (attempt.agentId) {\n\t\t\t\tconst agent = agents[attempt.agentId];\n\t\t\t\tif (agent) {\n\t\t\t\t\tconst next = { ...agent, status: \"registered\" as const, updatedAt: event.occurredAt };\n\t\t\t\t\tdelete next.activeAttemptId;\n\t\t\t\t\tagents[attempt.agentId] = next;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.finished\": {\n\t\t\tconst result = resultFromPayload(event.payload);\n\t\t\tconst attempt = attempts[result.attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${result.attemptId}'.`);\n\t\t\tattempts[result.attemptId] = { ...attempt, status: result.status, result, updatedAt: event.occurredAt };\n\t\t\tconst task = tasks[result.taskId];\n\t\t\tif (!task) throw new DurableTaskRuntimeError(`Unknown task '${result.taskId}'.`);\n\t\t\ttasks[result.taskId] = {\n\t\t\t\t...task,\n\t\t\t\ttask: { ...task.task, status: taskStatusForResult(result.status), updatedAt: event.occurredAt },\n\t\t\t};\n\t\t\tif (attempt.agentId) {\n\t\t\t\tconst agent = agents[attempt.agentId];\n\t\t\t\tif (agent) {\n\t\t\t\t\tconst next = { ...agent, status: \"registered\" as const, updatedAt: event.occurredAt };\n\t\t\t\t\tdelete next.activeAttemptId;\n\t\t\t\t\tagents[attempt.agentId] = next;\n\t\t\t\t}\n\t\t\t}\n\t\t\trefreshReadyTasks(state, task.task.objectiveId, event.occurredAt);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.lease_expired\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.lease_expired.attemptId\");\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\t\tattempts[attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tstatus: \"expired\",\n\t\t\t\t...(typeof event.payload.reasonCode === \"string\" ? { reasonCode: event.payload.reasonCode } : {}),\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tconst task = tasks[attempt.taskId];\n\t\t\tif (task)\n\t\t\t\ttasks[attempt.taskId] = { ...task, task: { ...task.task, status: \"ready\", updatedAt: event.occurredAt } };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"approval.requested\": {\n\t\t\tconst approval = approvalFromPayload(event.payload);\n\t\t\tif (approvals[approval.approvalId]) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Approval '${approval.approvalId}' was requested more than once.`);\n\t\t\t}\n\t\t\tapprovals[approval.approvalId] = { request: approval, status: \"pending\" };\n\t\t\tconst notificationId = `approval-requested:${approval.approvalId}`;\n\t\t\tif (notifications[notificationId]) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Notification '${notificationId}' already exists.`);\n\t\t\t}\n\t\t\tnotifications[notificationId] = {\n\t\t\t\tnotificationId,\n\t\t\t\tobjectiveId: approval.objectiveId,\n\t\t\t\t...(approval.attemptId ? { attemptId: approval.attemptId } : {}),\n\t\t\t\tstatus: \"pending\",\n\t\t\t\tmessage: approval.summary,\n\t\t\t\tcreatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"approval.resolved\": {\n\t\t\tconst resolution = approvalResolutionFromPayload(event.payload);\n\t\t\tconst approval = approvals[resolution.approvalId];\n\t\t\tif (!approval) throw new DurableTaskRuntimeError(`Unknown approval '${resolution.approvalId}'.`);\n\t\t\tapprovals[resolution.approvalId] = {\n\t\t\t\t...approval,\n\t\t\t\tstatus: resolution.outcome,\n\t\t\t\tresolution,\n\t\t\t};\n\t\t\tconst approvalNotification = notifications[`approval-requested:${resolution.approvalId}`];\n\t\t\tif (approvalNotification?.status === \"pending\") {\n\t\t\t\tnotifications[approvalNotification.notificationId] = {\n\t\t\t\t\t...approvalNotification,\n\t\t\t\t\tstatus: \"delivered\",\n\t\t\t\t\tdeliveredAt: event.occurredAt,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (resolution.outcome === \"rejected\" && approval.request.attemptId) {\n\t\t\t\tconst attempt = attempts[approval.request.attemptId];\n\t\t\t\tif (attempt && !terminalAttemptStatus(attempt.status)) {\n\t\t\t\t\tattempts[attempt.attemptId] = {\n\t\t\t\t\t\t...attempt,\n\t\t\t\t\t\tstatus: \"blocked\",\n\t\t\t\t\t\treasonCode: \"approval_rejected\",\n\t\t\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t\t\t};\n\t\t\t\t\tconst task = tasks[attempt.taskId];\n\t\t\t\t\tif (task) {\n\t\t\t\t\t\ttasks[attempt.taskId] = {\n\t\t\t\t\t\t\t...task,\n\t\t\t\t\t\t\ttask: { ...task.task, status: \"blocked\", updatedAt: event.occurredAt },\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"notification.enqueued\": {\n\t\t\tconst notificationId = string(event.payload.notificationId, \"notification.enqueued.notificationId\");\n\t\t\tnotifications[notificationId] = {\n\t\t\t\tnotificationId,\n\t\t\t\tobjectiveId: string(event.payload.objectiveId, \"notification.enqueued.objectiveId\"),\n\t\t\t\t...(typeof event.payload.attemptId === \"string\" ? { attemptId: event.payload.attemptId } : {}),\n\t\t\t\tstatus: \"pending\",\n\t\t\t\tmessage: string(event.payload.message, \"notification.enqueued.message\"),\n\t\t\t\tcreatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"notification.delivered\": {\n\t\t\tconst notificationId = string(event.payload.notificationId, \"notification.delivered.notificationId\");\n\t\t\tconst notification = notifications[notificationId];\n\t\t\tif (!notification) throw new DurableTaskRuntimeError(`Unknown notification '${notificationId}'.`);\n\t\t\tnotifications[notificationId] = { ...notification, status: \"delivered\", deliveredAt: event.occurredAt };\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn { ...state, lastOrdinal: event.ordinal };\n}\n\nexport function projectOrchestrationEvents(events: readonly OrchestrationEvent[]): TaskRuntimeProjection {\n\treturn events.reduce(reduceOrchestrationEvent, emptyProjection());\n}\n\nexport class DurableTaskRuntime {\n\tprivate readonly store: OrchestrationEventStore;\n\tprivate readonly now: () => number;\n\tprivate readonly createId: () => string;\n\tprivate state: TaskRuntimeProjection;\n\n\tconstructor(options: DurableTaskRuntimeOptions) {\n\t\tthis.store = options.store;\n\t\tthis.now = options.now ?? Date.now;\n\t\tthis.createId = options.createId ?? randomUUID;\n\t\tconst snapshot = this.store.readProjectionSnapshot();\n\t\tif (snapshot) {\n\t\t\tthis.state = projectionFromSnapshot(snapshot.projection, snapshot.throughOrdinal);\n\t\t} else {\n\t\t\tconst events = this.store.readAll();\n\t\t\t// Compaction may install a baseline between the first snapshot read and readAll(). In that\n\t\t\t// case readAll() returns only the new tail, which must be applied to that baseline rather\n\t\t\t// than projected as a standalone history.\n\t\t\tconst snapshotAfterRead = this.store.readProjectionSnapshot();\n\t\t\tthis.state = snapshotAfterRead\n\t\t\t\t? events\n\t\t\t\t\t\t.filter((event) => event.ordinal > snapshotAfterRead.throughOrdinal)\n\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\treduceOrchestrationEvent,\n\t\t\t\t\t\t\tprojectionFromSnapshot(snapshotAfterRead.projection, snapshotAfterRead.throughOrdinal),\n\t\t\t\t\t\t)\n\t\t\t\t: projectOrchestrationEvents(events);\n\t\t}\n\t\tthis.refresh();\n\t}\n\n\tgetSnapshot(): TaskRuntimeProjection {\n\t\tthis.refresh();\n\t\treturn cloneProjection(this.state);\n\t}\n\n\tregisterAgent(input: RegisterAgentInput): AgentBindingContract {\n\t\tthis.refresh();\n\t\tconst now = this.nowIso();\n\t\tlet identity: AgentIdentityContract;\n\t\ttry {\n\t\t\tidentity = createAgentIdentity(input.agentId ?? `agent-${this.createId()}`, input.resumeContext);\n\t\t} catch (error) {\n\t\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t\t}\n\t\tconst agent: AgentBindingContract = {\n\t\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\t\t...identity,\n\t\t\trole: input.role,\n\t\t\tstatus: \"registered\",\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now,\n\t\t};\n\t\tif (this.state.agents[agent.agentId])\n\t\t\tthrow new DurableTaskRuntimeError(`Agent '${agent.agentId}' already exists.`);\n\t\tthis.commit({\n\t\t\ttype: \"agent.registered\",\n\t\t\taggregateId: agent.agentId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `agent-registered:${agent.agentId}`,\n\t\t\tpayload: toJsonObject({ agent }),\n\t\t});\n\t\treturn structuredClone(agent);\n\t}\n\n\tcreateObjective(input: CreateObjectiveInput): ObjectiveContract {\n\t\tthis.refresh();\n\t\tassertRiskBudget(input.riskBudget, \"objective.riskBudget\");\n\t\tconst now = this.nowIso();\n\t\tconst objective: ObjectiveContract = {\n\t\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\t\tobjectiveId: input.objectiveId ?? `objective-${this.createId()}`,\n\t\t\ttitle: input.title.trim(),\n\t\t\tdescription: input.description.trim(),\n\t\t\tstatus: \"active\",\n\t\t\tconstraints: [...(input.constraints ?? [])],\n\t\t\tacceptanceCriteria: structuredClone(input.acceptanceCriteria ?? []),\n\t\t\triskBudget: { ...(input.riskBudget ?? {}) },\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now,\n\t\t};\n\t\tif (!objective.title || !objective.description)\n\t\t\tthrow new DurableTaskRuntimeError(\"Objective title and description are required.\");\n\t\tassertAcceptanceCriteria(objective.acceptanceCriteria);\n\t\tif (this.state.objectives[objective.objectiveId]) {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objective.objectiveId}' already exists.`);\n\t\t}\n\t\tthis.commit({\n\t\t\ttype: \"objective.created\",\n\t\t\taggregateId: objective.objectiveId,\n\t\t\tactor: \"kernel\",\n\t\t\tidempotencyKey: `objective-created:${objective.objectiveId}`,\n\t\t\tpayload: toJsonObject({ objective }),\n\t\t});\n\t\treturn structuredClone(objective);\n\t}\n\n\t/** Create or synchronize owner-authored objective metadata without disturbing lifecycle or task state. */\n\tensureObjective(input: CreateObjectiveInput & { objectiveId: string }): ObjectiveContract {\n\t\tthis.refresh();\n\t\tconst current = this.state.objectives[input.objectiveId];\n\t\tif (!current) return this.createObjective(input);\n\t\tassertRiskBudget(input.riskBudget, \"objective.riskBudget\");\n\t\tconst acceptanceCriteria = structuredClone(input.acceptanceCriteria ?? []);\n\t\tassertAcceptanceCriteria(acceptanceCriteria);\n\t\tconst nextFields = {\n\t\t\ttitle: input.title.trim(),\n\t\t\tdescription: input.description.trim(),\n\t\t\tconstraints: [...(input.constraints ?? [])],\n\t\t\tacceptanceCriteria,\n\t\t\triskBudget: { ...(input.riskBudget ?? {}) },\n\t\t};\n\t\tif (!nextFields.title || !nextFields.description) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Objective title and description are required.\");\n\t\t}\n\t\tconst currentFields = {\n\t\t\ttitle: current.objective.title,\n\t\t\tdescription: current.objective.description,\n\t\t\tconstraints: current.objective.constraints,\n\t\t\tacceptanceCriteria: current.objective.acceptanceCriteria,\n\t\t\triskBudget: current.objective.riskBudget,\n\t\t};\n\t\tif (isDeepStrictEqual(currentFields, nextFields)) return structuredClone(current.objective);\n\n\t\tconst retainedCriterionIds = new Set(acceptanceCriteria.map((criterion) => criterion.id));\n\t\tconst referencedRemovedIds = current.taskIds.flatMap((taskId) =>\n\t\t\t(this.state.tasks[taskId]?.task.acceptanceCriterionIds ?? []).filter(\n\t\t\t\t(criterionId) => !retainedCriterionIds.has(criterionId),\n\t\t\t),\n\t\t);\n\t\tif (referencedRemovedIds.length > 0) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Cannot remove acceptance criteria referenced by tasks: ${[...new Set(referencedRemovedIds)].join(\", \")}.`,\n\t\t\t);\n\t\t}\n\t\tconst objective: ObjectiveContract = {\n\t\t\t...current.objective,\n\t\t\t...nextFields,\n\t\t\tupdatedAt: this.nowIso(),\n\t\t};\n\t\tthis.commit({\n\t\t\ttype: \"objective.updated\",\n\t\t\taggregateId: objective.objectiveId,\n\t\t\tactor: \"kernel\",\n\t\t\tpayload: toJsonObject({ objective }),\n\t\t});\n\t\treturn structuredClone(objective);\n\t}\n\n\trecordObjectiveEvidence(objectiveId: string, evidence: EvidenceContract): EvidenceContract {\n\t\tthis.refresh();\n\t\tconst objective = this.requireObjective(objectiveId);\n\t\tconst existing = objective.evidence.find((candidate) => candidate.evidenceId === evidence.evidenceId);\n\t\tif (existing) {\n\t\t\tif (!isDeepStrictEqual(existing, evidence)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Objective evidence '${evidence.evidenceId}' has conflicting content.`);\n\t\t\t}\n\t\t\treturn structuredClone(existing);\n\t\t}\n\t\tif (!evidence.evidenceId.trim() || !evidence.summary.trim() || !evidence.createdAt.trim()) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Objective evidence requires an id, summary, and creation time.\");\n\t\t}\n\t\tif (\n\t\t\tevidence.criterionId &&\n\t\t\t!objective.objective.acceptanceCriteria.some((criterion) => criterion.id === evidence.criterionId)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Objective evidence references unknown acceptance criterion '${evidence.criterionId}'.`,\n\t\t\t);\n\t\t}\n\t\tthis.commit({\n\t\t\ttype: \"objective.evidence_recorded\",\n\t\t\taggregateId: objectiveId,\n\t\t\tactor: \"kernel\",\n\t\t\tidempotencyKey: `objective-evidence-recorded:${objectiveId}:${evidence.evidenceId}`,\n\t\t\tpayload: toJsonObject({ evidence }),\n\t\t});\n\t\treturn structuredClone(evidence);\n\t}\n\n\tcreateTask(input: CreateTaskInput): TaskContract {\n\t\tthis.refresh();\n\t\tassertRiskBudget(input.riskBudget, \"task.riskBudget\");\n\t\tconst objectiveState = this.state.objectives[input.objectiveId];\n\t\tif (!objectiveState) throw new DurableTaskRuntimeError(`Unknown objective '${input.objectiveId}'.`);\n\t\tif (objectiveState.objective.status !== \"active\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${input.objectiveId}' is not active.`);\n\t\t}\n\t\tconst dependsOn = [...new Set(input.dependsOn ?? [])];\n\t\tconst acceptanceCriterionIds = [...new Set(input.acceptanceCriterionIds ?? [])];\n\t\tconst objectiveCriterionIds = new Set(\n\t\t\tobjectiveState.objective.acceptanceCriteria.map((criterion) => criterion.id),\n\t\t);\n\t\tconst unknownCriterionIds = acceptanceCriterionIds.filter(\n\t\t\t(criterionId) => !objectiveCriterionIds.has(criterionId),\n\t\t);\n\t\tif (unknownCriterionIds.length > 0) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Task references unknown acceptance criteria: ${unknownCriterionIds.join(\", \")}.`,\n\t\t\t);\n\t\t}\n\t\tfor (const dependencyId of dependsOn) {\n\t\t\tconst dependency = this.state.tasks[dependencyId];\n\t\t\tif (!dependency || dependency.task.objectiveId !== input.objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Task dependency '${dependencyId}' is not in objective '${input.objectiveId}'.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (input.verificationOfTaskId) {\n\t\t\tconst subject = this.state.tasks[input.verificationOfTaskId];\n\t\t\tif (!subject || subject.task.objectiveId !== input.objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Verification subject '${input.verificationOfTaskId}' is not in objective '${input.objectiveId}'.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (input.role !== \"verifier\") {\n\t\t\t\tthrow new DurableTaskRuntimeError(\"Only verifier tasks may declare verificationOfTaskId.\");\n\t\t\t}\n\t\t\tif (subject.task.role === \"verifier\") {\n\t\t\t\tthrow new DurableTaskRuntimeError(\"A verifier task cannot independently verify another verifier task.\");\n\t\t\t}\n\t\t}\n\t\tconst now = this.nowIso();\n\t\tconst task: TaskContract = {\n\t\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\t\ttaskId: input.taskId ?? `task-${this.createId()}`,\n\t\t\tobjectiveId: input.objectiveId,\n\t\t\ttitle: input.title.trim(),\n\t\t\tdescription: input.description.trim(),\n\t\t\trole: input.role,\n\t\t\tstatus: dependsOn.length === 0 ? \"ready\" : \"pending\",\n\t\t\tdependsOn,\n\t\t\trequiredCapabilities: [...new Set(input.requiredCapabilities ?? [])],\n\t\t\tacceptanceCriterionIds,\n\t\t\t...(input.verificationOfTaskId ? { verificationOfTaskId: input.verificationOfTaskId } : {}),\n\t\t\triskBudget: { ...(input.riskBudget ?? {}) },\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now,\n\t\t};\n\t\tif (!task.title || !task.description)\n\t\t\tthrow new DurableTaskRuntimeError(\"Task title and description are required.\");\n\t\tif (this.state.tasks[task.taskId]) throw new DurableTaskRuntimeError(`Task '${task.taskId}' already exists.`);\n\t\tthis.commit({\n\t\t\ttype: \"task.created\",\n\t\t\taggregateId: task.objectiveId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `task-created:${task.taskId}`,\n\t\t\tpayload: toJsonObject({ task }),\n\t\t});\n\t\treturn structuredClone(this.state.tasks[task.taskId]!.task);\n\t}\n\n\tqueueAttempt(taskId: string, dispatch: OrchestrationDispatchRequest, grantId?: string): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst task = this.requireDispatchableTask(taskId);\n\t\tconst pendingApproval = this.pendingApprovalForTask(taskId);\n\t\tif (pendingApproval) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Task '${taskId}' is awaiting approval '${pendingApproval.request.approvalId}'.`,\n\t\t\t);\n\t\t}\n\t\tconst normalizedDispatch = dispatchFromValue(dispatch, \"dispatch\");\n\t\tif (normalizedDispatch.taskId !== taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Dispatch taskId does not match the queued task.\");\n\t\t}\n\t\tif (\n\t\t\tnormalizedDispatch.executionContract &&\n\t\t\t(normalizedDispatch.executionContract.worker.profile.profileId !== normalizedDispatch.profileId ||\n\t\t\t\tnormalizedDispatch.executionContract.worker.profile.role !== task.task.role)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Execution contract does not match the dispatch profile and task role.\");\n\t\t}\n\t\tconst objective = this.state.objectives[task.task.objectiveId]!.objective;\n\t\tconst attemptCeilings = [task.task.riskBudget.maxAttempts, objective.riskBudget.maxAttempts].filter(\n\t\t\t(value): value is number => value !== undefined,\n\t\t);\n\t\tconst maxAttempts = attemptCeilings.length > 0 ? Math.min(...attemptCeilings) : undefined;\n\t\tif (maxAttempts !== undefined && task.attemptIds.length >= maxAttempts) {\n\t\t\tthrow new DurableTaskRuntimeError(`Task '${taskId}' exhausted its ${maxAttempts} attempt budget.`);\n\t\t}\n\t\tconst attemptId = `attempt-${this.createId()}`;\n\t\tthis.commit({\n\t\t\ttype: \"attempt.queued\",\n\t\t\taggregateId: taskId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `attempt-queued:${attemptId}`,\n\t\t\tpayload: toJsonObject({ attemptId, taskId, dispatch: normalizedDispatch, ...(grantId ? { grantId } : {}) }),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[attemptId]!);\n\t}\n\n\tbindAttemptGrant(attemptId: string, grant: ExecutionGrant): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireAttempt(attemptId);\n\t\tif (![\"queued\", \"leased\", \"running\"].includes(attempt.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' cannot bind a grant from '${attempt.status}'.`);\n\t\t}\n\t\tif (!grant.grantId.trim()) throw new DurableTaskRuntimeError(\"Grant id is required.\");\n\t\tconst task = this.state.tasks[attempt.taskId];\n\t\tif (\n\t\t\t!task ||\n\t\t\tgrant.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION ||\n\t\t\tgrant.attemptId !== attemptId ||\n\t\t\tgrant.taskId !== attempt.taskId ||\n\t\t\tgrant.objectiveId !== task.task.objectiveId ||\n\t\t\tgrant.role !== task.task.role\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Execution grant target does not match the attempt.\");\n\t\t}\n\t\tconst approval = this.approvalForAttempt(attemptId);\n\t\tif (approval?.status === \"pending\") {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Attempt '${attemptId}' is awaiting approval '${approval.request.approvalId}'.`,\n\t\t\t);\n\t\t}\n\t\tif (approval?.status === \"rejected\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Approval '${approval.request.approvalId}' was rejected.`);\n\t\t}\n\t\tif (attempt.grantId === grant.grantId) {\n\t\t\tif (attempt.grant && !isDeepStrictEqual(attempt.grant, grant)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' grant has conflicting content.`);\n\t\t\t}\n\t\t\treturn structuredClone(attempt);\n\t\t}\n\t\tif (attempt.grantId) throw new DurableTaskRuntimeError(`Attempt '${attemptId}' already has a different grant.`);\n\t\tthis.commit({\n\t\t\ttype: \"attempt.grant_bound\",\n\t\t\taggregateId: attemptId,\n\t\t\tactor: \"policy\",\n\t\t\tidempotencyKey: `attempt-grant-bound:${attemptId}:${grant.grantId}`,\n\t\t\tpayload: toJsonObject({ attemptId, grant }),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[attemptId]!);\n\t}\n\n\tleaseAttempt(attemptId: string, ownerId: string, ttlMs: number, agentId?: string): AttemptLease {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireAttempt(attemptId);\n\t\tif (attempt.status !== \"queued\") throw new DurableTaskRuntimeError(`Attempt '${attemptId}' is not queued.`);\n\t\tthis.requireActiveObjectiveForAttempt(attempt);\n\t\tconst approval = this.approvalForAttempt(attemptId);\n\t\tif (approval?.status === \"pending\") {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Attempt '${attemptId}' is awaiting approval '${approval.request.approvalId}'.`,\n\t\t\t);\n\t\t}\n\t\tif (!attempt.grantId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' requires an execution grant before leasing.`);\n\t\t}\n\t\tif (agentId) {\n\t\t\tconst agent = this.state.agents[agentId];\n\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\tif (agent.status !== \"registered\") throw new DurableTaskRuntimeError(`Agent '${agentId}' is not idle.`);\n\t\t\tconst task = this.state.tasks[attempt.taskId];\n\t\t\tif (!task || task.task.role !== agent.role)\n\t\t\t\tthrow new DurableTaskRuntimeError(`Agent '${agentId}' role does not match task.`);\n\t\t}\n\t\tif (!Number.isFinite(ttlMs) || ttlMs <= 0) throw new DurableTaskRuntimeError(\"Lease TTL must be positive.\");\n\t\tconst issuedAtMs = this.now();\n\t\tconst lease: AttemptLease = {\n\t\t\tleaseId: `lease-${this.createId()}`,\n\t\t\tattemptId,\n\t\t\townerId,\n\t\t\tfencingToken: (attempt.lease?.fencingToken ?? 0) + 1,\n\t\t\tissuedAt: new Date(issuedAtMs).toISOString(),\n\t\t\texpiresAt: new Date(issuedAtMs + ttlMs).toISOString(),\n\t\t};\n\t\tthis.commit({\n\t\t\ttype: \"attempt.leased\",\n\t\t\taggregateId: attemptId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `attempt-leased:${lease.leaseId}`,\n\t\t\tpayload: toJsonObject({ lease, ...(agentId ? { agentId } : {}) }),\n\t\t});\n\t\treturn structuredClone(lease);\n\t}\n\n\tstartAttempt(attemptId: string, leaseId: string, fencingToken: number): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireLiveLease(attemptId, leaseId, fencingToken);\n\t\tthis.requireActiveObjectiveForAttempt(attempt);\n\t\tif (attempt.status !== \"leased\") throw new DurableTaskRuntimeError(`Attempt '${attemptId}' is not leased.`);\n\t\tthis.commit({\n\t\t\ttype: \"attempt.started\",\n\t\t\taggregateId: attemptId,\n\t\t\tactor: \"worker\",\n\t\t\tidempotencyKey: `attempt-started:${attemptId}:${fencingToken}`,\n\t\t\tpayload: toJsonObject({ attemptId, leaseId, fencingToken }),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[attemptId]!);\n\t}\n\n\tcheckpointAttempt(args: {\n\t\tattemptId: string;\n\t\tleaseId: string;\n\t\tfencingToken: number;\n\t\tsummary: string;\n\t\tartifactIds?: readonly string[];\n\t\tevidenceIds?: readonly string[];\n\t\tusage?: AttemptCheckpoint[\"usage\"];\n\t}): AttemptCheckpoint {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireLiveLease(args.attemptId, args.leaseId, args.fencingToken);\n\t\tif (attempt.status !== \"running\")\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${args.attemptId}' is not running.`);\n\t\tconst checkpoint: AttemptCheckpoint = {\n\t\t\tcheckpointId: `checkpoint-${this.createId()}`,\n\t\t\tattemptId: args.attemptId,\n\t\t\tfencingToken: args.fencingToken,\n\t\t\tsummary: args.summary.trim(),\n\t\t\tartifactIds: [...(args.artifactIds ?? [])],\n\t\t\tevidenceIds: [...(args.evidenceIds ?? [])],\n\t\t\t...(args.usage ? { usage: usageFromPayload(args.usage, \"checkpoint.usage\") } : {}),\n\t\t\tcreatedAt: this.nowIso(),\n\t\t};\n\t\tif (!checkpoint.summary) throw new DurableTaskRuntimeError(\"Checkpoint summary is required.\");\n\t\tthis.commit({\n\t\t\ttype: \"attempt.checkpointed\",\n\t\t\taggregateId: args.attemptId,\n\t\t\tactor: \"worker\",\n\t\t\tidempotencyKey: `attempt-checkpointed:${checkpoint.checkpointId}`,\n\t\t\tpayload: toJsonObject({ checkpoint, leaseId: args.leaseId }),\n\t\t});\n\t\treturn structuredClone(checkpoint);\n\t}\n\n\tfinishAttempt(result: WorkerResultContract): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireLiveLease(result.attemptId, result.leaseId, result.fencingToken);\n\t\tif (attempt.status !== \"running\" && attempt.status !== \"leased\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${result.attemptId}' cannot finish from '${attempt.status}'.`);\n\t\t}\n\t\tif (attempt.taskId !== result.taskId)\n\t\t\tthrow new DurableTaskRuntimeError(\"Worker result taskId does not match attempt.\");\n\t\tconst task = this.state.tasks[attempt.taskId];\n\t\tif (!task || task.task.objectiveId !== result.objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Worker result objectiveId does not match attempt.\");\n\t\t}\n\t\tif (result.status === \"completed\") {\n\t\t\tconst missingCriteria = missingTrustedCriteria(result, task.task.acceptanceCriterionIds);\n\t\t\tif (missingCriteria.length > 0) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Completed result lacks trusted evidence for acceptance criteria: ${missingCriteria.join(\", \")}.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.commit({\n\t\t\ttype: \"attempt.finished\",\n\t\t\taggregateId: result.attemptId,\n\t\t\tactor: \"worker\",\n\t\t\tidempotencyKey: `attempt-finished:${result.resultId}`,\n\t\t\tpayload: toJsonObject({ result }),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[result.attemptId]!);\n\t}\n\n\tfinishVerification(args: {\n\t\ttaskId: string;\n\t\tverifierTaskId: string;\n\t\tverifierAttemptId: string;\n\t\tverdict: \"accepted\" | \"rejected\" | \"inconclusive\";\n\t\treasonCode: string;\n\t}): TaskRuntimeState {\n\t\tthis.refresh();\n\t\tconst subject = this.state.tasks[args.taskId];\n\t\tconst verifierTask = this.state.tasks[args.verifierTaskId];\n\t\tconst verifierAttempt = this.state.attempts[args.verifierAttemptId];\n\t\tif (!subject) throw new DurableTaskRuntimeError(`Unknown verification subject '${args.taskId}'.`);\n\t\tif (!verifierTask || verifierTask.task.verificationOfTaskId !== args.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Task '${args.verifierTaskId}' is not the verifier for '${args.taskId}'.`);\n\t\t}\n\t\tif (!verifierAttempt || verifierAttempt.taskId !== args.verifierTaskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Unknown verifier attempt '${args.verifierAttemptId}'.`);\n\t\t}\n\t\tif (args.verdict === \"inconclusive\") {\n\t\t\tif (\n\t\t\t\tverifierAttempt.status === \"queued\" ||\n\t\t\t\tverifierAttempt.status === \"leased\" ||\n\t\t\t\tverifierAttempt.status === \"running\"\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Verifier attempt '${args.verifierAttemptId}' is not terminal.`);\n\t\t\t}\n\t\t} else if (verifierAttempt.status !== \"completed\" || !verifierAttempt.result) {\n\t\t\tthrow new DurableTaskRuntimeError(`Verifier attempt '${args.verifierAttemptId}' is not completed.`);\n\t\t}\n\t\tif (subject.task.status !== \"blocked\") {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Verification subject '${args.taskId}' cannot reconcile from '${subject.task.status}'.`,\n\t\t\t);\n\t\t}\n\t\tif (!args.reasonCode.trim()) throw new DurableTaskRuntimeError(\"Verification reason code is required.\");\n\t\tif (\n\t\t\targs.verdict === \"accepted\" &&\n\t\t\t!verifierAttempt.result?.evidence.some(\n\t\t\t\t(evidence) =>\n\t\t\t\t\tevidence.trusted && evidence.kind === \"review\" && evidence.metadata?.subjectTaskId === args.taskId,\n\t\t\t)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\"Accepted verification requires trusted review evidence for the subject task.\",\n\t\t\t);\n\t\t}\n\t\tthis.commit({\n\t\t\ttype: \"task.verification_finished\",\n\t\t\taggregateId: args.taskId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `task-verification-finished:${args.taskId}:${args.verifierAttemptId}`,\n\t\t\tpayload: toJsonObject({ ...args, reasonCode: args.reasonCode.trim() }),\n\t\t});\n\t\treturn structuredClone(this.state.tasks[args.taskId]!);\n\t}\n\n\tcancelAttempt(attemptId: string, reasonCode: string): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireAttempt(attemptId);\n\t\tif (terminalAttemptStatus(attempt.status)) return structuredClone(attempt);\n\t\tif (!reasonCode.trim()) throw new DurableTaskRuntimeError(\"Cancellation reason is required.\");\n\t\tthis.commit({\n\t\t\ttype: \"attempt.cancelled\",\n\t\t\taggregateId: attemptId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `attempt-cancelled:${attemptId}`,\n\t\t\tpayload: toJsonObject({ attemptId, reasonCode: reasonCode.trim() }),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[attemptId]!);\n\t}\n\n\t/**\n\t * The only runtime suspension transition. Callers must present the exact current owner and lease\n\t * fence; liveness/restart policy stays outside this deterministic runtime.\n\t */\n\tsuspendBoundAttempt(args: {\n\t\tattemptId: string;\n\t\townerId: string;\n\t\tleaseId: string;\n\t\tfencingToken: number;\n\t\treasonCode: string;\n\t}): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireAttempt(args.attemptId);\n\t\tif (!attempt.agentId || !attempt.lease || ![\"leased\", \"running\"].includes(attempt.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${args.attemptId}' is not a live agent-bound attempt.`);\n\t\t}\n\t\tif (attempt.lease.ownerId !== args.ownerId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${args.attemptId}' is not owned by '${args.ownerId}'.`);\n\t\t}\n\t\tif (attempt.lease.leaseId !== args.leaseId || attempt.lease.fencingToken !== args.fencingToken) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${args.attemptId}' lease or fencing token is stale.`);\n\t\t}\n\t\tif (!args.reasonCode.trim()) throw new DurableTaskRuntimeError(\"Suspension reason is required.\");\n\t\tthis.commit({\n\t\t\ttype: \"attempt.suspended\",\n\t\t\taggregateId: args.attemptId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `attempt-suspended:${args.attemptId}:${args.leaseId}:${args.fencingToken}`,\n\t\t\tpayload: toJsonObject({\n\t\t\t\tattemptId: args.attemptId,\n\t\t\t\tleaseId: args.leaseId,\n\t\t\t\tfencingToken: args.fencingToken,\n\t\t\t\treasonCode: args.reasonCode.trim(),\n\t\t\t}),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[args.attemptId]!);\n\t}\n\n\tfailTask(taskId: string, reasonCode: string): TaskContract {\n\t\tthis.refresh();\n\t\tconst task = this.state.tasks[taskId];\n\t\tif (!task) throw new DurableTaskRuntimeError(`Unknown task '${taskId}'.`);\n\t\tif ([\"completed\", \"failed\", \"cancelled\"].includes(task.task.status)) return structuredClone(task.task);\n\t\tif (!reasonCode.trim()) throw new DurableTaskRuntimeError(\"Task failure reason is required.\");\n\t\tthis.commit({\n\t\t\ttype: \"task.failed\",\n\t\t\taggregateId: taskId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `task-failed:${taskId}:${reasonCode.trim()}`,\n\t\t\tpayload: toJsonObject({ taskId, reasonCode: reasonCode.trim() }),\n\t\t});\n\t\treturn structuredClone(this.state.tasks[taskId]!.task);\n\t}\n\n\t/**\n\t * Recover unbound in-process work after a process restart. A completion has no resumable model\n\t * transcript, so its old lease is fenced and the task becomes dispatchable for a fresh attempt.\n\t * Agent-bound attempts are intentionally excluded: those must wake the same logical agent.\n\t */\n\trecoverInterruptedUnboundAttempts(shouldRecover: (attempt: AttemptRuntimeState) => boolean = () => true): string[] {\n\t\tthis.refresh();\n\t\tconst recovered: string[] = [];\n\t\tfor (const attempt of Object.values(this.state.attempts)) {\n\t\t\tif (\n\t\t\t\t(attempt.status !== \"leased\" && attempt.status !== \"running\") ||\n\t\t\t\tattempt.agentId ||\n\t\t\t\t!shouldRecover(attempt)\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.commit({\n\t\t\t\ttype: \"attempt.lease_expired\",\n\t\t\t\taggregateId: attempt.attemptId,\n\t\t\t\tactor: \"runtime\",\n\t\t\t\tidempotencyKey: `attempt-process-interrupted:${attempt.attemptId}:${attempt.lease?.leaseId ?? \"none\"}`,\n\t\t\t\tpayload: toJsonObject({\n\t\t\t\t\tattemptId: attempt.attemptId,\n\t\t\t\t\t...(attempt.lease ? { leaseId: attempt.lease.leaseId, fencingToken: attempt.lease.fencingToken } : {}),\n\t\t\t\t\treasonCode: \"worker_process_interrupted\",\n\t\t\t\t}),\n\t\t\t});\n\t\t\trecovered.push(attempt.attemptId);\n\t\t}\n\t\treturn recovered;\n\t}\n\n\texpireLeases(at = this.now()): string[] {\n\t\tthis.refresh();\n\t\tconst expired: string[] = [];\n\t\tfor (const attempt of Object.values(this.state.attempts)) {\n\t\t\tif ((attempt.status !== \"leased\" && attempt.status !== \"running\") || !attempt.lease) continue;\n\t\t\tif (Date.parse(attempt.lease.expiresAt) > at) continue;\n\t\t\tthis.commit({\n\t\t\t\ttype: attempt.agentId ? \"attempt.suspended\" : \"attempt.lease_expired\",\n\t\t\t\taggregateId: attempt.attemptId,\n\t\t\t\tactor: \"runtime\",\n\t\t\t\tidempotencyKey: `attempt-lease-expired:${attempt.lease.leaseId}`,\n\t\t\t\tpayload: toJsonObject({\n\t\t\t\t\tattemptId: attempt.attemptId,\n\t\t\t\t\tleaseId: attempt.lease.leaseId,\n\t\t\t\t\tfencingToken: attempt.lease.fencingToken,\n\t\t\t\t}),\n\t\t\t});\n\t\t\texpired.push(attempt.attemptId);\n\t\t}\n\t\treturn expired;\n\t}\n\n\trequestAgentResume(agentId: string): AgentBindingContract {\n\t\tthis.refresh();\n\t\tconst agent = this.state.agents[agentId];\n\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\tif (agent.status !== \"suspended\") throw new DurableTaskRuntimeError(`Agent '${agentId}' is not suspended.`);\n\t\tthis.commit({\n\t\t\ttype: \"agent.resume_requested\",\n\t\t\taggregateId: agentId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `agent-resume-requested:${agentId}:${this.state.lastOrdinal}`,\n\t\t\tpayload: toJsonObject({ agentId }),\n\t\t});\n\t\treturn structuredClone(this.state.agents[agentId]!);\n\t}\n\n\tresumeAttempt(attemptId: string, agentId: string, ttlMs: number, ownerId = agentId): AttemptLease {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireAttempt(attemptId);\n\t\tconst agent = this.state.agents[agentId];\n\t\tif (attempt.status !== \"suspended\" || attempt.agentId !== agentId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' is not suspended for agent '${agentId}'.`);\n\t\t}\n\t\tif (!agent || agent.status !== \"resuming\")\n\t\t\tthrow new DurableTaskRuntimeError(`Agent '${agentId}' is not resuming.`);\n\t\tthis.requireActiveObjectiveForAttempt(attempt);\n\t\tif (!Number.isFinite(ttlMs) || ttlMs <= 0) throw new DurableTaskRuntimeError(\"Lease TTL must be positive.\");\n\t\tconst issuedAtMs = this.now();\n\t\tconst lease: AttemptLease = {\n\t\t\tleaseId: `lease-${this.createId()}`,\n\t\t\tattemptId,\n\t\t\townerId,\n\t\t\tfencingToken: (attempt.lease?.fencingToken ?? 0) + 1,\n\t\t\tissuedAt: new Date(issuedAtMs).toISOString(),\n\t\t\texpiresAt: new Date(issuedAtMs + ttlMs).toISOString(),\n\t\t};\n\t\tthis.commit({\n\t\t\ttype: \"attempt.resumed\",\n\t\t\taggregateId: attemptId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `attempt-resumed:${lease.leaseId}`,\n\t\t\tpayload: toJsonObject({ agentId, lease }),\n\t\t});\n\t\treturn structuredClone(lease);\n\t}\n\n\tpauseObjective(objectiveId: string): void {\n\t\tthis.transitionObjective(objectiveId, \"objective.paused\", \"paused\");\n\t}\n\n\tresumeObjective(objectiveId: string): void {\n\t\tthis.transitionObjective(objectiveId, \"objective.resumed\", \"active\");\n\t}\n\n\tcancelObjective(objectiveId: string): void {\n\t\tthis.transitionObjective(objectiveId, \"objective.cancelled\", \"cancelled\");\n\t}\n\n\tcompleteObjective(objectiveId: string): void {\n\t\tthis.refresh();\n\t\tconst objective = this.requireObjective(objectiveId);\n\t\tconst incomplete = objective.taskIds.filter((taskId) => this.state.tasks[taskId]?.task.status !== \"completed\");\n\t\tif (incomplete.length > 0) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Objective '${objectiveId}' has incomplete tasks: ${incomplete.join(\", \")}.`,\n\t\t\t);\n\t\t}\n\t\tconst requiredCriterionIds = objective.objective.acceptanceCriteria\n\t\t\t.filter((criterion) => criterion.required)\n\t\t\t.map((criterion) => criterion.id);\n\t\tconst evidence = [\n\t\t\t...objective.evidence,\n\t\t\t...objective.taskIds.flatMap((taskId) => {\n\t\t\t\tconst task = this.state.tasks[taskId];\n\t\t\t\treturn (\n\t\t\t\t\ttask?.attemptIds.flatMap((attemptId) => this.state.attempts[attemptId]?.result?.evidence ?? []) ?? []\n\t\t\t\t);\n\t\t\t}),\n\t\t];\n\t\tconst provenCriterionIds = new Set(\n\t\t\tevidence.flatMap((item) => (item.trusted && item.criterionId ? [item.criterionId] : [])),\n\t\t);\n\t\tconst unproven = requiredCriterionIds.filter((criterionId) => !provenCriterionIds.has(criterionId));\n\t\tif (unproven.length > 0) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Objective '${objectiveId}' lacks trusted evidence for required criteria: ${unproven.join(\", \")}.`,\n\t\t\t);\n\t\t}\n\t\tthis.transitionObjective(objectiveId, \"objective.completed\", \"completed\");\n\t}\n\n\tcompleteObjectiveFromOwner(objectiveId: string, acceptanceOverride: boolean): void {\n\t\tthis.refresh();\n\t\tconst objective = this.requireObjective(objectiveId);\n\t\tif (objective.objective.status === \"completed\") return;\n\t\tif (objective.objective.status === \"cancelled\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objectiveId}' is terminal.`);\n\t\t}\n\t\tif (!acceptanceOverride) {\n\t\t\tconst provenCriterionIds = new Set(\n\t\t\t\tobjective.evidence.flatMap((evidence) =>\n\t\t\t\t\tevidence.trusted && evidence.criterionId ? [evidence.criterionId] : [],\n\t\t\t\t),\n\t\t\t);\n\t\t\tconst unproven = objective.objective.acceptanceCriteria\n\t\t\t\t.filter((criterion) => criterion.required && !provenCriterionIds.has(criterion.id))\n\t\t\t\t.map((criterion) => criterion.id);\n\t\t\tif (unproven.length > 0) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Objective '${objectiveId}' lacks trusted owner evidence for required criteria: ${unproven.join(\", \")}.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.transitionObjective(objectiveId, \"objective.completed\", \"completed\");\n\t}\n\n\trequestApproval(approval: ApprovalRequestContract): ApprovalRuntimeState {\n\t\tthis.refresh();\n\t\tconst normalized = approvalFromPayload(toJsonObject({ approval }));\n\t\tconst existing = this.state.approvals[normalized.approvalId];\n\t\tif (existing) {\n\t\t\tif (!isDeepStrictEqual(existing.request, normalized)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Approval id '${normalized.approvalId}' has conflicting content.`);\n\t\t\t}\n\t\t\treturn structuredClone(existing);\n\t\t}\n\t\tthis.validateApprovalRequest(normalized);\n\t\tconst pendingForTarget = Object.values(this.state.approvals).find(\n\t\t\t(candidate) =>\n\t\t\t\tcandidate.status === \"pending\" &&\n\t\t\t\tcandidate.request.objectiveId === normalized.objectiveId &&\n\t\t\t\tcandidate.request.taskId === normalized.taskId &&\n\t\t\t\tcandidate.request.attemptId === normalized.attemptId,\n\t\t);\n\t\tif (pendingForTarget) {\n\t\t\tthrow new DurableTaskRuntimeError(`Target already awaits approval '${pendingForTarget.request.approvalId}'.`);\n\t\t}\n\t\tthis.commit({\n\t\t\ttype: \"approval.requested\",\n\t\t\taggregateId: normalized.attemptId ?? normalized.taskId ?? normalized.objectiveId,\n\t\t\tactor: \"policy\",\n\t\t\tidempotencyKey: `approval-requested:${normalized.approvalId}`,\n\t\t\tpayload: toJsonObject({ approval: normalized }),\n\t\t});\n\t\treturn structuredClone(this.state.approvals[normalized.approvalId]!);\n\t}\n\n\tresolveApproval(approvalId: string, outcome: ApprovalOutcome, reasonCode: string): ApprovalRuntimeState {\n\t\tthis.refresh();\n\t\tconst approval = this.state.approvals[approvalId];\n\t\tif (!approval) throw new DurableTaskRuntimeError(`Unknown approval '${approvalId}'.`);\n\t\tif (approval.status !== \"pending\") {\n\t\t\tif (approval.status === outcome) return structuredClone(approval);\n\t\t\tthrow new DurableTaskRuntimeError(`Approval '${approvalId}' was already ${approval.status}.`);\n\t\t}\n\t\tif (outcome !== \"approved\" && outcome !== \"rejected\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Unknown approval outcome '${String(outcome)}'.`);\n\t\t}\n\t\tif (!reasonCode.trim()) throw new DurableTaskRuntimeError(\"Approval resolution reason is required.\");\n\t\tconst resolution: ApprovalResolutionContract = {\n\t\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\t\tapprovalId,\n\t\t\toutcome,\n\t\t\treasonCode: reasonCode.trim(),\n\t\t\tresolvedAt: this.nowIso(),\n\t\t};\n\t\tthis.commit({\n\t\t\ttype: \"approval.resolved\",\n\t\t\taggregateId: approval.request.attemptId ?? approval.request.taskId ?? approval.request.objectiveId,\n\t\t\tactor: \"human\",\n\t\t\tidempotencyKey: `approval-resolved:${approvalId}`,\n\t\t\tpayload: toJsonObject({ resolution }),\n\t\t});\n\t\treturn structuredClone(this.state.approvals[approvalId]!);\n\t}\n\n\tenqueueNotification(args: {\n\t\tnotificationId?: string;\n\t\tobjectiveId: string;\n\t\tattemptId?: string;\n\t\tmessage: string;\n\t}): NotificationRuntimeState {\n\t\tthis.refresh();\n\t\tthis.requireObjective(args.objectiveId);\n\t\tconst notificationId = args.notificationId ?? `notification-${this.createId()}`;\n\t\tconst existing = this.state.notifications[notificationId];\n\t\tif (existing) return structuredClone(existing);\n\t\tthis.commit({\n\t\t\ttype: \"notification.enqueued\",\n\t\t\taggregateId: args.objectiveId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `notification-enqueued:${notificationId}`,\n\t\t\tpayload: toJsonObject({ ...args, notificationId }),\n\t\t});\n\t\treturn structuredClone(this.state.notifications[notificationId]!);\n\t}\n\n\tmarkNotificationDelivered(notificationId: string): NotificationRuntimeState {\n\t\tthis.refresh();\n\t\tconst notification = this.state.notifications[notificationId];\n\t\tif (!notification) throw new DurableTaskRuntimeError(`Unknown notification '${notificationId}'.`);\n\t\tif (notification.status === \"delivered\") return structuredClone(notification);\n\t\tthis.commit({\n\t\t\ttype: \"notification.delivered\",\n\t\t\taggregateId: notification.objectiveId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `notification-delivered:${notificationId}`,\n\t\t\tpayload: toJsonObject({ notificationId }),\n\t\t});\n\t\treturn structuredClone(this.state.notifications[notificationId]!);\n\t}\n\n\tprivate transitionObjective(\n\t\tobjectiveId: string,\n\t\ttype: \"objective.paused\" | \"objective.resumed\" | \"objective.cancelled\" | \"objective.completed\",\n\t\ttarget: ObjectiveStatus,\n\t): void {\n\t\tthis.refresh();\n\t\tconst objective = this.requireObjective(objectiveId);\n\t\tif (objective.objective.status === target) return;\n\t\tif ([\"completed\", \"cancelled\"].includes(objective.objective.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objectiveId}' is terminal.`);\n\t\t}\n\t\tthis.commit({\n\t\t\ttype,\n\t\t\taggregateId: objectiveId,\n\t\t\tactor: \"human\",\n\t\t\tidempotencyKey: `${type}:${objectiveId}:${this.state.lastOrdinal}`,\n\t\t\tpayload: {},\n\t\t});\n\t}\n\n\tprivate requireObjective(objectiveId: string): ObjectiveRuntimeState {\n\t\tconst objective = this.state.objectives[objectiveId];\n\t\tif (!objective) throw new DurableTaskRuntimeError(`Unknown objective '${objectiveId}'.`);\n\t\treturn objective;\n\t}\n\n\tprivate requireDispatchableTask(taskId: string): TaskRuntimeState {\n\t\tconst task = this.state.tasks[taskId];\n\t\tif (!task) throw new DurableTaskRuntimeError(`Unknown task '${taskId}'.`);\n\t\tconst objective = this.requireObjective(task.task.objectiveId);\n\t\tif (objective.objective.status !== \"active\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objective.objective.objectiveId}' is not active.`);\n\t\t}\n\t\tif (![\"ready\", \"blocked\", \"failed\"].includes(task.task.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`Task '${taskId}' is not dispatchable from '${task.task.status}'.`);\n\t\t}\n\t\treturn task;\n\t}\n\n\tprivate requireAttempt(attemptId: string): AttemptRuntimeState {\n\t\tconst attempt = this.state.attempts[attemptId];\n\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\treturn attempt;\n\t}\n\n\tprivate approvalForAttempt(attemptId: string): ApprovalRuntimeState | undefined {\n\t\treturn Object.values(this.state.approvals).find((approval) => approval.request.attemptId === attemptId);\n\t}\n\n\tprivate pendingApprovalForTask(taskId: string): ApprovalRuntimeState | undefined {\n\t\tconst task = this.state.tasks[taskId];\n\t\tif (!task) return undefined;\n\t\treturn Object.values(this.state.approvals).find(\n\t\t\t(approval) =>\n\t\t\t\tapproval.status === \"pending\" &&\n\t\t\t\tapproval.request.attemptId === undefined &&\n\t\t\t\tapproval.request.objectiveId === task.task.objectiveId &&\n\t\t\t\t(approval.request.taskId === undefined || approval.request.taskId === taskId),\n\t\t);\n\t}\n\n\tprivate requireActiveObjectiveForAttempt(attempt: AttemptRuntimeState): void {\n\t\tconst task = this.state.tasks[attempt.taskId];\n\t\tif (!task) throw new DurableTaskRuntimeError(`Unknown task '${attempt.taskId}'.`);\n\t\tconst objective = this.requireObjective(task.task.objectiveId).objective;\n\t\tif (objective.status !== \"active\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objective.objectiveId}' is not active.`);\n\t\t}\n\t}\n\n\tprivate validateApprovalRequest(approval: ApprovalRequestContract): void {\n\t\tconst objective = this.requireObjective(approval.objectiveId).objective;\n\t\tif (objective.status !== \"active\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${approval.objectiveId}' is not active.`);\n\t\t}\n\t\tif (approval.attemptId && !approval.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Attempt-scoped approval requires a taskId.\");\n\t\t}\n\t\tif (approval.taskId) {\n\t\t\tconst task = this.state.tasks[approval.taskId];\n\t\t\tif (!task || task.task.objectiveId !== approval.objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Approval task '${approval.taskId}' does not belong to its objective.`);\n\t\t\t}\n\t\t}\n\t\tif (approval.attemptId) {\n\t\t\tconst attempt = this.state.attempts[approval.attemptId];\n\t\t\tif (!attempt || attempt.taskId !== approval.taskId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Approval attempt '${approval.attemptId}' does not belong to its task.`);\n\t\t\t}\n\t\t\tif (attempt.status !== \"queued\" || attempt.grantId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Approval attempt '${approval.attemptId}' is not awaiting policy.`);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate requireLiveLease(attemptId: string, leaseId: string, fencingToken: number): AttemptRuntimeState {\n\t\tconst attempt = this.requireAttempt(attemptId);\n\t\tif (!attempt.lease || attempt.lease.leaseId !== leaseId || attempt.lease.fencingToken !== fencingToken) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' lease or fencing token is stale.`);\n\t\t}\n\t\tif (Date.parse(attempt.lease.expiresAt) <= this.now()) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' lease expired.`);\n\t\t}\n\t\treturn attempt;\n\t}\n\n\tprivate refresh(): void {\n\t\tlet events: OrchestrationEvent[];\n\t\ttry {\n\t\t\tevents = this.store.readAfter(this.state.lastOrdinal);\n\t\t} catch (error) {\n\t\t\tif (!(error instanceof OrchestrationSnapshotRequiredError)) throw error;\n\t\t\tconst snapshot = this.store.readProjectionSnapshot();\n\t\t\tif (!snapshot || snapshot.throughOrdinal < error.throughOrdinal) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\"Required orchestration projection snapshot is unavailable.\");\n\t\t\t}\n\t\t\tthis.state = projectionFromSnapshot(snapshot.projection, snapshot.throughOrdinal);\n\t\t\tevents = this.store.readAfter(this.state.lastOrdinal);\n\t\t}\n\t\tfor (const event of events) {\n\t\t\tthis.state = reduceOrchestrationEvent(this.state, event);\n\t\t}\n\t\tthis.compactCurrentProjection();\n\t}\n\n\tprivate commit(input: AppendOrchestrationEventInput): void {\n\t\tthis.compactCurrentProjection();\n\t\tconst event = this.store.append(input, { expectedLastOrdinal: this.state.lastOrdinal });\n\t\tif (event.ordinal > this.state.lastOrdinal) this.state = reduceOrchestrationEvent(this.state, event);\n\t}\n\n\tprivate compactCurrentProjection(): void {\n\t\tif (this.state.lastOrdinal > 0) {\n\t\t\tthis.store.compactIfNeeded(this.state.lastOrdinal, () => toJsonObject(this.state));\n\t\t}\n\t}\n\n\tprivate nowIso(): string {\n\t\treturn new Date(this.now()).toISOString();\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"task-runtime.js","sourceRoot":"","sources":["../../../src/core/orchestration/task-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { isDeepStrictEqual } from \"node:util\";\nimport type { JsonObject } from \"../autonomy/contracts.ts\";\nimport { createAgentIdentity } from \"./agent-resume.ts\";\nimport { validateAttemptUsageSnapshot } from \"./attempt-usage.ts\";\nimport {\n\ttype AcceptanceCriterion,\n\ttype AgentBindingContract,\n\ttype AgentIdentityContract,\n\ttype AgentResumeContext,\n\ttype AppendOrchestrationEventInput,\n\ttype ApprovalOutcome,\n\ttype ApprovalRequestContract,\n\ttype ApprovalResolutionContract,\n\ttype AttemptCheckpoint,\n\ttype AttemptLease,\n\ttype AttemptStatus,\n\ttype EvidenceContract,\n\ttype ExecutionGrant,\n\tisHarnessCapability,\n\tMAX_ORCHESTRATION_COLLECTION_LENGTH,\n\tMAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH,\n\tMAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\tMAX_ORCHESTRATION_MODEL_PROVIDER_LENGTH,\n\ttype ObjectiveContract,\n\ttype ObjectiveStatus,\n\tORCHESTRATION_SCHEMA_VERSION,\n\ttype OrchestrationDispatchRequest,\n\ttype OrchestrationEvent,\n\ttype OrchestrationTaskStatus,\n\ttype RiskBudget,\n\ttype TaskContract,\n\ttoJsonObject,\n\ttype WorkerExecutionContract,\n\ttype WorkerResultContract,\n} from \"./contracts.ts\";\nimport { type OrchestrationEventStore, OrchestrationSnapshotRequiredError } from \"./event-store.ts\";\nimport { validateRiskBudget } from \"./risk-budget.ts\";\nimport { parseWorkerExecutionContract } from \"./worker-execution-contract.ts\";\n\nexport interface ObjectiveRuntimeState {\n\tobjective: ObjectiveContract;\n\ttaskIds: readonly string[];\n\tevidence: readonly EvidenceContract[];\n}\n\nexport interface TaskRuntimeState {\n\ttask: TaskContract;\n\tattemptIds: readonly string[];\n\tverification?: {\n\t\tverifierTaskId: string;\n\t\tverifierAttemptId: string;\n\t\tverdict: \"accepted\" | \"rejected\" | \"inconclusive\";\n\t\treasonCode: string;\n\t\tcompletedAt: string;\n\t};\n}\n\nexport interface AttemptRuntimeState {\n\tattemptId: string;\n\ttaskId: string;\n\tdispatch: OrchestrationDispatchRequest;\n\tstatus: AttemptStatus;\n\treasonCode?: string;\n\tgrantId?: string;\n\t/** Full compiled authority for new attempts; grantId alone is retained only when replaying legacy events. */\n\tgrant?: ExecutionGrant;\n\tagentId?: string;\n\tlease?: AttemptLease;\n\tcheckpointIds: readonly string[];\n\tresult?: WorkerResultContract;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport interface NotificationRuntimeState {\n\tnotificationId: string;\n\tobjectiveId: string;\n\tattemptId?: string;\n\tstatus: \"pending\" | \"delivered\";\n\tmessage: string;\n\tcreatedAt: string;\n\tdeliveredAt?: string;\n}\n\nexport interface ApprovalRuntimeState {\n\trequest: ApprovalRequestContract;\n\tstatus: \"pending\" | ApprovalOutcome;\n\tresolution?: ApprovalResolutionContract;\n}\n\nexport interface TaskRuntimeProjection {\n\tlastOrdinal: number;\n\tagents: Readonly<Record<string, AgentBindingContract>>;\n\tobjectives: Readonly<Record<string, ObjectiveRuntimeState>>;\n\ttasks: Readonly<Record<string, TaskRuntimeState>>;\n\tattempts: Readonly<Record<string, AttemptRuntimeState>>;\n\tcheckpoints: Readonly<Record<string, AttemptCheckpoint>>;\n\tapprovals: Readonly<Record<string, ApprovalRuntimeState>>;\n\tnotifications: Readonly<Record<string, NotificationRuntimeState>>;\n}\n\nexport interface CreateObjectiveInput {\n\tobjectiveId?: string;\n\ttitle: string;\n\tdescription: string;\n\tconstraints?: readonly string[];\n\tacceptanceCriteria?: readonly AcceptanceCriterion[];\n\triskBudget?: RiskBudget;\n}\n\nexport interface CreateTaskInput {\n\ttaskId?: string;\n\tobjectiveId: string;\n\ttitle: string;\n\tdescription: string;\n\trole: TaskContract[\"role\"];\n\tdependsOn?: readonly string[];\n\trequiredCapabilities?: TaskContract[\"requiredCapabilities\"];\n\tacceptanceCriterionIds?: readonly string[];\n\tverificationOfTaskId?: string;\n\triskBudget?: RiskBudget;\n}\n\nexport interface DurableTaskRuntimeOptions {\n\tstore: OrchestrationEventStore;\n\tnow?: () => number;\n\tcreateId?: () => string;\n}\n\nexport interface RegisterAgentInput {\n\tagentId?: string;\n\trole: AgentBindingContract[\"role\"];\n\tresumeContext: AgentResumeContext;\n}\n\nexport class DurableTaskRuntimeError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"DurableTaskRuntimeError\";\n\t}\n}\n\nfunction emptyProjection(): TaskRuntimeProjection {\n\treturn {\n\t\tlastOrdinal: 0,\n\t\tagents: {},\n\t\tobjectives: {},\n\t\ttasks: {},\n\t\tattempts: {},\n\t\tcheckpoints: {},\n\t\tapprovals: {},\n\t\tnotifications: {},\n\t};\n}\n\nfunction cloneProjection(state: TaskRuntimeProjection): TaskRuntimeProjection {\n\treturn structuredClone(state);\n}\n\nfunction projectionFromSnapshot(projection: JsonObject, throughOrdinal: number): TaskRuntimeProjection {\n\tconst candidate = record(projection, \"orchestration projection snapshot\");\n\tif (candidate.lastOrdinal !== throughOrdinal) {\n\t\tthrow new DurableTaskRuntimeError(\"Orchestration projection snapshot ordinal does not match its baseline.\");\n\t}\n\tfor (const field of [\n\t\t\"agents\",\n\t\t\"objectives\",\n\t\t\"tasks\",\n\t\t\"attempts\",\n\t\t\"checkpoints\",\n\t\t\"approvals\",\n\t\t\"notifications\",\n\t] as const) {\n\t\trecord(candidate[field], `orchestration projection snapshot.${field}`);\n\t}\n\treturn structuredClone(candidate) as unknown as TaskRuntimeProjection;\n}\n\nfunction record(value: unknown, label: string): Record<string, unknown> {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\tthrow new DurableTaskRuntimeError(`${label} is not an object.`);\n\t}\n\treturn value as Record<string, unknown>;\n}\n\nfunction string(value: unknown, label: string): string {\n\tif (typeof value !== \"string\" || value.length === 0) throw new DurableTaskRuntimeError(`${label} is required.`);\n\treturn value;\n}\n\nfunction number(value: unknown, label: string): number {\n\tif (typeof value !== \"number\" || !Number.isFinite(value)) throw new DurableTaskRuntimeError(`${label} is invalid.`);\n\treturn value;\n}\n\nfunction boolean(value: unknown, label: string): boolean {\n\tif (typeof value !== \"boolean\") throw new DurableTaskRuntimeError(`${label} is invalid.`);\n\treturn value;\n}\n\nfunction assertRiskBudget(budget: RiskBudget | undefined, label: string): void {\n\ttry {\n\t\tvalidateRiskBudget(budget ?? {}, label);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n}\n\nfunction stringArray(value: unknown, label: string): string[] {\n\tif (!Array.isArray(value) || !value.every((entry) => typeof entry === \"string\")) {\n\t\tthrow new DurableTaskRuntimeError(`${label} must be a string array.`);\n\t}\n\treturn [...value];\n}\n\nfunction dispatchIdentifier(value: unknown, label: string): string {\n\tconst identifier = string(value, label);\n\tif (identifier.length > MAX_ORCHESTRATION_IDENTIFIER_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn identifier;\n}\n\nfunction optionalDispatchIdentifier(\n\tvalue: unknown,\n\tlabel: string,\n\tmaxLength = MAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n): string | undefined {\n\tif (value === undefined) return undefined;\n\tconst identifier = string(value, label);\n\tif (identifier.length > maxLength) throw new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\treturn identifier;\n}\n\nfunction dispatchInstructions(value: unknown, label: string): string {\n\tconst instructions = string(value, label);\n\tif (instructions.length > MAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn instructions;\n}\n\nfunction dispatchIdentifierArray(value: unknown, label: string): string[] {\n\tif (\n\t\t!Array.isArray(value) ||\n\t\tvalue.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\t!value.every(\n\t\t\t(entry) =>\n\t\t\t\ttypeof entry === \"string\" && entry.length > 0 && entry.length <= MAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\t\t)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label} must be a bounded identifier array.`);\n\t}\n\tif (new Set(value).size !== value.length) {\n\t\tthrow new DurableTaskRuntimeError(`${label} contains duplicates.`);\n\t}\n\treturn [...value];\n}\n\nconst DISPATCH_FIELDS = new Set([\n\t\"taskId\",\n\t\"profileId\",\n\t\"instructions\",\n\t\"resourcePointerIds\",\n\t\"requirementIds\",\n\t\"executionKind\",\n\t\"logicalLaneId\",\n\t\"dispatchSequence\",\n\t\"provider\",\n\t\"authorizationId\",\n\t\"worktreeLaneKey\",\n\t\"executionContract\",\n]);\n\nfunction dispatchFromValue(value: unknown, label: string): OrchestrationDispatchRequest {\n\tconst dispatch = record(value, label);\n\tconst unsupportedField = Object.keys(dispatch).find((field) => !DISPATCH_FIELDS.has(field));\n\tif (unsupportedField) throw new DurableTaskRuntimeError(`${label}.${unsupportedField} is unsupported.`);\n\tconst executionKind = dispatch.executionKind;\n\tif (executionKind !== undefined && executionKind !== \"in-process\" && executionKind !== \"managed-process\") {\n\t\tthrow new DurableTaskRuntimeError(`${label}.executionKind is invalid.`);\n\t}\n\tconst logicalLaneId = optionalDispatchIdentifier(dispatch.logicalLaneId, `${label}.logicalLaneId`);\n\tconst provider = optionalDispatchIdentifier(\n\t\tdispatch.provider,\n\t\t`${label}.provider`,\n\t\tMAX_ORCHESTRATION_MODEL_PROVIDER_LENGTH,\n\t);\n\tconst authorizationId = optionalDispatchIdentifier(dispatch.authorizationId, `${label}.authorizationId`);\n\tconst worktreeLaneKey = optionalDispatchIdentifier(dispatch.worktreeLaneKey, `${label}.worktreeLaneKey`);\n\tif (\n\t\tdispatch.dispatchSequence !== undefined &&\n\t\t(!Number.isSafeInteger(dispatch.dispatchSequence) || Number(dispatch.dispatchSequence) < 1)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.dispatchSequence is invalid.`);\n\t}\n\tlet executionContract: WorkerExecutionContract | undefined;\n\ttry {\n\t\texecutionContract = dispatch.executionContract\n\t\t\t? parseWorkerExecutionContract(dispatch.executionContract)\n\t\t\t: undefined;\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n\tif (executionContract && executionKind === \"managed-process\") {\n\t\tthrow new DurableTaskRuntimeError(`${label} cannot combine a worker execution contract with managed execution.`);\n\t}\n\treturn {\n\t\ttaskId: dispatchIdentifier(dispatch.taskId, `${label}.taskId`),\n\t\tprofileId: dispatchIdentifier(dispatch.profileId, `${label}.profileId`),\n\t\tinstructions: dispatchInstructions(dispatch.instructions, `${label}.instructions`),\n\t\tresourcePointerIds: dispatchIdentifierArray(dispatch.resourcePointerIds, `${label}.resourcePointerIds`),\n\t\trequirementIds:\n\t\t\tdispatch.requirementIds === undefined\n\t\t\t\t? []\n\t\t\t\t: dispatchIdentifierArray(dispatch.requirementIds, `${label}.requirementIds`),\n\t\t...(executionKind ? { executionKind } : {}),\n\t\t...(logicalLaneId ? { logicalLaneId } : {}),\n\t\t...(typeof dispatch.dispatchSequence === \"number\" ? { dispatchSequence: dispatch.dispatchSequence } : {}),\n\t\t...(provider ? { provider } : {}),\n\t\t...(authorizationId ? { authorizationId } : {}),\n\t\t...(worktreeLaneKey ? { worktreeLaneKey } : {}),\n\t\t...(executionContract ? { executionContract } : {}),\n\t};\n}\n\nfunction objectiveFromPayload(payload: JsonObject): ObjectiveContract {\n\treturn structuredClone(record(payload.objective, \"objective\")) as unknown as ObjectiveContract;\n}\n\nfunction evidenceFromPayload(payload: JsonObject): EvidenceContract {\n\treturn structuredClone(record(payload.evidence, \"evidence\")) as unknown as EvidenceContract;\n}\n\nfunction assertAcceptanceCriteria(criteria: readonly AcceptanceCriterion[]): void {\n\tconst criterionIds = criteria.map((criterion) => criterion.id);\n\tif (\n\t\tcriterionIds.some((id) => !id.trim()) ||\n\t\tnew Set(criterionIds).size !== criterionIds.length ||\n\t\tcriteria.some((criterion) => !criterion.description.trim())\n\t) {\n\t\tthrow new DurableTaskRuntimeError(\"Objective acceptance criteria require unique ids and descriptions.\");\n\t}\n}\n\nfunction taskFromPayload(payload: JsonObject): TaskContract {\n\treturn structuredClone(record(payload.task, \"task\")) as unknown as TaskContract;\n}\n\nfunction leaseFromPayload(payload: JsonObject): AttemptLease {\n\tconst lease = record(payload.lease, \"lease\");\n\treturn {\n\t\tleaseId: string(lease.leaseId, \"lease.leaseId\"),\n\t\tattemptId: string(lease.attemptId, \"lease.attemptId\"),\n\t\townerId: string(lease.ownerId, \"lease.ownerId\"),\n\t\tfencingToken: number(lease.fencingToken, \"lease.fencingToken\"),\n\t\tissuedAt: string(lease.issuedAt, \"lease.issuedAt\"),\n\t\texpiresAt: string(lease.expiresAt, \"lease.expiresAt\"),\n\t};\n}\n\nfunction checkpointFromPayload(payload: JsonObject): AttemptCheckpoint {\n\tconst checkpoint = record(payload.checkpoint, \"checkpoint\");\n\tconst usage = checkpoint.usage === undefined ? undefined : usageFromPayload(checkpoint.usage, \"checkpoint.usage\");\n\treturn {\n\t\tcheckpointId: string(checkpoint.checkpointId, \"checkpoint.checkpointId\"),\n\t\tattemptId: string(checkpoint.attemptId, \"checkpoint.attemptId\"),\n\t\tfencingToken: number(checkpoint.fencingToken, \"checkpoint.fencingToken\"),\n\t\tsummary: string(checkpoint.summary, \"checkpoint.summary\"),\n\t\tartifactIds: stringArray(checkpoint.artifactIds, \"checkpoint.artifactIds\"),\n\t\tevidenceIds: stringArray(checkpoint.evidenceIds, \"checkpoint.evidenceIds\"),\n\t\t...(usage ? { usage } : {}),\n\t\tcreatedAt: string(checkpoint.createdAt, \"checkpoint.createdAt\"),\n\t};\n}\n\nfunction usageFromPayload(value: unknown, label: string): AttemptCheckpoint[\"usage\"] {\n\tconst usage = record(value, label);\n\tconst expectedFields = [\n\t\t\"toolCalls\",\n\t\t\"inputTokens\",\n\t\t\"outputTokens\",\n\t\t\"cacheReadTokens\",\n\t\t\"cacheWriteTokens\",\n\t\t\"totalTokens\",\n\t\t\"costUsd\",\n\t\t\"activeWallClockMs\",\n\t];\n\tconst unexpected = Object.keys(usage).find((field) => !expectedFields.includes(field));\n\tif (unexpected) throw new DurableTaskRuntimeError(`${label}.${unexpected} is unsupported.`);\n\ttry {\n\t\treturn validateAttemptUsageSnapshot(\n\t\t\t{\n\t\t\t\ttoolCalls: number(usage.toolCalls, `${label}.toolCalls`),\n\t\t\t\tinputTokens: number(usage.inputTokens, `${label}.inputTokens`),\n\t\t\t\toutputTokens: number(usage.outputTokens, `${label}.outputTokens`),\n\t\t\t\tcacheReadTokens: number(usage.cacheReadTokens, `${label}.cacheReadTokens`),\n\t\t\t\tcacheWriteTokens: number(usage.cacheWriteTokens, `${label}.cacheWriteTokens`),\n\t\t\t\ttotalTokens: number(usage.totalTokens, `${label}.totalTokens`),\n\t\t\t\tcostUsd: number(usage.costUsd, `${label}.costUsd`),\n\t\t\t\tactiveWallClockMs: number(usage.activeWallClockMs, `${label}.activeWallClockMs`),\n\t\t\t},\n\t\t\tlabel,\n\t\t);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n}\n\nfunction resultFromPayload(payload: JsonObject): WorkerResultContract {\n\treturn structuredClone(record(payload.result, \"result\")) as unknown as WorkerResultContract;\n}\n\nfunction agentFromPayload(payload: JsonObject): AgentBindingContract {\n\treturn structuredClone(record(payload.agent, \"agent\")) as unknown as AgentBindingContract;\n}\n\nfunction approvalFromPayload(payload: JsonObject): ApprovalRequestContract {\n\tconst approval = record(payload.approval, \"approval\");\n\tconst capabilities = stringArray(approval.requestedCapabilities, \"approval.requestedCapabilities\");\n\tif (!capabilities.every(isHarnessCapability)) {\n\t\tthrow new DurableTaskRuntimeError(\"Approval contains an unknown capability.\");\n\t}\n\tconst requestedBudget = approval.requestedBudget\n\t\t? (structuredClone(record(approval.requestedBudget, \"approval.requestedBudget\")) as RiskBudget)\n\t\t: undefined;\n\tassertRiskBudget(requestedBudget, \"approval.requestedBudget\");\n\tif (capabilities.length === 0 && !requestedBudget) {\n\t\tthrow new DurableTaskRuntimeError(\"Approval must request capabilities or budget.\");\n\t}\n\tif (approval.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(\"Approval schema version is invalid.\");\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tapprovalId: string(approval.approvalId, \"approval.approvalId\"),\n\t\tobjectiveId: string(approval.objectiveId, \"approval.objectiveId\"),\n\t\t...(typeof approval.taskId === \"string\" ? { taskId: string(approval.taskId, \"approval.taskId\") } : {}),\n\t\t...(typeof approval.attemptId === \"string\"\n\t\t\t? { attemptId: string(approval.attemptId, \"approval.attemptId\") }\n\t\t\t: {}),\n\t\treasonCode: string(approval.reasonCode, \"approval.reasonCode\"),\n\t\tsummary: string(approval.summary, \"approval.summary\"),\n\t\trequestedCapabilities: capabilities,\n\t\t...(requestedBudget ? { requestedBudget } : {}),\n\t\treversible: boolean(approval.reversible, \"approval.reversible\"),\n\t\tcreatedAt: string(approval.createdAt, \"approval.createdAt\"),\n\t};\n}\n\nfunction approvalResolutionFromPayload(payload: JsonObject): ApprovalResolutionContract {\n\tconst resolution = record(payload.resolution, \"resolution\");\n\tif (resolution.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(\"Approval resolution schema version is invalid.\");\n\t}\n\tconst outcome = string(resolution.outcome, \"resolution.outcome\");\n\tif (outcome !== \"approved\" && outcome !== \"rejected\") {\n\t\tthrow new DurableTaskRuntimeError(`Unknown approval outcome '${outcome}'.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tapprovalId: string(resolution.approvalId, \"resolution.approvalId\"),\n\t\toutcome,\n\t\treasonCode: string(resolution.reasonCode, \"resolution.reasonCode\"),\n\t\tresolvedAt: string(resolution.resolvedAt, \"resolution.resolvedAt\"),\n\t};\n}\n\nfunction updateObjectiveStatus(\n\tstate: TaskRuntimeProjection,\n\tobjectiveId: string,\n\tstatus: ObjectiveStatus,\n\tat: string,\n): void {\n\tconst current = state.objectives[objectiveId];\n\tif (!current) throw new DurableTaskRuntimeError(`Unknown objective '${objectiveId}'.`);\n\t(state.objectives as Record<string, ObjectiveRuntimeState>)[objectiveId] = {\n\t\t...current,\n\t\tobjective: { ...current.objective, status, updatedAt: at },\n\t};\n}\n\nfunction terminalAttemptStatus(status: AttemptStatus): boolean {\n\treturn [\"completed\", \"partial\", \"blocked\", \"failed\", \"cancelled\", \"expired\"].includes(status);\n}\n\nfunction cancelOpenObjectiveWork(\n\tstate: TaskRuntimeProjection,\n\tobjectiveId: string,\n\tat: string,\n\treasonCode: string,\n): void {\n\tconst objective = state.objectives[objectiveId];\n\tconst tasks = state.tasks as Record<string, TaskRuntimeState>;\n\tconst attempts = state.attempts as Record<string, AttemptRuntimeState>;\n\tfor (const taskId of objective?.taskIds ?? []) {\n\t\tconst taskState = tasks[taskId];\n\t\tif (taskState && ![\"completed\", \"failed\", \"cancelled\"].includes(taskState.task.status)) {\n\t\t\ttasks[taskId] = {\n\t\t\t\t...taskState,\n\t\t\t\ttask: { ...taskState.task, status: \"cancelled\", updatedAt: at },\n\t\t\t};\n\t\t}\n\t\tfor (const attemptId of taskState?.attemptIds ?? []) {\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (attempt && !terminalAttemptStatus(attempt.status)) {\n\t\t\t\tattempts[attemptId] = { ...attempt, status: \"cancelled\", reasonCode, updatedAt: at };\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction taskStatusForResult(status: WorkerResultContract[\"status\"]): OrchestrationTaskStatus {\n\tif (status === \"completed\") return \"completed\";\n\tif (status === \"failed\") return \"failed\";\n\tif (status === \"cancelled\") return \"cancelled\";\n\treturn \"blocked\";\n}\n\nfunction releaseAttemptAgent(\n\tagents: Record<string, AgentBindingContract>,\n\tattempt: AttemptRuntimeState,\n\tat: string,\n): void {\n\tif (!attempt.agentId) return;\n\tconst agent = agents[attempt.agentId];\n\tif (!agent) return;\n\tconst next = { ...agent, status: \"registered\" as const, updatedAt: at };\n\tdelete next.activeAttemptId;\n\tagents[attempt.agentId] = next;\n}\n\nfunction missingTrustedCriteria(result: WorkerResultContract, criterionIds: readonly string[]): string[] {\n\tconst proven = new Set(\n\t\tresult.evidence.flatMap((evidence) => (evidence.trusted && evidence.criterionId ? [evidence.criterionId] : [])),\n\t);\n\treturn criterionIds.filter((criterionId) => !proven.has(criterionId));\n}\n\nfunction refreshReadyTasks(state: TaskRuntimeProjection, objectiveId: string, at: string): void {\n\tconst objective = state.objectives[objectiveId];\n\tif (!objective || objective.objective.status !== \"active\") return;\n\tconst mutableTasks = state.tasks as Record<string, TaskRuntimeState>;\n\tfor (const taskId of objective.taskIds) {\n\t\tconst current = mutableTasks[taskId];\n\t\tif (!current || current.task.status !== \"pending\") continue;\n\t\tif (current.task.dependsOn.every((dependencyId) => mutableTasks[dependencyId]?.task.status === \"completed\")) {\n\t\t\tmutableTasks[taskId] = { ...current, task: { ...current.task, status: \"ready\", updatedAt: at } };\n\t\t}\n\t}\n}\n\nexport function reduceOrchestrationEvent(\n\tprojection: TaskRuntimeProjection,\n\tevent: OrchestrationEvent,\n): TaskRuntimeProjection {\n\tif (event.ordinal <= projection.lastOrdinal) return projection;\n\tconst state = cloneProjection(projection);\n\tconst agents = state.agents as Record<string, AgentBindingContract>;\n\tconst objectives = state.objectives as Record<string, ObjectiveRuntimeState>;\n\tconst tasks = state.tasks as Record<string, TaskRuntimeState>;\n\tconst attempts = state.attempts as Record<string, AttemptRuntimeState>;\n\tconst checkpoints = state.checkpoints as Record<string, AttemptCheckpoint>;\n\tconst approvals = state.approvals as Record<string, ApprovalRuntimeState>;\n\tconst notifications = state.notifications as Record<string, NotificationRuntimeState>;\n\n\tswitch (event.type) {\n\t\tcase \"objective.created\": {\n\t\t\tconst objective = objectiveFromPayload(event.payload);\n\t\t\tif (objectives[objective.objectiveId]) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objective.objectiveId}' was created more than once.`);\n\t\t\t}\n\t\t\tobjectives[objective.objectiveId] = { objective, taskIds: [], evidence: [] };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"objective.updated\": {\n\t\t\tconst objective = objectiveFromPayload(event.payload);\n\t\t\tconst current = objectives[event.aggregateId];\n\t\t\tif (!current) throw new DurableTaskRuntimeError(`Unknown objective '${event.aggregateId}'.`);\n\t\t\tif (objective.objectiveId !== event.aggregateId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Updated objective id '${objective.objectiveId}' does not match aggregate.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tobjectives[event.aggregateId] = { ...current, objective };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"objective.evidence_recorded\": {\n\t\t\tconst evidence = evidenceFromPayload(event.payload);\n\t\t\tconst current = objectives[event.aggregateId];\n\t\t\tif (!current) throw new DurableTaskRuntimeError(`Unknown objective '${event.aggregateId}'.`);\n\t\t\tconst existing = current.evidence.find((candidate) => candidate.evidenceId === evidence.evidenceId);\n\t\t\tif (existing && !isDeepStrictEqual(existing, evidence)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Objective evidence '${evidence.evidenceId}' has conflicting content.`);\n\t\t\t}\n\t\t\tif (!existing) objectives[event.aggregateId] = { ...current, evidence: [...current.evidence, evidence] };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"objective.paused\":\n\t\t\tupdateObjectiveStatus(state, event.aggregateId, \"paused\", event.occurredAt);\n\t\t\tbreak;\n\t\tcase \"objective.resumed\":\n\t\t\tupdateObjectiveStatus(state, event.aggregateId, \"active\", event.occurredAt);\n\t\t\trefreshReadyTasks(state, event.aggregateId, event.occurredAt);\n\t\t\tbreak;\n\t\tcase \"objective.completed\":\n\t\t\tupdateObjectiveStatus(state, event.aggregateId, \"completed\", event.occurredAt);\n\t\t\tcancelOpenObjectiveWork(state, event.aggregateId, event.occurredAt, \"objective_completed\");\n\t\t\tbreak;\n\t\tcase \"objective.cancelled\": {\n\t\t\tupdateObjectiveStatus(state, event.aggregateId, \"cancelled\", event.occurredAt);\n\t\t\tcancelOpenObjectiveWork(state, event.aggregateId, event.occurredAt, \"objective_cancelled\");\n\t\t\tbreak;\n\t\t}\n\t\tcase \"task.created\": {\n\t\t\tconst task = taskFromPayload(event.payload);\n\t\t\tconst objective = objectives[task.objectiveId];\n\t\t\tif (!objective) throw new DurableTaskRuntimeError(`Task '${task.taskId}' references an unknown objective.`);\n\t\t\tif (tasks[task.taskId]) throw new DurableTaskRuntimeError(`Task '${task.taskId}' was created more than once.`);\n\t\t\ttasks[task.taskId] = { task, attemptIds: [] };\n\t\t\tobjectives[task.objectiveId] = { ...objective, taskIds: [...objective.taskIds, task.taskId] };\n\t\t\trefreshReadyTasks(state, task.objectiveId, event.occurredAt);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"task.ready\": {\n\t\t\tconst taskId = string(event.payload.taskId, \"task.ready.taskId\");\n\t\t\tconst current = tasks[taskId];\n\t\t\tif (!current) throw new DurableTaskRuntimeError(`Unknown task '${taskId}'.`);\n\t\t\ttasks[taskId] = { ...current, task: { ...current.task, status: \"ready\", updatedAt: event.occurredAt } };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"task.failed\": {\n\t\t\tconst taskId = string(event.payload.taskId, \"task.failed.taskId\");\n\t\t\tconst current = tasks[taskId];\n\t\t\tif (!current) throw new DurableTaskRuntimeError(`Unknown task '${taskId}'.`);\n\t\t\ttasks[taskId] = { ...current, task: { ...current.task, status: \"failed\", updatedAt: event.occurredAt } };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"task.verification_finished\": {\n\t\t\tconst taskId = string(event.payload.taskId, \"task.verification_finished.taskId\");\n\t\t\tconst verifierTaskId = string(event.payload.verifierTaskId, \"task.verification_finished.verifierTaskId\");\n\t\t\tconst verifierAttemptId = string(\n\t\t\t\tevent.payload.verifierAttemptId,\n\t\t\t\t\"task.verification_finished.verifierAttemptId\",\n\t\t\t);\n\t\t\tconst verdict = string(event.payload.verdict, \"task.verification_finished.verdict\");\n\t\t\tif (verdict !== \"accepted\" && verdict !== \"rejected\" && verdict !== \"inconclusive\") {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Unknown verification verdict '${verdict}'.`);\n\t\t\t}\n\t\t\tconst current = tasks[taskId];\n\t\t\tif (!current) throw new DurableTaskRuntimeError(`Unknown task '${taskId}'.`);\n\t\t\tconst reasonCode = string(event.payload.reasonCode, \"task.verification_finished.reasonCode\");\n\t\t\ttasks[taskId] = {\n\t\t\t\t...current,\n\t\t\t\ttask: {\n\t\t\t\t\t...current.task,\n\t\t\t\t\tstatus: verdict === \"accepted\" ? \"completed\" : \"blocked\",\n\t\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t\t},\n\t\t\t\tverification: {\n\t\t\t\t\tverifierTaskId,\n\t\t\t\t\tverifierAttemptId,\n\t\t\t\t\tverdict,\n\t\t\t\t\treasonCode,\n\t\t\t\t\tcompletedAt: event.occurredAt,\n\t\t\t\t},\n\t\t\t};\n\t\t\trefreshReadyTasks(state, current.task.objectiveId, event.occurredAt);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"agent.registered\": {\n\t\t\tconst agent = agentFromPayload(event.payload);\n\t\t\tif (agents[agent.agentId])\n\t\t\t\tthrow new DurableTaskRuntimeError(`Agent '${agent.agentId}' was registered more than once.`);\n\t\t\tagents[agent.agentId] = agent;\n\t\t\tbreak;\n\t\t}\n\t\tcase \"agent.suspended\": {\n\t\t\tconst agentId = string(event.payload.agentId, \"agent.suspended.agentId\");\n\t\t\tconst agent = agents[agentId];\n\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\tagents[agentId] = { ...agent, status: \"suspended\", updatedAt: event.occurredAt };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"agent.resume_requested\": {\n\t\t\tconst agentId = string(event.payload.agentId, \"agent.resume_requested.agentId\");\n\t\t\tconst agent = agents[agentId];\n\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\tagents[agentId] = { ...agent, status: \"resuming\", updatedAt: event.occurredAt };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"agent.resumed\": {\n\t\t\tconst agentId = string(event.payload.agentId, \"agent.resumed.agentId\");\n\t\t\tconst attemptId = string(event.payload.attemptId, \"agent.resumed.attemptId\");\n\t\t\tconst agent = agents[agentId];\n\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\tagents[agentId] = { ...agent, status: \"active\", activeAttemptId: attemptId, updatedAt: event.occurredAt };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.queued\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.queued.attemptId\");\n\t\t\tconst taskId = string(event.payload.taskId, \"attempt.queued.taskId\");\n\t\t\tconst task = tasks[taskId];\n\t\t\tif (!task) throw new DurableTaskRuntimeError(`Attempt '${attemptId}' references an unknown task.`);\n\t\t\tif (attempts[attemptId])\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' was queued more than once.`);\n\t\t\tconst dispatch = dispatchFromValue(event.payload.dispatch, \"attempt.queued.dispatch\");\n\t\t\tif (dispatch.taskId !== taskId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' dispatch task does not match its task.`);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tdispatch.executionContract &&\n\t\t\t\t(dispatch.executionContract.worker.profile.profileId !== dispatch.profileId ||\n\t\t\t\t\tdispatch.executionContract.worker.profile.role !== task.task.role)\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' execution contract does not match its dispatch.`);\n\t\t\t}\n\t\t\tattempts[attemptId] = {\n\t\t\t\tattemptId,\n\t\t\t\ttaskId,\n\t\t\t\tdispatch,\n\t\t\t\tstatus: \"queued\",\n\t\t\t\t...(typeof event.payload.grantId === \"string\" ? { grantId: event.payload.grantId } : {}),\n\t\t\t\tcheckpointIds: [],\n\t\t\t\tcreatedAt: event.occurredAt,\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\ttasks[taskId] = {\n\t\t\t\t...task,\n\t\t\t\ttask: { ...task.task, status: \"running\", updatedAt: event.occurredAt },\n\t\t\t\tattemptIds: [...task.attemptIds, attemptId],\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.grant_bound\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.grant_bound.attemptId\");\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\t\tconst grant = event.payload.grant\n\t\t\t\t? (structuredClone(record(event.payload.grant, \"attempt.grant_bound.grant\")) as unknown as ExecutionGrant)\n\t\t\t\t: undefined;\n\t\t\tattempts[attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tgrantId: grant?.grantId ?? string(event.payload.grantId, \"attempt.grant_bound.grantId\"),\n\t\t\t\t...(grant ? { grant } : {}),\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.leased\": {\n\t\t\tconst lease = leaseFromPayload(event.payload);\n\t\t\tconst attempt = attempts[lease.attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${lease.attemptId}'.`);\n\t\t\tconst agentId = typeof event.payload.agentId === \"string\" ? event.payload.agentId : undefined;\n\t\t\tif (agentId) {\n\t\t\t\tconst agent = agents[agentId];\n\t\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\t\tagents[agentId] = {\n\t\t\t\t\t...agent,\n\t\t\t\t\tstatus: \"active\",\n\t\t\t\t\tactiveAttemptId: lease.attemptId,\n\t\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t\t};\n\t\t\t}\n\t\t\tattempts[lease.attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tstatus: \"leased\",\n\t\t\t\tlease,\n\t\t\t\t...(agentId ? { agentId } : {}),\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.started\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.started.attemptId\");\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\t\tattempts[attemptId] = { ...attempt, status: \"running\", updatedAt: event.occurredAt };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.checkpointed\": {\n\t\t\tconst checkpoint = checkpointFromPayload(event.payload);\n\t\t\tconst attempt = attempts[checkpoint.attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${checkpoint.attemptId}'.`);\n\t\t\tcheckpoints[checkpoint.checkpointId] = checkpoint;\n\t\t\tattempts[checkpoint.attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tcheckpointIds: [...attempt.checkpointIds, checkpoint.checkpointId],\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tif (attempt.agentId) {\n\t\t\t\tconst agent = agents[attempt.agentId];\n\t\t\t\tif (agent) {\n\t\t\t\t\tagents[attempt.agentId] = {\n\t\t\t\t\t\t...agent,\n\t\t\t\t\t\tresumeContext: { ...agent.resumeContext, latestCheckpointId: checkpoint.checkpointId },\n\t\t\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.suspended\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.suspended.attemptId\");\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\t\tconst leaseId = string(event.payload.leaseId, \"attempt.suspended.leaseId\");\n\t\t\tconst fencingToken = number(event.payload.fencingToken, \"attempt.suspended.fencingToken\");\n\t\t\tif (!attempt.lease || attempt.lease.leaseId !== leaseId || attempt.lease.fencingToken !== fencingToken) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' lease or fencing token is stale.`);\n\t\t\t}\n\t\t\tif (attempt.status !== \"leased\" && attempt.status !== \"running\") {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' cannot suspend from '${attempt.status}'.`);\n\t\t\t}\n\t\t\tattempts[attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tstatus: \"suspended\",\n\t\t\t\t...(typeof event.payload.reasonCode === \"string\" ? { reasonCode: event.payload.reasonCode } : {}),\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tif (attempt.agentId) {\n\t\t\t\tconst agent = agents[attempt.agentId];\n\t\t\t\tif (agent) agents[attempt.agentId] = { ...agent, status: \"suspended\", updatedAt: event.occurredAt };\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.resumed\": {\n\t\t\tconst lease = leaseFromPayload(event.payload);\n\t\t\tconst agentId = string(event.payload.agentId, \"attempt.resumed.agentId\");\n\t\t\tconst attempt = attempts[lease.attemptId];\n\t\t\tconst agent = agents[agentId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${lease.attemptId}'.`);\n\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\tattempts[lease.attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tstatus: \"leased\",\n\t\t\t\tagentId,\n\t\t\t\tlease,\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tagents[agentId] = {\n\t\t\t\t...agent,\n\t\t\t\tstatus: \"active\",\n\t\t\t\tactiveAttemptId: lease.attemptId,\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.cancelled\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.cancelled.attemptId\");\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\t\tattempts[attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tstatus: \"cancelled\",\n\t\t\t\treasonCode: string(event.payload.reasonCode, \"attempt.cancelled.reasonCode\"),\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tconst task = tasks[attempt.taskId];\n\t\t\tif (task) {\n\t\t\t\ttasks[attempt.taskId] = {\n\t\t\t\t\t...task,\n\t\t\t\t\ttask: { ...task.task, status: \"cancelled\", updatedAt: event.occurredAt },\n\t\t\t\t};\n\t\t\t}\n\t\t\treleaseAttemptAgent(agents, attempt, event.occurredAt);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.finished\": {\n\t\t\tconst result = resultFromPayload(event.payload);\n\t\t\tconst attempt = attempts[result.attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${result.attemptId}'.`);\n\t\t\tattempts[result.attemptId] = { ...attempt, status: result.status, result, updatedAt: event.occurredAt };\n\t\t\tconst task = tasks[result.taskId];\n\t\t\tif (!task) throw new DurableTaskRuntimeError(`Unknown task '${result.taskId}'.`);\n\t\t\ttasks[result.taskId] = {\n\t\t\t\t...task,\n\t\t\t\ttask: { ...task.task, status: taskStatusForResult(result.status), updatedAt: event.occurredAt },\n\t\t\t};\n\t\t\treleaseAttemptAgent(agents, attempt, event.occurredAt);\n\t\t\trefreshReadyTasks(state, task.task.objectiveId, event.occurredAt);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"attempt.lease_expired\": {\n\t\t\tconst attemptId = string(event.payload.attemptId, \"attempt.lease_expired.attemptId\");\n\t\t\tconst attempt = attempts[attemptId];\n\t\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\t\tattempts[attemptId] = {\n\t\t\t\t...attempt,\n\t\t\t\tstatus: \"expired\",\n\t\t\t\t...(typeof event.payload.reasonCode === \"string\" ? { reasonCode: event.payload.reasonCode } : {}),\n\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tconst task = tasks[attempt.taskId];\n\t\t\tif (task)\n\t\t\t\ttasks[attempt.taskId] = { ...task, task: { ...task.task, status: \"ready\", updatedAt: event.occurredAt } };\n\t\t\tbreak;\n\t\t}\n\t\tcase \"approval.requested\": {\n\t\t\tconst approval = approvalFromPayload(event.payload);\n\t\t\tif (approvals[approval.approvalId]) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Approval '${approval.approvalId}' was requested more than once.`);\n\t\t\t}\n\t\t\tapprovals[approval.approvalId] = { request: approval, status: \"pending\" };\n\t\t\tconst notificationId = `approval-requested:${approval.approvalId}`;\n\t\t\tif (notifications[notificationId]) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Notification '${notificationId}' already exists.`);\n\t\t\t}\n\t\t\tnotifications[notificationId] = {\n\t\t\t\tnotificationId,\n\t\t\t\tobjectiveId: approval.objectiveId,\n\t\t\t\t...(approval.attemptId ? { attemptId: approval.attemptId } : {}),\n\t\t\t\tstatus: \"pending\",\n\t\t\t\tmessage: approval.summary,\n\t\t\t\tcreatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"approval.resolved\": {\n\t\t\tconst resolution = approvalResolutionFromPayload(event.payload);\n\t\t\tconst approval = approvals[resolution.approvalId];\n\t\t\tif (!approval) throw new DurableTaskRuntimeError(`Unknown approval '${resolution.approvalId}'.`);\n\t\t\tapprovals[resolution.approvalId] = {\n\t\t\t\t...approval,\n\t\t\t\tstatus: resolution.outcome,\n\t\t\t\tresolution,\n\t\t\t};\n\t\t\tconst approvalNotification = notifications[`approval-requested:${resolution.approvalId}`];\n\t\t\tif (approvalNotification?.status === \"pending\") {\n\t\t\t\tnotifications[approvalNotification.notificationId] = {\n\t\t\t\t\t...approvalNotification,\n\t\t\t\t\tstatus: \"delivered\",\n\t\t\t\t\tdeliveredAt: event.occurredAt,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (resolution.outcome === \"rejected\" && approval.request.attemptId) {\n\t\t\t\tconst attempt = attempts[approval.request.attemptId];\n\t\t\t\tif (attempt && !terminalAttemptStatus(attempt.status)) {\n\t\t\t\t\tattempts[attempt.attemptId] = {\n\t\t\t\t\t\t...attempt,\n\t\t\t\t\t\tstatus: \"blocked\",\n\t\t\t\t\t\treasonCode: \"approval_rejected\",\n\t\t\t\t\t\tupdatedAt: event.occurredAt,\n\t\t\t\t\t};\n\t\t\t\t\tconst task = tasks[attempt.taskId];\n\t\t\t\t\tif (task) {\n\t\t\t\t\t\ttasks[attempt.taskId] = {\n\t\t\t\t\t\t\t...task,\n\t\t\t\t\t\t\ttask: { ...task.task, status: \"blocked\", updatedAt: event.occurredAt },\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"notification.enqueued\": {\n\t\t\tconst notificationId = string(event.payload.notificationId, \"notification.enqueued.notificationId\");\n\t\t\tnotifications[notificationId] = {\n\t\t\t\tnotificationId,\n\t\t\t\tobjectiveId: string(event.payload.objectiveId, \"notification.enqueued.objectiveId\"),\n\t\t\t\t...(typeof event.payload.attemptId === \"string\" ? { attemptId: event.payload.attemptId } : {}),\n\t\t\t\tstatus: \"pending\",\n\t\t\t\tmessage: string(event.payload.message, \"notification.enqueued.message\"),\n\t\t\t\tcreatedAt: event.occurredAt,\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase \"notification.delivered\": {\n\t\t\tconst notificationId = string(event.payload.notificationId, \"notification.delivered.notificationId\");\n\t\t\tconst notification = notifications[notificationId];\n\t\t\tif (!notification) throw new DurableTaskRuntimeError(`Unknown notification '${notificationId}'.`);\n\t\t\tnotifications[notificationId] = { ...notification, status: \"delivered\", deliveredAt: event.occurredAt };\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn { ...state, lastOrdinal: event.ordinal };\n}\n\nexport function projectOrchestrationEvents(events: readonly OrchestrationEvent[]): TaskRuntimeProjection {\n\treturn events.reduce(reduceOrchestrationEvent, emptyProjection());\n}\n\nexport class DurableTaskRuntime {\n\tprivate readonly store: OrchestrationEventStore;\n\tprivate readonly now: () => number;\n\tprivate readonly createId: () => string;\n\tprivate state: TaskRuntimeProjection;\n\n\tconstructor(options: DurableTaskRuntimeOptions) {\n\t\tthis.store = options.store;\n\t\tthis.now = options.now ?? Date.now;\n\t\tthis.createId = options.createId ?? randomUUID;\n\t\tconst snapshot = this.store.readProjectionSnapshot();\n\t\tif (snapshot) {\n\t\t\tthis.state = projectionFromSnapshot(snapshot.projection, snapshot.throughOrdinal);\n\t\t} else {\n\t\t\tconst events = this.store.readAll();\n\t\t\t// Compaction may install a baseline between the first snapshot read and readAll(). In that\n\t\t\t// case readAll() returns only the new tail, which must be applied to that baseline rather\n\t\t\t// than projected as a standalone history.\n\t\t\tconst snapshotAfterRead = this.store.readProjectionSnapshot();\n\t\t\tthis.state = snapshotAfterRead\n\t\t\t\t? events\n\t\t\t\t\t\t.filter((event) => event.ordinal > snapshotAfterRead.throughOrdinal)\n\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\treduceOrchestrationEvent,\n\t\t\t\t\t\t\tprojectionFromSnapshot(snapshotAfterRead.projection, snapshotAfterRead.throughOrdinal),\n\t\t\t\t\t\t)\n\t\t\t\t: projectOrchestrationEvents(events);\n\t\t}\n\t\tthis.refresh();\n\t}\n\n\tgetSnapshot(): TaskRuntimeProjection {\n\t\tthis.refresh();\n\t\treturn cloneProjection(this.state);\n\t}\n\n\tregisterAgent(input: RegisterAgentInput): AgentBindingContract {\n\t\tthis.refresh();\n\t\tconst now = this.nowIso();\n\t\tlet identity: AgentIdentityContract;\n\t\ttry {\n\t\t\tidentity = createAgentIdentity(input.agentId ?? `agent-${this.createId()}`, input.resumeContext);\n\t\t} catch (error) {\n\t\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t\t}\n\t\tconst agent: AgentBindingContract = {\n\t\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\t\t...identity,\n\t\t\trole: input.role,\n\t\t\tstatus: \"registered\",\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now,\n\t\t};\n\t\tif (this.state.agents[agent.agentId])\n\t\t\tthrow new DurableTaskRuntimeError(`Agent '${agent.agentId}' already exists.`);\n\t\tthis.commit({\n\t\t\ttype: \"agent.registered\",\n\t\t\taggregateId: agent.agentId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `agent-registered:${agent.agentId}`,\n\t\t\tpayload: toJsonObject({ agent }),\n\t\t});\n\t\treturn structuredClone(agent);\n\t}\n\n\tcreateObjective(input: CreateObjectiveInput): ObjectiveContract {\n\t\tthis.refresh();\n\t\tassertRiskBudget(input.riskBudget, \"objective.riskBudget\");\n\t\tconst now = this.nowIso();\n\t\tconst objective: ObjectiveContract = {\n\t\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\t\tobjectiveId: input.objectiveId ?? `objective-${this.createId()}`,\n\t\t\ttitle: input.title.trim(),\n\t\t\tdescription: input.description.trim(),\n\t\t\tstatus: \"active\",\n\t\t\tconstraints: [...(input.constraints ?? [])],\n\t\t\tacceptanceCriteria: structuredClone(input.acceptanceCriteria ?? []),\n\t\t\triskBudget: { ...(input.riskBudget ?? {}) },\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now,\n\t\t};\n\t\tif (!objective.title || !objective.description)\n\t\t\tthrow new DurableTaskRuntimeError(\"Objective title and description are required.\");\n\t\tassertAcceptanceCriteria(objective.acceptanceCriteria);\n\t\tif (this.state.objectives[objective.objectiveId]) {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objective.objectiveId}' already exists.`);\n\t\t}\n\t\tthis.commit({\n\t\t\ttype: \"objective.created\",\n\t\t\taggregateId: objective.objectiveId,\n\t\t\tactor: \"kernel\",\n\t\t\tidempotencyKey: `objective-created:${objective.objectiveId}`,\n\t\t\tpayload: toJsonObject({ objective }),\n\t\t});\n\t\treturn structuredClone(objective);\n\t}\n\n\t/** Create or synchronize owner-authored objective metadata without disturbing lifecycle or task state. */\n\tensureObjective(input: CreateObjectiveInput & { objectiveId: string }): ObjectiveContract {\n\t\tthis.refresh();\n\t\tconst current = this.state.objectives[input.objectiveId];\n\t\tif (!current) return this.createObjective(input);\n\t\tassertRiskBudget(input.riskBudget, \"objective.riskBudget\");\n\t\tconst acceptanceCriteria = structuredClone(input.acceptanceCriteria ?? []);\n\t\tassertAcceptanceCriteria(acceptanceCriteria);\n\t\tconst nextFields = {\n\t\t\ttitle: input.title.trim(),\n\t\t\tdescription: input.description.trim(),\n\t\t\tconstraints: [...(input.constraints ?? [])],\n\t\t\tacceptanceCriteria,\n\t\t\triskBudget: { ...(input.riskBudget ?? {}) },\n\t\t};\n\t\tif (!nextFields.title || !nextFields.description) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Objective title and description are required.\");\n\t\t}\n\t\tconst currentFields = {\n\t\t\ttitle: current.objective.title,\n\t\t\tdescription: current.objective.description,\n\t\t\tconstraints: current.objective.constraints,\n\t\t\tacceptanceCriteria: current.objective.acceptanceCriteria,\n\t\t\triskBudget: current.objective.riskBudget,\n\t\t};\n\t\tif (isDeepStrictEqual(currentFields, nextFields)) return structuredClone(current.objective);\n\n\t\tconst retainedCriterionIds = new Set(acceptanceCriteria.map((criterion) => criterion.id));\n\t\tconst referencedRemovedIds = current.taskIds.flatMap((taskId) =>\n\t\t\t(this.state.tasks[taskId]?.task.acceptanceCriterionIds ?? []).filter(\n\t\t\t\t(criterionId) => !retainedCriterionIds.has(criterionId),\n\t\t\t),\n\t\t);\n\t\tif (referencedRemovedIds.length > 0) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Cannot remove acceptance criteria referenced by tasks: ${[...new Set(referencedRemovedIds)].join(\", \")}.`,\n\t\t\t);\n\t\t}\n\t\tconst objective: ObjectiveContract = {\n\t\t\t...current.objective,\n\t\t\t...nextFields,\n\t\t\tupdatedAt: this.nowIso(),\n\t\t};\n\t\tthis.commit({\n\t\t\ttype: \"objective.updated\",\n\t\t\taggregateId: objective.objectiveId,\n\t\t\tactor: \"kernel\",\n\t\t\tpayload: toJsonObject({ objective }),\n\t\t});\n\t\treturn structuredClone(objective);\n\t}\n\n\trecordObjectiveEvidence(objectiveId: string, evidence: EvidenceContract): EvidenceContract {\n\t\tthis.refresh();\n\t\tconst objective = this.requireObjective(objectiveId);\n\t\tconst existing = objective.evidence.find((candidate) => candidate.evidenceId === evidence.evidenceId);\n\t\tif (existing) {\n\t\t\tif (!isDeepStrictEqual(existing, evidence)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Objective evidence '${evidence.evidenceId}' has conflicting content.`);\n\t\t\t}\n\t\t\treturn structuredClone(existing);\n\t\t}\n\t\tif (!evidence.evidenceId.trim() || !evidence.summary.trim() || !evidence.createdAt.trim()) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Objective evidence requires an id, summary, and creation time.\");\n\t\t}\n\t\tif (\n\t\t\tevidence.criterionId &&\n\t\t\t!objective.objective.acceptanceCriteria.some((criterion) => criterion.id === evidence.criterionId)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Objective evidence references unknown acceptance criterion '${evidence.criterionId}'.`,\n\t\t\t);\n\t\t}\n\t\tthis.commit({\n\t\t\ttype: \"objective.evidence_recorded\",\n\t\t\taggregateId: objectiveId,\n\t\t\tactor: \"kernel\",\n\t\t\tidempotencyKey: `objective-evidence-recorded:${objectiveId}:${evidence.evidenceId}`,\n\t\t\tpayload: toJsonObject({ evidence }),\n\t\t});\n\t\treturn structuredClone(evidence);\n\t}\n\n\tcreateTask(input: CreateTaskInput): TaskContract {\n\t\tthis.refresh();\n\t\tassertRiskBudget(input.riskBudget, \"task.riskBudget\");\n\t\tconst objectiveState = this.state.objectives[input.objectiveId];\n\t\tif (!objectiveState) throw new DurableTaskRuntimeError(`Unknown objective '${input.objectiveId}'.`);\n\t\tif (objectiveState.objective.status !== \"active\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${input.objectiveId}' is not active.`);\n\t\t}\n\t\tconst dependsOn = [...new Set(input.dependsOn ?? [])];\n\t\tconst acceptanceCriterionIds = [...new Set(input.acceptanceCriterionIds ?? [])];\n\t\tconst objectiveCriterionIds = new Set(\n\t\t\tobjectiveState.objective.acceptanceCriteria.map((criterion) => criterion.id),\n\t\t);\n\t\tconst unknownCriterionIds = acceptanceCriterionIds.filter(\n\t\t\t(criterionId) => !objectiveCriterionIds.has(criterionId),\n\t\t);\n\t\tif (unknownCriterionIds.length > 0) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Task references unknown acceptance criteria: ${unknownCriterionIds.join(\", \")}.`,\n\t\t\t);\n\t\t}\n\t\tfor (const dependencyId of dependsOn) {\n\t\t\tconst dependency = this.state.tasks[dependencyId];\n\t\t\tif (!dependency || dependency.task.objectiveId !== input.objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Task dependency '${dependencyId}' is not in objective '${input.objectiveId}'.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (input.verificationOfTaskId) {\n\t\t\tconst subject = this.state.tasks[input.verificationOfTaskId];\n\t\t\tif (!subject || subject.task.objectiveId !== input.objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Verification subject '${input.verificationOfTaskId}' is not in objective '${input.objectiveId}'.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (input.role !== \"verifier\") {\n\t\t\t\tthrow new DurableTaskRuntimeError(\"Only verifier tasks may declare verificationOfTaskId.\");\n\t\t\t}\n\t\t\tif (subject.task.role === \"verifier\") {\n\t\t\t\tthrow new DurableTaskRuntimeError(\"A verifier task cannot independently verify another verifier task.\");\n\t\t\t}\n\t\t}\n\t\tconst now = this.nowIso();\n\t\tconst task: TaskContract = {\n\t\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\t\ttaskId: input.taskId ?? `task-${this.createId()}`,\n\t\t\tobjectiveId: input.objectiveId,\n\t\t\ttitle: input.title.trim(),\n\t\t\tdescription: input.description.trim(),\n\t\t\trole: input.role,\n\t\t\tstatus: dependsOn.length === 0 ? \"ready\" : \"pending\",\n\t\t\tdependsOn,\n\t\t\trequiredCapabilities: [...new Set(input.requiredCapabilities ?? [])],\n\t\t\tacceptanceCriterionIds,\n\t\t\t...(input.verificationOfTaskId ? { verificationOfTaskId: input.verificationOfTaskId } : {}),\n\t\t\triskBudget: { ...(input.riskBudget ?? {}) },\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now,\n\t\t};\n\t\tif (!task.title || !task.description)\n\t\t\tthrow new DurableTaskRuntimeError(\"Task title and description are required.\");\n\t\tif (this.state.tasks[task.taskId]) throw new DurableTaskRuntimeError(`Task '${task.taskId}' already exists.`);\n\t\tthis.commit({\n\t\t\ttype: \"task.created\",\n\t\t\taggregateId: task.objectiveId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `task-created:${task.taskId}`,\n\t\t\tpayload: toJsonObject({ task }),\n\t\t});\n\t\treturn structuredClone(this.state.tasks[task.taskId]!.task);\n\t}\n\n\tqueueAttempt(taskId: string, dispatch: OrchestrationDispatchRequest, grantId?: string): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst task = this.requireDispatchableTask(taskId);\n\t\tconst pendingApproval = this.pendingApprovalForTask(taskId);\n\t\tif (pendingApproval) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Task '${taskId}' is awaiting approval '${pendingApproval.request.approvalId}'.`,\n\t\t\t);\n\t\t}\n\t\tconst normalizedDispatch = dispatchFromValue(dispatch, \"dispatch\");\n\t\tif (normalizedDispatch.taskId !== taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Dispatch taskId does not match the queued task.\");\n\t\t}\n\t\tif (\n\t\t\tnormalizedDispatch.executionContract &&\n\t\t\t(normalizedDispatch.executionContract.worker.profile.profileId !== normalizedDispatch.profileId ||\n\t\t\t\tnormalizedDispatch.executionContract.worker.profile.role !== task.task.role)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Execution contract does not match the dispatch profile and task role.\");\n\t\t}\n\t\tconst objective = this.state.objectives[task.task.objectiveId]!.objective;\n\t\tconst attemptCeilings = [task.task.riskBudget.maxAttempts, objective.riskBudget.maxAttempts].filter(\n\t\t\t(value): value is number => value !== undefined,\n\t\t);\n\t\tconst maxAttempts = attemptCeilings.length > 0 ? Math.min(...attemptCeilings) : undefined;\n\t\tif (maxAttempts !== undefined && task.attemptIds.length >= maxAttempts) {\n\t\t\tthrow new DurableTaskRuntimeError(`Task '${taskId}' exhausted its ${maxAttempts} attempt budget.`);\n\t\t}\n\t\tconst attemptId = `attempt-${this.createId()}`;\n\t\tthis.commit({\n\t\t\ttype: \"attempt.queued\",\n\t\t\taggregateId: taskId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `attempt-queued:${attemptId}`,\n\t\t\tpayload: toJsonObject({ attemptId, taskId, dispatch: normalizedDispatch, ...(grantId ? { grantId } : {}) }),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[attemptId]!);\n\t}\n\n\tbindAttemptGrant(attemptId: string, grant: ExecutionGrant): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireAttempt(attemptId);\n\t\tif (![\"queued\", \"leased\", \"running\"].includes(attempt.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' cannot bind a grant from '${attempt.status}'.`);\n\t\t}\n\t\tif (!grant.grantId.trim()) throw new DurableTaskRuntimeError(\"Grant id is required.\");\n\t\tconst task = this.state.tasks[attempt.taskId];\n\t\tif (\n\t\t\t!task ||\n\t\t\tgrant.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION ||\n\t\t\tgrant.attemptId !== attemptId ||\n\t\t\tgrant.taskId !== attempt.taskId ||\n\t\t\tgrant.objectiveId !== task.task.objectiveId ||\n\t\t\tgrant.role !== task.task.role\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Execution grant target does not match the attempt.\");\n\t\t}\n\t\tconst approval = this.approvalForAttempt(attemptId);\n\t\tif (approval?.status === \"pending\") {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Attempt '${attemptId}' is awaiting approval '${approval.request.approvalId}'.`,\n\t\t\t);\n\t\t}\n\t\tif (approval?.status === \"rejected\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Approval '${approval.request.approvalId}' was rejected.`);\n\t\t}\n\t\tif (attempt.grantId === grant.grantId) {\n\t\t\tif (attempt.grant && !isDeepStrictEqual(attempt.grant, grant)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' grant has conflicting content.`);\n\t\t\t}\n\t\t\treturn structuredClone(attempt);\n\t\t}\n\t\tif (attempt.grantId) throw new DurableTaskRuntimeError(`Attempt '${attemptId}' already has a different grant.`);\n\t\tthis.commit({\n\t\t\ttype: \"attempt.grant_bound\",\n\t\t\taggregateId: attemptId,\n\t\t\tactor: \"policy\",\n\t\t\tidempotencyKey: `attempt-grant-bound:${attemptId}:${grant.grantId}`,\n\t\t\tpayload: toJsonObject({ attemptId, grant }),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[attemptId]!);\n\t}\n\n\tleaseAttempt(attemptId: string, ownerId: string, ttlMs: number, agentId?: string): AttemptLease {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireAttempt(attemptId);\n\t\tif (attempt.status !== \"queued\") throw new DurableTaskRuntimeError(`Attempt '${attemptId}' is not queued.`);\n\t\tthis.requireActiveObjectiveForAttempt(attempt);\n\t\tconst approval = this.approvalForAttempt(attemptId);\n\t\tif (approval?.status === \"pending\") {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Attempt '${attemptId}' is awaiting approval '${approval.request.approvalId}'.`,\n\t\t\t);\n\t\t}\n\t\tif (!attempt.grantId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' requires an execution grant before leasing.`);\n\t\t}\n\t\tif (agentId) {\n\t\t\tconst agent = this.state.agents[agentId];\n\t\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\t\tif (agent.status !== \"registered\") throw new DurableTaskRuntimeError(`Agent '${agentId}' is not idle.`);\n\t\t\tconst task = this.state.tasks[attempt.taskId];\n\t\t\tif (!task || task.task.role !== agent.role)\n\t\t\t\tthrow new DurableTaskRuntimeError(`Agent '${agentId}' role does not match task.`);\n\t\t}\n\t\tconst lease = this.issueLease(attempt, ownerId, ttlMs);\n\t\tthis.commit({\n\t\t\ttype: \"attempt.leased\",\n\t\t\taggregateId: attemptId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `attempt-leased:${lease.leaseId}`,\n\t\t\tpayload: toJsonObject({ lease, ...(agentId ? { agentId } : {}) }),\n\t\t});\n\t\treturn structuredClone(lease);\n\t}\n\n\tstartAttempt(attemptId: string, leaseId: string, fencingToken: number): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireLiveLease(attemptId, leaseId, fencingToken);\n\t\tthis.requireActiveObjectiveForAttempt(attempt);\n\t\tif (attempt.status !== \"leased\") throw new DurableTaskRuntimeError(`Attempt '${attemptId}' is not leased.`);\n\t\tthis.commit({\n\t\t\ttype: \"attempt.started\",\n\t\t\taggregateId: attemptId,\n\t\t\tactor: \"worker\",\n\t\t\tidempotencyKey: `attempt-started:${attemptId}:${fencingToken}`,\n\t\t\tpayload: toJsonObject({ attemptId, leaseId, fencingToken }),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[attemptId]!);\n\t}\n\n\tcheckpointAttempt(args: {\n\t\tattemptId: string;\n\t\tleaseId: string;\n\t\tfencingToken: number;\n\t\tsummary: string;\n\t\tartifactIds?: readonly string[];\n\t\tevidenceIds?: readonly string[];\n\t\tusage?: AttemptCheckpoint[\"usage\"];\n\t}): AttemptCheckpoint {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireLiveLease(args.attemptId, args.leaseId, args.fencingToken);\n\t\tif (attempt.status !== \"running\")\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${args.attemptId}' is not running.`);\n\t\tconst checkpoint: AttemptCheckpoint = {\n\t\t\tcheckpointId: `checkpoint-${this.createId()}`,\n\t\t\tattemptId: args.attemptId,\n\t\t\tfencingToken: args.fencingToken,\n\t\t\tsummary: args.summary.trim(),\n\t\t\tartifactIds: [...(args.artifactIds ?? [])],\n\t\t\tevidenceIds: [...(args.evidenceIds ?? [])],\n\t\t\t...(args.usage ? { usage: usageFromPayload(args.usage, \"checkpoint.usage\") } : {}),\n\t\t\tcreatedAt: this.nowIso(),\n\t\t};\n\t\tif (!checkpoint.summary) throw new DurableTaskRuntimeError(\"Checkpoint summary is required.\");\n\t\tthis.commit({\n\t\t\ttype: \"attempt.checkpointed\",\n\t\t\taggregateId: args.attemptId,\n\t\t\tactor: \"worker\",\n\t\t\tidempotencyKey: `attempt-checkpointed:${checkpoint.checkpointId}`,\n\t\t\tpayload: toJsonObject({ checkpoint, leaseId: args.leaseId }),\n\t\t});\n\t\treturn structuredClone(checkpoint);\n\t}\n\n\tfinishAttempt(result: WorkerResultContract): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireLiveLease(result.attemptId, result.leaseId, result.fencingToken);\n\t\tif (attempt.status !== \"running\" && attempt.status !== \"leased\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${result.attemptId}' cannot finish from '${attempt.status}'.`);\n\t\t}\n\t\tif (attempt.taskId !== result.taskId)\n\t\t\tthrow new DurableTaskRuntimeError(\"Worker result taskId does not match attempt.\");\n\t\tconst task = this.state.tasks[attempt.taskId];\n\t\tif (!task || task.task.objectiveId !== result.objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Worker result objectiveId does not match attempt.\");\n\t\t}\n\t\tif (result.status === \"completed\") {\n\t\t\tconst missingCriteria = missingTrustedCriteria(result, task.task.acceptanceCriterionIds);\n\t\t\tif (missingCriteria.length > 0) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Completed result lacks trusted evidence for acceptance criteria: ${missingCriteria.join(\", \")}.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.commit({\n\t\t\ttype: \"attempt.finished\",\n\t\t\taggregateId: result.attemptId,\n\t\t\tactor: \"worker\",\n\t\t\tidempotencyKey: `attempt-finished:${result.resultId}`,\n\t\t\tpayload: toJsonObject({ result }),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[result.attemptId]!);\n\t}\n\n\tfinishVerification(args: {\n\t\ttaskId: string;\n\t\tverifierTaskId: string;\n\t\tverifierAttemptId: string;\n\t\tverdict: \"accepted\" | \"rejected\" | \"inconclusive\";\n\t\treasonCode: string;\n\t}): TaskRuntimeState {\n\t\tthis.refresh();\n\t\tconst subject = this.state.tasks[args.taskId];\n\t\tconst verifierTask = this.state.tasks[args.verifierTaskId];\n\t\tconst verifierAttempt = this.state.attempts[args.verifierAttemptId];\n\t\tif (!subject) throw new DurableTaskRuntimeError(`Unknown verification subject '${args.taskId}'.`);\n\t\tif (!verifierTask || verifierTask.task.verificationOfTaskId !== args.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Task '${args.verifierTaskId}' is not the verifier for '${args.taskId}'.`);\n\t\t}\n\t\tif (!verifierAttempt || verifierAttempt.taskId !== args.verifierTaskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Unknown verifier attempt '${args.verifierAttemptId}'.`);\n\t\t}\n\t\tif (args.verdict === \"inconclusive\") {\n\t\t\tif (\n\t\t\t\tverifierAttempt.status === \"queued\" ||\n\t\t\t\tverifierAttempt.status === \"leased\" ||\n\t\t\t\tverifierAttempt.status === \"running\"\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Verifier attempt '${args.verifierAttemptId}' is not terminal.`);\n\t\t\t}\n\t\t} else if (verifierAttempt.status !== \"completed\" || !verifierAttempt.result) {\n\t\t\tthrow new DurableTaskRuntimeError(`Verifier attempt '${args.verifierAttemptId}' is not completed.`);\n\t\t}\n\t\tif (subject.task.status !== \"blocked\") {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Verification subject '${args.taskId}' cannot reconcile from '${subject.task.status}'.`,\n\t\t\t);\n\t\t}\n\t\tif (!args.reasonCode.trim()) throw new DurableTaskRuntimeError(\"Verification reason code is required.\");\n\t\tif (\n\t\t\targs.verdict === \"accepted\" &&\n\t\t\t!verifierAttempt.result?.evidence.some(\n\t\t\t\t(evidence) =>\n\t\t\t\t\tevidence.trusted && evidence.kind === \"review\" && evidence.metadata?.subjectTaskId === args.taskId,\n\t\t\t)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\"Accepted verification requires trusted review evidence for the subject task.\",\n\t\t\t);\n\t\t}\n\t\tthis.commit({\n\t\t\ttype: \"task.verification_finished\",\n\t\t\taggregateId: args.taskId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `task-verification-finished:${args.taskId}:${args.verifierAttemptId}`,\n\t\t\tpayload: toJsonObject({ ...args, reasonCode: args.reasonCode.trim() }),\n\t\t});\n\t\treturn structuredClone(this.state.tasks[args.taskId]!);\n\t}\n\n\tcancelAttempt(attemptId: string, reasonCode: string): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireAttempt(attemptId);\n\t\tif (terminalAttemptStatus(attempt.status)) return structuredClone(attempt);\n\t\tif (!reasonCode.trim()) throw new DurableTaskRuntimeError(\"Cancellation reason is required.\");\n\t\tthis.commit({\n\t\t\ttype: \"attempt.cancelled\",\n\t\t\taggregateId: attemptId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `attempt-cancelled:${attemptId}`,\n\t\t\tpayload: toJsonObject({ attemptId, reasonCode: reasonCode.trim() }),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[attemptId]!);\n\t}\n\n\t/**\n\t * The only runtime suspension transition. Callers must present the exact current owner and lease\n\t * fence; liveness/restart policy stays outside this deterministic runtime.\n\t */\n\tsuspendBoundAttempt(args: {\n\t\tattemptId: string;\n\t\townerId: string;\n\t\tleaseId: string;\n\t\tfencingToken: number;\n\t\treasonCode: string;\n\t}): AttemptRuntimeState {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireAttempt(args.attemptId);\n\t\tif (!attempt.agentId || !attempt.lease || ![\"leased\", \"running\"].includes(attempt.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${args.attemptId}' is not a live agent-bound attempt.`);\n\t\t}\n\t\tif (attempt.lease.ownerId !== args.ownerId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${args.attemptId}' is not owned by '${args.ownerId}'.`);\n\t\t}\n\t\tif (attempt.lease.leaseId !== args.leaseId || attempt.lease.fencingToken !== args.fencingToken) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${args.attemptId}' lease or fencing token is stale.`);\n\t\t}\n\t\tif (!args.reasonCode.trim()) throw new DurableTaskRuntimeError(\"Suspension reason is required.\");\n\t\tthis.commit({\n\t\t\ttype: \"attempt.suspended\",\n\t\t\taggregateId: args.attemptId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `attempt-suspended:${args.attemptId}:${args.leaseId}:${args.fencingToken}`,\n\t\t\tpayload: toJsonObject({\n\t\t\t\tattemptId: args.attemptId,\n\t\t\t\tleaseId: args.leaseId,\n\t\t\t\tfencingToken: args.fencingToken,\n\t\t\t\treasonCode: args.reasonCode.trim(),\n\t\t\t}),\n\t\t});\n\t\treturn structuredClone(this.state.attempts[args.attemptId]!);\n\t}\n\n\tfailTask(taskId: string, reasonCode: string): TaskContract {\n\t\tthis.refresh();\n\t\tconst task = this.state.tasks[taskId];\n\t\tif (!task) throw new DurableTaskRuntimeError(`Unknown task '${taskId}'.`);\n\t\tif ([\"completed\", \"failed\", \"cancelled\"].includes(task.task.status)) return structuredClone(task.task);\n\t\tif (!reasonCode.trim()) throw new DurableTaskRuntimeError(\"Task failure reason is required.\");\n\t\tthis.commit({\n\t\t\ttype: \"task.failed\",\n\t\t\taggregateId: taskId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `task-failed:${taskId}:${reasonCode.trim()}`,\n\t\t\tpayload: toJsonObject({ taskId, reasonCode: reasonCode.trim() }),\n\t\t});\n\t\treturn structuredClone(this.state.tasks[taskId]!.task);\n\t}\n\n\t/**\n\t * Recover unbound in-process work after a process restart. A completion has no resumable model\n\t * transcript, so its old lease is fenced and the task becomes dispatchable for a fresh attempt.\n\t * Agent-bound attempts are intentionally excluded: those must wake the same logical agent.\n\t */\n\trecoverInterruptedUnboundAttempts(shouldRecover: (attempt: AttemptRuntimeState) => boolean = () => true): string[] {\n\t\tthis.refresh();\n\t\tconst recovered: string[] = [];\n\t\tfor (const attempt of Object.values(this.state.attempts)) {\n\t\t\tif (\n\t\t\t\t(attempt.status !== \"leased\" && attempt.status !== \"running\") ||\n\t\t\t\tattempt.agentId ||\n\t\t\t\t!shouldRecover(attempt)\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.commit({\n\t\t\t\ttype: \"attempt.lease_expired\",\n\t\t\t\taggregateId: attempt.attemptId,\n\t\t\t\tactor: \"runtime\",\n\t\t\t\tidempotencyKey: `attempt-process-interrupted:${attempt.attemptId}:${attempt.lease?.leaseId ?? \"none\"}`,\n\t\t\t\tpayload: toJsonObject({\n\t\t\t\t\tattemptId: attempt.attemptId,\n\t\t\t\t\t...(attempt.lease ? { leaseId: attempt.lease.leaseId, fencingToken: attempt.lease.fencingToken } : {}),\n\t\t\t\t\treasonCode: \"worker_process_interrupted\",\n\t\t\t\t}),\n\t\t\t});\n\t\t\trecovered.push(attempt.attemptId);\n\t\t}\n\t\treturn recovered;\n\t}\n\n\texpireLeases(at = this.now()): string[] {\n\t\tthis.refresh();\n\t\tconst expired: string[] = [];\n\t\tfor (const attempt of Object.values(this.state.attempts)) {\n\t\t\tif ((attempt.status !== \"leased\" && attempt.status !== \"running\") || !attempt.lease) continue;\n\t\t\tif (Date.parse(attempt.lease.expiresAt) > at) continue;\n\t\t\tthis.commit({\n\t\t\t\ttype: attempt.agentId ? \"attempt.suspended\" : \"attempt.lease_expired\",\n\t\t\t\taggregateId: attempt.attemptId,\n\t\t\t\tactor: \"runtime\",\n\t\t\t\tidempotencyKey: `attempt-lease-expired:${attempt.lease.leaseId}`,\n\t\t\t\tpayload: toJsonObject({\n\t\t\t\t\tattemptId: attempt.attemptId,\n\t\t\t\t\tleaseId: attempt.lease.leaseId,\n\t\t\t\t\tfencingToken: attempt.lease.fencingToken,\n\t\t\t\t}),\n\t\t\t});\n\t\t\texpired.push(attempt.attemptId);\n\t\t}\n\t\treturn expired;\n\t}\n\n\trequestAgentResume(agentId: string): AgentBindingContract {\n\t\tthis.refresh();\n\t\tconst agent = this.state.agents[agentId];\n\t\tif (!agent) throw new DurableTaskRuntimeError(`Unknown agent '${agentId}'.`);\n\t\tif (agent.status !== \"suspended\") throw new DurableTaskRuntimeError(`Agent '${agentId}' is not suspended.`);\n\t\tthis.commit({\n\t\t\ttype: \"agent.resume_requested\",\n\t\t\taggregateId: agentId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `agent-resume-requested:${agentId}:${this.state.lastOrdinal}`,\n\t\t\tpayload: toJsonObject({ agentId }),\n\t\t});\n\t\treturn structuredClone(this.state.agents[agentId]!);\n\t}\n\n\tresumeAttempt(attemptId: string, agentId: string, ttlMs: number, ownerId = agentId): AttemptLease {\n\t\tthis.refresh();\n\t\tconst attempt = this.requireAttempt(attemptId);\n\t\tconst agent = this.state.agents[agentId];\n\t\tif (attempt.status !== \"suspended\" || attempt.agentId !== agentId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' is not suspended for agent '${agentId}'.`);\n\t\t}\n\t\tif (!agent || agent.status !== \"resuming\")\n\t\t\tthrow new DurableTaskRuntimeError(`Agent '${agentId}' is not resuming.`);\n\t\tthis.requireActiveObjectiveForAttempt(attempt);\n\t\tconst lease = this.issueLease(attempt, ownerId, ttlMs);\n\t\tthis.commit({\n\t\t\ttype: \"attempt.resumed\",\n\t\t\taggregateId: attemptId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `attempt-resumed:${lease.leaseId}`,\n\t\t\tpayload: toJsonObject({ agentId, lease }),\n\t\t});\n\t\treturn structuredClone(lease);\n\t}\n\n\tpauseObjective(objectiveId: string): void {\n\t\tthis.transitionObjective(objectiveId, \"objective.paused\", \"paused\");\n\t}\n\n\tresumeObjective(objectiveId: string): void {\n\t\tthis.transitionObjective(objectiveId, \"objective.resumed\", \"active\");\n\t}\n\n\tcancelObjective(objectiveId: string): void {\n\t\tthis.transitionObjective(objectiveId, \"objective.cancelled\", \"cancelled\");\n\t}\n\n\tcompleteObjective(objectiveId: string): void {\n\t\tthis.refresh();\n\t\tconst objective = this.requireObjective(objectiveId);\n\t\tconst incomplete = objective.taskIds.filter((taskId) => this.state.tasks[taskId]?.task.status !== \"completed\");\n\t\tif (incomplete.length > 0) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Objective '${objectiveId}' has incomplete tasks: ${incomplete.join(\", \")}.`,\n\t\t\t);\n\t\t}\n\t\tconst requiredCriterionIds = objective.objective.acceptanceCriteria\n\t\t\t.filter((criterion) => criterion.required)\n\t\t\t.map((criterion) => criterion.id);\n\t\tconst evidence = [\n\t\t\t...objective.evidence,\n\t\t\t...objective.taskIds.flatMap((taskId) => {\n\t\t\t\tconst task = this.state.tasks[taskId];\n\t\t\t\treturn (\n\t\t\t\t\ttask?.attemptIds.flatMap((attemptId) => this.state.attempts[attemptId]?.result?.evidence ?? []) ?? []\n\t\t\t\t);\n\t\t\t}),\n\t\t];\n\t\tconst provenCriterionIds = new Set(\n\t\t\tevidence.flatMap((item) => (item.trusted && item.criterionId ? [item.criterionId] : [])),\n\t\t);\n\t\tconst unproven = requiredCriterionIds.filter((criterionId) => !provenCriterionIds.has(criterionId));\n\t\tif (unproven.length > 0) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`Objective '${objectiveId}' lacks trusted evidence for required criteria: ${unproven.join(\", \")}.`,\n\t\t\t);\n\t\t}\n\t\tthis.transitionObjective(objectiveId, \"objective.completed\", \"completed\");\n\t}\n\n\tcompleteObjectiveFromOwner(objectiveId: string, acceptanceOverride: boolean): void {\n\t\tthis.refresh();\n\t\tconst objective = this.requireObjective(objectiveId);\n\t\tif (objective.objective.status === \"completed\") return;\n\t\tif (objective.objective.status === \"cancelled\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objectiveId}' is terminal.`);\n\t\t}\n\t\tif (!acceptanceOverride) {\n\t\t\tconst provenCriterionIds = new Set(\n\t\t\t\tobjective.evidence.flatMap((evidence) =>\n\t\t\t\t\tevidence.trusted && evidence.criterionId ? [evidence.criterionId] : [],\n\t\t\t\t),\n\t\t\t);\n\t\t\tconst unproven = objective.objective.acceptanceCriteria\n\t\t\t\t.filter((criterion) => criterion.required && !provenCriterionIds.has(criterion.id))\n\t\t\t\t.map((criterion) => criterion.id);\n\t\t\tif (unproven.length > 0) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Objective '${objectiveId}' lacks trusted owner evidence for required criteria: ${unproven.join(\", \")}.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.transitionObjective(objectiveId, \"objective.completed\", \"completed\");\n\t}\n\n\trequestApproval(approval: ApprovalRequestContract): ApprovalRuntimeState {\n\t\tthis.refresh();\n\t\tconst normalized = approvalFromPayload(toJsonObject({ approval }));\n\t\tconst existing = this.state.approvals[normalized.approvalId];\n\t\tif (existing) {\n\t\t\tif (!isDeepStrictEqual(existing.request, normalized)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Approval id '${normalized.approvalId}' has conflicting content.`);\n\t\t\t}\n\t\t\treturn structuredClone(existing);\n\t\t}\n\t\tthis.validateApprovalRequest(normalized);\n\t\tconst pendingForTarget = Object.values(this.state.approvals).find(\n\t\t\t(candidate) =>\n\t\t\t\tcandidate.status === \"pending\" &&\n\t\t\t\tcandidate.request.objectiveId === normalized.objectiveId &&\n\t\t\t\tcandidate.request.taskId === normalized.taskId &&\n\t\t\t\tcandidate.request.attemptId === normalized.attemptId,\n\t\t);\n\t\tif (pendingForTarget) {\n\t\t\tthrow new DurableTaskRuntimeError(`Target already awaits approval '${pendingForTarget.request.approvalId}'.`);\n\t\t}\n\t\tthis.commit({\n\t\t\ttype: \"approval.requested\",\n\t\t\taggregateId: normalized.attemptId ?? normalized.taskId ?? normalized.objectiveId,\n\t\t\tactor: \"policy\",\n\t\t\tidempotencyKey: `approval-requested:${normalized.approvalId}`,\n\t\t\tpayload: toJsonObject({ approval: normalized }),\n\t\t});\n\t\treturn structuredClone(this.state.approvals[normalized.approvalId]!);\n\t}\n\n\tresolveApproval(approvalId: string, outcome: ApprovalOutcome, reasonCode: string): ApprovalRuntimeState {\n\t\tthis.refresh();\n\t\tconst approval = this.state.approvals[approvalId];\n\t\tif (!approval) throw new DurableTaskRuntimeError(`Unknown approval '${approvalId}'.`);\n\t\tif (approval.status !== \"pending\") {\n\t\t\tif (approval.status === outcome) return structuredClone(approval);\n\t\t\tthrow new DurableTaskRuntimeError(`Approval '${approvalId}' was already ${approval.status}.`);\n\t\t}\n\t\tif (outcome !== \"approved\" && outcome !== \"rejected\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Unknown approval outcome '${String(outcome)}'.`);\n\t\t}\n\t\tif (!reasonCode.trim()) throw new DurableTaskRuntimeError(\"Approval resolution reason is required.\");\n\t\tconst resolution: ApprovalResolutionContract = {\n\t\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\t\tapprovalId,\n\t\t\toutcome,\n\t\t\treasonCode: reasonCode.trim(),\n\t\t\tresolvedAt: this.nowIso(),\n\t\t};\n\t\tthis.commit({\n\t\t\ttype: \"approval.resolved\",\n\t\t\taggregateId: approval.request.attemptId ?? approval.request.taskId ?? approval.request.objectiveId,\n\t\t\tactor: \"human\",\n\t\t\tidempotencyKey: `approval-resolved:${approvalId}`,\n\t\t\tpayload: toJsonObject({ resolution }),\n\t\t});\n\t\treturn structuredClone(this.state.approvals[approvalId]!);\n\t}\n\n\tenqueueNotification(args: {\n\t\tnotificationId?: string;\n\t\tobjectiveId: string;\n\t\tattemptId?: string;\n\t\tmessage: string;\n\t}): NotificationRuntimeState {\n\t\tthis.refresh();\n\t\tthis.requireObjective(args.objectiveId);\n\t\tconst notificationId = args.notificationId ?? `notification-${this.createId()}`;\n\t\tconst existing = this.state.notifications[notificationId];\n\t\tif (existing) return structuredClone(existing);\n\t\tthis.commit({\n\t\t\ttype: \"notification.enqueued\",\n\t\t\taggregateId: args.objectiveId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `notification-enqueued:${notificationId}`,\n\t\t\tpayload: toJsonObject({ ...args, notificationId }),\n\t\t});\n\t\treturn structuredClone(this.state.notifications[notificationId]!);\n\t}\n\n\tmarkNotificationDelivered(notificationId: string): NotificationRuntimeState {\n\t\tthis.refresh();\n\t\tconst notification = this.state.notifications[notificationId];\n\t\tif (!notification) throw new DurableTaskRuntimeError(`Unknown notification '${notificationId}'.`);\n\t\tif (notification.status === \"delivered\") return structuredClone(notification);\n\t\tthis.commit({\n\t\t\ttype: \"notification.delivered\",\n\t\t\taggregateId: notification.objectiveId,\n\t\t\tactor: \"runtime\",\n\t\t\tidempotencyKey: `notification-delivered:${notificationId}`,\n\t\t\tpayload: toJsonObject({ notificationId }),\n\t\t});\n\t\treturn structuredClone(this.state.notifications[notificationId]!);\n\t}\n\n\tprivate transitionObjective(\n\t\tobjectiveId: string,\n\t\ttype: \"objective.paused\" | \"objective.resumed\" | \"objective.cancelled\" | \"objective.completed\",\n\t\ttarget: ObjectiveStatus,\n\t): void {\n\t\tthis.refresh();\n\t\tconst objective = this.requireObjective(objectiveId);\n\t\tif (objective.objective.status === target) return;\n\t\tif ([\"completed\", \"cancelled\"].includes(objective.objective.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objectiveId}' is terminal.`);\n\t\t}\n\t\tthis.commit({\n\t\t\ttype,\n\t\t\taggregateId: objectiveId,\n\t\t\tactor: \"human\",\n\t\t\tidempotencyKey: `${type}:${objectiveId}:${this.state.lastOrdinal}`,\n\t\t\tpayload: {},\n\t\t});\n\t}\n\n\tprivate requireObjective(objectiveId: string): ObjectiveRuntimeState {\n\t\tconst objective = this.state.objectives[objectiveId];\n\t\tif (!objective) throw new DurableTaskRuntimeError(`Unknown objective '${objectiveId}'.`);\n\t\treturn objective;\n\t}\n\n\tprivate requireDispatchableTask(taskId: string): TaskRuntimeState {\n\t\tconst task = this.state.tasks[taskId];\n\t\tif (!task) throw new DurableTaskRuntimeError(`Unknown task '${taskId}'.`);\n\t\tconst objective = this.requireObjective(task.task.objectiveId);\n\t\tif (objective.objective.status !== \"active\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objective.objective.objectiveId}' is not active.`);\n\t\t}\n\t\tif (![\"ready\", \"blocked\", \"failed\"].includes(task.task.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`Task '${taskId}' is not dispatchable from '${task.task.status}'.`);\n\t\t}\n\t\treturn task;\n\t}\n\n\tprivate requireAttempt(attemptId: string): AttemptRuntimeState {\n\t\tconst attempt = this.state.attempts[attemptId];\n\t\tif (!attempt) throw new DurableTaskRuntimeError(`Unknown attempt '${attemptId}'.`);\n\t\treturn attempt;\n\t}\n\n\tprivate issueLease(attempt: AttemptRuntimeState, ownerId: string, ttlMs: number): AttemptLease {\n\t\tif (!Number.isFinite(ttlMs) || ttlMs <= 0) throw new DurableTaskRuntimeError(\"Lease TTL must be positive.\");\n\t\tconst issuedAtMs = this.now();\n\t\treturn {\n\t\t\tleaseId: `lease-${this.createId()}`,\n\t\t\tattemptId: attempt.attemptId,\n\t\t\townerId,\n\t\t\tfencingToken: (attempt.lease?.fencingToken ?? 0) + 1,\n\t\t\tissuedAt: new Date(issuedAtMs).toISOString(),\n\t\t\texpiresAt: new Date(issuedAtMs + ttlMs).toISOString(),\n\t\t};\n\t}\n\n\tprivate approvalForAttempt(attemptId: string): ApprovalRuntimeState | undefined {\n\t\treturn Object.values(this.state.approvals).find((approval) => approval.request.attemptId === attemptId);\n\t}\n\n\tprivate pendingApprovalForTask(taskId: string): ApprovalRuntimeState | undefined {\n\t\tconst task = this.state.tasks[taskId];\n\t\tif (!task) return undefined;\n\t\treturn Object.values(this.state.approvals).find(\n\t\t\t(approval) =>\n\t\t\t\tapproval.status === \"pending\" &&\n\t\t\t\tapproval.request.attemptId === undefined &&\n\t\t\t\tapproval.request.objectiveId === task.task.objectiveId &&\n\t\t\t\t(approval.request.taskId === undefined || approval.request.taskId === taskId),\n\t\t);\n\t}\n\n\tprivate requireActiveObjectiveForAttempt(attempt: AttemptRuntimeState): void {\n\t\tconst task = this.state.tasks[attempt.taskId];\n\t\tif (!task) throw new DurableTaskRuntimeError(`Unknown task '${attempt.taskId}'.`);\n\t\tconst objective = this.requireObjective(task.task.objectiveId).objective;\n\t\tif (objective.status !== \"active\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${objective.objectiveId}' is not active.`);\n\t\t}\n\t}\n\n\tprivate validateApprovalRequest(approval: ApprovalRequestContract): void {\n\t\tconst objective = this.requireObjective(approval.objectiveId).objective;\n\t\tif (objective.status !== \"active\") {\n\t\t\tthrow new DurableTaskRuntimeError(`Objective '${approval.objectiveId}' is not active.`);\n\t\t}\n\t\tif (approval.attemptId && !approval.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(\"Attempt-scoped approval requires a taskId.\");\n\t\t}\n\t\tif (approval.taskId) {\n\t\t\tconst task = this.state.tasks[approval.taskId];\n\t\t\tif (!task || task.task.objectiveId !== approval.objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Approval task '${approval.taskId}' does not belong to its objective.`);\n\t\t\t}\n\t\t}\n\t\tif (approval.attemptId) {\n\t\t\tconst attempt = this.state.attempts[approval.attemptId];\n\t\t\tif (!attempt || attempt.taskId !== approval.taskId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Approval attempt '${approval.attemptId}' does not belong to its task.`);\n\t\t\t}\n\t\t\tif (attempt.status !== \"queued\" || attempt.grantId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`Approval attempt '${approval.attemptId}' is not awaiting policy.`);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate requireLiveLease(attemptId: string, leaseId: string, fencingToken: number): AttemptRuntimeState {\n\t\tconst attempt = this.requireAttempt(attemptId);\n\t\tif (!attempt.lease || attempt.lease.leaseId !== leaseId || attempt.lease.fencingToken !== fencingToken) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' lease or fencing token is stale.`);\n\t\t}\n\t\tif (Date.parse(attempt.lease.expiresAt) <= this.now()) {\n\t\t\tthrow new DurableTaskRuntimeError(`Attempt '${attemptId}' lease expired.`);\n\t\t}\n\t\treturn attempt;\n\t}\n\n\tprivate refresh(): void {\n\t\tlet events: OrchestrationEvent[];\n\t\ttry {\n\t\t\tevents = this.store.readAfter(this.state.lastOrdinal);\n\t\t} catch (error) {\n\t\t\tif (!(error instanceof OrchestrationSnapshotRequiredError)) throw error;\n\t\t\tconst snapshot = this.store.readProjectionSnapshot();\n\t\t\tif (!snapshot || snapshot.throughOrdinal < error.throughOrdinal) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\"Required orchestration projection snapshot is unavailable.\");\n\t\t\t}\n\t\t\tthis.state = projectionFromSnapshot(snapshot.projection, snapshot.throughOrdinal);\n\t\t\tevents = this.store.readAfter(this.state.lastOrdinal);\n\t\t}\n\t\tfor (const event of events) {\n\t\t\tthis.state = reduceOrchestrationEvent(this.state, event);\n\t\t}\n\t\tthis.compactCurrentProjection();\n\t}\n\n\tprivate commit(input: AppendOrchestrationEventInput): void {\n\t\tthis.compactCurrentProjection();\n\t\tconst event = this.store.append(input, { expectedLastOrdinal: this.state.lastOrdinal });\n\t\tif (event.ordinal > this.state.lastOrdinal) this.state = reduceOrchestrationEvent(this.state, event);\n\t}\n\n\tprivate compactCurrentProjection(): void {\n\t\tif (this.state.lastOrdinal > 0) {\n\t\t\tthis.store.compactIfNeeded(this.state.lastOrdinal, () => toJsonObject(this.state));\n\t\t}\n\t}\n\n\tprivate nowIso(): string {\n\t\treturn new Date(this.now()).toISOString();\n\t}\n}\n"]}
|