@openrig/cli 0.6.4 → 0.6.6
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/README.md +405 -0
- package/daemon/assets/onboarding/02-self-and-competent-action.md +42 -0
- package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +100 -20
- package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +41 -21
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +207 -132
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +12 -12
- package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +24 -0
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +17 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +9 -4
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +54 -23
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +1 -19
- package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +3 -0
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +56 -4
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +0 -5
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +5 -6
- package/daemon/context-packs/help/help.md +40 -10
- package/daemon/context-packs/help/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +26 -12
- package/daemon/context-packs/reference/getting-started.md +426 -111
- package/daemon/context-packs/reference/instance-layout.md +11 -0
- package/daemon/context-packs/reference/manifest.yaml +1 -1
- package/daemon/context-packs/reference/rig-spec.md +180 -29
- package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
- package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
- package/daemon/context-packs/skills/applying-a-permission-policy/SKILL.md +41 -21
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +207 -132
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +5 -3
- package/daemon/context-packs/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
- package/daemon/context-packs/skills/core/agent-starters/SKILL.md +0 -6
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +24 -0
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +5 -5
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +3 -3
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +9 -4
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +12 -9
- package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +29 -29
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +0 -5
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +3 -3
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +12 -12
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
- package/daemon/context-packs/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
- package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +2 -2
- package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +17 -0
- package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +2 -2
- package/daemon/context-packs/skills/openrig-user/SKILL.md +54 -23
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +1 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +0 -2
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/queue-handoff/SKILL.md +1 -19
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/SKILL.md +3 -0
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +56 -4
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +0 -5
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +5 -6
- package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-public/manifest.yaml +1 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts +18 -4
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +179 -63
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts +7 -1
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +44 -10
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts +9 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +22 -8
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +93 -73
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.d.ts +2 -1
- package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.js +6 -3
- package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
- package/daemon/dist/adapters/daemon-url.d.ts +7 -0
- package/daemon/dist/adapters/daemon-url.d.ts.map +1 -0
- package/daemon/dist/adapters/daemon-url.js +12 -0
- package/daemon/dist/adapters/daemon-url.js.map +1 -0
- package/daemon/dist/adapters/kernel-authority.d.ts +10 -0
- package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -0
- package/daemon/dist/adapters/kernel-authority.js +53 -0
- package/daemon/dist/adapters/kernel-authority.js.map +1 -0
- package/daemon/dist/adapters/non-interruptive.d.ts +14 -0
- package/daemon/dist/adapters/non-interruptive.d.ts.map +1 -0
- package/daemon/dist/adapters/non-interruptive.js +38 -0
- package/daemon/dist/adapters/non-interruptive.js.map +1 -0
- package/daemon/dist/adapters/omp-resume.d.ts +6 -0
- package/daemon/dist/adapters/omp-resume.d.ts.map +1 -0
- package/daemon/dist/adapters/omp-resume.js +6 -0
- package/daemon/dist/adapters/omp-resume.js.map +1 -0
- package/daemon/dist/adapters/omp-runtime-adapter.d.ts +10 -0
- package/daemon/dist/adapters/omp-runtime-adapter.d.ts.map +1 -0
- package/daemon/dist/adapters/omp-runtime-adapter.js +16 -0
- package/daemon/dist/adapters/omp-runtime-adapter.js.map +1 -0
- package/daemon/dist/adapters/pi-resume.d.ts +7 -1
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-resume.js +27 -18
- package/daemon/dist/adapters/pi-resume.js.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.d.ts +29 -2
- package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.js +89 -5
- package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
- package/daemon/dist/adapters/pi-runner.d.ts +52 -5
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner.js +429 -68
- package/daemon/dist/adapters/pi-runner.js.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts +11 -2
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.js +85 -40
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/preflight-exec.d.ts +11 -0
- package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -0
- package/daemon/dist/adapters/preflight-exec.js +52 -0
- package/daemon/dist/adapters/preflight-exec.js.map +1 -0
- package/daemon/dist/adapters/stub-runner-protocol.d.ts +1 -1
- package/daemon/dist/adapters/stub-runner-protocol.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runner.d.ts +1 -1
- package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runner.js +3 -1
- package/daemon/dist/adapters/stub-runner.js.map +1 -1
- package/daemon/dist/adapters/stub-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runtime-adapter.js +11 -8
- package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +52 -6
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +313 -57
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/adapters/yolo-mode.d.ts +1 -1
- package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
- package/daemon/dist/adapters/yolo-mode.js +3 -0
- package/daemon/dist/adapters/yolo-mode.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/bundle-behaviour-surface.d.ts +2 -0
- package/daemon/dist/bundle-behaviour-surface.d.ts.map +1 -0
- package/daemon/dist/bundle-behaviour-surface.js +2 -0
- package/daemon/dist/bundle-behaviour-surface.js.map +1 -0
- package/daemon/dist/bundle-identity-surface.d.ts +2 -0
- package/daemon/dist/bundle-identity-surface.d.ts.map +1 -0
- package/daemon/dist/bundle-identity-surface.js +4 -0
- package/daemon/dist/bundle-identity-surface.js.map +1 -0
- package/daemon/dist/daemon-shutdown.d.ts +19 -0
- package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
- package/daemon/dist/daemon-shutdown.js +85 -0
- package/daemon/dist/daemon-shutdown.js.map +1 -1
- package/daemon/dist/db/all-migrations.d.ts +1 -1
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +12 -2
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/090_human_reply_to.d.ts +3 -0
- package/daemon/dist/db/migrations/090_human_reply_to.d.ts.map +1 -0
- package/daemon/dist/db/migrations/090_human_reply_to.js +7 -0
- package/daemon/dist/db/migrations/090_human_reply_to.js.map +1 -0
- package/daemon/dist/db/migrations/091_human_questions.d.ts +3 -0
- package/daemon/dist/db/migrations/091_human_questions.d.ts.map +1 -0
- package/daemon/dist/db/migrations/091_human_questions.js +9 -0
- package/daemon/dist/db/migrations/091_human_questions.js.map +1 -0
- package/daemon/dist/db/migrations/092_node_effort.d.ts +3 -0
- package/daemon/dist/db/migrations/092_node_effort.d.ts.map +1 -0
- package/daemon/dist/db/migrations/092_node_effort.js +8 -0
- package/daemon/dist/db/migrations/092_node_effort.js.map +1 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts +3 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts.map +1 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js +12 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js.map +1 -0
- package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts +3 -0
- package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts.map +1 -0
- package/daemon/dist/db/migrations/095_rig_non_interruptive.js +5 -0
- package/daemon/dist/db/migrations/095_rig_non_interruptive.js.map +1 -0
- package/daemon/dist/domain/activity-endpoint.d.ts.map +1 -1
- package/daemon/dist/domain/activity-endpoint.js +3 -1
- package/daemon/dist/domain/activity-endpoint.js.map +1 -1
- package/daemon/dist/domain/agent-activity-store.d.ts +3 -1
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
- package/daemon/dist/domain/agent-activity-store.js +13 -3
- package/daemon/dist/domain/agent-activity-store.js.map +1 -1
- package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/agent-images/agent-image-library-service.js +76 -56
- package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +28 -5
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts +10 -0
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +136 -33
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/daemon/dist/domain/builtin-policy-reference.d.ts +1 -1
- package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -1
- package/daemon/dist/domain/builtin-policy-reference.js +2 -2
- package/daemon/dist/domain/builtin-policy-reference.js.map +1 -1
- package/daemon/dist/domain/bundle-archive.d.ts +24 -0
- package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-archive.js +66 -21
- package/daemon/dist/domain/bundle-archive.js.map +1 -1
- package/daemon/dist/domain/bundle-audit.d.ts +5 -0
- package/daemon/dist/domain/bundle-audit.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-audit.js.map +1 -1
- package/daemon/dist/domain/bundle-behaviour-inspect.d.ts +4 -0
- package/daemon/dist/domain/bundle-behaviour-inspect.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-behaviour-inspect.js +56 -0
- package/daemon/dist/domain/bundle-behaviour-inspect.js.map +1 -0
- package/daemon/dist/domain/bundle-behaviour.d.ts +118 -0
- package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-behaviour.js +364 -0
- package/daemon/dist/domain/bundle-behaviour.js.map +1 -0
- package/daemon/dist/domain/bundle-carried-context-pack.d.ts +16 -0
- package/daemon/dist/domain/bundle-carried-context-pack.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-carried-context-pack.js +67 -0
- package/daemon/dist/domain/bundle-carried-context-pack.js.map +1 -0
- package/daemon/dist/domain/bundle-carried-project.d.ts +13 -0
- package/daemon/dist/domain/bundle-carried-project.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-carried-project.js +71 -0
- package/daemon/dist/domain/bundle-carried-project.js.map +1 -0
- package/daemon/dist/domain/bundle-conflict-detector.js +3 -3
- package/daemon/dist/domain/bundle-conflict-detector.js.map +1 -1
- package/daemon/dist/domain/bundle-content-routing.d.ts +49 -0
- package/daemon/dist/domain/bundle-content-routing.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-content-routing.js +246 -0
- package/daemon/dist/domain/bundle-content-routing.js.map +1 -0
- package/daemon/dist/domain/bundle-context-packs-router.d.ts +7 -2
- package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-context-packs-router.js +19 -0
- package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
- package/daemon/dist/domain/bundle-identity.d.ts +27 -0
- package/daemon/dist/domain/bundle-identity.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-identity.js +34 -0
- package/daemon/dist/domain/bundle-identity.js.map +1 -0
- package/daemon/dist/domain/bundle-install-context.d.ts +22 -0
- package/daemon/dist/domain/bundle-install-context.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-install-context.js +51 -0
- package/daemon/dist/domain/bundle-install-context.js.map +1 -0
- package/daemon/dist/domain/bundle-integrity.d.ts +1 -0
- package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-integrity.js +1 -1
- package/daemon/dist/domain/bundle-integrity.js.map +1 -1
- package/daemon/dist/domain/bundle-source-resolver.d.ts +4 -1
- package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-source-resolver.js +73 -19
- package/daemon/dist/domain/bundle-source-resolver.js.map +1 -1
- package/daemon/dist/domain/bundle-types.d.ts +37 -0
- package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-types.js +78 -0
- package/daemon/dist/domain/bundle-types.js.map +1 -1
- package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
- package/daemon/dist/domain/chat-repository.js +3 -1
- package/daemon/dist/domain/chat-repository.js.map +1 -1
- package/daemon/dist/domain/checkpoint-store.d.ts.map +1 -1
- package/daemon/dist/domain/checkpoint-store.js +2 -2
- package/daemon/dist/domain/checkpoint-store.js.map +1 -1
- package/daemon/dist/domain/claim-service.d.ts +7 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +6 -2
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +38 -12
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +291 -128
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.d.ts +13 -0
- package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.js +31 -4
- package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
- package/daemon/dist/domain/codex-daemon-support.d.ts +1 -1
- package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -1
- package/daemon/dist/domain/codex-daemon-support.js +2 -2
- package/daemon/dist/domain/codex-daemon-support.js.map +1 -1
- package/daemon/dist/domain/codex-network-default.d.ts +42 -0
- package/daemon/dist/domain/codex-network-default.d.ts.map +1 -0
- package/daemon/dist/domain/codex-network-default.js +230 -0
- package/daemon/dist/domain/codex-network-default.js.map +1 -0
- package/daemon/dist/domain/codex-profile-preflight.d.ts +1 -1
- package/daemon/dist/domain/codex-profile-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/codex-profile-preflight.js +3 -3
- package/daemon/dist/domain/codex-profile-preflight.js.map +1 -1
- package/daemon/dist/domain/codex-team-workspace.d.ts +8 -0
- package/daemon/dist/domain/codex-team-workspace.d.ts.map +1 -0
- package/daemon/dist/domain/codex-team-workspace.js +54 -0
- package/daemon/dist/domain/codex-team-workspace.js.map +1 -0
- package/daemon/dist/domain/codex-thread-id.d.ts +4 -2
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +10 -6
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +9 -2
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.js +13 -2
- package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.d.ts +5 -0
- package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.js +30 -15
- package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +10 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/profile-source-resolver.js +43 -8
- package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
- package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/seat-recap-store.js +73 -16
- package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -1
- package/daemon/dist/domain/context-usage-store.d.ts +3 -0
- package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-usage-store.js +4 -2
- package/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/daemon/dist/domain/crash-cart-detect.d.ts.map +1 -1
- package/daemon/dist/domain/crash-cart-detect.js +2 -1
- package/daemon/dist/domain/crash-cart-detect.js.map +1 -1
- package/daemon/dist/domain/crash-cart-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/crash-cart-discovery.js +4 -2
- package/daemon/dist/domain/crash-cart-discovery.js.map +1 -1
- package/daemon/dist/domain/current-work.d.ts +17 -0
- package/daemon/dist/domain/current-work.d.ts.map +1 -1
- package/daemon/dist/domain/current-work.js +46 -0
- package/daemon/dist/domain/current-work.js.map +1 -1
- package/daemon/dist/domain/cwd-resolution.js +1 -1
- package/daemon/dist/domain/cwd-resolution.js.map +1 -1
- package/daemon/dist/domain/daemon-url.d.ts +7 -0
- package/daemon/dist/domain/daemon-url.d.ts.map +1 -0
- package/daemon/dist/domain/daemon-url.js +12 -0
- package/daemon/dist/domain/daemon-url.js.map +1 -0
- package/daemon/dist/domain/daemon-version.d.ts +3 -1
- package/daemon/dist/domain/daemon-version.d.ts.map +1 -1
- package/daemon/dist/domain/daemon-version.js +6 -1
- package/daemon/dist/domain/daemon-version.js.map +1 -1
- package/daemon/dist/domain/discovery-types.d.ts +1 -1
- package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
- package/daemon/dist/domain/event-bus.d.ts +1 -0
- package/daemon/dist/domain/event-bus.d.ts.map +1 -1
- package/daemon/dist/domain/event-bus.js +18 -7
- package/daemon/dist/domain/event-bus.js.map +1 -1
- package/daemon/dist/domain/event-loop-monitor.d.ts +6 -0
- package/daemon/dist/domain/event-loop-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/event-loop-monitor.js +13 -0
- package/daemon/dist/domain/event-loop-monitor.js.map +1 -1
- package/daemon/dist/domain/execution-view.d.ts +3 -3
- package/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/daemon/dist/domain/execution-view.js +116 -93
- package/daemon/dist/domain/execution-view.js.map +1 -1
- package/daemon/dist/domain/finite-telemetry.d.ts +74 -0
- package/daemon/dist/domain/finite-telemetry.d.ts.map +1 -0
- package/daemon/dist/domain/finite-telemetry.js +236 -0
- package/daemon/dist/domain/finite-telemetry.js.map +1 -0
- package/daemon/dist/domain/gateway/connections-projection.d.ts +1 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +2 -0
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.js +4 -0
- package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +9 -7
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.js +38 -16
- package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts +45 -0
- package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/channel-recovery.js +176 -0
- package/daemon/dist/domain/gateway/slack/channel-recovery.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +74 -4
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +163 -18
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/manifest.js +1 -1
- package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.d.ts +17 -0
- package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.js +77 -3
- package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.js +2 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.js +15 -5
- package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/secrets.js +5 -4
- package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts +17 -10
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.js +94 -24
- package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +33 -10
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +107 -26
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +121 -28
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +4 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.js +14 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.d.ts +27 -0
- package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.js +102 -1
- package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-routing.js +7 -2
- package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js +14 -2
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
- package/daemon/dist/domain/generated-file-hygiene.d.ts +3 -0
- package/daemon/dist/domain/generated-file-hygiene.d.ts.map +1 -0
- package/daemon/dist/domain/generated-file-hygiene.js +142 -0
- package/daemon/dist/domain/generated-file-hygiene.js.map +1 -0
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/graph-projection.js +1 -0
- package/daemon/dist/domain/graph-projection.js.map +1 -1
- package/daemon/dist/domain/health-checkpoints.d.ts +2 -0
- package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -1
- package/daemon/dist/domain/health-checkpoints.js +2 -0
- package/daemon/dist/domain/health-checkpoints.js.map +1 -1
- package/daemon/dist/domain/health-detectors.d.ts +32 -1
- package/daemon/dist/domain/health-detectors.d.ts.map +1 -1
- package/daemon/dist/domain/health-detectors.js +40 -9
- package/daemon/dist/domain/health-detectors.js.map +1 -1
- package/daemon/dist/domain/health-diagnosis.d.ts +3 -1
- package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
- package/daemon/dist/domain/health-diagnosis.js +6 -3
- package/daemon/dist/domain/health-diagnosis.js.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.d.ts +5 -1
- package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.js +20 -4
- package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +3 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.js +10 -3
- package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
- package/daemon/dist/domain/human-questions.d.ts +41 -0
- package/daemon/dist/domain/human-questions.d.ts.map +1 -0
- package/daemon/dist/domain/human-questions.js +81 -0
- package/daemon/dist/domain/human-questions.js.map +1 -0
- package/daemon/dist/domain/install-planner.d.ts.map +1 -1
- package/daemon/dist/domain/install-planner.js +17 -0
- package/daemon/dist/domain/install-planner.js.map +1 -1
- package/daemon/dist/domain/managed-blocks.d.ts +1 -0
- package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
- package/daemon/dist/domain/managed-blocks.js +3 -0
- package/daemon/dist/domain/managed-blocks.js.map +1 -1
- package/daemon/dist/domain/markdown-address.js +1 -1
- package/daemon/dist/domain/markdown-address.js.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.d.ts +5 -0
- package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.js +11 -1
- package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +25 -63
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +34 -100
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +1 -0
- package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js +6 -3
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +5 -0
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +33 -2
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +2 -0
- package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +4 -0
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +33 -2
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -1
- package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts +27 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.js +60 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.js.map +1 -0
- package/daemon/dist/domain/native-permission-store.d.ts +14 -0
- package/daemon/dist/domain/native-permission-store.d.ts.map +1 -1
- package/daemon/dist/domain/native-permission-store.js +168 -4
- package/daemon/dist/domain/native-permission-store.js.map +1 -1
- package/daemon/dist/domain/native-process-executable.d.ts +4 -0
- package/daemon/dist/domain/native-process-executable.d.ts.map +1 -0
- package/daemon/dist/domain/native-process-executable.js +53 -0
- package/daemon/dist/domain/native-process-executable.js.map +1 -0
- package/daemon/dist/domain/native-process-lineage.d.ts +11 -2
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
- package/daemon/dist/domain/native-process-lineage.js +135 -15
- package/daemon/dist/domain/native-process-lineage.js.map +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts +8 -2
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +55 -11
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +91 -44
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +4 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +4 -1
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +1 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.js +25 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
- package/daemon/dist/domain/permission-drift.d.ts +1 -0
- package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
- package/daemon/dist/domain/permission-drift.js +13 -1
- package/daemon/dist/domain/permission-drift.js.map +1 -1
- package/daemon/dist/domain/permission-policy/policy-ref.d.ts +6 -1
- package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -1
- package/daemon/dist/domain/permission-policy/policy-ref.js +16 -4
- package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -1
- package/daemon/dist/domain/permission-policy/policy-spec.d.ts +1 -1
- package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -1
- package/daemon/dist/domain/permission-policy/policy-spec.js +2 -2
- package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -1
- package/daemon/dist/domain/plugin-discovery-service.d.ts +5 -6
- package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-discovery-service.js +14 -8
- package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.d.ts +6 -2
- package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.js +58 -15
- package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +6 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
- package/daemon/dist/domain/policies/parked-owner-consumer.js +11 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
- package/daemon/dist/domain/profile-resolver.d.ts +4 -2
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +78 -9
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
- package/daemon/dist/domain/project-lifecycle-compiler.js +10 -2
- package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
- package/daemon/dist/domain/projection-planner.d.ts +11 -0
- package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
- package/daemon/dist/domain/projection-planner.js +14 -5
- package/daemon/dist/domain/projection-planner.js.map +1 -1
- package/daemon/dist/domain/proof/judgments.d.ts +3 -0
- package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
- package/daemon/dist/domain/proof/judgments.js +13 -8
- package/daemon/dist/domain/proof/judgments.js.map +1 -1
- package/daemon/dist/domain/proof/source-watch.d.ts.map +1 -1
- package/daemon/dist/domain/proof/source-watch.js +45 -27
- package/daemon/dist/domain/proof/source-watch.js.map +1 -1
- package/daemon/dist/domain/provider/host-usage-rollup.js +9 -5
- package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +22 -3
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +50 -11
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
- package/daemon/dist/domain/queue-recovery.js +7 -1
- package/daemon/dist/domain/queue-recovery.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +98 -6
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +337 -43
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts +3 -0
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +111 -26
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
- package/daemon/dist/domain/queue-transition-log.js +12 -10
- package/daemon/dist/domain/queue-transition-log.js.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.d.ts +8 -7
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +278 -19
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.d.ts +10 -9
- package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.js +31 -11
- package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
- package/daemon/dist/domain/readiness-timeout.d.ts +7 -0
- package/daemon/dist/domain/readiness-timeout.d.ts.map +1 -0
- package/daemon/dist/domain/readiness-timeout.js +19 -0
- package/daemon/dist/domain/readiness-timeout.js.map +1 -0
- package/daemon/dist/domain/reply-to-choice.d.ts +26 -0
- package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -0
- package/daemon/dist/domain/reply-to-choice.js +45 -0
- package/daemon/dist/domain/reply-to-choice.js.map +1 -0
- package/daemon/dist/domain/request-phase-observer.d.ts +69 -0
- package/daemon/dist/domain/request-phase-observer.d.ts.map +1 -0
- package/daemon/dist/domain/request-phase-observer.js +206 -0
- package/daemon/dist/domain/request-phase-observer.js.map +1 -0
- package/daemon/dist/domain/restore-check-service.d.ts +27 -8
- package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
- package/daemon/dist/domain/restore-check-service.js +202 -126
- package/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +5 -2
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +119 -216
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +2 -6
- package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/daemon/dist/domain/restore-preconditions.d.ts +12 -0
- package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -0
- package/daemon/dist/domain/restore-preconditions.js +202 -0
- package/daemon/dist/domain/restore-preconditions.js.map +1 -0
- package/daemon/dist/domain/resume-metadata-refresher.d.ts +20 -4
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +70 -8
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/daemon/dist/domain/resume-token-capture.d.ts +22 -1
- package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-capture.js +32 -4
- package/daemon/dist/domain/resume-token-capture.js.map +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-validation.js +24 -24
- package/daemon/dist/domain/resume-token-validation.js.map +1 -1
- package/daemon/dist/domain/rig-mode/operating-posture.d.ts +17 -1
- package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
- package/daemon/dist/domain/rig-mode/operating-posture.js +53 -15
- package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +15 -5
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +70 -6
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rig-teardown.d.ts +3 -0
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +105 -19
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +8 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +5 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +8 -3
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +82 -20
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +5 -2
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +36 -13
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +19 -3
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/route-timing-recorder.d.ts.map +1 -1
- package/daemon/dist/domain/route-timing-recorder.js +2 -0
- package/daemon/dist/domain/route-timing-recorder.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +19 -3
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js +1 -0
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/runtime-verifier.d.ts +3 -1
- package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-verifier.js +10 -1
- package/daemon/dist/domain/runtime-verifier.js.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -4
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.js +4 -4
- package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts +9 -4
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +73 -22
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts +1 -0
- package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.js +38 -9
- package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +8 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +12 -11
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.js +99 -18
- package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-launch-environment.d.ts +26 -0
- package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -0
- package/daemon/dist/domain/seat-launch-environment.js +182 -0
- package/daemon/dist/domain/seat-launch-environment.js.map +1 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +11 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.js +41 -2
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/seat-status-service.d.ts +2 -1
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +10 -6
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.d.ts +5 -4
- package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.js +23 -9
- package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-switch-client-service.js +3 -2
- package/daemon/dist/domain/seat-switch-client-service.js.map +1 -1
- package/daemon/dist/domain/service-orchestrator.d.ts +1 -0
- package/daemon/dist/domain/service-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/service-orchestrator.js +4 -0
- package/daemon/dist/domain/service-orchestrator.js.map +1 -1
- package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
- package/daemon/dist/domain/services-readiness.js +6 -2
- package/daemon/dist/domain/services-readiness.js.map +1 -1
- package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -1
- package/daemon/dist/domain/session-fingerprinter.js +16 -1
- package/daemon/dist/domain/session-fingerprinter.js.map +1 -1
- package/daemon/dist/domain/session-name.d.ts.map +1 -1
- package/daemon/dist/domain/session-name.js +6 -0
- package/daemon/dist/domain/session-name.js.map +1 -1
- package/daemon/dist/domain/session-registry.d.ts +3 -0
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js +7 -0
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +35 -1
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +450 -158
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/skill-catalog.d.ts +19 -0
- package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
- package/daemon/dist/domain/skill-catalog.js +166 -17
- package/daemon/dist/domain/skill-catalog.js.map +1 -1
- package/daemon/dist/domain/skill-discovery.d.ts +1 -1
- package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/skill-discovery.js +6 -0
- package/daemon/dist/domain/skill-discovery.js.map +1 -1
- package/daemon/dist/domain/slow-op-recorder.d.ts +5 -0
- package/daemon/dist/domain/slow-op-recorder.d.ts.map +1 -1
- package/daemon/dist/domain/slow-op-recorder.js +34 -1
- package/daemon/dist/domain/slow-op-recorder.js.map +1 -1
- package/daemon/dist/domain/snapshot-repository.d.ts +2 -1
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-repository.js +39 -15
- package/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js +70 -11
- package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
- package/daemon/dist/domain/spec-validation-service.d.ts +6 -0
- package/daemon/dist/domain/spec-validation-service.d.ts.map +1 -1
- package/daemon/dist/domain/spec-validation-service.js +16 -1
- package/daemon/dist/domain/spec-validation-service.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +38 -5
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +275 -64
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/startup-proof.d.ts +7 -0
- package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
- package/daemon/dist/domain/startup-proof.js +7 -0
- package/daemon/dist/domain/startup-proof.js.map +1 -1
- package/daemon/dist/domain/startup-submission-evidence.d.ts +45 -0
- package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -0
- package/daemon/dist/domain/startup-submission-evidence.js +84 -0
- package/daemon/dist/domain/startup-submission-evidence.js.map +1 -0
- package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
- package/daemon/dist/domain/startup-validation.js +4 -0
- package/daemon/dist/domain/startup-validation.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +14 -3
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +19 -9
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/system-world.d.ts +3 -0
- package/daemon/dist/domain/system-world.d.ts.map +1 -1
- package/daemon/dist/domain/system-world.js +24 -21
- package/daemon/dist/domain/system-world.js.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js +2 -3
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +19 -4
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.js +102 -8
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
- package/daemon/dist/domain/terminal/terminal-provider.d.ts +2 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.d.ts +10 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.js +75 -6
- package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.d.ts +6 -0
- package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.js +6 -3
- package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
- package/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/tmux-discovery-scanner.js +7 -2
- package/daemon/dist/domain/tmux-discovery-scanner.js.map +1 -1
- package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -1
- package/daemon/dist/domain/tmux-option-defaults.js +5 -0
- package/daemon/dist/domain/tmux-option-defaults.js.map +1 -1
- package/daemon/dist/domain/topology/remote-up-leaf.d.ts +1 -0
- package/daemon/dist/domain/topology/remote-up-leaf.d.ts.map +1 -1
- package/daemon/dist/domain/topology/remote-up-leaf.js.map +1 -1
- package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-capture.js +1 -1
- package/daemon/dist/domain/transcript-capture.js.map +1 -1
- package/daemon/dist/domain/transcript-rotation.d.ts +26 -5
- package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-rotation.js +176 -25
- package/daemon/dist/domain/transcript-rotation.js.map +1 -1
- package/daemon/dist/domain/transcript-store.d.ts +1 -1
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +14 -6
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +24 -5
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/usage-series.d.ts.map +1 -1
- package/daemon/dist/domain/usage-series.js +11 -6
- package/daemon/dist/domain/usage-series.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +3 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +101 -6
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/view-projector.d.ts +11 -6
- package/daemon/dist/domain/view-projector.d.ts.map +1 -1
- package/daemon/dist/domain/view-projector.js +2 -6
- package/daemon/dist/domain/view-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-runtime.d.ts +1 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts +29 -7
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.js +103 -14
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
- package/daemon/dist/domain/workspace/project-catalog.d.ts +20 -0
- package/daemon/dist/domain/workspace/project-catalog.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/project-catalog.js +92 -0
- package/daemon/dist/domain/workspace/project-catalog.js.map +1 -1
- package/daemon/dist/domain/workspace/project-registration.d.ts +49 -0
- package/daemon/dist/domain/workspace/project-registration.d.ts.map +1 -0
- package/daemon/dist/domain/workspace/project-registration.js +251 -0
- package/daemon/dist/domain/workspace/project-registration.js.map +1 -0
- package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-resolver.js +1 -1
- package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -1
- package/daemon/dist/health-detectors-surface.d.ts +1 -1
- package/daemon/dist/health-detectors-surface.d.ts.map +1 -1
- package/daemon/dist/health-detectors-surface.js.map +1 -1
- package/daemon/dist/index.d.ts +4 -4
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +12 -7
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/middleware/json-body-error.d.ts +17 -0
- package/daemon/dist/middleware/json-body-error.d.ts.map +1 -0
- package/daemon/dist/middleware/json-body-error.js +42 -0
- package/daemon/dist/middleware/json-body-error.js.map +1 -0
- package/daemon/dist/project-catalog-surface.d.ts +2 -1
- package/daemon/dist/project-catalog-surface.d.ts.map +1 -1
- package/daemon/dist/project-catalog-surface.js +1 -1
- package/daemon/dist/project-catalog-surface.js.map +1 -1
- package/daemon/dist/routes/activity.d.ts.map +1 -1
- package/daemon/dist/routes/activity.js +85 -6
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/attention.d.ts.map +1 -1
- package/daemon/dist/routes/attention.js +7 -1
- package/daemon/dist/routes/attention.js.map +1 -1
- package/daemon/dist/routes/bundles.d.ts.map +1 -1
- package/daemon/dist/routes/bundles.js +197 -407
- package/daemon/dist/routes/bundles.js.map +1 -1
- package/daemon/dist/routes/compaction.d.ts.map +1 -1
- package/daemon/dist/routes/compaction.js +44 -4
- package/daemon/dist/routes/compaction.js.map +1 -1
- package/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/daemon/dist/routes/context-packs.js +10 -2
- package/daemon/dist/routes/context-packs.js.map +1 -1
- package/daemon/dist/routes/env.d.ts.map +1 -1
- package/daemon/dist/routes/env.js +14 -4
- package/daemon/dist/routes/env.js.map +1 -1
- package/daemon/dist/routes/files.js +2 -2
- package/daemon/dist/routes/files.js.map +1 -1
- package/daemon/dist/routes/gateway.d.ts.map +1 -1
- package/daemon/dist/routes/gateway.js +11 -1
- package/daemon/dist/routes/gateway.js.map +1 -1
- package/daemon/dist/routes/hosts.d.ts.map +1 -1
- package/daemon/dist/routes/hosts.js +51 -12
- package/daemon/dist/routes/hosts.js.map +1 -1
- package/daemon/dist/routes/mission-control.d.ts.map +1 -1
- package/daemon/dist/routes/mission-control.js +6 -2
- package/daemon/dist/routes/mission-control.js.map +1 -1
- package/daemon/dist/routes/missions.d.ts.map +1 -1
- package/daemon/dist/routes/missions.js +17 -5
- package/daemon/dist/routes/missions.js.map +1 -1
- package/daemon/dist/routes/plugins.d.ts.map +1 -1
- package/daemon/dist/routes/plugins.js +5 -1
- package/daemon/dist/routes/plugins.js.map +1 -1
- package/daemon/dist/routes/projects.d.ts.map +1 -1
- package/daemon/dist/routes/projects.js +4 -2
- package/daemon/dist/routes/projects.js.map +1 -1
- package/daemon/dist/routes/proof.d.ts.map +1 -1
- package/daemon/dist/routes/proof.js +9 -2
- package/daemon/dist/routes/proof.js.map +1 -1
- package/daemon/dist/routes/ps.d.ts.map +1 -1
- package/daemon/dist/routes/ps.js +18 -0
- package/daemon/dist/routes/ps.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +150 -67
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/restore-check.d.ts.map +1 -1
- package/daemon/dist/routes/restore-check.js +40 -1
- package/daemon/dist/routes/restore-check.js.map +1 -1
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +4 -3
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/rigspec.d.ts.map +1 -1
- package/daemon/dist/routes/rigspec.js +11 -12
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +22 -4
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/daemon/dist/routes/sessions.js +3 -2
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/telemetry.d.ts +2 -0
- package/daemon/dist/routes/telemetry.d.ts.map +1 -1
- package/daemon/dist/routes/telemetry.js +22 -1
- package/daemon/dist/routes/telemetry.js.map +1 -1
- package/daemon/dist/routes/terminal-ws.d.ts +1 -2
- package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
- package/daemon/dist/routes/terminal-ws.js +1 -2
- package/daemon/dist/routes/terminal-ws.js.map +1 -1
- package/daemon/dist/routes/up.js +11 -6
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/views.js +2 -2
- package/daemon/dist/routes/views.js.map +1 -1
- package/daemon/dist/server.d.ts +3 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +11 -3
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/spec-validation-surface.d.ts +4 -0
- package/daemon/dist/spec-validation-surface.d.ts.map +1 -0
- package/daemon/dist/spec-validation-surface.js +4 -0
- package/daemon/dist/spec-validation-surface.js.map +1 -0
- package/daemon/dist/startup.d.ts +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +166 -57
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/dist/system-world-surface.d.ts +1 -1
- package/daemon/dist/system-world-surface.d.ts.map +1 -1
- package/daemon/dist/system-world-surface.js +1 -1
- package/daemon/dist/system-world-surface.js.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js +8 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +145 -64
- package/daemon/docs/reference/agent-startup-guide.md +187 -35
- package/daemon/docs/reference/agent-state-taxonomy.md +44 -13
- package/daemon/docs/reference/browser-access.md +8 -4
- package/daemon/docs/reference/bundle-formats.md +207 -0
- package/daemon/docs/reference/chain-file-convention.md +16 -7
- package/daemon/docs/reference/developing.md +24 -9
- package/daemon/docs/reference/edge-types.md +18 -10
- package/daemon/docs/reference/getting-started.md +426 -111
- package/daemon/docs/reference/health-diagnosis.md +23 -8
- package/daemon/docs/reference/help.md +40 -10
- package/daemon/docs/reference/host-resources.md +61 -0
- package/daemon/docs/reference/instance-layout.md +11 -0
- package/daemon/docs/reference/inventory-request-diagnostics.md +75 -0
- package/daemon/docs/reference/knowledge-maturity.md +3 -1
- package/daemon/docs/reference/legacy-topology-migration.md +4 -2
- package/daemon/docs/reference/lore-routing.md +3 -1
- package/daemon/docs/reference/mission-install.md +3 -1
- package/daemon/docs/reference/non-interruptive-mode.md +60 -0
- package/daemon/docs/reference/planning-dial.md +2 -1
- package/daemon/docs/reference/product-journey-sdlc.md +11 -6
- package/daemon/docs/reference/product-management-pass.md +3 -1
- package/daemon/docs/reference/project-workspace.md +80 -3
- package/daemon/docs/reference/publishing-a-rig-bundle.md +144 -0
- package/daemon/docs/reference/refocus-channel.md +14 -5
- package/daemon/docs/reference/release-boundary.md +7 -3
- package/daemon/docs/reference/rig-bundle.md +271 -42
- package/daemon/docs/reference/rig-spec.md +180 -29
- package/daemon/docs/reference/rosters.md +60 -0
- package/daemon/docs/reference/schemas/bundle-behaviour.v1.schema.json +546 -0
- package/daemon/docs/reference/schemas/bundle-common.v1.schema.json +110 -0
- package/daemon/docs/reference/schemas/bundle-configurations.v1.schema.json +67 -0
- package/daemon/docs/reference/schemas/bundle-status.v1.schema.json +323 -0
- package/daemon/docs/reference/schemas/fixtures/identity-vectors.json +80 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/behaviour/not-generated-with-sections.json +60 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/configurations/spaced-member.configurations.yaml +6 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/registry/listed-with-withdrawn-on.yaml +21 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/registry/missing-source.yaml +16 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/registry/parent-folder.yaml +20 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/registry/short-commit.yaml +20 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/registry/withdrawn-without-date.yaml +20 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/run-record/harness-check-with-configuration.json +75 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/run-record/unlabelable-platform.json +97 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/status/hand-edited-notice.json +61 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-with-assistance.json +62 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-without-records.json +59 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-harness-with-result.json +61 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-listing-with-label.json +61 -0
- package/daemon/docs/reference/schemas/fixtures/valid/behaviour/custom-not-generated.json +22 -0
- package/daemon/docs/reference/schemas/fixtures/valid/behaviour/legacy-archive-unknown-identity.json +53 -0
- package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-default.json +101 -0
- package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-yolo.json +102 -0
- package/daemon/docs/reference/schemas/fixtures/valid/behaviour/openrig-dev.recommended.json +258 -0
- package/daemon/docs/reference/schemas/fixtures/valid/configurations/openrig-dev.configurations.yaml +12 -0
- package/daemon/docs/reference/schemas/fixtures/valid/registry/openrig-dev.yaml +20 -0
- package/daemon/docs/reference/schemas/fixtures/valid/registry/withdrawn.yaml +21 -0
- package/daemon/docs/reference/schemas/fixtures/valid/run-record/pi-harness-check-blocked.json +74 -0
- package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-assisted-pass.json +97 -0
- package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-pass.json +97 -0
- package/daemon/docs/reference/schemas/fixtures/valid/run-record/withdraws-earlier.json +99 -0
- package/daemon/docs/reference/schemas/fixtures/valid/status/status.json +61 -0
- package/daemon/docs/reference/schemas/registry-entry.v1.schema.json +139 -0
- package/daemon/docs/reference/schemas/run-record.v1.schema.json +315 -0
- package/daemon/docs/reference/scoped-operating-posture.md +17 -9
- package/daemon/docs/reference/sdlc-conventions.md +47 -28
- package/daemon/docs/reference/slack-app-setup.md +58 -7
- package/daemon/docs/reference/stream-classifier-worker.md +21 -8
- package/daemon/docs/reference/telemetry.md +114 -0
- package/daemon/docs/reference/worktree-builds.md +12 -6
- package/daemon/policies/builtin/auto.policy.md +24 -0
- package/daemon/specs/agents/development/implementer/agent.yaml +2 -2
- package/daemon/specs/agents/development/qa/agent.yaml +1 -1
- package/daemon/specs/agents/product-management/pm/agent.yaml +10 -0
- package/daemon/specs/agents/shared/agent.yaml +1 -1
- package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +0 -6
- package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
- package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +24 -0
- package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +5 -5
- package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +9 -4
- package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +12 -9
- package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +29 -29
- package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -1
- package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +0 -5
- package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
- package/daemon/specs/agents/shared/skills/process/agent-browser/OPENRIG.md +1 -1
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/SKILL.md +0 -2
- package/daemon/specs/rigs/focused/{adversarial-review → code-review}/rig.yaml +1 -1
- package/daemon/specs/rigs/focused/pm/CULTURE.md +21 -0
- package/daemon/specs/rigs/focused/{pm-team → pm}/rig.yaml +5 -5
- package/daemon/specs/rigs/focused/{research-team → research}/rig.yaml +1 -1
- package/daemon/specs/rigs/launch/factory/CULTURE.md +96 -0
- package/daemon/specs/rigs/launch/factory/guidance/advisor-role.md +10 -0
- package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +23 -0
- package/daemon/specs/rigs/launch/{demo → factory}/rig.yaml +46 -35
- package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/instance/CRAFT.md +1 -1
- package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/CRAFT.md +2 -2
- package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/ORCHESTRATION-CRAFT.md +3 -3
- package/daemon/specs/rigs/{preview/product-team/topology/seats/dev1-qa → launch/factory/topology/seats/dev-qa}/CRAFT.md +1 -1
- package/daemon/specs/rigs/{preview/product-team/topology/seats/orch1-lead → launch/factory/topology/seats/orch-lead}/CRAFT.md +1 -1
- package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r1 → launch/factory/topology/seats/review-r1}/CRAFT.md +1 -1
- package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r2 → launch/factory/topology/seats/review-r2}/CRAFT.md +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -8
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +37 -0
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +12 -13
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -8
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +167 -4
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +30 -7
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -8
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +37 -0
- package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +41 -0
- package/daemon/specs/rigs/launch/starter/CULTURE.md +39 -0
- package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +23 -0
- package/daemon/specs/rigs/launch/{first-project-mixed → starter}/rig.yaml +11 -8
- package/dist/atomic-text-write.d.ts +3 -0
- package/dist/atomic-text-write.d.ts.map +1 -0
- package/dist/atomic-text-write.js +79 -0
- package/dist/atomic-text-write.js.map +1 -0
- package/dist/build-info.js +3 -3
- package/dist/bundle-behaviour.d.ts +10 -0
- package/dist/bundle-behaviour.d.ts.map +1 -0
- package/dist/bundle-behaviour.js +72 -0
- package/dist/bundle-behaviour.js.map +1 -0
- package/dist/cli-error.d.ts.map +1 -1
- package/dist/cli-error.js +15 -2
- package/dist/cli-error.js.map +1 -1
- package/dist/client.d.ts +14 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +29 -4
- package/dist/client.js.map +1 -1
- package/dist/commands/agent-image.d.ts.map +1 -1
- package/dist/commands/agent-image.js +2 -0
- package/dist/commands/agent-image.js.map +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +10 -1
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +34 -11
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/broadcast.js +1 -1
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/bundle.d.ts +12 -0
- package/dist/commands/bundle.d.ts.map +1 -1
- package/dist/commands/bundle.js +286 -21
- package/dist/commands/bundle.js.map +1 -1
- package/dist/commands/capture.js +4 -4
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/chatroom.d.ts.map +1 -1
- package/dist/commands/chatroom.js +22 -1
- package/dist/commands/chatroom.js.map +1 -1
- package/dist/commands/compact-plan.d.ts.map +1 -1
- package/dist/commands/compact-plan.js +36 -7
- package/dist/commands/compact-plan.js.map +1 -1
- package/dist/commands/compact.d.ts.map +1 -1
- package/dist/commands/compact.js +24 -4
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +5 -4
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts +3 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +85 -32
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/crash-cart.d.ts.map +1 -1
- package/dist/commands/crash-cart.js +2 -1
- package/dist/commands/crash-cart.js.map +1 -1
- package/dist/commands/daemon.d.ts +13 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +36 -18
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/destroy.d.ts.map +1 -1
- package/dist/commands/destroy.js +3 -2
- package/dist/commands/destroy.js.map +1 -1
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +2 -4
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +10 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +7 -1
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +9 -1
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/export.js +2 -2
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +23 -3
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +13 -1
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/host.d.ts +11 -0
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +38 -4
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +2 -0
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +25 -12
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/plugin.d.ts.map +1 -1
- package/dist/commands/plugin.js +12 -2
- package/dist/commands/plugin.js.map +1 -1
- package/dist/commands/policy.d.ts.map +1 -1
- package/dist/commands/policy.js +3 -2
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/project-jev.js +1 -1
- package/dist/commands/project-jev.js.map +1 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +5 -3
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/ps.d.ts +2 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +109 -37
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +2 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +133 -19
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/requirements.d.ts.map +1 -1
- package/dist/commands/requirements.js +6 -3
- package/dist/commands/requirements.js.map +1 -1
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +5 -0
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/rig-mode.d.ts.map +1 -1
- package/dist/commands/rig-mode.js +6 -1
- package/dist/commands/rig-mode.js.map +1 -1
- package/dist/commands/rig.d.ts.map +1 -1
- package/dist/commands/rig.js +20 -20
- package/dist/commands/rig.js.map +1 -1
- package/dist/commands/roster.d.ts +63 -0
- package/dist/commands/roster.d.ts.map +1 -0
- package/dist/commands/roster.js +169 -0
- package/dist/commands/roster.js.map +1 -0
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +22 -0
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +96 -17
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +20 -6
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +78 -30
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/slack.d.ts +1 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +57 -5
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/specs.d.ts.map +1 -1
- package/dist/commands/specs.js +21 -2
- package/dist/commands/specs.js.map +1 -1
- package/dist/commands/start.js +7 -6
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/startup-proof.d.ts.map +1 -1
- package/dist/commands/startup-proof.js +2 -1
- package/dist/commands/startup-proof.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +7 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/telemetry.d.ts +5 -0
- package/dist/commands/telemetry.d.ts.map +1 -0
- package/dist/commands/telemetry.js +58 -0
- package/dist/commands/telemetry.js.map +1 -0
- package/dist/commands/terminal.d.ts.map +1 -1
- package/dist/commands/terminal.js +5 -1
- package/dist/commands/terminal.js.map +1 -1
- package/dist/commands/transcript.js +5 -3
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/tui.js +4 -4
- package/dist/commands/tui.js.map +1 -1
- package/dist/commands/up.d.ts +8 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +193 -72
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +3 -0
- package/dist/commands/walk.js.map +1 -1
- package/dist/commands/whoami.d.ts +3 -0
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +29 -2
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/workflow-follow.d.ts +2 -0
- package/dist/commands/workflow-follow.d.ts.map +1 -1
- package/dist/commands/workflow-follow.js +6 -4
- package/dist/commands/workflow-follow.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +2 -4
- package/dist/commands/workflow.js.map +1 -1
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +2 -4
- package/dist/commands/workspace.js.map +1 -1
- package/dist/config-store.d.ts +7 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +40 -7
- package/dist/config-store.js.map +1 -1
- package/dist/daemon-auto-start.d.ts +8 -0
- package/dist/daemon-auto-start.d.ts.map +1 -0
- package/dist/daemon-auto-start.js +39 -0
- package/dist/daemon-auto-start.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts +9 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +61 -19
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/daemon-reachability.d.ts +18 -0
- package/dist/daemon-reachability.d.ts.map +1 -0
- package/dist/daemon-reachability.js +48 -0
- package/dist/daemon-reachability.js.map +1 -0
- package/dist/front-door.d.ts.map +1 -1
- package/dist/front-door.js +3 -2
- package/dist/front-door.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/bundle-check.d.ts +13 -0
- package/dist/lib/bundle-check.d.ts.map +1 -0
- package/dist/lib/bundle-check.js +191 -0
- package/dist/lib/bundle-check.js.map +1 -0
- package/dist/lib/bundle-configuration.d.ts +60 -0
- package/dist/lib/bundle-configuration.d.ts.map +1 -0
- package/dist/lib/bundle-configuration.js +198 -0
- package/dist/lib/bundle-configuration.js.map +1 -0
- package/dist/lib/bundle-source.d.ts +57 -0
- package/dist/lib/bundle-source.d.ts.map +1 -0
- package/dist/lib/bundle-source.js +355 -0
- package/dist/lib/bundle-source.js.map +1 -0
- package/dist/lib/context-install.d.ts.map +1 -1
- package/dist/lib/context-install.js +2 -3
- package/dist/lib/context-install.js.map +1 -1
- package/dist/lib/file-transfer.d.ts +1 -1
- package/dist/lib/file-transfer.d.ts.map +1 -1
- package/dist/lib/file-transfer.js +17 -5
- package/dist/lib/file-transfer.js.map +1 -1
- package/dist/lib/permission-policy/policy-ref.d.ts +6 -1
- package/dist/lib/permission-policy/policy-ref.d.ts.map +1 -1
- package/dist/lib/permission-policy/policy-ref.js +16 -4
- package/dist/lib/permission-policy/policy-ref.js.map +1 -1
- package/dist/lib/permission-policy/policy-spec.d.ts +1 -1
- package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -1
- package/dist/lib/permission-policy/policy-spec.js +2 -2
- package/dist/lib/permission-policy/policy-spec.js.map +1 -1
- package/dist/lib/scope/mission-composition.d.ts.map +1 -1
- package/dist/lib/scope/mission-composition.js +11 -0
- package/dist/lib/scope/mission-composition.js.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.d.ts +4 -4
- package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.js +4 -4
- package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +10 -16
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/lib/scope/templates.d.ts.map +1 -1
- package/dist/lib/scope/templates.js +1 -0
- package/dist/lib/scope/templates.js.map +1 -1
- package/dist/lib/scope-templates/notes.md +1 -1
- package/dist/lib/scope-templates/slice-progress.md +11 -7
- package/dist/lib/work-install.d.ts +12 -0
- package/dist/lib/work-install.d.ts.map +1 -1
- package/dist/lib/work-install.js +55 -4
- package/dist/lib/work-install.js.map +1 -1
- package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -1
- package/dist/restore-packet/claude-transcript-parser.js +2 -0
- package/dist/restore-packet/claude-transcript-parser.js.map +1 -1
- package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -1
- package/dist/restore-packet/codex-jsonl-parser.js +2 -0
- package/dist/restore-packet/codex-jsonl-parser.js.map +1 -1
- package/dist/restore-packet/runtime-detect.d.ts.map +1 -1
- package/dist/restore-packet/runtime-detect.js +2 -0
- package/dist/restore-packet/runtime-detect.js.map +1 -1
- package/package.json +4 -3
- package/tui/dist/attention/source-continuity.d.ts.map +1 -1
- package/tui/dist/attention/source-continuity.js +5 -3
- package/tui/dist/attention/source-continuity.js.map +1 -1
- package/tui/dist/commands/registry.d.ts.map +1 -1
- package/tui/dist/commands/registry.js +8 -3
- package/tui/dist/commands/registry.js.map +1 -1
- package/tui/dist/daemon-client.d.ts +3 -1
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +18 -6
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/execution/execution-model.d.ts.map +1 -1
- package/tui/dist/execution/execution-model.js +19 -7
- package/tui/dist/execution/execution-model.js.map +1 -1
- package/tui/dist/grammar.d.ts.map +1 -1
- package/tui/dist/grammar.js +3 -2
- package/tui/dist/grammar.js.map +1 -1
- package/tui/dist/health/health-model.d.ts.map +1 -1
- package/tui/dist/health/health-model.js +17 -5
- package/tui/dist/health/health-model.js.map +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +1 -0
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/input.d.ts.map +1 -1
- package/tui/dist/input.js +5 -0
- package/tui/dist/input.js.map +1 -1
- package/tui/dist/live-events.d.ts +2 -2
- package/tui/dist/live-events.d.ts.map +1 -1
- package/tui/dist/live-events.js +65 -27
- package/tui/dist/live-events.js.map +1 -1
- package/tui/dist/local-reading.d.ts.map +1 -1
- package/tui/dist/local-reading.js +2 -0
- package/tui/dist/local-reading.js.map +1 -1
- package/tui/dist/main.js +46 -6
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/page-read.d.ts.map +1 -1
- package/tui/dist/page-read.js +4 -1
- package/tui/dist/page-read.js.map +1 -1
- package/tui/dist/render.d.ts +2 -0
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +81 -23
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
- package/tui/dist/scopes/scopes-model.js +36 -31
- package/tui/dist/scopes/scopes-model.js.map +1 -1
- package/tui/dist/socket-server.d.ts +6 -2
- package/tui/dist/socket-server.d.ts.map +1 -1
- package/tui/dist/socket-server.js +159 -14
- package/tui/dist/socket-server.js.map +1 -1
- package/tui/dist/specs/graph.d.ts +5 -0
- package/tui/dist/specs/graph.d.ts.map +1 -0
- package/tui/dist/specs/graph.js +16 -0
- package/tui/dist/specs/graph.js.map +1 -0
- package/tui/dist/specs/launch.d.ts +29 -0
- package/tui/dist/specs/launch.d.ts.map +1 -0
- package/tui/dist/specs/launch.js +64 -0
- package/tui/dist/specs/launch.js.map +1 -0
- package/tui/dist/startup.d.ts.map +1 -1
- package/tui/dist/startup.js +15 -6
- package/tui/dist/startup.js.map +1 -1
- package/tui/dist/state.d.ts +2 -2
- package/tui/dist/state.d.ts.map +1 -1
- package/tui/dist/state.js +41 -18
- package/tui/dist/state.js.map +1 -1
- package/tui/dist/terminals/terminal-model.d.ts +1 -0
- package/tui/dist/terminals/terminal-model.d.ts.map +1 -1
- package/tui/dist/terminals/terminal-model.js +19 -2
- package/tui/dist/terminals/terminal-model.js.map +1 -1
- package/tui/dist/types.d.ts +35 -0
- package/tui/dist/types.d.ts.map +1 -1
- package/ui/dist/assets/{index-N-SdPj-I.css → index-DNU3XZr_.css} +1 -1
- package/ui/dist/assets/{index-BVW54ItO.js → index-HHSvwF97.js} +75 -75
- package/ui/dist/index.html +2 -2
- package/daemon/specs/rigs/launch/conveyor/README.md +0 -33
- package/daemon/specs/rigs/launch/conveyor/rig.yaml +0 -72
- package/daemon/specs/rigs/launch/demo/project-example/README.md +0 -25
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +0 -19
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +0 -6
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +0 -7
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +0 -31
- package/daemon/specs/rigs/launch/first-project/rig.yaml +0 -31
- package/daemon/specs/rigs/launch/first-project-claude/rig.yaml +0 -30
- package/daemon/specs/rigs/launch/implementation-pair/rig.yaml +0 -27
- package/daemon/specs/rigs/preview/product-team/rig.yaml +0 -90
- /package/daemon/specs/rigs/launch/factory-rsi/{rig.yaml → world-bundle.yaml} +0 -0
|
@@ -9,12 +9,14 @@ import { lastMeaningfulTransition, readWaitingView } from "./queue-waiting.js";
|
|
|
9
9
|
import { wrapPaneEnvelope } from "../lib/pane-envelope.js";
|
|
10
10
|
import { getSelfHostId } from "./hosts/fanout-contract.js";
|
|
11
11
|
import { parseSessionName, isHumanSeatSessionRef } from "./session-name.js";
|
|
12
|
+
import { parseReplyToChoice, formatReplyToChoice, describeReplyToFallback, REPLY_TO_CHOICE_ACTOR } from "./reply-to-choice.js";
|
|
12
13
|
import { classifyDestination } from "./gateway/destination-resolver.js";
|
|
13
14
|
import { computeClosureRequiredAt, validateClosure, } from "./hot-potato-enforcer.js";
|
|
14
15
|
import { isHumanSeatSession, validateHumanPark, validateHumanRoute } from "./human-route-enforcer.js";
|
|
15
16
|
import { QueueWakeRepository, USAGE_LIMIT_BLOCKER_TAG, } from "./queue-wake-repository.js";
|
|
16
17
|
import { WatchdogJobsRepository } from "./watchdog-jobs-repository.js";
|
|
17
18
|
import { armQueueWait, backOffQueueWait, refreshQueueWaits, evaluateQueueWait, retargetQueueWait, isQueueWait } from "./queue-wait-backoff.js";
|
|
19
|
+
import { parseHumanQuestions, unansweredQuestions } from "./human-questions.js";
|
|
18
20
|
export const QUEUE_STATES = [
|
|
19
21
|
"pending",
|
|
20
22
|
"in-progress",
|
|
@@ -44,6 +46,19 @@ export const ACTIVE_QUEUE_STATES = ["pending", "in-progress", "blocked"];
|
|
|
44
46
|
export function isBlockerLive(state) {
|
|
45
47
|
return ACTIVE_QUEUE_STATES.includes(state);
|
|
46
48
|
}
|
|
49
|
+
/** #96 — a Slack reply routes to the item that owns the thread root, so a later update may
|
|
50
|
+
* share that thread only while no reply there could answer a human decision. Deliberately
|
|
51
|
+
* BROADER than what makeHumanReplyResolver resolves today (it errs toward posting top-level): any
|
|
52
|
+
* active human-destined decision, or a row blocked on any human-class seat right now. A
|
|
53
|
+
* resolved park returns to in-progress; blocked_on alone (which the resolve verb documents
|
|
54
|
+
* keeping as provenance) is never a live gate. */
|
|
55
|
+
export function hasLiveHumanGate(item) {
|
|
56
|
+
if (item.humanIntent === "update")
|
|
57
|
+
return false;
|
|
58
|
+
if (item.state === "blocked" && item.blockedOn && isHumanSeatSessionRef(item.blockedOn))
|
|
59
|
+
return true;
|
|
60
|
+
return isBlockerLive(item.state) && isHumanSeatSessionRef(item.destinationSession);
|
|
61
|
+
}
|
|
47
62
|
const AUTO_UNPARK_WAKE_TAG = "queue:auto-unpark:blocker";
|
|
48
63
|
const AUTO_UNPARK_BLOCKER_TAG_PREFIX = "queue:auto-unpark:blocker-ref:";
|
|
49
64
|
/** 0.5.1-53 Atom 1a — typed non-qitem gate blocker prefixes. A park may be gated on a fold / auth /
|
|
@@ -284,6 +299,7 @@ export class QueueRepository {
|
|
|
284
299
|
db;
|
|
285
300
|
transitionLog;
|
|
286
301
|
eventBus;
|
|
302
|
+
destinationAdvisory;
|
|
287
303
|
validateRig;
|
|
288
304
|
transport;
|
|
289
305
|
/** W1 (transactional closure): the durable wake-intent store. A terminal act
|
|
@@ -313,10 +329,13 @@ export class QueueRepository {
|
|
|
313
329
|
hasTargetRepoColumn;
|
|
314
330
|
hasSummaryColumn;
|
|
315
331
|
hasHumanIntentColumn;
|
|
332
|
+
hasReplyToColumn;
|
|
333
|
+
hasHumanQuestionsColumn;
|
|
316
334
|
hasEvidenceRefColumn;
|
|
317
335
|
hasMintingGenColumn;
|
|
318
336
|
hasClaimedGenColumn;
|
|
319
337
|
hasQueueTransitionsTable;
|
|
338
|
+
hasTransitionProvenanceColumn;
|
|
320
339
|
hasOwnerNotificationColumns;
|
|
321
340
|
loadHumanRegistryFn;
|
|
322
341
|
/** OPR.0.4.6.WF3 FR-6 — injected by startup (never imported): the
|
|
@@ -328,6 +347,7 @@ export class QueueRepository {
|
|
|
328
347
|
this.transitionLog = new QueueTransitionLog(db);
|
|
329
348
|
this.wakeRepo = new QueueWakeRepository(db);
|
|
330
349
|
this.validateRig = opts?.validateRig ?? (() => true);
|
|
350
|
+
this.destinationAdvisory = opts?.destinationAdvisory ?? (() => null);
|
|
331
351
|
this.transport = opts?.transport;
|
|
332
352
|
this.workflowFrontierPredicate = opts?.workflowFrontierPredicate;
|
|
333
353
|
this.resolveOccupantGeneration = opts?.resolveOccupantGeneration;
|
|
@@ -335,11 +355,14 @@ export class QueueRepository {
|
|
|
335
355
|
this.hasTargetRepoColumn = detectQueueColumn(db, "target_repo");
|
|
336
356
|
this.hasSummaryColumn = detectQueueColumn(db, "summary");
|
|
337
357
|
this.hasHumanIntentColumn = detectQueueColumn(db, "human_intent");
|
|
358
|
+
this.hasReplyToColumn = detectQueueColumn(db, "reply_to");
|
|
359
|
+
this.hasHumanQuestionsColumn = detectQueueColumn(db, "human_questions");
|
|
338
360
|
this.hasEvidenceRefColumn = detectQueueColumn(db, "evidence_ref");
|
|
339
361
|
this.hasQueueTransitionsTable = detectTable(db, "queue_transitions");
|
|
340
362
|
const transitionColumns = this.hasQueueTransitionsTable
|
|
341
363
|
? new Set(db.prepare("PRAGMA table_info(queue_transitions)").all().map((column) => column.name))
|
|
342
364
|
: new Set();
|
|
365
|
+
this.hasTransitionProvenanceColumn = transitionColumns.has("identity_provenance");
|
|
343
366
|
this.hasOwnerNotificationColumns = transitionColumns.has("owner_notification_kind")
|
|
344
367
|
&& transitionColumns.has("owner_notification_level");
|
|
345
368
|
// GHOST-STAGE (e/Class-B): generation stamps (migration 063). Defensive detect so a pre-063
|
|
@@ -501,7 +524,7 @@ export class QueueRepository {
|
|
|
501
524
|
deliverWakeIntentAfterCommit(outboxId) {
|
|
502
525
|
queueMicrotask(() => {
|
|
503
526
|
void this.deliverWakeIntent(outboxId).catch((err) => {
|
|
504
|
-
console.error(`
|
|
527
|
+
console.error(`Queue wake delivery failed for ${outboxId}:`, err);
|
|
505
528
|
});
|
|
506
529
|
});
|
|
507
530
|
}
|
|
@@ -925,7 +948,22 @@ export class QueueRepository {
|
|
|
925
948
|
if (!this.validateRig(input.destinationSession)) {
|
|
926
949
|
throw destinationValidationError("destination_session", input.destinationSession, this.loadHumanRegistryFn);
|
|
927
950
|
}
|
|
928
|
-
|
|
951
|
+
let wakeStaged = false;
|
|
952
|
+
const txn = this.db.transaction(() => {
|
|
953
|
+
const created = this.createInTransactionalContext(input);
|
|
954
|
+
if (this.outbox && input.nudge !== false) {
|
|
955
|
+
try {
|
|
956
|
+
// A savepoint removes any partial intent when staging fails, while
|
|
957
|
+
// preserving ordinary create's existing acceptance of the task.
|
|
958
|
+
this.db.transaction(() => this.stageWakeIntent(created.qitemId, input.sourceSession, input.destinationSession, input.identityProvenance ?? null, input.nudge))();
|
|
959
|
+
wakeStaged = true;
|
|
960
|
+
}
|
|
961
|
+
catch (err) {
|
|
962
|
+
this.recordNudgeAttempt(created.qitemId, `failed:wake not retained: ${err instanceof Error ? err.message : String(err)}`);
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
return created;
|
|
966
|
+
});
|
|
929
967
|
let id;
|
|
930
968
|
let persistedEvent;
|
|
931
969
|
try {
|
|
@@ -945,6 +983,18 @@ export class QueueRepository {
|
|
|
945
983
|
if (existing) {
|
|
946
984
|
if (existing.destinationSession === input.destinationSession &&
|
|
947
985
|
existing.sourceSession === input.sourceSession) {
|
|
986
|
+
// Keep retry compatibility, but never imply that an absorbed,
|
|
987
|
+
// different body was saved. Decide at the actual PK conflict,
|
|
988
|
+
// rather than comparing a fresh create's post-nudge readback.
|
|
989
|
+
if (existing.body !== input.body) {
|
|
990
|
+
return {
|
|
991
|
+
...existing,
|
|
992
|
+
createWarning: {
|
|
993
|
+
code: "qitem_body_not_saved",
|
|
994
|
+
message: `qitem ${input.qitemId} already exists with a different body. The supplied body was not saved; the existing row is returned unchanged. No new work or delivery was created.`,
|
|
995
|
+
},
|
|
996
|
+
};
|
|
997
|
+
}
|
|
948
998
|
return existing;
|
|
949
999
|
}
|
|
950
1000
|
throw new QueueRepositoryError("qitem_id_reuse", `qitem ${input.qitemId} already exists with a different destination/source — id reuse is a caller bug, not an idempotent retry`, {
|
|
@@ -957,7 +1007,17 @@ export class QueueRepository {
|
|
|
957
1007
|
throw err;
|
|
958
1008
|
}
|
|
959
1009
|
this.eventBus.notifySubscribers(persistedEvent);
|
|
960
|
-
|
|
1010
|
+
// The receipt acknowledges persistence, not terminal delivery. The intent
|
|
1011
|
+
// survives a crash before the scheduled wake if staging succeeded. A staging
|
|
1012
|
+
// failure is recorded on the row; callers without an outbox retain their
|
|
1013
|
+
// existing best-effort path without claiming durability.
|
|
1014
|
+
if (this.outbox) {
|
|
1015
|
+
if (wakeStaged)
|
|
1016
|
+
this.deliverWakeIntentAfterCommit(`${WAKE_INTENT_PREFIX}${id}`);
|
|
1017
|
+
}
|
|
1018
|
+
else {
|
|
1019
|
+
await this.maybeNudge(id, input.destinationSession, input.nudge, input.sourceSession);
|
|
1020
|
+
}
|
|
961
1021
|
return this.getByIdOrThrow(id);
|
|
962
1022
|
}
|
|
963
1023
|
/**
|
|
@@ -1029,6 +1089,24 @@ export class QueueRepository {
|
|
|
1029
1089
|
if (!this.hasHumanIntentColumn)
|
|
1030
1090
|
throw new QueueRepositoryError("invalid_human_notification", "Human notification fields require the current queue schema; they were not saved.");
|
|
1031
1091
|
}
|
|
1092
|
+
if (input.replyTo != null)
|
|
1093
|
+
this.validateReplyTo(input.replyTo, input.humanIntent);
|
|
1094
|
+
let humanQuestions = null;
|
|
1095
|
+
if (input.humanQuestions != null) {
|
|
1096
|
+
if (!isHumanSeatSessionRef(input.destinationSession)) {
|
|
1097
|
+
throw new QueueRepositoryError("invalid_human_questions", "humanQuestions require a human destination: only a human can click the options.");
|
|
1098
|
+
}
|
|
1099
|
+
// Omitted intent is a decision (legacy behavior), so it may carry questions too.
|
|
1100
|
+
if (input.humanIntent === "update") {
|
|
1101
|
+
throw new QueueRepositoryError("invalid_human_questions", "humanQuestions are refused on an update: they ask the human to decide. Use humanIntent decision.");
|
|
1102
|
+
}
|
|
1103
|
+
const parsed = parseHumanQuestions(input.humanQuestions);
|
|
1104
|
+
if (!parsed.ok)
|
|
1105
|
+
throw new QueueRepositoryError("invalid_human_questions", parsed.error);
|
|
1106
|
+
if (!this.hasHumanQuestionsColumn)
|
|
1107
|
+
throw new QueueRepositoryError("invalid_human_questions", "humanQuestions require the current queue schema; they were not saved.");
|
|
1108
|
+
humanQuestions = parsed.questions;
|
|
1109
|
+
}
|
|
1032
1110
|
const id = input.qitemId ?? newQitemId();
|
|
1033
1111
|
const ts = new Date().toISOString();
|
|
1034
1112
|
const priority = input.priority ?? "routine";
|
|
@@ -1061,6 +1139,12 @@ export class QueueRepository {
|
|
|
1061
1139
|
this.db.prepare("UPDATE queue_items SET human_intent = ?, human_detail = ? WHERE qitem_id = ?")
|
|
1062
1140
|
.run(input.humanIntent ?? null, input.humanDetail ?? null, id);
|
|
1063
1141
|
}
|
|
1142
|
+
if (input.replyTo != null) {
|
|
1143
|
+
this.db.prepare("UPDATE queue_items SET reply_to = ? WHERE qitem_id = ?").run(input.replyTo, id);
|
|
1144
|
+
}
|
|
1145
|
+
if (humanQuestions) {
|
|
1146
|
+
this.db.prepare("UPDATE queue_items SET human_questions = ? WHERE qitem_id = ?").run(JSON.stringify(humanQuestions), id);
|
|
1147
|
+
}
|
|
1064
1148
|
this.persistMintingGeneration(id, input.sourceSession);
|
|
1065
1149
|
const notification = this.classifyOwnerNotification({
|
|
1066
1150
|
action: "create",
|
|
@@ -1088,6 +1172,17 @@ export class QueueRepository {
|
|
|
1088
1172
|
});
|
|
1089
1173
|
return { qitemId: id, persistedEvent };
|
|
1090
1174
|
}
|
|
1175
|
+
validateReplyTo(replyTo, humanIntent) {
|
|
1176
|
+
if (humanIntent !== "update") {
|
|
1177
|
+
throw new QueueRepositoryError("reply_to_requires_update", "replyTo is accepted only with humanIntent update; a decision keeps its own thread so its reply stays unambiguous.");
|
|
1178
|
+
}
|
|
1179
|
+
if (!this.hasReplyToColumn)
|
|
1180
|
+
throw new QueueRepositoryError("invalid_human_notification", "replyTo requires the current queue schema; it was not saved.");
|
|
1181
|
+
if (!this.getById(replyTo))
|
|
1182
|
+
throw new QueueRepositoryError("reply_to_not_found", `replyTo names no qitem on this host: ${replyTo}.`);
|
|
1183
|
+
// An item with a live human gate or no usable root is not refused here: delivery posts
|
|
1184
|
+
// the update top-level and records why (deriveReplyToChoice in slack-subsystem).
|
|
1185
|
+
}
|
|
1091
1186
|
/**
|
|
1092
1187
|
* Transactional handoff: close the source qitem (state=done,
|
|
1093
1188
|
* closure_reason=handed_off_to) and create a new qitem owned by `toSession`,
|
|
@@ -1226,9 +1321,10 @@ export class QueueRepository {
|
|
|
1226
1321
|
for (const e of events) {
|
|
1227
1322
|
this.eventBus.notifySubscribers(e.payload);
|
|
1228
1323
|
}
|
|
1229
|
-
//
|
|
1230
|
-
//
|
|
1231
|
-
|
|
1324
|
+
// Closure and successor are persisted. Delivery is separate and recoverable
|
|
1325
|
+
// from the committed intent; a slow terminal must not hold the receipt.
|
|
1326
|
+
if (input.nudge !== false)
|
|
1327
|
+
this.deliverWakeIntentAfterCommit(`${WAKE_INTENT_PREFIX}${newId}`);
|
|
1232
1328
|
return {
|
|
1233
1329
|
closed: this.getByIdOrThrow(source.qitemId),
|
|
1234
1330
|
created: this.getByIdOrThrow(newId),
|
|
@@ -1369,9 +1465,9 @@ export class QueueRepository {
|
|
|
1369
1465
|
for (const e of events) {
|
|
1370
1466
|
this.eventBus.notifySubscribers(e.payload);
|
|
1371
1467
|
}
|
|
1372
|
-
//
|
|
1373
|
-
|
|
1374
|
-
|
|
1468
|
+
// Return the persisted closure and successor without awaiting terminal delivery.
|
|
1469
|
+
if (input.nudge !== false)
|
|
1470
|
+
this.deliverWakeIntentAfterCommit(`${WAKE_INTENT_PREFIX}${newId}`);
|
|
1375
1471
|
return {
|
|
1376
1472
|
closed: this.getByIdOrThrow(source.qitemId),
|
|
1377
1473
|
created: this.getByIdOrThrow(newId),
|
|
@@ -1852,7 +1948,7 @@ export class QueueRepository {
|
|
|
1852
1948
|
if (effectiveBlockedOn.startsWith("qitem-")) {
|
|
1853
1949
|
const blocker = this.getById(effectiveBlockedOn);
|
|
1854
1950
|
if (!blocker) {
|
|
1855
|
-
throw new QueueRepositoryError("blocker_not_found", `blocked_on names a qitem that does not exist: ${effectiveBlockedOn}. A
|
|
1951
|
+
throw new QueueRepositoryError("blocker_not_found", `blocked_on names a qitem that does not exist on this daemon: ${effectiveBlockedOn}. A qitem absent from this daemon cannot be a live blocker here. If it is stored on another host, use a typed gate such as external:<host>/<id> with --wake-watchdog or --wake-after.`,
|
|
1856
1952
|
// F1 (error-honesty): the rejected value is named rejectedBlocker — an error payload
|
|
1857
1953
|
// never carries the success-shaped blockedOn field (the field-filtered-misread class).
|
|
1858
1954
|
{ rejectedBlocker: effectiveBlockedOn });
|
|
@@ -1902,7 +1998,9 @@ export class QueueRepository {
|
|
|
1902
1998
|
}
|
|
1903
1999
|
const oldWake = this.wakeRepo.getStatus(input.qitemId);
|
|
1904
2000
|
const job = armQueueWait(this.db, jobsRepo, {
|
|
1905
|
-
|
|
2001
|
+
// Reusing a shared job would rewrite the attachment's schedule and packet.
|
|
2002
|
+
previousJobId: oldWake?.kind === "timer" && this.wakeRepo.findLiveQitemsByAttachedWatchdog(oldWake.ref).length === 0
|
|
2003
|
+
? oldWake.ref : undefined,
|
|
1906
2004
|
qitemId: input.qitemId, blocker: effectiveBlockedOn,
|
|
1907
2005
|
evidence: input.wakeProgressEvidence,
|
|
1908
2006
|
initialSeconds: input.wakeAfterSeconds, maxSeconds: input.wakeMaxSeconds,
|
|
@@ -2092,6 +2190,10 @@ export class QueueRepository {
|
|
|
2092
2190
|
const armed = this.wakeRepo.getStatus(qitemId);
|
|
2093
2191
|
if (armed?.kind !== "timer" || !armed.live)
|
|
2094
2192
|
return;
|
|
2193
|
+
// An explicit --wake-watchdog attachment gives another continuation custody
|
|
2194
|
+
// of this same job. The timer row's exit cannot cancel that attachment.
|
|
2195
|
+
if (this.wakeRepo.findLiveQitemsByAttachedWatchdog(armed.ref).length > 0)
|
|
2196
|
+
return;
|
|
2095
2197
|
(this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db)).markTerminal(armed.ref, reason);
|
|
2096
2198
|
}
|
|
2097
2199
|
propagateBlockerCompletion(input) {
|
|
@@ -2172,23 +2274,13 @@ export class QueueRepository {
|
|
|
2172
2274
|
currentParkTimerIds() {
|
|
2173
2275
|
return this.wakeRepo.currentParkTimerIds();
|
|
2174
2276
|
}
|
|
2175
|
-
/**
|
|
2176
|
-
*
|
|
2177
|
-
* delivery-seam backstop for residue persisted by an older daemon. A timer
|
|
2178
|
-
* still bound to any actionable row, and every operator-attached watchdog,
|
|
2179
|
-
* remains deliverable. */
|
|
2277
|
+
/** Generated jobs end when neither their original park nor an unfired
|
|
2278
|
+
* attachment still owns them. Standalone operator jobs keep their lifecycle. */
|
|
2180
2279
|
resolveWatchdogPreDeliveryTerminalReason(jobId) {
|
|
2181
2280
|
const targets = this.wakeRepo.findQitemsByGeneratedTimer(jobId);
|
|
2182
|
-
if (targets.length === 0 ||
|
|
2281
|
+
if (targets.length === 0 || this.wakeRepo.findCurrentQitemsByGeneratedTimer(jobId).length > 0)
|
|
2183
2282
|
return null;
|
|
2184
|
-
|
|
2185
|
-
// the job is SOLELY a park-generated timer. `--wake-watchdog` can attach an
|
|
2186
|
-
// operator row to the very job another row's `--wake-after` produced, and
|
|
2187
|
-
// that is a supported path — so a shared job carries a second, watchdog-kind
|
|
2188
|
-
// binding this reason has no authority over. The timer's rows being terminal
|
|
2189
|
-
// says nothing about the attachment; claiming the job anyway terminals it
|
|
2190
|
-
// before transport and the attachment can never wake.
|
|
2191
|
-
if (this.wakeRepo.findQitemsByAttachedWatchdog(jobId).length > 0)
|
|
2283
|
+
if (this.wakeRepo.findLiveQitemsByAttachedWatchdog(jobId).length > 0)
|
|
2192
2284
|
return null;
|
|
2193
2285
|
return "park_timer_target_terminal";
|
|
2194
2286
|
}
|
|
@@ -2208,9 +2300,11 @@ export class QueueRepository {
|
|
|
2208
2300
|
* audited. The queue transition records that attempt independently of
|
|
2209
2301
|
* whether the HELD row's owner consumed it. */
|
|
2210
2302
|
recordWatchdogWakeAttempt(jobId, deliveryStatus) {
|
|
2211
|
-
const
|
|
2212
|
-
if (
|
|
2303
|
+
const bindings = this.wakeRepo.findBlockedQitemsByWatchdog(jobId);
|
|
2304
|
+
if (bindings.length === 0)
|
|
2213
2305
|
return;
|
|
2306
|
+
// Both receipt ownership and timer lifecycle follow the current park.
|
|
2307
|
+
const targets = this.wakeRepo.findBlockedQitemsByWatchdog(jobId, true);
|
|
2214
2308
|
const recordFired = ({ qitemId, kind }) => {
|
|
2215
2309
|
const transition = this.transitionLog.append({
|
|
2216
2310
|
qitemId,
|
|
@@ -2248,7 +2342,7 @@ export class QueueRepository {
|
|
|
2248
2342
|
// behaviour is UNCHANGED by this repair and pinned as unchanged. This widens
|
|
2249
2343
|
// the same act to ordinary park timers, without their blocker resolution —
|
|
2250
2344
|
// resolving the blocker is a provider-limit outcome, not a timer one.
|
|
2251
|
-
const parkGeneratedTimer =
|
|
2345
|
+
const parkGeneratedTimer = this.wakeRepo.findCurrentQitemsByGeneratedTimer(jobId).length > 0;
|
|
2252
2346
|
const events = this.db.transaction(() => {
|
|
2253
2347
|
const firedEvents = targets.map(recordFired);
|
|
2254
2348
|
if (deliveryStatus === "retained")
|
|
@@ -2272,6 +2366,38 @@ export class QueueRepository {
|
|
|
2272
2366
|
for (const event of events)
|
|
2273
2367
|
this.eventBus.notifySubscribers(event);
|
|
2274
2368
|
}
|
|
2369
|
+
/**
|
|
2370
|
+
* #193 — record one clicked answer on a pending decision that carries structured questions.
|
|
2371
|
+
* Only the decision's own human may answer, and only while it is pending. A click may change
|
|
2372
|
+
* an earlier answer until the set is complete; from then on the answers are FINAL, and any
|
|
2373
|
+
* further click returns them unchanged so the caller can retry the continuation (reply row +
|
|
2374
|
+
* resolve) with exactly what the seat will read. Anything else is not-applicable (a forged
|
|
2375
|
+
* id, a stranger, a decision already resolved), never an error the socket must retry.
|
|
2376
|
+
*/
|
|
2377
|
+
recordHumanAnswer(input) {
|
|
2378
|
+
if (!this.hasHumanQuestionsColumn)
|
|
2379
|
+
return { status: "not-applicable", reason: "schema" };
|
|
2380
|
+
return this.db.transaction(() => {
|
|
2381
|
+
const item = this.getById(input.qitemId);
|
|
2382
|
+
if (!item?.humanQuestions?.length)
|
|
2383
|
+
return { status: "not-applicable", reason: "no-questions" };
|
|
2384
|
+
if (item.state !== "pending")
|
|
2385
|
+
return { status: "not-applicable", reason: `state-${item.state}` };
|
|
2386
|
+
if (item.destinationSession !== input.actorSession)
|
|
2387
|
+
return { status: "not-applicable", reason: "not-the-asked-human" };
|
|
2388
|
+
const question = item.humanQuestions.find((q) => q.id === input.questionId);
|
|
2389
|
+
if (!question?.options.some((o) => o.id === input.optionId))
|
|
2390
|
+
return { status: "not-applicable", reason: "unknown-option" };
|
|
2391
|
+
const recorded = item.humanAnswers ?? {};
|
|
2392
|
+
if (unansweredQuestions(item.humanQuestions, recorded).length === 0) {
|
|
2393
|
+
return { status: "recorded", answers: recorded, complete: true, questions: item.humanQuestions };
|
|
2394
|
+
}
|
|
2395
|
+
const answers = { ...(item.humanAnswers ?? {}), [input.questionId]: input.optionId };
|
|
2396
|
+
this.db.prepare("UPDATE queue_items SET human_answers = ? WHERE qitem_id = ?").run(JSON.stringify(answers), input.qitemId);
|
|
2397
|
+
const complete = unansweredQuestions(item.humanQuestions, answers).length === 0;
|
|
2398
|
+
return { status: "recorded", answers, complete, questions: item.humanQuestions };
|
|
2399
|
+
})();
|
|
2400
|
+
}
|
|
2275
2401
|
getById(qitemId) {
|
|
2276
2402
|
const row = this.db
|
|
2277
2403
|
.prepare("SELECT * FROM queue_items WHERE qitem_id = ?")
|
|
@@ -2286,8 +2412,36 @@ export class QueueRepository {
|
|
|
2286
2412
|
...item,
|
|
2287
2413
|
deliveryOutcome: ledger?.outcome ?? null,
|
|
2288
2414
|
...(ledger && ledger.outcome !== "posted" ? { deliveryFailureDetail: ledger.detail } : {}),
|
|
2415
|
+
...(item.replyTo ? { replyToFallback: this.replyToFallbackFor(item.qitemId) } : {}),
|
|
2289
2416
|
};
|
|
2290
2417
|
}
|
|
2418
|
+
/** #96 — the thread choice the daemon recorded before this replyTo update's first post;
|
|
2419
|
+
* null = not yet chosen. Only an in-process daemon write counts: any HTTP write carries an
|
|
2420
|
+
* identity provenance (and its actor is caller-asserted), so a note from there could forge
|
|
2421
|
+
* a thread and is ignored. */
|
|
2422
|
+
replyToChoiceFor(qitemId) {
|
|
2423
|
+
for (const t of this.transitionLog.listForQitem(qitemId).reverse()) {
|
|
2424
|
+
if (t.actorSession !== REPLY_TO_CHOICE_ACTOR || t.identityProvenance !== null)
|
|
2425
|
+
continue;
|
|
2426
|
+
const choice = parseReplyToChoice(t.transitionNote ?? "");
|
|
2427
|
+
if (choice)
|
|
2428
|
+
return choice;
|
|
2429
|
+
}
|
|
2430
|
+
return null;
|
|
2431
|
+
}
|
|
2432
|
+
/** #96 — whether some update recorded this Slack root as the thread it posts into. Such a
|
|
2433
|
+
* root is shared: its owner's next decision must not reuse it (see slack-subsystem). */
|
|
2434
|
+
isReplyToThread(threadTs) {
|
|
2435
|
+
if (!this.hasQueueTransitionsTable)
|
|
2436
|
+
return false;
|
|
2437
|
+
// Same trust rule as replyToChoiceFor: a pre-provenance schema reads every row as null.
|
|
2438
|
+
const provenance = this.hasTransitionProvenanceColumn ? " AND identity_provenance IS NULL" : "";
|
|
2439
|
+
return this.db.prepare(`SELECT 1 FROM queue_transitions WHERE transition_note = ? AND actor_session = ?${provenance} LIMIT 1`).get(formatReplyToChoice({ kind: "thread", threadTs }), REPLY_TO_CHOICE_ACTOR) !== undefined;
|
|
2440
|
+
}
|
|
2441
|
+
replyToFallbackFor(qitemId) {
|
|
2442
|
+
const choice = this.replyToChoiceFor(qitemId);
|
|
2443
|
+
return choice?.kind === "fallback" ? describeReplyToFallback(choice) : null;
|
|
2444
|
+
}
|
|
2291
2445
|
list(opts) {
|
|
2292
2446
|
const limit = opts?.limit ?? 100;
|
|
2293
2447
|
const conditions = [];
|
|
@@ -2479,6 +2633,57 @@ export class QueueRepository {
|
|
|
2479
2633
|
const rows = this.db.prepare(sql).all(...params);
|
|
2480
2634
|
return rows.map((r) => this.rowToItem(r, !opts?.compact));
|
|
2481
2635
|
}
|
|
2636
|
+
/**
|
|
2637
|
+
* Record that an in-progress queue item has exceeded its closure_required_at
|
|
2638
|
+
* deadline, appending a transition note and emitting `qitem.closure_overdue`.
|
|
2639
|
+
*
|
|
2640
|
+
* Deduplicated: if this obligation has already recorded `closure-overdue`
|
|
2641
|
+
* since it was claimed (or created), no duplicate event or transition is emitted.
|
|
2642
|
+
*/
|
|
2643
|
+
recordClosureOverdue(qitemId, opts) {
|
|
2644
|
+
const qitem = this.getById(qitemId);
|
|
2645
|
+
if (!qitem || qitem.state !== "in-progress" || !qitem.closureRequiredAt)
|
|
2646
|
+
return null;
|
|
2647
|
+
const cutoff = opts?.now ?? new Date().toISOString();
|
|
2648
|
+
if (qitem.closureRequiredAt > cutoff)
|
|
2649
|
+
return null;
|
|
2650
|
+
const claimSince = qitem.claimedAt ?? qitem.tsCreated;
|
|
2651
|
+
if (this.hasQueueTransitionsTable) {
|
|
2652
|
+
const alreadyRecorded = this.db.prepare(`SELECT 1 FROM queue_transitions WHERE qitem_id = ? AND transition_note = 'closure-overdue' AND ts >= ? LIMIT 1`).get(qitemId, claimSince);
|
|
2653
|
+
if (alreadyRecorded)
|
|
2654
|
+
return null;
|
|
2655
|
+
if (detectTable(this.db, "queue_transitions_archive")) {
|
|
2656
|
+
const alreadyRecordedArchive = this.db.prepare(`SELECT 1 FROM queue_transitions_archive WHERE qitem_id = ? AND transition_note = 'closure-overdue' AND ts >= ? LIMIT 1`).get(qitemId, claimSince);
|
|
2657
|
+
if (alreadyRecordedArchive)
|
|
2658
|
+
return null;
|
|
2659
|
+
}
|
|
2660
|
+
}
|
|
2661
|
+
else {
|
|
2662
|
+
const alreadyRecorded = this.db.prepare(`SELECT 1 FROM events WHERE type = 'qitem.closure_overdue' AND json_extract(payload, '$.qitemId') = ? AND julianday(created_at) >= julianday(?) LIMIT 1`).get(qitemId, claimSince);
|
|
2663
|
+
if (alreadyRecorded)
|
|
2664
|
+
return null;
|
|
2665
|
+
}
|
|
2666
|
+
const txn = this.db.transaction(() => {
|
|
2667
|
+
if (this.hasQueueTransitionsTable) {
|
|
2668
|
+
this.transitionLog.append({
|
|
2669
|
+
qitemId,
|
|
2670
|
+
state: qitem.state,
|
|
2671
|
+
actorSession: "daemon@system",
|
|
2672
|
+
transitionNote: "closure-overdue",
|
|
2673
|
+
});
|
|
2674
|
+
}
|
|
2675
|
+
return this.eventBus.persistWithinTransaction({
|
|
2676
|
+
type: "qitem.closure_overdue",
|
|
2677
|
+
qitemId,
|
|
2678
|
+
destinationSession: qitem.destinationSession,
|
|
2679
|
+
closureRequiredAt: qitem.closureRequiredAt,
|
|
2680
|
+
overdueSince: qitem.closureRequiredAt,
|
|
2681
|
+
});
|
|
2682
|
+
});
|
|
2683
|
+
const persisted = txn();
|
|
2684
|
+
this.eventBus.notifySubscribers(persisted);
|
|
2685
|
+
return persisted;
|
|
2686
|
+
}
|
|
2482
2687
|
/**
|
|
2483
2688
|
* Surface two evidence-backed undelivered classes: the original pending
|
|
2484
2689
|
* create-path nudge failures, and active human-notification episodes whose
|
|
@@ -2588,18 +2793,37 @@ export class QueueRepository {
|
|
|
2588
2793
|
}
|
|
2589
2794
|
/** Null means legacy/no OWNER history; inactive means OWNER history exists
|
|
2590
2795
|
* but the row no longer projects a current human-notification episode. */
|
|
2591
|
-
currentDeliveryEpisode(item) {
|
|
2592
|
-
|
|
2796
|
+
currentDeliveryEpisode(item, knownOwner) {
|
|
2797
|
+
let transition = knownOwner ?? this.transitionLog.latestOwnerNotificationForQitem(item.qitemId);
|
|
2593
2798
|
if (!transition)
|
|
2594
2799
|
return null;
|
|
2800
|
+
// A human-decision-resolved notice written BY the transition that closed the row (a human's direct reply closing
|
|
2801
|
+
// it) is never posted: the Slack outbound lists active rows only (listHumanAlerts), and that human just answered.
|
|
2802
|
+
// It opens no new delivery episode; the delivery that happened is the latest OUTBOUND notice's, to that human.
|
|
2803
|
+
// Judged by the notice's own transition, not the row's current state: a resolved notice written while the row
|
|
2804
|
+
// stayed active is a real delivery and keeps its outcome after an agent later closes the row.
|
|
2805
|
+
let resolvedBy = null;
|
|
2806
|
+
if (transition.ownerNotificationKind === "human-decision-resolved" && !["pending", "in-progress", "blocked"].includes(transition.state)) {
|
|
2807
|
+
const outbound = this.transitionLog.listForQitem(item.qitemId)
|
|
2808
|
+
.filter((t) => t.ownerNotificationLevel != null && t.ownerNotificationKind != null && t.ownerNotificationKind !== "human-decision-resolved")
|
|
2809
|
+
.sort((a, b) => b.transitionId - a.transitionId)[0];
|
|
2810
|
+
if (!outbound)
|
|
2811
|
+
return "inactive";
|
|
2812
|
+
resolvedBy = transition.actorSession;
|
|
2813
|
+
transition = outbound;
|
|
2814
|
+
}
|
|
2595
2815
|
const registry = this.loadHumanRegistryFn();
|
|
2596
2816
|
if (!registry.ok)
|
|
2597
2817
|
return "inactive";
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2818
|
+
// After that fallback the recipient is the human who answered: the row may be an agent's that was parked on them
|
|
2819
|
+
// (its destination is the agent, and closing cleared blocked_on).
|
|
2820
|
+
const humanAddress = resolvedBy !== null
|
|
2821
|
+
? resolveRegisteredHumanAddress(resolvedBy, registry.entities)
|
|
2822
|
+
: transition.ownerNotificationKind === "human-decision-resolved"
|
|
2823
|
+
? resolveRegisteredHumanAddress(transition.actorSession, registry.entities)
|
|
2824
|
+
: item.state === "blocked"
|
|
2825
|
+
? resolveRegisteredHumanAddress(item.blockedOn, registry.entities)
|
|
2826
|
+
: resolveRegisteredHumanAddress(item.destinationSession, registry.entities);
|
|
2603
2827
|
return humanAddress
|
|
2604
2828
|
? { notificationKey: `${item.qitemId}:${transition.transitionId}`, startedAt: transition.ts }
|
|
2605
2829
|
: "inactive";
|
|
@@ -2609,6 +2833,32 @@ export class QueueRepository {
|
|
|
2609
2833
|
* posted receipt cannot mask a later human park. Legacy pre-OWNER or literal
|
|
2610
2834
|
* external rows retain their row-scoped fallback. */
|
|
2611
2835
|
deliveryOutcomeFor(qitemId) {
|
|
2836
|
+
const ledger = this.deliveryLedger(qitemId);
|
|
2837
|
+
return ledger ? { outcome: ledger.outcome, detail: ledger.detail } : null;
|
|
2838
|
+
}
|
|
2839
|
+
/** #514 — true only when this row's CURRENT human-notification episode (OWNER history addressed
|
|
2840
|
+
* to a registered human, aliases included) has a POSTED receipt. Legacy rows with no OWNER
|
|
2841
|
+
* history, inactive episodes, never-posted and transport-failed all read false. Same derivation
|
|
2842
|
+
* as deliveryOutcomeFor; it reads row fields, never the waiting view. */
|
|
2843
|
+
humanNotificationPostedThisEpisode(qitemId) {
|
|
2844
|
+
if (!this.hasQueueTransitionsTable)
|
|
2845
|
+
return false;
|
|
2846
|
+
// Only the ask's own notification binds a recipient: create writes it in state pending, to the destination of
|
|
2847
|
+
// that moment. A park notice (its recipient is not retained), a resolution notice, or a later destination change
|
|
2848
|
+
// (routeToFallback opens no new episode) cannot establish that the current destination received this ask.
|
|
2849
|
+
const owner = this.transitionLog.latestOwnerNotificationForQitem(qitemId);
|
|
2850
|
+
if (!owner || owner.state !== "pending")
|
|
2851
|
+
return false;
|
|
2852
|
+
if (owner.ownerNotificationKind !== "human-required" && owner.ownerNotificationKind !== "human-update")
|
|
2853
|
+
return false;
|
|
2854
|
+
const rerouted = this.db.prepare("SELECT 1 FROM queue_transitions WHERE qitem_id = ? AND transition_id > ? AND transition_note LIKE 'fallback-routed:%' LIMIT 1").get(qitemId, owner.transitionId);
|
|
2855
|
+
if (rerouted)
|
|
2856
|
+
return false;
|
|
2857
|
+
// The ledger's episode exists only when the destination resolves to a registered human (aliases included).
|
|
2858
|
+
const ledger = this.deliveryLedger(qitemId, owner);
|
|
2859
|
+
return ledger !== null && ledger.outcome === "posted" && ledger.episode?.notificationKey === `${qitemId}:${owner.transitionId}`;
|
|
2860
|
+
}
|
|
2861
|
+
deliveryLedger(qitemId, knownOwner) {
|
|
2612
2862
|
// Some repository-only fixtures intentionally model the pre-transition
|
|
2613
2863
|
// schema. Delivery projection is additive there: absence means no verdict,
|
|
2614
2864
|
// never a list failure.
|
|
@@ -2621,7 +2871,7 @@ export class QueueRepository {
|
|
|
2621
2871
|
// The delivery episode uses row fields, not the waiting/backstop view.
|
|
2622
2872
|
// Keep this read fresh without repeating the caller's recovery-tag scan.
|
|
2623
2873
|
const item = this.rowToItem(row, false);
|
|
2624
|
-
const episodeState = this.currentDeliveryEpisode(item);
|
|
2874
|
+
const episodeState = this.currentDeliveryEpisode(item, knownOwner);
|
|
2625
2875
|
if (episodeState === "inactive")
|
|
2626
2876
|
return null;
|
|
2627
2877
|
const episode = episodeState;
|
|
@@ -2634,17 +2884,17 @@ export class QueueRepository {
|
|
|
2634
2884
|
: notes;
|
|
2635
2885
|
const posted = currentNotes.find((note) => note.transition_note.startsWith("slack-owner-notification-posted "));
|
|
2636
2886
|
if (posted)
|
|
2637
|
-
return { outcome: "posted", detail: posted.transition_note };
|
|
2887
|
+
return { outcome: "posted", detail: posted.transition_note, episode };
|
|
2638
2888
|
const failed = currentNotes.find((note) => note.transition_note.startsWith("slack-owner-notification-transport-failed "));
|
|
2639
2889
|
if (failed)
|
|
2640
|
-
return { outcome: "transport-failed", detail: failed.transition_note };
|
|
2890
|
+
return { outcome: "transport-failed", detail: failed.transition_note, episode };
|
|
2641
2891
|
const startedAt = episode?.startedAt ?? item.tsCreated;
|
|
2642
2892
|
const gatewayRouted = episode !== null || item.lastNudgeResult?.startsWith("gateway-owned") === true;
|
|
2643
2893
|
if (gatewayRouted) {
|
|
2644
2894
|
const ageMs = Date.now() - new Date(startedAt.includes("T") ? startedAt : startedAt + "Z").getTime();
|
|
2645
2895
|
if (ageMs > QueueRepository.NEVER_POSTED_WINDOW_MS) {
|
|
2646
2896
|
const key = episode ? ` for notification_key=${episode.notificationKey}` : "";
|
|
2647
|
-
return { outcome: "never-posted", detail: `gateway-routed row with no delivery receipt${key} past the post window
|
|
2897
|
+
return { outcome: "never-posted", detail: `gateway-routed row with no delivery receipt${key} past the post window`, episode };
|
|
2648
2898
|
}
|
|
2649
2899
|
}
|
|
2650
2900
|
return null;
|
|
@@ -2782,10 +3032,9 @@ export class QueueRepository {
|
|
|
2782
3032
|
workflowGuidance;
|
|
2783
3033
|
attachWorkflowGuidance(reader) { this.workflowGuidance = reader; }
|
|
2784
3034
|
evaluateWaitReminder(input) {
|
|
2785
|
-
|
|
2786
|
-
|
|
3035
|
+
const binding = this.wakeRepo.findCurrentQitemsByGeneratedTimer(input.jobId)[0];
|
|
3036
|
+
if (!binding && this.wakeRepo.findLiveQitemsByAttachedWatchdog(input.jobId).length > 0)
|
|
2787
3037
|
return null;
|
|
2788
|
-
const binding = this.wakeRepo.findBlockedQitemsByWatchdog(input.jobId).find(row => row.kind === "timer");
|
|
2789
3038
|
const result = evaluateQueueWait(this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db), input.jobId, binding ? this.waitingView(binding.qitemId) : null);
|
|
2790
3039
|
// Only an already-admitted send reads prose: healthy silence, receipts and
|
|
2791
3040
|
// failed-delivery retries remain owned by the existing wait evaluator.
|
|
@@ -2810,14 +3059,54 @@ export class QueueRepository {
|
|
|
2810
3059
|
waitingView(qitemId) {
|
|
2811
3060
|
const view = readWaitingView(this.db, qitemId, this.activityReader);
|
|
2812
3061
|
if (view && ["pending", "in-progress"].includes(view.state)) {
|
|
3062
|
+
// #514 — the unclaimed sweep skips a pending ask already posted to its human in the current
|
|
3063
|
+
// episode (same predicate as runStuckSweep), so the view must not promise that sweep.
|
|
3064
|
+
const awaitingHuman = view.state === "pending" && this.humanNotificationPostedThisEpisode(qitemId);
|
|
3065
|
+
if (awaitingHuman) {
|
|
3066
|
+
view.nextBackstop = { owner: view.owner, mechanism: "none (posted to the human; awaiting their decision)", dueAt: null, intervalSeconds: null };
|
|
3067
|
+
}
|
|
2813
3068
|
const recovery = readWakeLadderBackstop(this.db, qitemId);
|
|
2814
3069
|
if (recovery) {
|
|
2815
|
-
|
|
3070
|
+
if (!awaitingHuman)
|
|
3071
|
+
view.laterBackstop = { ...view.nextBackstop, note: "Conditional safety net; current delivery/recovery ownership is evaluated first." };
|
|
2816
3072
|
view.nextBackstop = recovery;
|
|
2817
3073
|
}
|
|
2818
3074
|
}
|
|
2819
3075
|
return view;
|
|
2820
3076
|
}
|
|
3077
|
+
handoffAdvisory(row) {
|
|
3078
|
+
// handoff() creates its local successor in the same transaction. Do not
|
|
3079
|
+
// scan successor history again on every projection of those source rows.
|
|
3080
|
+
if (row.state === "handed-off" || !isTerminalState(row.state)
|
|
3081
|
+
|| row.closure_reason !== "handed_off_to" || !row.closure_target)
|
|
3082
|
+
return undefined;
|
|
3083
|
+
const target = row.closure_target;
|
|
3084
|
+
try {
|
|
3085
|
+
const successor = this.db.prepare(`SELECT 1 FROM queue_items s
|
|
3086
|
+
WHERE (s.qitem_id = ? OR s.destination_session = ?) AND s.qitem_id != ?
|
|
3087
|
+
AND (s.handed_off_from = ? OR EXISTS (
|
|
3088
|
+
SELECT 1 FROM json_each(s.chain_of_record) WHERE value = ?
|
|
3089
|
+
)) LIMIT 1`).get(target, target, row.qitem_id, row.qitem_id, row.qitem_id);
|
|
3090
|
+
// A linked row may have handed on to another owner. Its current state
|
|
3091
|
+
// does not establish whether later hops still hold the work.
|
|
3092
|
+
if (successor)
|
|
3093
|
+
return undefined;
|
|
3094
|
+
}
|
|
3095
|
+
catch {
|
|
3096
|
+
// Optional reporting must not fail a close that has already committed,
|
|
3097
|
+
// or describe an unavailable lookup as proof of a missing local row.
|
|
3098
|
+
return undefined;
|
|
3099
|
+
}
|
|
3100
|
+
const foreignTarget = /^qitem-[^@]+@[^@]+$/.test(target);
|
|
3101
|
+
return {
|
|
3102
|
+
status: "unverified",
|
|
3103
|
+
target,
|
|
3104
|
+
reason: "no-live-local-successor",
|
|
3105
|
+
message: foreignTarget
|
|
3106
|
+
? `Successor custody for '${target}' is unverified on this daemon: the successor is named on that host, and this daemon cannot read its custody. This closure records a handoff claim, not proof of transfer or pickup.`
|
|
3107
|
+
: `Successor custody for '${target}' is unverified on this daemon: no local row with this source's lineage was found. A successor may exist on another host. This closure records a handoff claim, not proof of transfer or pickup; reconcile the successor by ID.`,
|
|
3108
|
+
};
|
|
3109
|
+
}
|
|
2821
3110
|
rowToItem(row, includeWaiting = true) {
|
|
2822
3111
|
// S04 — derive the pickup receipt at the ONE shared projection point (list/show/overdue
|
|
2823
3112
|
// all flow through here), so the park-vs-strand question is answered by the row face.
|
|
@@ -2833,7 +3122,9 @@ export class QueueRepository {
|
|
|
2833
3122
|
lastHeartbeat: row.last_heartbeat,
|
|
2834
3123
|
postClaimMotionCount: 0, // this reader supplies the current meaningful timestamp
|
|
2835
3124
|
});
|
|
3125
|
+
const handoffAdvisory = this.handoffAdvisory(row);
|
|
2836
3126
|
return {
|
|
3127
|
+
...(handoffAdvisory ? { handoffAdvisory } : {}),
|
|
2837
3128
|
pickup,
|
|
2838
3129
|
...(waiting ? { waiting } : {}),
|
|
2839
3130
|
qitemId: row.qitem_id,
|
|
@@ -2859,6 +3150,9 @@ export class QueueRepository {
|
|
|
2859
3150
|
evidenceRef: row.evidence_ref ?? null,
|
|
2860
3151
|
humanIntent: row.human_intent ?? null,
|
|
2861
3152
|
humanDetail: row.human_detail ?? null,
|
|
3153
|
+
replyTo: row.reply_to ?? null,
|
|
3154
|
+
humanQuestions: row.human_questions ? JSON.parse(row.human_questions) : null,
|
|
3155
|
+
humanAnswers: row.human_answers ? JSON.parse(row.human_answers) : null,
|
|
2862
3156
|
closureReason: row.closure_reason,
|
|
2863
3157
|
closureTarget: row.closure_target,
|
|
2864
3158
|
closureRequiredAt: row.closure_required_at,
|