@openrig/cli 0.5.16 → 0.5.17
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/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
- 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/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- 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/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
- 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/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -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/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/manifest.yaml +1 -1
- 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/manifest.yaml +1 -1
- package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
- package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- 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/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/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/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- 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/build-info.js +3 -3
- package/dist/build-info.js +3 -3
- package/dist/commands/config-init-workspace.js +1 -1
- package/dist/commands/context.js +2 -2
- package/dist/commands/crash-cart.js +1 -1
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/gateway.js +5 -5
- package/dist/commands/health.js +1 -1
- package/dist/commands/skill.js +1 -1
- package/dist/commands/slack.js +3 -3
- package/dist/daemon-lifecycle.js +2 -2
- package/dist/lib/context-install.js +1 -1
- package/dist/lib/scope/mission-composition.js +1 -1
- package/dist/lib/work-install.js +4 -4
- package/dist/local-reading.js +1 -1
- package/package.json +1 -5
- package/tui/dist/pulse/pulse-model.js +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts +0 -157
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +0 -877
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-resume.d.ts +0 -30
- package/node_modules/@openrig/daemon/dist/adapters/claude-resume.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js +0 -119
- package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/cmux-transport.d.ts +0 -14
- package/node_modules/@openrig/daemon/dist/adapters/cmux-transport.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/cmux-transport.js +0 -354
- package/node_modules/@openrig/daemon/dist/adapters/cmux-transport.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/cmux.d.ts +0 -65
- package/node_modules/@openrig/daemon/dist/adapters/cmux.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/cmux.js +0 -332
- package/node_modules/@openrig/daemon/dist/adapters/cmux.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/codex-resume.d.ts +0 -19
- package/node_modules/@openrig/daemon/dist/adapters/codex-resume.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/codex-resume.js +0 -132
- package/node_modules/@openrig/daemon/dist/adapters/codex-resume.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts +0 -188
- package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js +0 -1355
- package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/compose-services-adapter.d.ts +0 -73
- package/node_modules/@openrig/daemon/dist/adapters/compose-services-adapter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/compose-services-adapter.js +0 -195
- package/node_modules/@openrig/daemon/dist/adapters/compose-services-adapter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/pi-resume.d.ts +0 -32
- package/node_modules/@openrig/daemon/dist/adapters/pi-resume.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/pi-resume.js +0 -134
- package/node_modules/@openrig/daemon/dist/adapters/pi-resume.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/pi-runner-protocol.d.ts +0 -88
- package/node_modules/@openrig/daemon/dist/adapters/pi-runner-protocol.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/pi-runner-protocol.js +0 -158
- package/node_modules/@openrig/daemon/dist/adapters/pi-runner-protocol.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/pi-runner.d.ts +0 -90
- package/node_modules/@openrig/daemon/dist/adapters/pi-runner.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/pi-runner.js +0 -599
- package/node_modules/@openrig/daemon/dist/adapters/pi-runner.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/pi-runtime-adapter.d.ts +0 -61
- package/node_modules/@openrig/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/pi-runtime-adapter.js +0 -362
- package/node_modules/@openrig/daemon/dist/adapters/pi-runtime-adapter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/shell-quote.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/adapters/shell-quote.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/shell-quote.js +0 -5
- package/node_modules/@openrig/daemon/dist/adapters/shell-quote.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-compaction.d.ts +0 -28
- package/node_modules/@openrig/daemon/dist/adapters/stub-compaction.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-compaction.js +0 -62
- package/node_modules/@openrig/daemon/dist/adapters/stub-compaction.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-restore.d.ts +0 -39
- package/node_modules/@openrig/daemon/dist/adapters/stub-restore.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-restore.js +0 -84
- package/node_modules/@openrig/daemon/dist/adapters/stub-restore.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-runner-protocol.d.ts +0 -48
- package/node_modules/@openrig/daemon/dist/adapters/stub-runner-protocol.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-runner-protocol.js +0 -77
- package/node_modules/@openrig/daemon/dist/adapters/stub-runner-protocol.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-runner.d.ts +0 -96
- package/node_modules/@openrig/daemon/dist/adapters/stub-runner.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-runner.js +0 -343
- package/node_modules/@openrig/daemon/dist/adapters/stub-runner.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-runtime-adapter.d.ts +0 -51
- package/node_modules/@openrig/daemon/dist/adapters/stub-runtime-adapter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-runtime-adapter.js +0 -270
- package/node_modules/@openrig/daemon/dist/adapters/stub-runtime-adapter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-script.d.ts +0 -30
- package/node_modules/@openrig/daemon/dist/adapters/stub-script.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/stub-script.js +0 -79
- package/node_modules/@openrig/daemon/dist/adapters/stub-script.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/terminal-adapter.d.ts +0 -21
- package/node_modules/@openrig/daemon/dist/adapters/terminal-adapter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/terminal-adapter.js +0 -31
- package/node_modules/@openrig/daemon/dist/adapters/terminal-adapter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux-exec.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/adapters/tmux-exec.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux-exec.js +0 -32
- package/node_modules/@openrig/daemon/dist/adapters/tmux-exec.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +0 -270
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js +0 -735
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts +0 -41
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js +0 -70
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/attention-surface.d.ts +0 -38
- package/node_modules/@openrig/daemon/dist/attention-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/attention-surface.js +0 -3
- package/node_modules/@openrig/daemon/dist/attention-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/build-info.d.ts +0 -12
- package/node_modules/@openrig/daemon/dist/build-info.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/build-info.js +0 -11
- package/node_modules/@openrig/daemon/dist/build-info.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/basic-loop.yaml +0 -76
- package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/branched-remediation.yaml +0 -31
- package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/conveyor.yaml +0 -80
- package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +0 -152
- package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/gated-release.yaml +0 -26
- package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/linear-build.yaml +0 -21
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts +0 -2
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js +0 -6
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/crash-cart-surface.d.ts +0 -5
- package/node_modules/@openrig/daemon/dist/crash-cart-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/crash-cart-surface.js +0 -9
- package/node_modules/@openrig/daemon/dist/crash-cart-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/daemon-db-path.d.ts +0 -13
- package/node_modules/@openrig/daemon/dist/daemon-db-path.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/daemon-db-path.js +0 -67
- package/node_modules/@openrig/daemon/dist/daemon-db-path.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/daemon-shutdown.d.ts +0 -27
- package/node_modules/@openrig/daemon/dist/daemon-shutdown.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/daemon-shutdown.js +0 -84
- package/node_modules/@openrig/daemon/dist/daemon-shutdown.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts +0 -4
- package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/all-migrations.js +0 -178
- package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/connection.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/db/connection.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/connection.js +0 -12
- package/node_modules/@openrig/daemon/dist/db/connection.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrate.d.ts +0 -12
- package/node_modules/@openrig/daemon/dist/db/migrate.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrate.js +0 -27
- package/node_modules/@openrig/daemon/dist/db/migrate.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/001_core_schema.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/001_core_schema.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/001_core_schema.js +0 -50
- package/node_modules/@openrig/daemon/dist/db/migrations/001_core_schema.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/002_bindings_sessions.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/002_bindings_sessions.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/002_bindings_sessions.js +0 -29
- package/node_modules/@openrig/daemon/dist/db/migrations/002_bindings_sessions.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/003_events.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/003_events.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/003_events.js +0 -22
- package/node_modules/@openrig/daemon/dist/db/migrations/003_events.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/004_snapshots.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/004_snapshots.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/004_snapshots.js +0 -19
- package/node_modules/@openrig/daemon/dist/db/migrations/004_snapshots.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/005_checkpoints.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/005_checkpoints.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/005_checkpoints.js +0 -22
- package/node_modules/@openrig/daemon/dist/db/migrations/005_checkpoints.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/006_resume_metadata.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/006_resume_metadata.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/006_resume_metadata.js +0 -14
- package/node_modules/@openrig/daemon/dist/db/migrations/006_resume_metadata.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/007_node_spec_fields.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/007_node_spec_fields.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/007_node_spec_fields.js +0 -11
- package/node_modules/@openrig/daemon/dist/db/migrations/007_node_spec_fields.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/008_packages.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/008_packages.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/008_packages.js +0 -17
- package/node_modules/@openrig/daemon/dist/db/migrations/008_packages.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/009_install_journal.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/009_install_journal.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/009_install_journal.js +0 -35
- package/node_modules/@openrig/daemon/dist/db/migrations/009_install_journal.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/010_journal_seq.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/010_journal_seq.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/010_journal_seq.js +0 -36
- package/node_modules/@openrig/daemon/dist/db/migrations/010_journal_seq.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/011_bootstrap.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/011_bootstrap.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/011_bootstrap.js +0 -43
- package/node_modules/@openrig/daemon/dist/db/migrations/011_bootstrap.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/012_discovery.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/012_discovery.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/012_discovery.js +0 -28
- package/node_modules/@openrig/daemon/dist/db/migrations/012_discovery.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/013_discovery_fk_fix.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/013_discovery_fk_fix.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/013_discovery_fk_fix.js +0 -37
- package/node_modules/@openrig/daemon/dist/db/migrations/013_discovery_fk_fix.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/014_agentspec_reboot.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/014_agentspec_reboot.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/014_agentspec_reboot.js +0 -47
- package/node_modules/@openrig/daemon/dist/db/migrations/014_agentspec_reboot.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/015_startup_context.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/015_startup_context.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/015_startup_context.js +0 -15
- package/node_modules/@openrig/daemon/dist/db/migrations/015_startup_context.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/016_chat_messages.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/016_chat_messages.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/016_chat_messages.js +0 -17
- package/node_modules/@openrig/daemon/dist/db/migrations/016_chat_messages.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/017_pod_namespace.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/017_pod_namespace.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/017_pod_namespace.js +0 -9
- package/node_modules/@openrig/daemon/dist/db/migrations/017_pod_namespace.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/018_context_usage.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/018_context_usage.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/018_context_usage.js +0 -23
- package/node_modules/@openrig/daemon/dist/db/migrations/018_context_usage.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/019_external_cli_attachment.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/019_external_cli_attachment.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/019_external_cli_attachment.js +0 -8
- package/node_modules/@openrig/daemon/dist/db/migrations/019_external_cli_attachment.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/020_rig_services.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/020_rig_services.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/020_rig_services.js +0 -17
- package/node_modules/@openrig/daemon/dist/db/migrations/020_rig_services.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/021_seat_handover_observability.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/021_seat_handover_observability.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/021_seat_handover_observability.js +0 -11
- package/node_modules/@openrig/daemon/dist/db/migrations/021_seat_handover_observability.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/022_node_codex_config_profile.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/022_node_codex_config_profile.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/022_node_codex_config_profile.js +0 -7
- package/node_modules/@openrig/daemon/dist/db/migrations/022_node_codex_config_profile.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/023_stream_items.d.ts +0 -16
- package/node_modules/@openrig/daemon/dist/db/migrations/023_stream_items.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/023_stream_items.js +0 -37
- package/node_modules/@openrig/daemon/dist/db/migrations/023_stream_items.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/024_queue_items.d.ts +0 -19
- package/node_modules/@openrig/daemon/dist/db/migrations/024_queue_items.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/024_queue_items.js +0 -52
- package/node_modules/@openrig/daemon/dist/db/migrations/024_queue_items.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/025_queue_transitions.d.ts +0 -13
- package/node_modules/@openrig/daemon/dist/db/migrations/025_queue_transitions.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/025_queue_transitions.js +0 -28
- package/node_modules/@openrig/daemon/dist/db/migrations/025_queue_transitions.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/026_inbox_entries.d.ts +0 -14
- package/node_modules/@openrig/daemon/dist/db/migrations/026_inbox_entries.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/026_inbox_entries.js +0 -35
- package/node_modules/@openrig/daemon/dist/db/migrations/026_inbox_entries.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/027_outbox_entries.d.ts +0 -12
- package/node_modules/@openrig/daemon/dist/db/migrations/027_outbox_entries.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/027_outbox_entries.js +0 -30
- package/node_modules/@openrig/daemon/dist/db/migrations/027_outbox_entries.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/028_project_classifications.d.ts +0 -26
- package/node_modules/@openrig/daemon/dist/db/migrations/028_project_classifications.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/028_project_classifications.js +0 -44
- package/node_modules/@openrig/daemon/dist/db/migrations/028_project_classifications.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/029_classifier_leases.d.ts +0 -22
- package/node_modules/@openrig/daemon/dist/db/migrations/029_classifier_leases.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/029_classifier_leases.js +0 -41
- package/node_modules/@openrig/daemon/dist/db/migrations/029_classifier_leases.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/030_views_custom.d.ts +0 -15
- package/node_modules/@openrig/daemon/dist/db/migrations/030_views_custom.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/030_views_custom.js +0 -27
- package/node_modules/@openrig/daemon/dist/db/migrations/030_views_custom.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/031_watchdog_jobs.d.ts +0 -34
- package/node_modules/@openrig/daemon/dist/db/migrations/031_watchdog_jobs.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/031_watchdog_jobs.js +0 -59
- package/node_modules/@openrig/daemon/dist/db/migrations/031_watchdog_jobs.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/032_watchdog_history.d.ts +0 -28
- package/node_modules/@openrig/daemon/dist/db/migrations/032_watchdog_history.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/032_watchdog_history.js +0 -46
- package/node_modules/@openrig/daemon/dist/db/migrations/032_watchdog_history.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/033_workflow_specs.d.ts +0 -30
- package/node_modules/@openrig/daemon/dist/db/migrations/033_workflow_specs.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/033_workflow_specs.js +0 -50
- package/node_modules/@openrig/daemon/dist/db/migrations/033_workflow_specs.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/034_workflow_instances.d.ts +0 -42
- package/node_modules/@openrig/daemon/dist/db/migrations/034_workflow_instances.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/034_workflow_instances.js +0 -63
- package/node_modules/@openrig/daemon/dist/db/migrations/034_workflow_instances.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/035_workflow_step_trails.d.ts +0 -29
- package/node_modules/@openrig/daemon/dist/db/migrations/035_workflow_step_trails.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/035_workflow_step_trails.js +0 -48
- package/node_modules/@openrig/daemon/dist/db/migrations/035_workflow_step_trails.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.d.ts +0 -35
- package/node_modules/@openrig/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.js +0 -43
- package/node_modules/@openrig/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/037_mission_control_actions.d.ts +0 -55
- package/node_modules/@openrig/daemon/dist/db/migrations/037_mission_control_actions.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/037_mission_control_actions.js +0 -78
- package/node_modules/@openrig/daemon/dist/db/migrations/037_mission_control_actions.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/038_workspace_primitive.d.ts +0 -16
- package/node_modules/@openrig/daemon/dist/db/migrations/038_workspace_primitive.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/038_workspace_primitive.js +0 -20
- package/node_modules/@openrig/daemon/dist/db/migrations/038_workspace_primitive.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/039_queue_target_repo.d.ts +0 -16
- package/node_modules/@openrig/daemon/dist/db/migrations/039_queue_target_repo.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/039_queue_target_repo.js +0 -21
- package/node_modules/@openrig/daemon/dist/db/migrations/039_queue_target_repo.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/040_workflow_specs_diagnostic.d.ts +0 -32
- package/node_modules/@openrig/daemon/dist/db/migrations/040_workflow_specs_diagnostic.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/040_workflow_specs_diagnostic.js +0 -37
- package/node_modules/@openrig/daemon/dist/db/migrations/040_workflow_specs_diagnostic.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/041_rig_policy.d.ts +0 -32
- package/node_modules/@openrig/daemon/dist/db/migrations/041_rig_policy.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/041_rig_policy.js +0 -47
- package/node_modules/@openrig/daemon/dist/db/migrations/041_rig_policy.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/042_rig_archive.d.ts +0 -16
- package/node_modules/@openrig/daemon/dist/db/migrations/042_rig_archive.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/042_rig_archive.js +0 -21
- package/node_modules/@openrig/daemon/dist/db/migrations/042_rig_archive.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/043_resume_provenance.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/043_resume_provenance.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/043_resume_provenance.js +0 -5
- package/node_modules/@openrig/daemon/dist/db/migrations/043_resume_provenance.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/044_queue_item_summary.d.ts +0 -21
- package/node_modules/@openrig/daemon/dist/db/migrations/044_queue_item_summary.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/044_queue_item_summary.js +0 -25
- package/node_modules/@openrig/daemon/dist/db/migrations/044_queue_item_summary.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/045_resume_verification.d.ts +0 -29
- package/node_modules/@openrig/daemon/dist/db/migrations/045_resume_verification.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/045_resume_verification.js +0 -34
- package/node_modules/@openrig/daemon/dist/db/migrations/045_resume_verification.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts +0 -44
- package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.js +0 -59
- package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/047_events_node_type_index.d.ts +0 -48
- package/node_modules/@openrig/daemon/dist/db/migrations/047_events_node_type_index.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/047_events_node_type_index.js +0 -52
- package/node_modules/@openrig/daemon/dist/db/migrations/047_events_node_type_index.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/048_queue_item_evidence_ref.d.ts +0 -18
- package/node_modules/@openrig/daemon/dist/db/migrations/048_queue_item_evidence_ref.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/048_queue_item_evidence_ref.js +0 -22
- package/node_modules/@openrig/daemon/dist/db/migrations/048_queue_item_evidence_ref.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/049_workflow_instance_version.d.ts +0 -20
- package/node_modules/@openrig/daemon/dist/db/migrations/049_workflow_instance_version.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/049_workflow_instance_version.js +0 -24
- package/node_modules/@openrig/daemon/dist/db/migrations/049_workflow_instance_version.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/050_workflow_spec_json.d.ts +0 -22
- package/node_modules/@openrig/daemon/dist/db/migrations/050_workflow_spec_json.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/050_workflow_spec_json.js +0 -26
- package/node_modules/@openrig/daemon/dist/db/migrations/050_workflow_spec_json.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/051_workflow_resume.d.ts +0 -22
- package/node_modules/@openrig/daemon/dist/db/migrations/051_workflow_resume.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/051_workflow_resume.js +0 -27
- package/node_modules/@openrig/daemon/dist/db/migrations/051_workflow_resume.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts +0 -26
- package/node_modules/@openrig/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js +0 -30
- package/node_modules/@openrig/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts +0 -48
- package/node_modules/@openrig/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/053_sessions_node_id_index.js +0 -53
- package/node_modules/@openrig/daemon/dist/db/migrations/053_sessions_node_id_index.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts +0 -34
- package/node_modules/@openrig/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/054_queue_transitions_archive.js +0 -49
- package/node_modules/@openrig/daemon/dist/db/migrations/054_queue_transitions_archive.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/055_node_permission_policy.d.ts +0 -13
- package/node_modules/@openrig/daemon/dist/db/migrations/055_node_permission_policy.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/055_node_permission_policy.js +0 -17
- package/node_modules/@openrig/daemon/dist/db/migrations/055_node_permission_policy.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/056_rig_permission_policy.d.ts +0 -13
- package/node_modules/@openrig/daemon/dist/db/migrations/056_rig_permission_policy.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/056_rig_permission_policy.js +0 -17
- package/node_modules/@openrig/daemon/dist/db/migrations/056_rig_permission_policy.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/057_node_policy_provenance.d.ts +0 -19
- package/node_modules/@openrig/daemon/dist/db/migrations/057_node_policy_provenance.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/057_node_policy_provenance.js +0 -26
- package/node_modules/@openrig/daemon/dist/db/migrations/057_node_policy_provenance.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts +0 -15
- package/node_modules/@openrig/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/058_rig_policy_provenance.js +0 -22
- package/node_modules/@openrig/daemon/dist/db/migrations/058_rig_policy_provenance.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/059_self_host_identity.d.ts +0 -20
- package/node_modules/@openrig/daemon/dist/db/migrations/059_self_host_identity.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/059_self_host_identity.js +0 -29
- package/node_modules/@openrig/daemon/dist/db/migrations/059_self_host_identity.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/060_occupant_tenures.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/060_occupant_tenures.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/060_occupant_tenures.js +0 -32
- package/node_modules/@openrig/daemon/dist/db/migrations/060_occupant_tenures.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/061_daemon_lifecycle.d.ts +0 -22
- package/node_modules/@openrig/daemon/dist/db/migrations/061_daemon_lifecycle.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/061_daemon_lifecycle.js +0 -32
- package/node_modules/@openrig/daemon/dist/db/migrations/061_daemon_lifecycle.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/062_usage_samples.d.ts +0 -30
- package/node_modules/@openrig/daemon/dist/db/migrations/062_usage_samples.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/062_usage_samples.js +0 -52
- package/node_modules/@openrig/daemon/dist/db/migrations/062_usage_samples.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/063_occupant_generation_stamps.d.ts +0 -24
- package/node_modules/@openrig/daemon/dist/db/migrations/063_occupant_generation_stamps.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/063_occupant_generation_stamps.js +0 -30
- package/node_modules/@openrig/daemon/dist/db/migrations/063_occupant_generation_stamps.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/064_projection_manifest.d.ts +0 -20
- package/node_modules/@openrig/daemon/dist/db/migrations/064_projection_manifest.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/064_projection_manifest.js +0 -30
- package/node_modules/@openrig/daemon/dist/db/migrations/064_projection_manifest.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/065_identity_provenance.d.ts +0 -15
- package/node_modules/@openrig/daemon/dist/db/migrations/065_identity_provenance.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/065_identity_provenance.js +0 -19
- package/node_modules/@openrig/daemon/dist/db/migrations/065_identity_provenance.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/066_watchdog_target_generation.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/db/migrations/066_watchdog_target_generation.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/066_watchdog_target_generation.js +0 -21
- package/node_modules/@openrig/daemon/dist/db/migrations/066_watchdog_target_generation.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/067_i3_identity_provenance.d.ts +0 -12
- package/node_modules/@openrig/daemon/dist/db/migrations/067_i3_identity_provenance.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/067_i3_identity_provenance.js +0 -19
- package/node_modules/@openrig/daemon/dist/db/migrations/067_i3_identity_provenance.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/068_enforcer_decisions.d.ts +0 -4
- package/node_modules/@openrig/daemon/dist/db/migrations/068_enforcer_decisions.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/068_enforcer_decisions.js +0 -40
- package/node_modules/@openrig/daemon/dist/db/migrations/068_enforcer_decisions.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/069_applied_launch_observations.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/069_applied_launch_observations.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/069_applied_launch_observations.js +0 -18
- package/node_modules/@openrig/daemon/dist/db/migrations/069_applied_launch_observations.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/070_applied_launch_observation_invalidations.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/070_applied_launch_observation_invalidations.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/070_applied_launch_observation_invalidations.js +0 -12
- package/node_modules/@openrig/daemon/dist/db/migrations/070_applied_launch_observation_invalidations.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/071_drop_enforcer_decisions.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/071_drop_enforcer_decisions.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/071_drop_enforcer_decisions.js +0 -18
- package/node_modules/@openrig/daemon/dist/db/migrations/071_drop_enforcer_decisions.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.js +0 -22
- package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.js +0 -21
- package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts +0 -4
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js +0 -11
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts +0 -4
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js +0 -8
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts +0 -8
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js +0 -15
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.d.ts +0 -4
- package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.js +0 -6
- package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.js +0 -21
- package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts +0 -8
- package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js +0 -50
- package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/080_scoped_operating_posture.d.ts +0 -4
- package/node_modules/@openrig/daemon/dist/db/migrations/080_scoped_operating_posture.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/080_scoped_operating_posture.js +0 -21
- package/node_modules/@openrig/daemon/dist/db/migrations/080_scoped_operating_posture.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/081_human_notification_intent.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/db/migrations/081_human_notification_intent.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/081_human_notification_intent.js +0 -9
- package/node_modules/@openrig/daemon/dist/db/migrations/081_human_notification_intent.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/082_archive_identity_provenance.d.ts +0 -5
- package/node_modules/@openrig/daemon/dist/db/migrations/082_archive_identity_provenance.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/082_archive_identity_provenance.js +0 -7
- package/node_modules/@openrig/daemon/dist/db/migrations/082_archive_identity_provenance.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/083_review_read_indexes.d.ts +0 -4
- package/node_modules/@openrig/daemon/dist/db/migrations/083_review_read_indexes.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/083_review_read_indexes.js +0 -12
- package/node_modules/@openrig/daemon/dist/db/migrations/083_review_read_indexes.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/084_inventory_event_indexes.d.ts +0 -5
- package/node_modules/@openrig/daemon/dist/db/migrations/084_inventory_event_indexes.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/084_inventory_event_indexes.js +0 -14
- package/node_modules/@openrig/daemon/dist/db/migrations/084_inventory_event_indexes.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/085_rig_claude_managed_block_file.d.ts +0 -13
- package/node_modules/@openrig/daemon/dist/db/migrations/085_rig_claude_managed_block_file.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/085_rig_claude_managed_block_file.js +0 -17
- package/node_modules/@openrig/daemon/dist/db/migrations/085_rig_claude_managed_block_file.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/active-lens-store.d.ts +0 -23
- package/node_modules/@openrig/daemon/dist/domain/active-lens-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/active-lens-store.js +0 -87
- package/node_modules/@openrig/daemon/dist/domain/active-lens-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +0 -55
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +0 -133
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/activity-endpoint.d.ts +0 -25
- package/node_modules/@openrig/daemon/dist/domain/activity-endpoint.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/activity-endpoint.js +0 -91
- package/node_modules/@openrig/daemon/dist/domain/activity-endpoint.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.d.ts +0 -112
- package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.js +0 -99
- package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-activity-store.d.ts +0 -92
- package/node_modules/@openrig/daemon/dist/domain/agent-activity-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-activity-store.js +0 -321
- package/node_modules/@openrig/daemon/dist/domain/agent-activity-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/agent-image-library-service.d.ts +0 -68
- package/node_modules/@openrig/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/agent-image-library-service.js +0 -339
- package/node_modules/@openrig/daemon/dist/domain/agent-images/agent-image-library-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/agent-image-types.d.ts +0 -113
- package/node_modules/@openrig/daemon/dist/domain/agent-images/agent-image-types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/agent-image-types.js +0 -24
- package/node_modules/@openrig/daemon/dist/domain/agent-images/agent-image-types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/evidence-guard.d.ts +0 -26
- package/node_modules/@openrig/daemon/dist/domain/agent-images/evidence-guard.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/evidence-guard.js +0 -185
- package/node_modules/@openrig/daemon/dist/domain/agent-images/evidence-guard.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/manifest-parser.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/domain/agent-images/manifest-parser.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/manifest-parser.js +0 -114
- package/node_modules/@openrig/daemon/dist/domain/agent-images/manifest-parser.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/resume-token-discovery.d.ts +0 -28
- package/node_modules/@openrig/daemon/dist/domain/agent-images/resume-token-discovery.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/resume-token-discovery.js +0 -83
- package/node_modules/@openrig/daemon/dist/domain/agent-images/resume-token-discovery.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/snapshot-capturer.d.ts +0 -36
- package/node_modules/@openrig/daemon/dist/domain/agent-images/snapshot-capturer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-images/snapshot-capturer.js +0 -59
- package/node_modules/@openrig/daemon/dist/domain/agent-images/snapshot-capturer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts +0 -27
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js +0 -494
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-preflight.d.ts +0 -12
- package/node_modules/@openrig/daemon/dist/domain/agent-preflight.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-preflight.js +0 -37
- package/node_modules/@openrig/daemon/dist/domain/agent-preflight.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts +0 -77
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js +0 -248
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-starter-resolver.d.ts +0 -94
- package/node_modules/@openrig/daemon/dist/domain/agent-starter-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-starter-resolver.js +0 -198
- package/node_modules/@openrig/daemon/dist/domain/agent-starter-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/applied-launch-observation-store.d.ts +0 -20
- package/node_modules/@openrig/daemon/dist/domain/applied-launch-observation-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/applied-launch-observation-store.js +0 -90
- package/node_modules/@openrig/daemon/dist/domain/applied-launch-observation-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/ask-service.d.ts +0 -86
- package/node_modules/@openrig/daemon/dist/domain/ask-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/ask-service.js +0 -200
- package/node_modules/@openrig/daemon/dist/domain/ask-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bind-plan.d.ts +0 -19
- package/node_modules/@openrig/daemon/dist/domain/bind-plan.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bind-plan.js +0 -25
- package/node_modules/@openrig/daemon/dist/domain/bind-plan.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.d.ts +0 -85
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.js +0 -690
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-repository.d.ts +0 -23
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-repository.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-repository.js +0 -78
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-repository.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-types.d.ts +0 -43
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-types.js +0 -2
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/builtin-policy-reference.d.ts +0 -13
- package/node_modules/@openrig/daemon/dist/domain/builtin-policy-reference.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/builtin-policy-reference.js +0 -58
- package/node_modules/@openrig/daemon/dist/domain/builtin-policy-reference.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-agent-images-router.d.ts +0 -95
- package/node_modules/@openrig/daemon/dist/domain/bundle-agent-images-router.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-agent-images-router.js +0 -140
- package/node_modules/@openrig/daemon/dist/domain/bundle-agent-images-router.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-archive.d.ts +0 -23
- package/node_modules/@openrig/daemon/dist/domain/bundle-archive.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-archive.js +0 -156
- package/node_modules/@openrig/daemon/dist/domain/bundle-archive.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-assembler.d.ts +0 -51
- package/node_modules/@openrig/daemon/dist/domain/bundle-assembler.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-assembler.js +0 -96
- package/node_modules/@openrig/daemon/dist/domain/bundle-assembler.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-audit.d.ts +0 -89
- package/node_modules/@openrig/daemon/dist/domain/bundle-audit.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-audit.js +0 -87
- package/node_modules/@openrig/daemon/dist/domain/bundle-audit.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-conflict-detector.d.ts +0 -57
- package/node_modules/@openrig/daemon/dist/domain/bundle-conflict-detector.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-conflict-detector.js +0 -49
- package/node_modules/@openrig/daemon/dist/domain/bundle-conflict-detector.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts +0 -107
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js +0 -176
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-integrity.d.ts +0 -30
- package/node_modules/@openrig/daemon/dist/domain/bundle-integrity.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-integrity.js +0 -120
- package/node_modules/@openrig/daemon/dist/domain/bundle-integrity.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-plugins-router.d.ts +0 -69
- package/node_modules/@openrig/daemon/dist/domain/bundle-plugins-router.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-plugins-router.js +0 -87
- package/node_modules/@openrig/daemon/dist/domain/bundle-plugins-router.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.d.ts +0 -65
- package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.js +0 -94
- package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-source-resolver.d.ts +0 -44
- package/node_modules/@openrig/daemon/dist/domain/bundle-source-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-source-resolver.js +0 -158
- package/node_modules/@openrig/daemon/dist/domain/bundle-source-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-types.d.ts +0 -184
- package/node_modules/@openrig/daemon/dist/domain/bundle-types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-types.js +0 -593
- package/node_modules/@openrig/daemon/dist/domain/bundle-types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-workflow-specs-router.d.ts +0 -94
- package/node_modules/@openrig/daemon/dist/domain/bundle-workflow-specs-router.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-workflow-specs-router.js +0 -144
- package/node_modules/@openrig/daemon/dist/domain/bundle-workflow-specs-router.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/chat-repository.d.ts +0 -31
- package/node_modules/@openrig/daemon/dist/domain/chat-repository.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/chat-repository.js +0 -105
- package/node_modules/@openrig/daemon/dist/domain/chat-repository.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/checkpoint-store.d.ts +0 -24
- package/node_modules/@openrig/daemon/dist/domain/checkpoint-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/checkpoint-store.js +0 -55
- package/node_modules/@openrig/daemon/dist/domain/checkpoint-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/claim-service.d.ts +0 -196
- package/node_modules/@openrig/daemon/dist/domain/claim-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/claim-service.js +0 -577
- package/node_modules/@openrig/daemon/dist/domain/claim-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/classifier-lease-manager.d.ts +0 -130
- package/node_modules/@openrig/daemon/dist/domain/classifier-lease-manager.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/classifier-lease-manager.js +0 -285
- package/node_modules/@openrig/daemon/dist/domain/classifier-lease-manager.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/claude-activity-hooks.d.ts +0 -33
- package/node_modules/@openrig/daemon/dist/domain/claude-activity-hooks.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/claude-activity-hooks.js +0 -60
- package/node_modules/@openrig/daemon/dist/domain/claude-activity-hooks.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts +0 -166
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js +0 -540
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/cmux-layout-service.d.ts +0 -77
- package/node_modules/@openrig/daemon/dist/domain/cmux-layout-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/cmux-layout-service.js +0 -256
- package/node_modules/@openrig/daemon/dist/domain/cmux-layout-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/codex-profile-preflight.d.ts +0 -8
- package/node_modules/@openrig/daemon/dist/domain/codex-profile-preflight.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/codex-profile-preflight.js +0 -43
- package/node_modules/@openrig/daemon/dist/domain/codex-profile-preflight.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +0 -103
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +0 -278
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/compose-project-name.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/domain/compose-project-name.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/compose-project-name.js +0 -16
- package/node_modules/@openrig/daemon/dist/domain/compose-project-name.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/conflict-detector.d.ts +0 -40
- package/node_modules/@openrig/daemon/dist/domain/conflict-detector.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/conflict-detector.js +0 -168
- package/node_modules/@openrig/daemon/dist/domain/conflict-detector.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-monitor.d.ts +0 -62
- package/node_modules/@openrig/daemon/dist/domain/context-monitor.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-monitor.js +0 -239
- package/node_modules/@openrig/daemon/dist/domain/context-monitor.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/bundle-assembler.d.ts +0 -79
- package/node_modules/@openrig/daemon/dist/domain/context-packs/bundle-assembler.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/bundle-assembler.js +0 -111
- package/node_modules/@openrig/daemon/dist/domain/context-packs/bundle-assembler.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.d.ts +0 -96
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js +0 -378
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +0 -148
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +0 -43
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +0 -468
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +0 -34
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js +0 -38
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +0 -70
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +0 -190
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +0 -55
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +0 -130
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/ref-safety.d.ts +0 -11
- package/node_modules/@openrig/daemon/dist/domain/context-packs/ref-safety.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/ref-safety.js +0 -46
- package/node_modules/@openrig/daemon/dist/domain/context-packs/ref-safety.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts +0 -48
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js +0 -123
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/token-estimate.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/domain/context-packs/token-estimate.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/token-estimate.js +0 -5
- package/node_modules/@openrig/daemon/dist/domain/context-packs/token-estimate.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts +0 -99
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js +0 -386
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts +0 -88
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js +0 -290
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts +0 -65
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js +0 -99
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts +0 -186
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js +0 -235
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-detect.d.ts +0 -45
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-detect.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-detect.js +0 -56
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-detect.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-discovery.d.ts +0 -139
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-discovery.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-discovery.js +0 -225
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-discovery.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-emit.d.ts +0 -22
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-emit.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-emit.js +0 -23
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-emit.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.d.ts +0 -24
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.js +0 -109
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/current-work.d.ts +0 -73
- package/node_modules/@openrig/daemon/dist/domain/current-work.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/current-work.js +0 -225
- package/node_modules/@openrig/daemon/dist/domain/current-work.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/cwd-resolution.d.ts +0 -5
- package/node_modules/@openrig/daemon/dist/domain/cwd-resolution.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/cwd-resolution.js +0 -29
- package/node_modules/@openrig/daemon/dist/domain/cwd-resolution.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/daemon-lifecycle-store.d.ts +0 -30
- package/node_modules/@openrig/daemon/dist/domain/daemon-lifecycle-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/daemon-lifecycle-store.js +0 -53
- package/node_modules/@openrig/daemon/dist/domain/daemon-lifecycle-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/daemon-version.d.ts +0 -15
- package/node_modules/@openrig/daemon/dist/domain/daemon-version.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/daemon-version.js +0 -28
- package/node_modules/@openrig/daemon/dist/domain/daemon-version.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/demo-rig-selector.d.ts +0 -11
- package/node_modules/@openrig/daemon/dist/domain/demo-rig-selector.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/demo-rig-selector.js +0 -21
- package/node_modules/@openrig/daemon/dist/domain/demo-rig-selector.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/discovery-coordinator.d.ts +0 -28
- package/node_modules/@openrig/daemon/dist/domain/discovery-coordinator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/discovery-coordinator.js +0 -107
- package/node_modules/@openrig/daemon/dist/domain/discovery-coordinator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/discovery-repository.d.ts +0 -31
- package/node_modules/@openrig/daemon/dist/domain/discovery-repository.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/discovery-repository.js +0 -75
- package/node_modules/@openrig/daemon/dist/domain/discovery-repository.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/discovery-types.d.ts +0 -27
- package/node_modules/@openrig/daemon/dist/domain/discovery-types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/discovery-types.js +0 -2
- package/node_modules/@openrig/daemon/dist/domain/discovery-types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/draft-rig-generator.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/domain/draft-rig-generator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/draft-rig-generator.js +0 -87
- package/node_modules/@openrig/daemon/dist/domain/draft-rig-generator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/errors.d.ts +0 -4
- package/node_modules/@openrig/daemon/dist/domain/errors.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/errors.js +0 -7
- package/node_modules/@openrig/daemon/dist/domain/errors.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/event-bus.d.ts +0 -73
- package/node_modules/@openrig/daemon/dist/domain/event-bus.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/event-bus.js +0 -230
- package/node_modules/@openrig/daemon/dist/domain/event-bus.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/event-loop-monitor.d.ts +0 -100
- package/node_modules/@openrig/daemon/dist/domain/event-loop-monitor.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/event-loop-monitor.js +0 -127
- package/node_modules/@openrig/daemon/dist/domain/event-loop-monitor.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts +0 -40
- package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js +0 -1120
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/external-install-executor.d.ts +0 -47
- package/node_modules/@openrig/daemon/dist/domain/external-install-executor.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/external-install-executor.js +0 -87
- package/node_modules/@openrig/daemon/dist/domain/external-install-executor.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/external-install-planner.d.ts +0 -41
- package/node_modules/@openrig/daemon/dist/domain/external-install-planner.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/external-install-planner.js +0 -83
- package/node_modules/@openrig/daemon/dist/domain/external-install-planner.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/feed/attention-aggregator.d.ts +0 -31
- package/node_modules/@openrig/daemon/dist/domain/feed/attention-aggregator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/feed/attention-aggregator.js +0 -119
- package/node_modules/@openrig/daemon/dist/domain/feed/attention-aggregator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/files/file-read.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/domain/files/file-read.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/files/file-read.js +0 -24
- package/node_modules/@openrig/daemon/dist/domain/files/file-read.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/files/file-write-service.d.ts +0 -73
- package/node_modules/@openrig/daemon/dist/domain/files/file-write-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/files/file-write-service.js +0 -259
- package/node_modules/@openrig/daemon/dist/domain/files/file-write-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/files/path-safety.d.ts +0 -47
- package/node_modules/@openrig/daemon/dist/domain/files/path-safety.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/files/path-safety.js +0 -176
- package/node_modules/@openrig/daemon/dist/domain/files/path-safety.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/fresh-occupant-relation.d.ts +0 -8
- package/node_modules/@openrig/daemon/dist/domain/fresh-occupant-relation.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/fresh-occupant-relation.js +0 -31
- package/node_modules/@openrig/daemon/dist/domain/fresh-occupant-relation.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gate-predicate.d.ts +0 -29
- package/node_modules/@openrig/daemon/dist/domain/gate-predicate.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gate-predicate.js +0 -73
- package/node_modules/@openrig/daemon/dist/domain/gate-predicate.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts +0 -39
- package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.js +0 -35
- package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.d.ts +0 -90
- package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.js +0 -171
- package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +0 -60
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js +0 -144
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts +0 -20
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js +0 -52
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatch-buffer.d.ts +0 -15
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatch-buffer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatch-buffer.js +0 -64
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatch-buffer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts +0 -34
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js +0 -57
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/external-admission.d.ts +0 -25
- package/node_modules/@openrig/daemon/dist/domain/gateway/external-admission.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/external-admission.js +0 -41
- package/node_modules/@openrig/daemon/dist/domain/gateway/external-admission.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.js +0 -49
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.d.ts +0 -20
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.js +0 -60
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts +0 -87
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js +0 -154
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.d.ts +0 -37
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.js +0 -44
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +0 -239
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +0 -692
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +0 -32
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js +0 -86
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/protocol.d.ts +0 -54
- package/node_modules/@openrig/daemon/dist/domain/gateway/protocol.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/protocol.js +0 -83
- package/node_modules/@openrig/daemon/dist/domain/gateway/protocol.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts +0 -45
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js +0 -78
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.d.ts +0 -8
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.js +0 -20
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts +0 -156
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js +0 -220
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.d.ts +0 -81
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.js +0 -127
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +0 -59
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js +0 -105
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts +0 -61
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js +0 -102
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.d.ts +0 -21
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.js +0 -73
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts +0 -129
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js +0 -236
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +0 -56
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js +0 -349
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +0 -49
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +0 -535
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +0 -43
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js +0 -157
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts +0 -83
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js +0 -159
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts +0 -19
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js +0 -40
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +0 -60
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js +0 -114
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.d.ts +0 -15
- package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.js +0 -35
- package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/transport.d.ts +0 -24
- package/node_modules/@openrig/daemon/dist/domain/gateway/transport.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/transport.js +0 -85
- package/node_modules/@openrig/daemon/dist/domain/gateway/transport.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts +0 -93
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.js +0 -135
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.d.ts +0 -57
- package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.js +0 -198
- package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-context.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/domain/health-context.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-context.js +0 -165
- package/node_modules/@openrig/daemon/dist/domain/health-context.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-detectors.d.ts +0 -107
- package/node_modules/@openrig/daemon/dist/domain/health-detectors.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-detectors.js +0 -398
- package/node_modules/@openrig/daemon/dist/domain/health-detectors.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.d.ts +0 -193
- package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js +0 -300
- package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.d.ts +0 -25
- package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.js +0 -267
- package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-policy.d.ts +0 -45
- package/node_modules/@openrig/daemon/dist/domain/health-policy.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-policy.js +0 -89
- package/node_modules/@openrig/daemon/dist/domain/health-policy.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-projection.d.ts +0 -239
- package/node_modules/@openrig/daemon/dist/domain/health-projection.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/health-projection.js +0 -312
- package/node_modules/@openrig/daemon/dist/domain/health-projection.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/history-query.d.ts +0 -96
- package/node_modules/@openrig/daemon/dist/domain/history-query.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/history-query.js +0 -306
- package/node_modules/@openrig/daemon/dist/domain/history-query.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.d.ts +0 -51
- package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.js +0 -74
- package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +0 -61
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.js +0 -222
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-writer.d.ts +0 -11
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-writer.js +0 -55
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-writer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/read-through.d.ts +0 -28
- package/node_modules/@openrig/daemon/dist/domain/hosts/read-through.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/read-through.js +0 -143
- package/node_modules/@openrig/daemon/dist/domain/hosts/read-through.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/remote-daemon-http.d.ts +0 -60
- package/node_modules/@openrig/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/remote-daemon-http.js +0 -158
- package/node_modules/@openrig/daemon/dist/domain/hosts/remote-daemon-http.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hot-potato-enforcer.d.ts +0 -45
- package/node_modules/@openrig/daemon/dist/domain/hot-potato-enforcer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/hot-potato-enforcer.js +0 -97
- package/node_modules/@openrig/daemon/dist/domain/hot-potato-enforcer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/human-route-enforcer.d.ts +0 -71
- package/node_modules/@openrig/daemon/dist/domain/human-route-enforcer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/human-route-enforcer.js +0 -80
- package/node_modules/@openrig/daemon/dist/domain/human-route-enforcer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/inbox-handler.d.ts +0 -74
- package/node_modules/@openrig/daemon/dist/domain/inbox-handler.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/inbox-handler.js +0 -189
- package/node_modules/@openrig/daemon/dist/domain/inbox-handler.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/install-engine.d.ts +0 -33
- package/node_modules/@openrig/daemon/dist/domain/install-engine.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/install-engine.js +0 -170
- package/node_modules/@openrig/daemon/dist/domain/install-engine.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/install-planner.d.ts +0 -38
- package/node_modules/@openrig/daemon/dist/domain/install-planner.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/install-planner.js +0 -243
- package/node_modules/@openrig/daemon/dist/domain/install-planner.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/install-policy.d.ts +0 -20
- package/node_modules/@openrig/daemon/dist/domain/install-policy.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/install-policy.js +0 -56
- package/node_modules/@openrig/daemon/dist/domain/install-policy.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/install-repository.d.ts +0 -55
- package/node_modules/@openrig/daemon/dist/domain/install-repository.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/install-repository.js +0 -122
- package/node_modules/@openrig/daemon/dist/domain/install-repository.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/install-verifier.d.ts +0 -31
- package/node_modules/@openrig/daemon/dist/domain/install-verifier.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/install-verifier.js +0 -146
- package/node_modules/@openrig/daemon/dist/domain/install-verifier.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/instance-initialization.d.ts +0 -25
- package/node_modules/@openrig/daemon/dist/domain/instance-initialization.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/instance-initialization.js +0 -81
- package/node_modules/@openrig/daemon/dist/domain/instance-initialization.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/kernel-boot-tracker.d.ts +0 -74
- package/node_modules/@openrig/daemon/dist/domain/kernel-boot-tracker.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/kernel-boot-tracker.js +0 -213
- package/node_modules/@openrig/daemon/dist/domain/kernel-boot-tracker.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/kernel-boot.d.ts +0 -52
- package/node_modules/@openrig/daemon/dist/domain/kernel-boot.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/kernel-boot.js +0 -147
- package/node_modules/@openrig/daemon/dist/domain/kernel-boot.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.d.ts +0 -19
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.js +0 -73
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.d.ts +0 -18
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.js +0 -35
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/managed-blocks.d.ts +0 -21
- package/node_modules/@openrig/daemon/dist/domain/managed-blocks.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/managed-blocks.js +0 -85
- package/node_modules/@openrig/daemon/dist/domain/managed-blocks.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts +0 -56
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.js +0 -188
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/audit-browse.d.ts +0 -34
- package/node_modules/@openrig/daemon/dist/domain/mission-control/audit-browse.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/audit-browse.js +0 -121
- package/node_modules/@openrig/daemon/dist/domain/mission-control/audit-browse.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +0 -56
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-action-log.js +0 -168
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-action-log.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +0 -131
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +0 -232
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +0 -90
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.js +0 -282
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +0 -100
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js +0 -441
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +0 -18
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +0 -48
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +0 -25
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-types.js +0 -7
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +0 -27
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-webhook.js +0 -47
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-dispatcher.d.ts +0 -53
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-dispatcher.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-dispatcher.js +0 -181
- package/node_modules/@openrig/daemon/dist/domain/mission-control/notification-dispatcher.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +0 -73
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +0 -178
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +0 -14
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js +0 -165
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +0 -125
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js +0 -199
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.d.ts +0 -33
- package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.js +0 -166
- package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.d.ts +0 -22
- package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.js +0 -293
- package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/node-cmux-service.d.ts +0 -22
- package/node_modules/@openrig/daemon/dist/domain/node-cmux-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/node-cmux-service.js +0 -119
- package/node_modules/@openrig/daemon/dist/domain/node-cmux-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts +0 -152
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +0 -1053
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/node-launcher.d.ts +0 -70
- package/node_modules/@openrig/daemon/dist/domain/node-launcher.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/node-launcher.js +0 -165
- package/node_modules/@openrig/daemon/dist/domain/node-launcher.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/occupant-invalidator.d.ts +0 -39
- package/node_modules/@openrig/daemon/dist/domain/occupant-invalidator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/occupant-invalidator.js +0 -55
- package/node_modules/@openrig/daemon/dist/domain/occupant-invalidator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/outbox-handler.d.ts +0 -117
- package/node_modules/@openrig/daemon/dist/domain/outbox-handler.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/outbox-handler.js +0 -249
- package/node_modules/@openrig/daemon/dist/domain/outbox-handler.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/package-install-service.d.ts +0 -64
- package/node_modules/@openrig/daemon/dist/domain/package-install-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/package-install-service.js +0 -80
- package/node_modules/@openrig/daemon/dist/domain/package-install-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/package-manifest.d.ts +0 -93
- package/node_modules/@openrig/daemon/dist/domain/package-manifest.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/package-manifest.js +0 -407
- package/node_modules/@openrig/daemon/dist/domain/package-manifest.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/package-repository.d.ts +0 -33
- package/node_modules/@openrig/daemon/dist/domain/package-repository.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/package-repository.js +0 -63
- package/node_modules/@openrig/daemon/dist/domain/package-repository.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/package-resolve-helper.d.ts +0 -19
- package/node_modules/@openrig/daemon/dist/domain/package-resolve-helper.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/package-resolve-helper.js +0 -47
- package/node_modules/@openrig/daemon/dist/domain/package-resolve-helper.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/package-resolver.d.ts +0 -19
- package/node_modules/@openrig/daemon/dist/domain/package-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/package-resolver.js +0 -35
- package/node_modules/@openrig/daemon/dist/domain/package-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.d.ts +0 -22
- package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.js +0 -54
- package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts +0 -83
- package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/parked-query.js +0 -128
- package/node_modules/@openrig/daemon/dist/domain/parked-query.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/path-safety.d.ts +0 -8
- package/node_modules/@openrig/daemon/dist/domain/path-safety.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/path-safety.js +0 -24
- package/node_modules/@openrig/daemon/dist/domain/path-safety.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +0 -29
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js +0 -80
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.d.ts +0 -35
- package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js +0 -113
- package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-drift.d.ts +0 -60
- package/node_modules/@openrig/daemon/dist/domain/permission-drift.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-drift.js +0 -208
- package/node_modules/@openrig/daemon/dist/domain/permission-drift.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-policy/policy-ref.d.ts +0 -89
- package/node_modules/@openrig/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-policy/policy-ref.js +0 -171
- package/node_modules/@openrig/daemon/dist/domain/permission-policy/policy-ref.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-policy/policy-spec.d.ts +0 -34
- package/node_modules/@openrig/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-policy/policy-spec.js +0 -106
- package/node_modules/@openrig/daemon/dist/domain/permission-policy/policy-spec.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts +0 -166
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js +0 -642
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts +0 -74
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js +0 -247
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.d.ts +0 -58
- package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js +0 -225
- package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/pod-repository.d.ts +0 -47
- package/node_modules/@openrig/daemon/dist/domain/pod-repository.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/pod-repository.js +0 -90
- package/node_modules/@openrig/daemon/dist/domain/pod-repository.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/artifact-pool-helpers.d.ts +0 -64
- package/node_modules/@openrig/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/artifact-pool-helpers.js +0 -226
- package/node_modules/@openrig/daemon/dist/domain/policies/artifact-pool-helpers.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/artifact-pool-ready.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/domain/policies/artifact-pool-ready.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/artifact-pool-ready.js +0 -41
- package/node_modules/@openrig/daemon/dist/domain/policies/artifact-pool-ready.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js +0 -99
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts +0 -54
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js +0 -153
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts +0 -45
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js +0 -114
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/edge-artifact-required.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/domain/policies/edge-artifact-required.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/edge-artifact-required.js +0 -90
- package/node_modules/@openrig/daemon/dist/domain/policies/edge-artifact-required.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.d.ts +0 -14
- package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.js +0 -222
- package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts +0 -67
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js +0 -244
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/periodic-reminder.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/domain/policies/periodic-reminder.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/periodic-reminder.js +0 -30
- package/node_modules/@openrig/daemon/dist/domain/policies/periodic-reminder.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts +0 -71
- package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/types.js +0 -9
- package/node_modules/@openrig/daemon/dist/domain/policies/types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts +0 -15
- package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js +0 -227
- package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.d.ts +0 -26
- package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.js +0 -73
- package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/preview/preview-rate-limiter.d.ts +0 -20
- package/node_modules/@openrig/daemon/dist/domain/preview/preview-rate-limiter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/preview/preview-rate-limiter.js +0 -46
- package/node_modules/@openrig/daemon/dist/domain/preview/preview-rate-limiter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts +0 -25
- package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/process-census.js +0 -47
- package/node_modules/@openrig/daemon/dist/domain/process-census.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts +0 -83
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js +0 -382
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/progress/progress-indexer.d.ts +0 -73
- package/node_modules/@openrig/daemon/dist/domain/progress/progress-indexer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/progress/progress-indexer.js +0 -210
- package/node_modules/@openrig/daemon/dist/domain/progress/progress-indexer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/project-classifier.d.ts +0 -75
- package/node_modules/@openrig/daemon/dist/domain/project-classifier.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/project-classifier.js +0 -132
- package/node_modules/@openrig/daemon/dist/domain/project-classifier.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts +0 -44
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js +0 -317
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/projection-lane.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/domain/projection-lane.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/projection-lane.js +0 -28
- package/node_modules/@openrig/daemon/dist/domain/projection-lane.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/projection-manifest-store.d.ts +0 -39
- package/node_modules/@openrig/daemon/dist/domain/projection-manifest-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/projection-manifest-store.js +0 -60
- package/node_modules/@openrig/daemon/dist/domain/projection-manifest-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/projection-planner.d.ts +0 -93
- package/node_modules/@openrig/daemon/dist/domain/projection-planner.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/projection-planner.js +0 -250
- package/node_modules/@openrig/daemon/dist/domain/projection-planner.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/proof/judgments.d.ts +0 -145
- package/node_modules/@openrig/daemon/dist/domain/proof/judgments.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/proof/judgments.js +0 -379
- package/node_modules/@openrig/daemon/dist/domain/proof/judgments.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/proof/source-watch.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/domain/proof/source-watch.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/proof/source-watch.js +0 -60
- package/node_modules/@openrig/daemon/dist/domain/proof/source-watch.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.d.ts +0 -44
- package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.js +0 -122
- package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/codex-auth-reader.d.ts +0 -18
- package/node_modules/@openrig/daemon/dist/domain/provider/codex-auth-reader.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/codex-auth-reader.js +0 -64
- package/node_modules/@openrig/daemon/dist/domain/provider/codex-auth-reader.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/host-usage-rollup.d.ts +0 -51
- package/node_modules/@openrig/daemon/dist/domain/provider/host-usage-rollup.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/host-usage-rollup.js +0 -162
- package/node_modules/@openrig/daemon/dist/domain/provider/host-usage-rollup.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-collect.d.ts +0 -22
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-collect.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-collect.js +0 -74
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-collect.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-policy.d.ts +0 -38
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-policy.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-policy.js +0 -76
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-policy.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-read-model.d.ts +0 -28
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-read-model.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-read-model.js +0 -68
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-read-model.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-service-impl.d.ts +0 -28
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-service-impl.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-service-impl.js +0 -91
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-service-impl.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-service.d.ts +0 -33
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-service.js +0 -6
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts +0 -95
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js +0 -208
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-types.d.ts +0 -101
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-types.js +0 -7
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/reactive-tap.d.ts +0 -50
- package/node_modules/@openrig/daemon/dist/domain/provider/reactive-tap.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/reactive-tap.js +0 -126
- package/node_modules/@openrig/daemon/dist/domain/provider/reactive-tap.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts +0 -137
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.js +0 -256
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-owner.d.ts +0 -12
- package/node_modules/@openrig/daemon/dist/domain/queue-owner.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-owner.js +0 -28
- package/node_modules/@openrig/daemon/dist/domain/queue-owner.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts +0 -41
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js +0 -71
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-recovery.d.ts +0 -10
- package/node_modules/@openrig/daemon/dist/domain/queue-recovery.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-recovery.js +0 -27
- package/node_modules/@openrig/daemon/dist/domain/queue-recovery.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +0 -962
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +0 -2840
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts +0 -145
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.js +0 -264
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts +0 -91
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js +0 -485
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts +0 -91
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js +0 -265
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.d.ts +0 -48
- package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.js +0 -155
- package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-waiting.d.ts +0 -61
- package/node_modules/@openrig/daemon/dist/domain/queue-waiting.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-waiting.js +0 -108
- package/node_modules/@openrig/daemon/dist/domain/queue-waiting.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts +0 -123
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js +0 -765
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +0 -75
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +0 -168
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.d.ts +0 -28
- package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.js +0 -71
- package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.d.ts +0 -28
- package/node_modules/@openrig/daemon/dist/domain/reconciler.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.js +0 -74
- package/node_modules/@openrig/daemon/dist/domain/reconciler.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.d.ts +0 -26
- package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.js +0 -79
- package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/requirements-probe.d.ts +0 -63
- package/node_modules/@openrig/daemon/dist/domain/requirements-probe.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/requirements-probe.js +0 -172
- package/node_modules/@openrig/daemon/dist/domain/requirements-probe.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.d.ts +0 -34
- package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.js +0 -59
- package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-check-service.d.ts +0 -221
- package/node_modules/@openrig/daemon/dist/domain/restore-check-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js +0 -1139
- package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts +0 -222
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +0 -1567
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts +0 -74
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js +0 -177
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-topology.d.ts +0 -14
- package/node_modules/@openrig/daemon/dist/domain/restore-topology.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-topology.js +0 -27
- package/node_modules/@openrig/daemon/dist/domain/restore-topology.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts +0 -122
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js +0 -317
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/resume-token-capture.d.ts +0 -63
- package/node_modules/@openrig/daemon/dist/domain/resume-token-capture.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/resume-token-capture.js +0 -76
- package/node_modules/@openrig/daemon/dist/domain/resume-token-capture.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/resume-token-validation.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/domain/resume-token-validation.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/resume-token-validation.js +0 -94
- package/node_modules/@openrig/daemon/dist/domain/resume-token-validation.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/brief-spine.d.ts +0 -19
- package/node_modules/@openrig/daemon/dist/domain/review/brief-spine.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/brief-spine.js +0 -86
- package/node_modules/@openrig/daemon/dist/domain/review/brief-spine.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +0 -339
- package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/compose.js +0 -997
- package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/fleet-compose.d.ts +0 -53
- package/node_modules/@openrig/daemon/dist/domain/review/fleet-compose.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/fleet-compose.js +0 -308
- package/node_modules/@openrig/daemon/dist/domain/review/fleet-compose.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/freeze.d.ts +0 -34
- package/node_modules/@openrig/daemon/dist/domain/review/freeze.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/freeze.js +0 -257
- package/node_modules/@openrig/daemon/dist/domain/review/freeze.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/gather.d.ts +0 -115
- package/node_modules/@openrig/daemon/dist/domain/review/gather.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/gather.js +0 -845
- package/node_modules/@openrig/daemon/dist/domain/review/gather.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/proof-io.d.ts +0 -2
- package/node_modules/@openrig/daemon/dist/domain/review/proof-io.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/proof-io.js +0 -38
- package/node_modules/@openrig/daemon/dist/domain/review/proof-io.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/types.d.ts +0 -363
- package/node_modules/@openrig/daemon/dist/domain/review/types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/review/types.js +0 -35
- package/node_modules/@openrig/daemon/dist/domain/review/types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.d.ts +0 -27
- package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.js +0 -149
- package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.d.ts +0 -120
- package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js +0 -540
- package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/operating-posture.d.ts +0 -49
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/operating-posture.js +0 -255
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/operating-posture.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts +0 -48
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.js +0 -116
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.d.ts +0 -46
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.js +0 -187
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.d.ts +0 -150
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js +0 -63
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts +0 -58
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.js +0 -211
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts +0 -166
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +0 -512
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-status-compose.d.ts +0 -62
- package/node_modules/@openrig/daemon/dist/domain/rig-status-compose.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-status-compose.js +0 -149
- package/node_modules/@openrig/daemon/dist/domain/rig-status-compose.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-teardown.d.ts +0 -56
- package/node_modules/@openrig/daemon/dist/domain/rig-teardown.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-teardown.js +0 -185
- package/node_modules/@openrig/daemon/dist/domain/rig-teardown.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js +0 -252
- package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.d.ts +0 -21
- package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.js +0 -207
- package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +0 -414
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +0 -2114
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.d.ts +0 -106
- package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.js +0 -378
- package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts +0 -37
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +0 -1252
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/role-resolver.d.ts +0 -21
- package/node_modules/@openrig/daemon/dist/domain/role-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/role-resolver.js +0 -83
- package/node_modules/@openrig/daemon/dist/domain/role-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/route-timing-recorder.d.ts +0 -42
- package/node_modules/@openrig/daemon/dist/domain/route-timing-recorder.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/route-timing-recorder.js +0 -62
- package/node_modules/@openrig/daemon/dist/domain/route-timing-recorder.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts +0 -52
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js +0 -34
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/runtime-adapter.d.ts +0 -114
- package/node_modules/@openrig/daemon/dist/domain/runtime-adapter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/runtime-adapter.js +0 -30
- package/node_modules/@openrig/daemon/dist/domain/runtime-adapter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/runtime-verifier.d.ts +0 -51
- package/node_modules/@openrig/daemon/dist/domain/runtime-verifier.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/runtime-verifier.js +0 -186
- package/node_modules/@openrig/daemon/dist/domain/runtime-verifier.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/attestation-lineage.generated.d.ts +0 -14
- package/node_modules/@openrig/daemon/dist/domain/scope/attestation-lineage.generated.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/attestation-lineage.generated.js +0 -26
- package/node_modules/@openrig/daemon/dist/domain/scope/attestation-lineage.generated.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/dot-id.d.ts +0 -43
- package/node_modules/@openrig/daemon/dist/domain/scope/dot-id.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/dot-id.js +0 -165
- package/node_modules/@openrig/daemon/dist/domain/scope/dot-id.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts +0 -26
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js +0 -65
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts +0 -45
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js +0 -73
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +0 -20
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +0 -100
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +0 -59
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +0 -121
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts +0 -85
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js +0 -291
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +0 -90
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js +0 -414
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.d.ts +0 -73
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js +0 -222
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/types.d.ts +0 -67
- package/node_modules/@openrig/daemon/dist/domain/scope/types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/types.js +0 -46
- package/node_modules/@openrig/daemon/dist/domain/scope/types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +0 -171
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +0 -559
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts +0 -115
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js +0 -443
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.d.ts +0 -98
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.js +0 -201
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +0 -299
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +0 -868
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts +0 -131
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js +0 -367
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-store.d.ts +0 -59
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-store.js +0 -167
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts +0 -167
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +0 -864
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-status-service.d.ts +0 -50
- package/node_modules/@openrig/daemon/dist/domain/seat-status-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-status-service.js +0 -68
- package/node_modules/@openrig/daemon/dist/domain/seat-status-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-structural-activity-service.d.ts +0 -58
- package/node_modules/@openrig/daemon/dist/domain/seat-structural-activity-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-structural-activity-service.js +0 -130
- package/node_modules/@openrig/daemon/dist/domain/seat-structural-activity-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-switch-client-service.d.ts +0 -57
- package/node_modules/@openrig/daemon/dist/domain/seat-switch-client-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-switch-client-service.js +0 -168
- package/node_modules/@openrig/daemon/dist/domain/seat-switch-client-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/self-attach-service.d.ts +0 -98
- package/node_modules/@openrig/daemon/dist/domain/self-attach-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/self-attach-service.js +0 -215
- package/node_modules/@openrig/daemon/dist/domain/self-attach-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/service-orchestrator.d.ts +0 -59
- package/node_modules/@openrig/daemon/dist/domain/service-orchestrator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/service-orchestrator.js +0 -172
- package/node_modules/@openrig/daemon/dist/domain/service-orchestrator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/services-readiness.d.ts +0 -23
- package/node_modules/@openrig/daemon/dist/domain/services-readiness.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/services-readiness.js +0 -63
- package/node_modules/@openrig/daemon/dist/domain/services-readiness.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-enricher.d.ts +0 -29
- package/node_modules/@openrig/daemon/dist/domain/session-enricher.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-enricher.js +0 -54
- package/node_modules/@openrig/daemon/dist/domain/session-enricher.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-fingerprinter.d.ts +0 -53
- package/node_modules/@openrig/daemon/dist/domain/session-fingerprinter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-fingerprinter.js +0 -118
- package/node_modules/@openrig/daemon/dist/domain/session-fingerprinter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-jsonl.d.ts +0 -10
- package/node_modules/@openrig/daemon/dist/domain/session-jsonl.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-jsonl.js +0 -78
- package/node_modules/@openrig/daemon/dist/domain/session-jsonl.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-name.d.ts +0 -58
- package/node_modules/@openrig/daemon/dist/domain/session-name.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-name.js +0 -132
- package/node_modules/@openrig/daemon/dist/domain/session-name.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-registry.d.ts +0 -137
- package/node_modules/@openrig/daemon/dist/domain/session-registry.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-registry.js +0 -426
- package/node_modules/@openrig/daemon/dist/domain/session-registry.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-source-rebuild-resolver.d.ts +0 -53
- package/node_modules/@openrig/daemon/dist/domain/session-source-rebuild-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-source-rebuild-resolver.js +0 -59
- package/node_modules/@openrig/daemon/dist/domain/session-source-rebuild-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +0 -185
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/session-transport.js +0 -1265
- package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts +0 -23
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js +0 -36
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-audit.d.ts +0 -47
- package/node_modules/@openrig/daemon/dist/domain/skill-audit.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-audit.js +0 -218
- package/node_modules/@openrig/daemon/dist/domain/skill-audit.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-catalog.d.ts +0 -81
- package/node_modules/@openrig/daemon/dist/domain/skill-catalog.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-catalog.js +0 -827
- package/node_modules/@openrig/daemon/dist/domain/skill-catalog.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-discovery.d.ts +0 -69
- package/node_modules/@openrig/daemon/dist/domain/skill-discovery.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-discovery.js +0 -214
- package/node_modules/@openrig/daemon/dist/domain/skill-discovery.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-library-discovery.d.ts +0 -68
- package/node_modules/@openrig/daemon/dist/domain/skill-library-discovery.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-library-discovery.js +0 -144
- package/node_modules/@openrig/daemon/dist/domain/skill-library-discovery.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-mirror-drift.d.ts +0 -10
- package/node_modules/@openrig/daemon/dist/domain/skill-mirror-drift.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-mirror-drift.js +0 -24
- package/node_modules/@openrig/daemon/dist/domain/skill-mirror-drift.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/qitem-membership.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/domain/slices/qitem-membership.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/qitem-membership.js +0 -60
- package/node_modules/@openrig/daemon/dist/domain/slices/qitem-membership.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts +0 -190
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js +0 -691
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.d.ts +0 -241
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js +0 -1033
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/slow-op-recorder.d.ts +0 -89
- package/node_modules/@openrig/daemon/dist/domain/slow-op-recorder.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/slow-op-recorder.js +0 -339
- package/node_modules/@openrig/daemon/dist/domain/slow-op-recorder.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts +0 -30
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js +0 -145
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.d.ts +0 -59
- package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.js +0 -281
- package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-library-service.d.ts +0 -67
- package/node_modules/@openrig/daemon/dist/domain/spec-library-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-library-service.js +0 -263
- package/node_modules/@openrig/daemon/dist/domain/spec-library-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-library-workflow-scanner.d.ts +0 -140
- package/node_modules/@openrig/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-library-workflow-scanner.js +0 -347
- package/node_modules/@openrig/daemon/dist/domain/spec-library-workflow-scanner.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.d.ts +0 -82
- package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.js +0 -127
- package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-review-service.d.ts +0 -133
- package/node_modules/@openrig/daemon/dist/domain/spec-review-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-review-service.js +0 -259
- package/node_modules/@openrig/daemon/dist/domain/spec-review-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js +0 -38
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-service.d.ts +0 -21
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-service.js +0 -34
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts +0 -130
- package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js +0 -526
- package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-proof.d.ts +0 -67
- package/node_modules/@openrig/daemon/dist/domain/startup-proof.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-proof.js +0 -194
- package/node_modules/@openrig/daemon/dist/domain/startup-proof.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-resolver.d.ts +0 -30
- package/node_modules/@openrig/daemon/dist/domain/startup-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-resolver.js +0 -75
- package/node_modules/@openrig/daemon/dist/domain/startup-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-validation.d.ts +0 -31
- package/node_modules/@openrig/daemon/dist/domain/startup-validation.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-validation.js +0 -176
- package/node_modules/@openrig/daemon/dist/domain/startup-validation.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/steering/health-summary.d.ts +0 -39
- package/node_modules/@openrig/daemon/dist/domain/steering/health-summary.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/steering/health-summary.js +0 -100
- package/node_modules/@openrig/daemon/dist/domain/steering/health-summary.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/steering/steering-composer.d.ts +0 -102
- package/node_modules/@openrig/daemon/dist/domain/steering/steering-composer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/steering/steering-composer.js +0 -263
- package/node_modules/@openrig/daemon/dist/domain/steering/steering-composer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/stream-store.d.ts +0 -66
- package/node_modules/@openrig/daemon/dist/domain/stream-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/stream-store.js +0 -135
- package/node_modules/@openrig/daemon/dist/domain/stream-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +0 -168
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +0 -336
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.d.ts +0 -13
- package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.js +0 -19
- package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/system-world.d.ts +0 -45
- package/node_modules/@openrig/daemon/dist/domain/system-world.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/system-world.js +0 -123
- package/node_modules/@openrig/daemon/dist/domain/system-world.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.js +0 -20
- package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +0 -28
- package/node_modules/@openrig/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/cmux-provider-adapter.js +0 -100
- package/node_modules/@openrig/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-adapter.d.ts +0 -96
- package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-adapter.js +0 -307
- package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-adapter.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-transport.d.ts +0 -50
- package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-transport.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-transport.js +0 -145
- package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-transport.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-provider.d.ts +0 -88
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-provider.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-provider.js +0 -17
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-provider.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-service.d.ts +0 -88
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-service.js +0 -214
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-views-store.d.ts +0 -77
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-views-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-views-store.js +0 -146
- package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-views-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/view-composer.d.ts +0 -42
- package/node_modules/@openrig/daemon/dist/domain/terminal/view-composer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/terminal/view-composer.js +0 -137
- package/node_modules/@openrig/daemon/dist/domain/terminal/view-composer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/tmux-discovery-scanner.d.ts +0 -29
- package/node_modules/@openrig/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/tmux-discovery-scanner.js +0 -50
- package/node_modules/@openrig/daemon/dist/domain/tmux-discovery-scanner.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/tmux-option-defaults.d.ts +0 -89
- package/node_modules/@openrig/daemon/dist/domain/tmux-option-defaults.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/tmux-option-defaults.js +0 -133
- package/node_modules/@openrig/daemon/dist/domain/tmux-option-defaults.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/topology/multi-rig-launcher.d.ts +0 -49
- package/node_modules/@openrig/daemon/dist/domain/topology/multi-rig-launcher.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/topology/multi-rig-launcher.js +0 -132
- package/node_modules/@openrig/daemon/dist/domain/topology/multi-rig-launcher.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/topology/remote-up-leaf.d.ts +0 -29
- package/node_modules/@openrig/daemon/dist/domain/topology/remote-up-leaf.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/topology/remote-up-leaf.js +0 -60
- package/node_modules/@openrig/daemon/dist/domain/topology/remote-up-leaf.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/topology/topology-manifest.d.ts +0 -34
- package/node_modules/@openrig/daemon/dist/domain/topology/topology-manifest.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/topology/topology-manifest.js +0 -195
- package/node_modules/@openrig/daemon/dist/domain/topology/topology-manifest.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/topology-converge.d.ts +0 -119
- package/node_modules/@openrig/daemon/dist/domain/topology-converge.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/topology-converge.js +0 -88
- package/node_modules/@openrig/daemon/dist/domain/topology-converge.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts +0 -49
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js +0 -119
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-capture.d.ts +0 -10
- package/node_modules/@openrig/daemon/dist/domain/transcript-capture.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-capture.js +0 -46
- package/node_modules/@openrig/daemon/dist/domain/transcript-capture.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-redaction.d.ts +0 -13
- package/node_modules/@openrig/daemon/dist/domain/transcript-redaction.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-redaction.js +0 -34
- package/node_modules/@openrig/daemon/dist/domain/transcript-redaction.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts +0 -33
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js +0 -167
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-store.d.ts +0 -44
- package/node_modules/@openrig/daemon/dist/domain/transcript-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-store.js +0 -394
- package/node_modules/@openrig/daemon/dist/domain/transcript-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts +0 -1822
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/types.js +0 -17
- package/node_modules/@openrig/daemon/dist/domain/types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/up-command-router.d.ts +0 -25
- package/node_modules/@openrig/daemon/dist/domain/up-command-router.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/up-command-router.js +0 -167
- package/node_modules/@openrig/daemon/dist/domain/up-command-router.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/usage-samples-store.d.ts +0 -31
- package/node_modules/@openrig/daemon/dist/domain/usage-samples-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/usage-samples-store.js +0 -75
- package/node_modules/@openrig/daemon/dist/domain/usage-samples-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/usage-series.d.ts +0 -67
- package/node_modules/@openrig/daemon/dist/domain/usage-series.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/usage-series.js +0 -105
- package/node_modules/@openrig/daemon/dist/domain/usage-series.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-browser.d.ts +0 -33
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-browser.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-browser.js +0 -261
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-browser.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +0 -106
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +0 -1042
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/view-event-bridge.d.ts +0 -12
- package/node_modules/@openrig/daemon/dist/domain/view-event-bridge.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/view-event-bridge.js +0 -93
- package/node_modules/@openrig/daemon/dist/domain/view-event-bridge.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts +0 -89
- package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/view-projector.js +0 -362
- package/node_modules/@openrig/daemon/dist/domain/view-projector.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/wake-resolve-service.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/domain/wake-resolve-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/wake-resolve-service.js +0 -17
- package/node_modules/@openrig/daemon/dist/domain/wake-resolve-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/wake-resolver.d.ts +0 -41
- package/node_modules/@openrig/daemon/dist/domain/wake-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/wake-resolver.js +0 -45
- package/node_modules/@openrig/daemon/dist/domain/wake-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.d.ts +0 -50
- package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.js +0 -178
- package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-history-log.d.ts +0 -49
- package/node_modules/@openrig/daemon/dist/domain/watchdog-history-log.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-history-log.js +0 -67
- package/node_modules/@openrig/daemon/dist/domain/watchdog-history-log.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts +0 -148
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js +0 -418
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +0 -142
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +0 -481
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.d.ts +0 -79
- package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js +0 -116
- package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/whoami-service.d.ts +0 -126
- package/node_modules/@openrig/daemon/dist/domain/whoami-service.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/whoami-service.js +0 -268
- package/node_modules/@openrig/daemon/dist/domain/whoami-service.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow/slice-workflow-binding.d.ts +0 -21
- package/node_modules/@openrig/daemon/dist/domain/workflow/slice-workflow-binding.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow/slice-workflow-binding.js +0 -103
- package/node_modules/@openrig/daemon/dist/domain/workflow/slice-workflow-binding.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow/slice-workflow-projection.d.ts +0 -81
- package/node_modules/@openrig/daemon/dist/domain/workflow/slice-workflow-projection.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow/slice-workflow-projection.js +0 -131
- package/node_modules/@openrig/daemon/dist/domain/workflow/slice-workflow-projection.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow/starter-spec-loader.d.ts +0 -51
- package/node_modules/@openrig/daemon/dist/domain/workflow/starter-spec-loader.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow/starter-spec-loader.js +0 -140
- package/node_modules/@openrig/daemon/dist/domain/workflow/starter-spec-loader.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.d.ts +0 -29
- package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js +0 -119
- package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-deadline.d.ts +0 -74
- package/node_modules/@openrig/daemon/dist/domain/workflow-deadline.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-deadline.js +0 -165
- package/node_modules/@openrig/daemon/dist/domain/workflow-deadline.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.d.ts +0 -34
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.js +0 -86
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-readiness.d.ts +0 -39
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-readiness.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-readiness.js +0 -77
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-readiness.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.d.ts +0 -37
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.js +0 -102
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception.d.ts +0 -96
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception.js +0 -129
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-frontier-guard.d.ts +0 -24
- package/node_modules/@openrig/daemon/dist/domain/workflow-frontier-guard.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-frontier-guard.js +0 -30
- package/node_modules/@openrig/daemon/dist/domain/workflow-frontier-guard.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-guidance.d.ts +0 -53
- package/node_modules/@openrig/daemon/dist/domain/workflow-guidance.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-guidance.js +0 -212
- package/node_modules/@openrig/daemon/dist/domain/workflow-guidance.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.d.ts +0 -18
- package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.js +0 -40
- package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.d.ts +0 -108
- package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.js +0 -304
- package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.d.ts +0 -37
- package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.js +0 -98
- package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-planning-context.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/domain/workflow-planning-context.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-planning-context.js +0 -36
- package/node_modules/@openrig/daemon/dist/domain/workflow-planning-context.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts +0 -217
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js +0 -1471
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-reconciliation.d.ts +0 -55
- package/node_modules/@openrig/daemon/dist/domain/workflow-reconciliation.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-reconciliation.js +0 -228
- package/node_modules/@openrig/daemon/dist/domain/workflow-reconciliation.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.d.ts +0 -55
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.js +0 -113
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-resolver.d.ts +0 -65
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-resolver.js +0 -108
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts +0 -370
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js +0 -1394
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts +0 -143
- package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js +0 -755
- package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-step-trail-log.d.ts +0 -27
- package/node_modules/@openrig/daemon/dist/domain/workflow-step-trail-log.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-step-trail-log.js +0 -73
- package/node_modules/@openrig/daemon/dist/domain/workflow-step-trail-log.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts +0 -288
- package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-types.js +0 -24
- package/node_modules/@openrig/daemon/dist/domain/workflow-types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-validator.d.ts +0 -41
- package/node_modules/@openrig/daemon/dist/domain/workflow-validator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js +0 -410
- package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +0 -44
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js +0 -120
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/frontmatter-validator.d.ts +0 -40
- package/node_modules/@openrig/daemon/dist/domain/workspace/frontmatter-validator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/frontmatter-validator.js +0 -185
- package/node_modules/@openrig/daemon/dist/domain/workspace/frontmatter-validator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/getting-started-narrative.d.ts +0 -15
- package/node_modules/@openrig/daemon/dist/domain/workspace/getting-started-narrative.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/getting-started-narrative.js +0 -237
- package/node_modules/@openrig/daemon/dist/domain/workspace/getting-started-narrative.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/project-catalog.d.ts +0 -18
- package/node_modules/@openrig/daemon/dist/domain/workspace/project-catalog.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/project-catalog.js +0 -66
- package/node_modules/@openrig/daemon/dist/domain/workspace/project-catalog.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/project-read.d.ts +0 -29
- package/node_modules/@openrig/daemon/dist/domain/workspace/project-read.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/project-read.js +0 -125
- package/node_modules/@openrig/daemon/dist/domain/workspace/project-read.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts +0 -205
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js +0 -527
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-resolver.d.ts +0 -25
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-resolver.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-resolver.js +0 -86
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-resolver.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.js +0 -8
- package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/gateway-protocol-surface.d.ts +0 -2
- package/node_modules/@openrig/daemon/dist/gateway-protocol-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/gateway-protocol-surface.js +0 -6
- package/node_modules/@openrig/daemon/dist/gateway-protocol-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts +0 -5
- package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js +0 -9
- package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/health-detectors-surface.d.ts +0 -2
- package/node_modules/@openrig/daemon/dist/health-detectors-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/health-detectors-surface.js +0 -2
- package/node_modules/@openrig/daemon/dist/health-detectors-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/health-projection-surface.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/health-projection-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/health-projection-surface.js +0 -2
- package/node_modules/@openrig/daemon/dist/health-projection-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/index.d.ts +0 -92
- package/node_modules/@openrig/daemon/dist/index.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/index.js +0 -366
- package/node_modules/@openrig/daemon/dist/index.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/instance-initialization-surface.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/instance-initialization-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/instance-initialization-surface.js +0 -3
- package/node_modules/@openrig/daemon/dist/instance-initialization-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/lib/pane-envelope.d.ts +0 -50
- package/node_modules/@openrig/daemon/dist/lib/pane-envelope.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js +0 -92
- package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/local-reading-surface.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/local-reading-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/local-reading-surface.js +0 -3
- package/node_modules/@openrig/daemon/dist/local-reading-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/middleware/auth-bearer-token.d.ts +0 -91
- package/node_modules/@openrig/daemon/dist/middleware/auth-bearer-token.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/middleware/auth-bearer-token.js +0 -236
- package/node_modules/@openrig/daemon/dist/middleware/auth-bearer-token.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/openrig-compat.d.ts +0 -9
- package/node_modules/@openrig/daemon/dist/openrig-compat.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/openrig-compat.js +0 -62
- package/node_modules/@openrig/daemon/dist/openrig-compat.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/project-catalog-surface.d.ts +0 -2
- package/node_modules/@openrig/daemon/dist/project-catalog-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/project-catalog-surface.js +0 -2
- package/node_modules/@openrig/daemon/dist/project-catalog-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.js +0 -3
- package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/activity.d.ts +0 -16
- package/node_modules/@openrig/daemon/dist/routes/activity.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/activity.js +0 -323
- package/node_modules/@openrig/daemon/dist/routes/activity.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/adapters.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/adapters.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/adapters.js +0 -21
- package/node_modules/@openrig/daemon/dist/routes/adapters.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/agent-images.d.ts +0 -8
- package/node_modules/@openrig/daemon/dist/routes/agent-images.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/agent-images.js +0 -403
- package/node_modules/@openrig/daemon/dist/routes/agent-images.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/agents.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/agents.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/agents.js +0 -13
- package/node_modules/@openrig/daemon/dist/routes/agents.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/ask.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/ask.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/ask.js +0 -17
- package/node_modules/@openrig/daemon/dist/routes/ask.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/attention.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/attention.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/attention.js +0 -155
- package/node_modules/@openrig/daemon/dist/routes/attention.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/bootstrap.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/bootstrap.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/bootstrap.js +0 -147
- package/node_modules/@openrig/daemon/dist/routes/bootstrap.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts +0 -43
- package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/bundles.js +0 -1457
- package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/chat.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/chat.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/chat.js +0 -150
- package/node_modules/@openrig/daemon/dist/routes/chat.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/compaction.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/routes/compaction.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/compaction.js +0 -129
- package/node_modules/@openrig/daemon/dist/routes/compaction.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/config.d.ts +0 -5
- package/node_modules/@openrig/daemon/dist/routes/config.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/config.js +0 -123
- package/node_modules/@openrig/daemon/dist/routes/config.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/context-packs.js +0 -654
- package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/crash-cart.d.ts +0 -4
- package/node_modules/@openrig/daemon/dist/routes/crash-cart.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/crash-cart.js +0 -147
- package/node_modules/@openrig/daemon/dist/routes/crash-cart.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/discovery.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/discovery.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/discovery.js +0 -200
- package/node_modules/@openrig/daemon/dist/routes/discovery.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/down.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/down.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/down.js +0 -55
- package/node_modules/@openrig/daemon/dist/routes/down.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/env.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/env.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/env.js +0 -119
- package/node_modules/@openrig/daemon/dist/routes/env.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/events.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/events.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/events.js +0 -71
- package/node_modules/@openrig/daemon/dist/routes/events.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/files.d.ts +0 -17
- package/node_modules/@openrig/daemon/dist/routes/files.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/files.js +0 -292
- package/node_modules/@openrig/daemon/dist/routes/files.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/gateway.js +0 -104
- package/node_modules/@openrig/daemon/dist/routes/gateway.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.js +0 -47
- package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/health-summary.d.ts +0 -9
- package/node_modules/@openrig/daemon/dist/routes/health-summary.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/health-summary.js +0 -52
- package/node_modules/@openrig/daemon/dist/routes/health-summary.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/health.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/health.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/health.js +0 -50
- package/node_modules/@openrig/daemon/dist/routes/health.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/hosts.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/routes/hosts.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/hosts.js +0 -353
- package/node_modules/@openrig/daemon/dist/routes/hosts.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/info.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/info.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/info.js +0 -20
- package/node_modules/@openrig/daemon/dist/routes/info.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/kernel-status.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/kernel-status.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/kernel-status.js +0 -40
- package/node_modules/@openrig/daemon/dist/routes/kernel-status.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/mission-control.d.ts +0 -37
- package/node_modules/@openrig/daemon/dist/routes/mission-control.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/mission-control.js +0 -398
- package/node_modules/@openrig/daemon/dist/routes/mission-control.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/missions.d.ts +0 -10
- package/node_modules/@openrig/daemon/dist/routes/missions.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/missions.js +0 -207
- package/node_modules/@openrig/daemon/dist/routes/missions.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/packages.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/packages.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/packages.js +0 -341
- package/node_modules/@openrig/daemon/dist/routes/packages.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/plugins.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/plugins.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/plugins.js +0 -223
- package/node_modules/@openrig/daemon/dist/routes/plugins.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/progress.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/routes/progress.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/progress.js +0 -33
- package/node_modules/@openrig/daemon/dist/routes/progress.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/projects.d.ts +0 -12
- package/node_modules/@openrig/daemon/dist/routes/projects.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/projects.js +0 -178
- package/node_modules/@openrig/daemon/dist/routes/projects.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/proof.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/proof.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/proof.js +0 -65
- package/node_modules/@openrig/daemon/dist/routes/proof.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/provider.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/provider.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/provider.js +0 -124
- package/node_modules/@openrig/daemon/dist/routes/provider.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/ps.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/ps.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/ps.js +0 -14
- package/node_modules/@openrig/daemon/dist/routes/ps.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/queue.d.ts +0 -15
- package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/queue.js +0 -959
- package/node_modules/@openrig/daemon/dist/routes/queue.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.d.ts +0 -115
- package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.js +0 -137
- package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/restore-check.d.ts +0 -13
- package/node_modules/@openrig/daemon/dist/routes/restore-check.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/restore-check.js +0 -240
- package/node_modules/@openrig/daemon/dist/routes/restore-check.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/review.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/review.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/review.js +0 -205
- package/node_modules/@openrig/daemon/dist/routes/review.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/rig-cmux.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/rig-cmux.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/rig-cmux.js +0 -180
- package/node_modules/@openrig/daemon/dist/routes/rig-cmux.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/rig-mode.d.ts +0 -9
- package/node_modules/@openrig/daemon/dist/routes/rig-mode.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/rig-mode.js +0 -227
- package/node_modules/@openrig/daemon/dist/routes/rig-mode.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/rigs.d.ts +0 -6
- package/node_modules/@openrig/daemon/dist/routes/rigs.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/rigs.js +0 -759
- package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/rigspec.d.ts +0 -6
- package/node_modules/@openrig/daemon/dist/routes/rigspec.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/rigspec.js +0 -246
- package/node_modules/@openrig/daemon/dist/routes/rigspec.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/scope-approve.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/scope-approve.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/scope-approve.js +0 -71
- package/node_modules/@openrig/daemon/dist/routes/scope-approve.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +0 -297
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/scopes.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/scopes.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/scopes.js +0 -163
- package/node_modules/@openrig/daemon/dist/routes/scopes.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/seat.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/seat.js +0 -267
- package/node_modules/@openrig/daemon/dist/routes/seat.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/sessions.d.ts +0 -5
- package/node_modules/@openrig/daemon/dist/routes/sessions.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/sessions.js +0 -691
- package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/skills.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/skills.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/skills.js +0 -190
- package/node_modules/@openrig/daemon/dist/routes/skills.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/slices.d.ts +0 -9
- package/node_modules/@openrig/daemon/dist/routes/slices.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/slices.js +0 -280
- package/node_modules/@openrig/daemon/dist/routes/slices.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/snapshots.d.ts +0 -4
- package/node_modules/@openrig/daemon/dist/routes/snapshots.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/snapshots.js +0 -179
- package/node_modules/@openrig/daemon/dist/routes/snapshots.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/spec-library.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/spec-library.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/spec-library.js +0 -207
- package/node_modules/@openrig/daemon/dist/routes/spec-library.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/spec-review.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/spec-review.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/spec-review.js +0 -41
- package/node_modules/@openrig/daemon/dist/routes/spec-review.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/startup.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/routes/startup.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/startup.js +0 -221
- package/node_modules/@openrig/daemon/dist/routes/startup.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/steering.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/routes/steering.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/steering.js +0 -27
- package/node_modules/@openrig/daemon/dist/routes/steering.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/stream.d.ts +0 -9
- package/node_modules/@openrig/daemon/dist/routes/stream.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/stream.js +0 -193
- package/node_modules/@openrig/daemon/dist/routes/stream.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/telemetry.d.ts +0 -9
- package/node_modules/@openrig/daemon/dist/routes/telemetry.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/telemetry.js +0 -53
- package/node_modules/@openrig/daemon/dist/routes/telemetry.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/terminal-ws.d.ts +0 -7
- package/node_modules/@openrig/daemon/dist/routes/terminal-ws.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/terminal-ws.js +0 -169
- package/node_modules/@openrig/daemon/dist/routes/terminal-ws.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/terminal.d.ts +0 -11
- package/node_modules/@openrig/daemon/dist/routes/terminal.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/terminal.js +0 -114
- package/node_modules/@openrig/daemon/dist/routes/terminal.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/transcripts.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/transcripts.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/transcripts.js +0 -197
- package/node_modules/@openrig/daemon/dist/routes/transcripts.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/transport.d.ts +0 -5
- package/node_modules/@openrig/daemon/dist/routes/transport.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/transport.js +0 -256
- package/node_modules/@openrig/daemon/dist/routes/transport.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/up.d.ts +0 -28
- package/node_modules/@openrig/daemon/dist/routes/up.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/up.js +0 -429
- package/node_modules/@openrig/daemon/dist/routes/up.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/views.d.ts +0 -13
- package/node_modules/@openrig/daemon/dist/routes/views.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/views.js +0 -133
- package/node_modules/@openrig/daemon/dist/routes/views.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/wake-resolve.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/wake-resolve.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/wake-resolve.js +0 -14
- package/node_modules/@openrig/daemon/dist/routes/wake-resolve.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/watchdog.d.ts +0 -18
- package/node_modules/@openrig/daemon/dist/routes/watchdog.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/watchdog.js +0 -186
- package/node_modules/@openrig/daemon/dist/routes/watchdog.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/whoami.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/whoami.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/whoami.js +0 -49
- package/node_modules/@openrig/daemon/dist/routes/whoami.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/workflow.d.ts +0 -20
- package/node_modules/@openrig/daemon/dist/routes/workflow.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/workflow.js +0 -430
- package/node_modules/@openrig/daemon/dist/routes/workflow.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/workspace.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/routes/workspace.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/workspace.js +0 -132
- package/node_modules/@openrig/daemon/dist/routes/workspace.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts +0 -2
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js +0 -6
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/seed.d.ts +0 -2
- package/node_modules/@openrig/daemon/dist/seed.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/seed.js +0 -41
- package/node_modules/@openrig/daemon/dist/seed.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/server.d.ts +0 -302
- package/node_modules/@openrig/daemon/dist/server.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/server.js +0 -521
- package/node_modules/@openrig/daemon/dist/server.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/skill-loadout-surface.d.ts +0 -3
- package/node_modules/@openrig/daemon/dist/skill-loadout-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/skill-loadout-surface.js +0 -2
- package/node_modules/@openrig/daemon/dist/skill-loadout-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/spec-conformance-surface.d.ts +0 -2
- package/node_modules/@openrig/daemon/dist/spec-conformance-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/spec-conformance-surface.js +0 -6
- package/node_modules/@openrig/daemon/dist/spec-conformance-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/startup.d.ts +0 -46
- package/node_modules/@openrig/daemon/dist/startup.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/startup.js +0 -2183
- package/node_modules/@openrig/daemon/dist/startup.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/system-world-surface.d.ts +0 -2
- package/node_modules/@openrig/daemon/dist/system-world-surface.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/system-world-surface.js +0 -2
- package/node_modules/@openrig/daemon/dist/system-world-surface.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/terminal/TerminalSessionBroker.d.ts +0 -173
- package/node_modules/@openrig/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/terminal/TerminalSessionBroker.js +0 -570
- package/node_modules/@openrig/daemon/dist/terminal/TerminalSessionBroker.js.map +0 -1
- package/node_modules/@openrig/daemon/package.json +0 -88
|
@@ -1,2840 +0,0 @@
|
|
|
1
|
-
import { readWakeLadderBackstop } from "./queue-wake-ladder.js";
|
|
2
|
-
import { createHash } from "node:crypto";
|
|
3
|
-
import { loadHumanRegistry, resolveRegisteredHumanAddress } from "./gateway/human-registry.js";
|
|
4
|
-
import { resolveExternal } from "./gateway/external-admission.js";
|
|
5
|
-
import { QueueTransitionLog } from "./queue-transition-log.js";
|
|
6
|
-
import { WAKE_INTENT_PREFIX } from "./outbox-handler.js";
|
|
7
|
-
import { derivePickup } from "./queue-pickup.js";
|
|
8
|
-
import { lastMeaningfulTransition, readWaitingView } from "./queue-waiting.js";
|
|
9
|
-
import { wrapPaneEnvelope } from "../lib/pane-envelope.js";
|
|
10
|
-
import { getSelfHostId } from "./hosts/fanout-contract.js";
|
|
11
|
-
import { parseSessionName, isHumanSeatSessionRef } from "./session-name.js";
|
|
12
|
-
import { classifyDestination } from "./gateway/destination-resolver.js";
|
|
13
|
-
import { computeClosureRequiredAt, validateClosure, } from "./hot-potato-enforcer.js";
|
|
14
|
-
import { isHumanSeatSession, validateHumanPark, validateHumanRoute } from "./human-route-enforcer.js";
|
|
15
|
-
import { QueueWakeRepository, USAGE_LIMIT_BLOCKER_TAG, } from "./queue-wake-repository.js";
|
|
16
|
-
import { WatchdogJobsRepository } from "./watchdog-jobs-repository.js";
|
|
17
|
-
import { armQueueWait, backOffQueueWait, refreshQueueWaits, evaluateQueueWait, retargetQueueWait } from "./queue-wait-backoff.js";
|
|
18
|
-
export const QUEUE_STATES = [
|
|
19
|
-
"pending",
|
|
20
|
-
"in-progress",
|
|
21
|
-
"done",
|
|
22
|
-
"blocked",
|
|
23
|
-
"failed",
|
|
24
|
-
"denied",
|
|
25
|
-
"canceled",
|
|
26
|
-
"handed-off",
|
|
27
|
-
];
|
|
28
|
-
/** OPR.0.4.6.FS-1 (W2 P1): the queue's terminal state set, named ONCE. The
|
|
29
|
-
* archiver (queue-retention.ts) AND the inline closure guards below all consume
|
|
30
|
-
* THIS predicate, so a future terminal-state addition can never silently
|
|
31
|
-
* diverge the archiver from the queue (arch D3-REFINEMENT P1; widen-never-sibling).
|
|
32
|
-
* `['done','handed-off']` is the full terminal set — workflow step closures exit
|
|
33
|
-
* `handoff -> state=handed-off`, the highest-volume terminal class. The `satisfies`
|
|
34
|
-
* clause is the compile guard: removing a state from QUEUE_STATES fails here. */
|
|
35
|
-
export const TERMINAL_QUEUE_STATES = ["done", "handed-off"];
|
|
36
|
-
export function isTerminalState(state) {
|
|
37
|
-
return TERMINAL_QUEUE_STATES.includes(state);
|
|
38
|
-
}
|
|
39
|
-
/** 0.5.1-53 — the ACTIVE (still-progressing) states. A blocker is "live" iff active; any other
|
|
40
|
-
* state (done/handed-off/canceled/denied/failed) means the block will never lift. This is DISTINCT
|
|
41
|
-
* from the archiver's TERMINAL_QUEUE_STATES (done/handed-off) — a narrower concept — so it is named
|
|
42
|
-
* separately and derived from QUEUE_STATES (the `satisfies` guard fails if a state is removed). */
|
|
43
|
-
export const ACTIVE_QUEUE_STATES = ["pending", "in-progress", "blocked"];
|
|
44
|
-
export function isBlockerLive(state) {
|
|
45
|
-
return ACTIVE_QUEUE_STATES.includes(state);
|
|
46
|
-
}
|
|
47
|
-
const AUTO_UNPARK_WAKE_TAG = "queue:auto-unpark:blocker";
|
|
48
|
-
const AUTO_UNPARK_BLOCKER_TAG_PREFIX = "queue:auto-unpark:blocker-ref:";
|
|
49
|
-
/** 0.5.1-53 Atom 1a — typed non-qitem gate blocker prefixes. A park may be gated on a fold / auth /
|
|
50
|
-
* external condition that is NOT a qitem and NOT a human seat; these prefixes make such a gate a
|
|
51
|
-
* first-class, compact-visible, downstream-classifiable blocker (the ruling detail rides a transition). */
|
|
52
|
-
export const TYPED_GATE_BLOCKER_PREFIXES = ["fold:", "auth:", "external:"];
|
|
53
|
-
export function typedGateBlockerPrefix(value) {
|
|
54
|
-
return TYPED_GATE_BLOCKER_PREFIXES.find((p) => value.startsWith(p)) ?? null;
|
|
55
|
-
}
|
|
56
|
-
/** A well-formed typed gate blocker: a recognized prefix AND a non-empty gate body. */
|
|
57
|
-
export function isTypedGateBlocker(value) {
|
|
58
|
-
if (typeof value !== "string")
|
|
59
|
-
return false;
|
|
60
|
-
const p = typedGateBlockerPrefix(value);
|
|
61
|
-
return p != null && value.slice(p.length).trim().length > 0;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* 0.5.1-54 DR-1 (classifier fold, PM ruling qitem-20260811163927-74493d76) — classify a create-path
|
|
65
|
-
* nudge FAILURE so the surfaced count becomes ACTIONABLE (constraint iii). Two classes:
|
|
66
|
-
* - "permanent-topology": the destination is not resolvable on THIS daemon (the nudge can never
|
|
67
|
-
* succeed here — a local-registry lookup reporting "not found" for a seat that lives on another
|
|
68
|
-
* daemon). Retrying is a guaranteed-permanent failure repeated on a schedule → NOT retryable;
|
|
69
|
-
* these belong to the ADDRESSING family, not to retry machinery. (The live corpus: 9/10 strands.)
|
|
70
|
-
* - "transient": a live, resolvable seat that refused THIS attempt (busy at an interactive prompt) or
|
|
71
|
-
* the attempt timed out — the only class a future bounded re-attempt (DR-2, held n=1) would touch.
|
|
72
|
-
* - "unknown": a failure whose text matches NEITHER known pattern. NOT silently defaulted to transient
|
|
73
|
-
* (ship-block ruling qitem-20260811170941-5eadb968): defaulting would assert "a live seat refused
|
|
74
|
-
* this attempt" for a string that only means "did not match the permanent pattern" — two different
|
|
75
|
-
* claims. An unknown must read as unknown (the same rule the ACTIVITY hookless=unknown ruling names);
|
|
76
|
-
* a default that collapses unknown into a known class is the exact sin, mirrored.
|
|
77
|
-
* Returns null when `lastNudgeResult` is not a recorded failure (`failed:%`).
|
|
78
|
-
*
|
|
79
|
-
* Each class is a POSITIVE match — there is no default class. DR-2 (retry) stays HELD at n=1; this is
|
|
80
|
-
* READ-side labeling only, making the strand's nature legible (addressing-fix vs retry vs triage-the-unknown).
|
|
81
|
-
*/
|
|
82
|
-
export function classifyNudgeFailure(lastNudgeResult) {
|
|
83
|
-
if (typeof lastNudgeResult !== "string" || !lastNudgeResult.startsWith("failed:"))
|
|
84
|
-
return null;
|
|
85
|
-
// permanent-topology: local-registry "not found" — the destination is not resolvable on THIS daemon.
|
|
86
|
-
if (/\bnot found\b/i.test(lastNudgeResult))
|
|
87
|
-
return "permanent-topology";
|
|
88
|
-
// transient: a live seat refused this attempt (busy at a prompt) or the attempt timed out.
|
|
89
|
-
if (/interactive prompt|\btimed?\s?out\b/i.test(lastNudgeResult))
|
|
90
|
-
return "transient";
|
|
91
|
-
// unknown: matched neither — do NOT collapse into transient. Honest label > convenient default.
|
|
92
|
-
return "unknown";
|
|
93
|
-
}
|
|
94
|
-
export const QUEUE_PRIORITIES = ["routine", "urgent", "critical"];
|
|
95
|
-
export class QueueRepositoryError extends Error {
|
|
96
|
-
code;
|
|
97
|
-
meta;
|
|
98
|
-
constructor(code, message, meta) {
|
|
99
|
-
super(message);
|
|
100
|
-
this.code = code;
|
|
101
|
-
this.meta = meta;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/** OPR.0.4.6.WF5 (guard-named fix shape): exported so the workflow
|
|
105
|
-
* domain can PREALLOCATE a gate packet's id — the class-(c) exception
|
|
106
|
-
* identity tags need occurrence:<gatePacketId> ON the packet at create
|
|
107
|
-
* (one item, tagged in its own create — never a second item, never a
|
|
108
|
-
* post-create tag rewrite). The queue still mints ids for every caller
|
|
109
|
-
* that does not preallocate. */
|
|
110
|
-
export function newQitemId() {
|
|
111
|
-
const ts = new Date().toISOString().replace(/[-:T.Z]/g, "").slice(0, 14);
|
|
112
|
-
const hex = Math.floor(Math.random() * 0xffffffff)
|
|
113
|
-
.toString(16)
|
|
114
|
-
.padStart(8, "0");
|
|
115
|
-
return `qitem-${ts}-${hex}`;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* OPR.0.4.6.MH3 Q-a: is this the SQLite PRIMARY KEY conflict on
|
|
119
|
-
* queue_items.qitem_id? better-sqlite3 sets `.code` on its SqliteError; the
|
|
120
|
-
* message check is a defensive twin so a driver-name change never silently
|
|
121
|
-
* turns an idempotent absorb into a 500.
|
|
122
|
-
*/
|
|
123
|
-
export function isQitemPrimaryKeyConflict(err) {
|
|
124
|
-
if (!(err instanceof Error))
|
|
125
|
-
return false;
|
|
126
|
-
const code = err.code ?? "";
|
|
127
|
-
if (code === "SQLITE_CONSTRAINT_PRIMARYKEY" || code === "SQLITE_CONSTRAINT_UNIQUE")
|
|
128
|
-
return true;
|
|
129
|
-
return /UNIQUE constraint failed: queue_items\.qitem_id/.test(err.message);
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* OPR.0.4.6.MH3 D-1 (FR-4/FR-5): the deterministic cross-host SUCCESSOR id.
|
|
133
|
-
*
|
|
134
|
-
* A cross-host handoff exposes no caller `--id`, so the successor's dedup
|
|
135
|
-
* identity must come from the operation itself: the id is a PURE, STATELESS
|
|
136
|
-
* function of (source qitemId, destination session, destination host). Same
|
|
137
|
-
* arguments → same id on every re-drive, across daemon restarts, with zero
|
|
138
|
-
* local state — so the origin-side PRIMARY KEY absorb (Q-a) converges every
|
|
139
|
-
* interrupted-close re-drive. Source→successor is 1:1 by construction (a
|
|
140
|
-
* closed source is terminal; nothing re-opens it). The `qitem-xh-` namespace
|
|
141
|
-
* makes collision with organic `qitem-<ts>-<hex>` ids structurally impossible
|
|
142
|
-
* (plan R-2). The compound key is JSON-encoded — no hand-rolled separators.
|
|
143
|
-
*
|
|
144
|
-
* n1 residual (arch-named, inherent to the ratified at-least-once/no-2PC
|
|
145
|
-
* fence — NOT a dedup bug): a re-drive naming a DIFFERENT destination before
|
|
146
|
-
* the source close lands is a NEW handoff decision and derives a DIFFERENT
|
|
147
|
-
* id, so it cannot absorb the earlier successor — that earlier successor can
|
|
148
|
-
* remain live on the target host. The chain_of_record + cross-host provenance
|
|
149
|
-
* tags keep such an orphan visible/traceable; the source-close conflict check
|
|
150
|
-
* surfaces the disagreement rather than overwriting it.
|
|
151
|
-
*/
|
|
152
|
-
export function deriveCrossHostSuccessorId(sourceQitemId, destinationSession, hostId) {
|
|
153
|
-
const digest = createHash("sha256")
|
|
154
|
-
.update(JSON.stringify([sourceQitemId, destinationSession, hostId]))
|
|
155
|
-
.digest("hex")
|
|
156
|
-
.slice(0, 16);
|
|
157
|
-
return `qitem-xh-${digest}`;
|
|
158
|
-
}
|
|
159
|
-
/** PL-007 — defensive column probe. Older test fixtures bypass the
|
|
160
|
-
* canonical migration list, so target_repo may be absent. Mirrors
|
|
161
|
-
* the `hasNodeColumn` pattern in rig-repository.ts. */
|
|
162
|
-
function detectQueueColumn(db, columnName) {
|
|
163
|
-
try {
|
|
164
|
-
return db.prepare("PRAGMA table_info(queue_items)").all()
|
|
165
|
-
.some((row) => row.name === columnName);
|
|
166
|
-
}
|
|
167
|
-
catch {
|
|
168
|
-
return false;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
function detectTable(db, tableName) {
|
|
172
|
-
try {
|
|
173
|
-
return !!db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?").get(tableName);
|
|
174
|
-
}
|
|
175
|
-
catch {
|
|
176
|
-
return false;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* L3 — Queue repository. Owns CRUD over `queue_items` plus the wired-in
|
|
181
|
-
* append-only transition log and hot-potato strict-rejection contract.
|
|
182
|
-
*
|
|
183
|
-
* Pattern mirrors `chat-repository.ts` (single class, atomic transactions,
|
|
184
|
-
* persist-event-then-notify). Cross-rig validation hook is `validateRig` —
|
|
185
|
-
* Phase A wires no-op; Phase B can plug in the rig registry to reject
|
|
186
|
-
* phantom-rig destinations. POC compatibility: `qitem_id` shape preserved.
|
|
187
|
-
*/
|
|
188
|
-
// Reduced column set for compact list rows (body/summary/evidence_ref omitted →
|
|
189
|
-
// rowToItem backfills them empty). Shared by `list` and `findOverdue` (Slice 15)
|
|
190
|
-
// so the compact projection cannot drift between the two.
|
|
191
|
-
const COMPACT_QUEUE_COLUMNS = "qitem_id, ts_created, ts_updated, source_session, destination_session, state, priority, tier, tags, blocked_on, handed_off_to, handed_off_from, expires_at, closure_reason, closure_target, closure_required_at, claimed_at, last_nudge_attempt, last_nudge_result, last_heartbeat, resolution, target_repo";
|
|
192
|
-
export function stampSelfHostSuffix(session) {
|
|
193
|
-
if (session === undefined)
|
|
194
|
-
return undefined;
|
|
195
|
-
const selfId = getSelfHostId();
|
|
196
|
-
if (!selfId)
|
|
197
|
-
return session;
|
|
198
|
-
if (session.split("@").length !== 2)
|
|
199
|
-
return session; // not a bare member@rig — untouched
|
|
200
|
-
return `${session}@${selfId}`;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* 51-09 increment 4b — additive TEACHING for the unknown_destination_rig refusal
|
|
204
|
-
* (arch ruling c9964404, mechanism ii). 3-part destinations ALREADY refuse (BR-1:
|
|
205
|
-
* member@rig@host greedy-folds to rig "rig@host", misses, rejects) — the code is
|
|
206
|
-
* UNCHANGED (C1). When the rejected destination's greedy-parsed rig token CONTAINS
|
|
207
|
-
* '@', return ADDITIVE structured fields (FR-7 precedent) teaching the out-of-band
|
|
208
|
-
* path: the split echo + a hint naming `--host`. C4: a SELF-suffixed destination
|
|
209
|
-
* names the self case and is NEVER auto-stripped/routed home (self-strip is option
|
|
210
|
-
* (i), routed to arch). Returns undefined for 2-part / non-canonical tokens (the
|
|
211
|
-
* refusal is byte-unchanged there). One helper, all four refusal sites (C2). Reads
|
|
212
|
-
* the FR-8 parse contract; the parse family stays byte-identical (C3).
|
|
213
|
-
*/
|
|
214
|
-
export function destinationRigTeaching(session) {
|
|
215
|
-
const parsed = parseSessionName(session);
|
|
216
|
-
if (parsed.kind !== "canonical" || !parsed.rig.includes("@"))
|
|
217
|
-
return undefined;
|
|
218
|
-
const at = parsed.rig.lastIndexOf("@");
|
|
219
|
-
const rig = parsed.rig.slice(0, at);
|
|
220
|
-
const host = parsed.rig.slice(at + 1);
|
|
221
|
-
const bare = `${parsed.member}@${rig}`;
|
|
222
|
-
const selfId = getSelfHostId();
|
|
223
|
-
const selfHost = !!selfId && host === selfId;
|
|
224
|
-
return {
|
|
225
|
-
destinationSplit: { member: parsed.member, rig, host },
|
|
226
|
-
selfHost,
|
|
227
|
-
hint: selfHost
|
|
228
|
-
? `the host suffix '@${host}' is THIS host — the host never rides in the session string; resend the destination as ${bare}`
|
|
229
|
-
: `host does not ride in the session string; use --host ${host} with destination ${bare}`,
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* M1 A4b — entity-level teaching for an UNREGISTERED <local>@external destination (the
|
|
234
|
-
* ENTITY half of proof-2; the DOMAIN half is the closed-set fall-through to
|
|
235
|
-
* unknown_destination_rig, A1/A2). A row addressed to a valid @external domain whose
|
|
236
|
-
* entity is not in the registry refuses LOUDLY with the structured teaching from the
|
|
237
|
-
* gateway resolver (how to register + "not an agent seat"). Loads the registry only for
|
|
238
|
-
* the (rare) @external refusal path. Undefined for non-@external / registered / scheme.
|
|
239
|
-
*/
|
|
240
|
-
export function externalAdmissionTeaching(session, loadRegistry = loadHumanRegistry) {
|
|
241
|
-
const parsed = parseSessionName(session);
|
|
242
|
-
if (parsed.kind !== "external")
|
|
243
|
-
return undefined;
|
|
244
|
-
if (resolveExternal(parsed.local, []).kind === "scheme")
|
|
245
|
-
return undefined;
|
|
246
|
-
const reg = loadRegistry();
|
|
247
|
-
if (!reg.ok) {
|
|
248
|
-
return {
|
|
249
|
-
externalDomain: parsed.domain,
|
|
250
|
-
registryLoadError: true,
|
|
251
|
-
registryError: reg.error,
|
|
252
|
-
...(/projection/i.test(reg.error) ? { registryProjectionError: true } : {}),
|
|
253
|
-
hint: `human registry admission is unavailable because the registry/projection failed to load: ${reg.error}. ` +
|
|
254
|
-
"Repair the existing registry projection from its fragments; do not re-add the human or downgrade the destination to an agent seat.",
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
const entities = reg.entities.map((e) => ({ entityId: e.entityId, address: e.address }));
|
|
258
|
-
const res = resolveExternal(parsed.local, entities);
|
|
259
|
-
if (res.kind !== "unregistered")
|
|
260
|
-
return undefined; // registered/scheme were admitted upstream
|
|
261
|
-
return { externalDomain: parsed.domain, unregisteredEntity: parsed.local, hint: res.error };
|
|
262
|
-
}
|
|
263
|
-
/** The refusal teaching for ANY rejected destination: the @external entity teaching
|
|
264
|
-
* (A4b) OR the host-suffix teaching (4b). One helper, all four refusal sites. */
|
|
265
|
-
export function destinationRefusalTeaching(session, loadRegistry = loadHumanRegistry) {
|
|
266
|
-
return externalAdmissionTeaching(session, loadRegistry) ?? destinationRigTeaching(session);
|
|
267
|
-
}
|
|
268
|
-
function destinationValidationError(field, session, loadRegistry) {
|
|
269
|
-
const teaching = destinationRefusalTeaching(session, loadRegistry);
|
|
270
|
-
if (teaching?.registryLoadError === true) {
|
|
271
|
-
return new QueueRepositoryError("human_registry_unavailable", `${field} ${session} cannot be admitted because the human registry failed to load: ${String(teaching.registryError)}`, teaching);
|
|
272
|
-
}
|
|
273
|
-
return new QueueRepositoryError("unknown_destination_rig", `${field} ${session} references an unknown rig`, teaching);
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* MF6: does a transport error/reason string denote a TIMEOUT (ambiguous — the
|
|
277
|
-
* send may have landed) rather than a definite failure? Used to classify a wake
|
|
278
|
-
* delivery as `indeterminate` vs `failed`.
|
|
279
|
-
*/
|
|
280
|
-
function isWakeTimeoutSignal(s) {
|
|
281
|
-
return !!s && /timeout|timed\s*out|etimedout/i.test(s);
|
|
282
|
-
}
|
|
283
|
-
export class QueueRepository {
|
|
284
|
-
db;
|
|
285
|
-
transitionLog;
|
|
286
|
-
eventBus;
|
|
287
|
-
validateRig;
|
|
288
|
-
transport;
|
|
289
|
-
/** W1 (transactional closure): the durable wake-intent store. A terminal act
|
|
290
|
-
* (handoff / handoff-and-complete) stages an outbox intent row INSIDE its
|
|
291
|
-
* db.transaction so close + transition + intent commit as one act or none;
|
|
292
|
-
* the delivery drains from that committed intent afterward. Wired post-
|
|
293
|
-
* construction by startup (dep-graph ordering, like transport).
|
|
294
|
-
*
|
|
295
|
-
* ABSENT = the test/bootstrap path, and what that means differs by caller —
|
|
296
|
-
* it is NOT a blanket best-effort fallback:
|
|
297
|
-
* • a nudge-intended TERMINAL close+successor act FAILS CLOSED (MF2):
|
|
298
|
-
* {@link assertTerminalClosureHasIntent} throws `wake_intent_store_unavailable`
|
|
299
|
-
* rather than produce an executed-but-unwoken item (pass `nudge:false` for a
|
|
300
|
-
* wake-less close);
|
|
301
|
-
* • {@link deliverWakeForSuccessor} — and only it — falls back to the pre-W1
|
|
302
|
-
* best-effort {@link maybeNudge} when no store is attached (P34 made that
|
|
303
|
-
* fallback real code rather than a promise in a comment). */
|
|
304
|
-
outbox;
|
|
305
|
-
resolveOccupantGeneration;
|
|
306
|
-
wakeRepo;
|
|
307
|
-
watchdogJobsRepo;
|
|
308
|
-
/** PL-007 Workspace Primitive — true when migration 038 has applied the
|
|
309
|
-
* queue_items.target_repo column. Older test fixtures that bypass the
|
|
310
|
-
* canonical migration list don't have the column; INSERTs degrade to
|
|
311
|
-
* the pre-PL-007 statement and target_repo input is silently dropped.
|
|
312
|
-
* Production daemons always have the column (migration is in startup.ts). */
|
|
313
|
-
hasTargetRepoColumn;
|
|
314
|
-
hasSummaryColumn;
|
|
315
|
-
hasHumanIntentColumn;
|
|
316
|
-
hasEvidenceRefColumn;
|
|
317
|
-
hasMintingGenColumn;
|
|
318
|
-
hasClaimedGenColumn;
|
|
319
|
-
hasQueueTransitionsTable;
|
|
320
|
-
hasOwnerNotificationColumns;
|
|
321
|
-
loadHumanRegistryFn;
|
|
322
|
-
/** OPR.0.4.6.WF3 FR-6 — injected by startup (never imported): the
|
|
323
|
-
* workflow domain's is-live-frontier-packet predicate. */
|
|
324
|
-
workflowFrontierPredicate;
|
|
325
|
-
constructor(db, eventBus, opts) {
|
|
326
|
-
this.db = db;
|
|
327
|
-
this.eventBus = eventBus;
|
|
328
|
-
this.transitionLog = new QueueTransitionLog(db);
|
|
329
|
-
this.wakeRepo = new QueueWakeRepository(db);
|
|
330
|
-
this.validateRig = opts?.validateRig ?? (() => true);
|
|
331
|
-
this.transport = opts?.transport;
|
|
332
|
-
this.workflowFrontierPredicate = opts?.workflowFrontierPredicate;
|
|
333
|
-
this.resolveOccupantGeneration = opts?.resolveOccupantGeneration;
|
|
334
|
-
this.loadHumanRegistryFn = opts?.loadHumanRegistry ?? (() => loadHumanRegistry());
|
|
335
|
-
this.hasTargetRepoColumn = detectQueueColumn(db, "target_repo");
|
|
336
|
-
this.hasSummaryColumn = detectQueueColumn(db, "summary");
|
|
337
|
-
this.hasHumanIntentColumn = detectQueueColumn(db, "human_intent");
|
|
338
|
-
this.hasEvidenceRefColumn = detectQueueColumn(db, "evidence_ref");
|
|
339
|
-
this.hasQueueTransitionsTable = detectTable(db, "queue_transitions");
|
|
340
|
-
const transitionColumns = this.hasQueueTransitionsTable
|
|
341
|
-
? new Set(db.prepare("PRAGMA table_info(queue_transitions)").all().map((column) => column.name))
|
|
342
|
-
: new Set();
|
|
343
|
-
this.hasOwnerNotificationColumns = transitionColumns.has("owner_notification_kind")
|
|
344
|
-
&& transitionColumns.has("owner_notification_level");
|
|
345
|
-
// GHOST-STAGE (e/Class-B): generation stamps (migration 063). Defensive detect so a pre-063
|
|
346
|
-
// harness degrades (writers skip the columns; the release predicate never matches unstamped rows).
|
|
347
|
-
this.hasMintingGenColumn = detectQueueColumn(db, "minting_generation_uuid");
|
|
348
|
-
this.hasClaimedGenColumn = detectQueueColumn(db, "claimed_by_generation_uuid");
|
|
349
|
-
// OPR.0.3.2.20 — register the EXACT human-seat regex predicate as
|
|
350
|
-
// a SQLite function so the attention query can apply the strict
|
|
351
|
-
// check BEFORE LIMIT. LIKE / GLOB patterns are supersets that
|
|
352
|
-
// would let malformed rows (e.g., 'human-@kernel' — empty name
|
|
353
|
-
// segment) occupy the LIMIT window and hide valid attention items
|
|
354
|
-
// behind them (guard re-verify-3 qitem-20260518193005 BLOCKER 1).
|
|
355
|
-
// better-sqlite3 db.function is idempotent; safe to call once at
|
|
356
|
-
// construction.
|
|
357
|
-
// OPR.0.4.4.19: single-source regex — the SQL function delegates to the
|
|
358
|
-
// session-name's canonical predicate (legacy and external) so SQL-side and TS-side
|
|
359
|
-
// checks cannot drift.
|
|
360
|
-
db.function("is_human_seat_session", { deterministic: true }, (value) => typeof value === "string" && isHumanSeatSessionRef(value) ? 1 : 0);
|
|
361
|
-
}
|
|
362
|
-
/** Startup attaches the generation-aware shared repository. Isolated domain
|
|
363
|
-
* fixtures fall back to a repository on this same SQLite connection. */
|
|
364
|
-
attachWatchdogJobsRepository(repo) {
|
|
365
|
-
this.watchdogJobsRepo = repo;
|
|
366
|
-
}
|
|
367
|
-
/** Startup wires this after queue/watchdog composition. Tests may also call
|
|
368
|
-
* it after reconstruction; it only reconciles queue-owned repeating timers. */
|
|
369
|
-
reconcileWaitReminders(changedQitem, proofChanged = false) {
|
|
370
|
-
refreshQueueWaits(this.db, this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db), changedQitem, proofChanged);
|
|
371
|
-
}
|
|
372
|
-
startWaitReminders() {
|
|
373
|
-
this.reconcileWaitReminders();
|
|
374
|
-
return this.eventBus.subscribe((event) => {
|
|
375
|
-
if (event.type.startsWith("queue.") && "qitemId" in event && typeof event.qitemId === "string") {
|
|
376
|
-
this.reconcileWaitReminders(event.qitemId);
|
|
377
|
-
}
|
|
378
|
-
else if (event.type === "proof.judged" || event.type === "proof.sources_changed") {
|
|
379
|
-
this.reconcileWaitReminders(undefined, true);
|
|
380
|
-
}
|
|
381
|
-
});
|
|
382
|
-
}
|
|
383
|
-
/**
|
|
384
|
-
* Attach the wake-path transport AFTER construction. Used by daemon
|
|
385
|
-
* startup, where SessionTransport is constructed later in the dep graph
|
|
386
|
-
* than QueueRepository (because SessionTransport needs agentActivityStore
|
|
387
|
-
* which itself needs eventBus). Calling this is safe at any time; create /
|
|
388
|
-
* handoff / handoff-and-complete will start nudging on the next call.
|
|
389
|
-
*/
|
|
390
|
-
attachTransport(transport) {
|
|
391
|
-
this.transport = transport;
|
|
392
|
-
}
|
|
393
|
-
/**
|
|
394
|
-
* W1 (transactional closure): attach the durable wake-intent store AFTER
|
|
395
|
-
* construction (same dep-graph reason as {@link attachTransport}). Once
|
|
396
|
-
* attached, handoff / handoff-and-complete stage an outbox intent row inside
|
|
397
|
-
* their terminal transaction, so the close and its wake intent are one commit.
|
|
398
|
-
*/
|
|
399
|
-
attachOutbox(outbox) {
|
|
400
|
-
// MF2: the wake intent must commit INSIDE the terminal transaction, which is
|
|
401
|
-
// only true when the outbox writes on the SAME connection. An outbox backed by
|
|
402
|
-
// a different DB would let the intent survive a rolled-back close (or vice
|
|
403
|
-
// versa) — "neither one act nor none". Reject a split-DB outbox at wire time.
|
|
404
|
-
if (outbox.db !== this.db) {
|
|
405
|
-
throw new QueueRepositoryError("outbox_db_mismatch", "attachOutbox requires an OutboxHandler bound to the SAME database connection as the queue repository — a split DB breaks the atomic close+intent seam");
|
|
406
|
-
}
|
|
407
|
-
this.outbox = outbox;
|
|
408
|
-
}
|
|
409
|
-
/** The one transition-write classifier. It consumes structured state/action facts only. */
|
|
410
|
-
classifyOwnerNotification(input) {
|
|
411
|
-
if (input.explicitKind === "human-decision-resolved") {
|
|
412
|
-
return { kind: input.explicitKind, level: "NOTICE" };
|
|
413
|
-
}
|
|
414
|
-
const registry = this.loadHumanRegistryFn();
|
|
415
|
-
if (!registry.ok)
|
|
416
|
-
return null;
|
|
417
|
-
const blockedHuman = resolveRegisteredHumanAddress(input.nextBlockedOn, registry.entities);
|
|
418
|
-
const previousBlockedHuman = resolveRegisteredHumanAddress(input.previousBlockedOn, registry.entities);
|
|
419
|
-
const enteredHumanPark = input.nextState === "blocked" && blockedHuman !== null &&
|
|
420
|
-
(input.previousState !== "blocked" || previousBlockedHuman !== blockedHuman);
|
|
421
|
-
if (enteredHumanPark)
|
|
422
|
-
return { kind: "human-required", level: "ALERT" };
|
|
423
|
-
const destinationHuman = resolveRegisteredHumanAddress(input.destinationSession, registry.entities);
|
|
424
|
-
if (input.action === "create" && destinationHuman !== null) {
|
|
425
|
-
return input.humanIntent === "update"
|
|
426
|
-
? { kind: "human-update", level: "NOTICE" }
|
|
427
|
-
: { kind: "human-required", level: "ALERT" };
|
|
428
|
-
}
|
|
429
|
-
return null;
|
|
430
|
-
}
|
|
431
|
-
/**
|
|
432
|
-
* W1 (transactional closure) — the PUBLIC composable primitive (stage half).
|
|
433
|
-
* Stage the durable WAKE INTENT for a successor qitem from INSIDE a terminal
|
|
434
|
-
* act's `db.transaction` (the queue's own connection), so the intent commits
|
|
435
|
-
* atomically with the close + transition. Public + composable so any
|
|
436
|
-
* close+successor writer — handoff / handoff-and-complete today, Mission Control
|
|
437
|
-
* / Workflow via the P34 follow-on — can call it within its own transaction (the
|
|
438
|
-
* `createWithinTransaction` precedent), making that wiring pure EXTENSION, not
|
|
439
|
-
* rework. Pair with {@link assertTerminalClosureHasIntent}, run as the LAST
|
|
440
|
-
* statement of the same transaction.
|
|
441
|
-
*
|
|
442
|
-
* The pane nudge itself is a post-commit side effect (reversed-never — a pane
|
|
443
|
-
* write inside the txn would make the transaction lie); what is durable is this
|
|
444
|
-
* intent row, which the delivery drains afterward. Freezes the emitting envelope
|
|
445
|
-
* (MF4); idempotent by a deterministic outbox id keyed on the successor.
|
|
446
|
-
* `nudge:false` intends no wake ⇒ no intent. A missing outbox is enforced by the
|
|
447
|
-
* guard (fail-closed, MF2), not silently skipped here.
|
|
448
|
-
*/
|
|
449
|
-
stageWakeIntent(successorQitemId, fromSession, toSession, identityProvenance, nudge) {
|
|
450
|
-
// No wake intended (nudge:false) ⇒ no durable intent to make durable. The
|
|
451
|
-
// W1-c guard is nudge-aware for the same reason: absence of an intent is a
|
|
452
|
-
// defect only when a wake WAS intended.
|
|
453
|
-
if (nudge === false)
|
|
454
|
-
return;
|
|
455
|
-
this.recordWakeIntent({
|
|
456
|
-
outboxId: `${WAKE_INTENT_PREFIX}${successorQitemId}`,
|
|
457
|
-
auditPointer: successorQitemId,
|
|
458
|
-
fromSession,
|
|
459
|
-
toSession,
|
|
460
|
-
identityProvenance,
|
|
461
|
-
bareBody: `Queue handoff: ${successorQitemId} - check your queue.`,
|
|
462
|
-
tags: this.getById(successorQitemId)?.handedOffFrom
|
|
463
|
-
? [`queue:return:${this.getByIdOrThrow(successorQitemId).handedOffFrom}`] : undefined,
|
|
464
|
-
});
|
|
465
|
-
}
|
|
466
|
-
recordWakeIntent(input) {
|
|
467
|
-
if (!this.outbox)
|
|
468
|
-
return null;
|
|
469
|
-
// MF4: freeze the emitting envelope at stage time. Delivery and crash
|
|
470
|
-
// recovery replay these exact bytes without re-resolving the occupant.
|
|
471
|
-
const stampISO = new Date().toISOString();
|
|
472
|
-
const genUuid = this.resolveOccupantGeneration?.(input.fromSession) ?? undefined;
|
|
473
|
-
const frozenEnvelope = wrapPaneEnvelope(input.fromSession, input.toSession, input.bareBody, { stampISO, genUuid });
|
|
474
|
-
this.outbox.record({
|
|
475
|
-
outboxId: input.outboxId,
|
|
476
|
-
senderSession: input.fromSession,
|
|
477
|
-
destinationSession: input.toSession,
|
|
478
|
-
body: frozenEnvelope,
|
|
479
|
-
tags: input.tags,
|
|
480
|
-
auditPointer: input.auditPointer,
|
|
481
|
-
identityProvenance: input.identityProvenance,
|
|
482
|
-
});
|
|
483
|
-
return input.outboxId;
|
|
484
|
-
}
|
|
485
|
-
stageAutoUnparkWakeIntent(input) {
|
|
486
|
-
return this.recordWakeIntent({
|
|
487
|
-
outboxId: `${WAKE_INTENT_PREFIX}blocker-${input.resumeTransitionId}`,
|
|
488
|
-
auditPointer: input.qitemId,
|
|
489
|
-
fromSession: input.fromSession,
|
|
490
|
-
toSession: input.destinationSession,
|
|
491
|
-
identityProvenance: input.identityProvenance,
|
|
492
|
-
bareBody: `Blocker ${input.blockerQitemId} resolved; parked qitem ${input.qitemId} is pending. Resume the recorded continuation and update the row.`,
|
|
493
|
-
tags: [AUTO_UNPARK_WAKE_TAG, `${AUTO_UNPARK_BLOCKER_TAG_PREFIX}${input.blockerQitemId}`, `queue:return:${input.blockerQitemId}`],
|
|
494
|
-
});
|
|
495
|
-
}
|
|
496
|
-
deliverWakeIntentAfterCommit(outboxId) {
|
|
497
|
-
queueMicrotask(() => {
|
|
498
|
-
void this.deliverWakeIntent(outboxId).catch((err) => {
|
|
499
|
-
console.error(`Auto-unpark wake delivery failed for ${outboxId}:`, err);
|
|
500
|
-
});
|
|
501
|
-
});
|
|
502
|
-
}
|
|
503
|
-
/**
|
|
504
|
-
* W1-c (transactional closure): the runtime SEAM GUARD. Called as the LAST
|
|
505
|
-
* statement inside a terminal act's db.transaction, it makes an
|
|
506
|
-
* executed-but-unwoken close UNWRITABLE: if this transaction wrote a terminal
|
|
507
|
-
* close AND a wake was intended, a durable wake intent for the successor MUST
|
|
508
|
-
* exist in the same transaction. If it does not, throw — the whole act rolls
|
|
509
|
-
* back at the seam, not at review.
|
|
510
|
-
*
|
|
511
|
-
* Nudge-aware: nudge:false intends no wake, so no intent is required. MF2:
|
|
512
|
-
* fail-closed when a wake IS intended but no intent store is attached (the
|
|
513
|
-
* guarantee is then impossible). PUBLIC composable primitive (guard half): any
|
|
514
|
-
* close+successor writer runs this as the LAST statement of its own transaction
|
|
515
|
-
* — handoff / handoff-and-complete today, Mission Control / Workflow via P34.
|
|
516
|
-
*/
|
|
517
|
-
assertTerminalClosureHasIntent(sourceQitemId, successorQitemId, nudge) {
|
|
518
|
-
if (nudge === false)
|
|
519
|
-
return; // no wake intended ⇒ no intent required
|
|
520
|
-
// MF2: fail CLOSED. A nudge-intended terminal act with no intent store cannot
|
|
521
|
-
// make its wake durable, so the guarantee is impossible — refuse the close
|
|
522
|
-
// rather than silently produce an executed-but-unwoken item (the exact class
|
|
523
|
-
// W1 makes unwritable). Production always attaches an outbox at startup.
|
|
524
|
-
if (!this.outbox) {
|
|
525
|
-
throw new QueueRepositoryError("wake_intent_store_unavailable", "a nudge-intended terminal act requires an attached wake-intent store to make its wake durable — none attached (pass nudge:false for a wake-less close, or attach an outbox)");
|
|
526
|
-
}
|
|
527
|
-
// Reads the txn-visible (uncommitted) state on this connection.
|
|
528
|
-
const src = this.getById(sourceQitemId);
|
|
529
|
-
if (!src || !isTerminalState(src.state))
|
|
530
|
-
return; // not a terminal close
|
|
531
|
-
const intent = this.outbox.getById(`${WAKE_INTENT_PREFIX}${successorQitemId}`);
|
|
532
|
-
if (!intent) {
|
|
533
|
-
throw new QueueRepositoryError("terminal_close_without_wake_intent", `terminal closure of ${sourceQitemId} committed without staging its wake intent for ${successorQitemId} — one act or none is violated`);
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
/**
|
|
537
|
-
* W1-b: deliver ONE committed wake intent. MF3: CLAIM (pending→sending) before
|
|
538
|
-
* the external send, then finalize (sending→outcome) after — so overlapping
|
|
539
|
-
* drains send the wake exactly ONCE (the effect, not just the state), and a
|
|
540
|
-
* second drain of an already-claimed/resolved intent skips. Returns what
|
|
541
|
-
* happened for the drain's tally.
|
|
542
|
-
*
|
|
543
|
-
* verified → delivered
|
|
544
|
-
* ok, unverified → indeterminate (ambiguous; never silently delivered/failed)
|
|
545
|
-
* timeout (MF6) → indeterminate (may have landed — not a hard failure)
|
|
546
|
-
* other not-ok/throw→ failed (visible terminal state)
|
|
547
|
-
*/
|
|
548
|
-
async deliverWakeIntent(outboxId) {
|
|
549
|
-
if (!this.outbox)
|
|
550
|
-
return "skipped";
|
|
551
|
-
if (!this.transport)
|
|
552
|
-
return "skipped"; // no transport → stays pending for a later drain
|
|
553
|
-
// MF3: CLAIM (pending→sending) BEFORE the external send so overlapping drains
|
|
554
|
-
// cannot both send. A losing claim — the row is no longer `pending` (already
|
|
555
|
-
// resolved, in-flight under another drainer, or claimed) — simply skips: no
|
|
556
|
-
// send, no tally. This makes the external effect once, not merely the state.
|
|
557
|
-
// Claim the exact return's arrival + dependent resumes atomically. Each
|
|
558
|
-
// original frozen intent and audit pointer survives; only transport coalesces.
|
|
559
|
-
let superseded = false;
|
|
560
|
-
const actionable = (entry) => {
|
|
561
|
-
const row = entry.auditPointer ? this.db.prepare("SELECT state FROM queue_items WHERE qitem_id = ?").get(entry.auditPointer) : undefined;
|
|
562
|
-
let current = row?.state === "pending";
|
|
563
|
-
const resumePrefix = `${WAKE_INTENT_PREFIX}blocker-`;
|
|
564
|
-
if (current && entry.outboxId.startsWith(resumePrefix)) {
|
|
565
|
-
const expected = Number(entry.outboxId.slice(resumePrefix.length));
|
|
566
|
-
const latest = this.db.prepare(`SELECT transition_id FROM (
|
|
567
|
-
SELECT transition_id, state, LAG(state) OVER (ORDER BY transition_id) AS previous_state
|
|
568
|
-
FROM queue_transitions WHERE qitem_id = ?)
|
|
569
|
-
WHERE state = 'pending' AND previous_state IS NOT 'pending' ORDER BY transition_id DESC LIMIT 1`)
|
|
570
|
-
.get(entry.auditPointer);
|
|
571
|
-
current = expected === latest?.transition_id;
|
|
572
|
-
}
|
|
573
|
-
if (!current) {
|
|
574
|
-
// Existing failed state means the requested old delivery was refused;
|
|
575
|
-
// the explicit tag distinguishes supersession from a transport attempt.
|
|
576
|
-
// Do not stamp last_nudge_result or delivered_at: neither happened.
|
|
577
|
-
const changed = this.db.prepare("UPDATE outbox_entries SET delivery_state = 'failed', tags = ? WHERE outbox_id = ? AND delivery_state = 'pending'")
|
|
578
|
-
.run(JSON.stringify([...(entry.tags ?? []), "queue:wake-superseded"]), entry.outboxId);
|
|
579
|
-
superseded ||= changed.changes > 0;
|
|
580
|
-
}
|
|
581
|
-
return current;
|
|
582
|
-
};
|
|
583
|
-
const group = this.db.transaction(() => {
|
|
584
|
-
const candidate = this.outbox.getById(outboxId);
|
|
585
|
-
if (!candidate || candidate.deliveryState !== "pending" || !actionable(candidate))
|
|
586
|
-
return [];
|
|
587
|
-
if (!this.outbox.claimForDelivery(outboxId))
|
|
588
|
-
return [];
|
|
589
|
-
const first = this.outbox.getById(outboxId);
|
|
590
|
-
const intents = [first];
|
|
591
|
-
const correlation = first.tags?.find(tag => tag.startsWith("queue:return:"));
|
|
592
|
-
if (correlation) {
|
|
593
|
-
const peers = this.db.prepare(`SELECT outbox_id FROM outbox_entries
|
|
594
|
-
WHERE delivery_state = 'pending' AND destination_session = ? AND substr(outbox_id, 1, ?) = ?
|
|
595
|
-
AND EXISTS (SELECT 1 FROM json_each(outbox_entries.tags) WHERE value = ?)
|
|
596
|
-
ORDER BY outbox_id`).all(first.destinationSession, WAKE_INTENT_PREFIX.length, WAKE_INTENT_PREFIX, correlation);
|
|
597
|
-
for (const peer of peers)
|
|
598
|
-
if (actionable(this.outbox.getById(peer.outbox_id)) && this.outbox.claimForDelivery(peer.outbox_id))
|
|
599
|
-
intents.push(this.outbox.getById(peer.outbox_id));
|
|
600
|
-
}
|
|
601
|
-
return intents;
|
|
602
|
-
})();
|
|
603
|
-
const intent = group[0];
|
|
604
|
-
if (!intent)
|
|
605
|
-
return superseded ? "failed" : "skipped";
|
|
606
|
-
// Only deliver a wake for a qitem that actually exists. A wake intent whose
|
|
607
|
-
// target qitem is missing — a caller-recorded id under this prefix (the route
|
|
608
|
-
// no longer refuses those), or a successor already swept — is finalized
|
|
609
|
-
// `failed`, never sent as a real wake.
|
|
610
|
-
if (!intent.auditPointer || !this.getById(intent.auditPointer)) {
|
|
611
|
-
this.outbox.finalizeDelivery(outboxId, "failed");
|
|
612
|
-
return "failed";
|
|
613
|
-
}
|
|
614
|
-
const qitemId = intent.auditPointer ?? outboxId;
|
|
615
|
-
// MF4: send the FROZEN envelope stored on the intent verbatim (no re-resolution).
|
|
616
|
-
const outcome = await this.performWakeSend(qitemId, intent.destinationSession, intent.senderSession, undefined, group.map(entry => entry.body).join("\n"));
|
|
617
|
-
const finalState = outcome.classified === "verified" ? "delivered" : outcome.classified;
|
|
618
|
-
for (const member of group) {
|
|
619
|
-
const intent = member;
|
|
620
|
-
const qitemId = intent.auditPointer;
|
|
621
|
-
const blockerRef = intent.tags?.includes(AUTO_UNPARK_WAKE_TAG)
|
|
622
|
-
? intent.tags
|
|
623
|
-
.find((tag) => tag.startsWith(AUTO_UNPARK_BLOCKER_TAG_PREFIX))
|
|
624
|
-
?.slice(AUTO_UNPARK_BLOCKER_TAG_PREFIX.length)
|
|
625
|
-
: undefined;
|
|
626
|
-
const wakeEvent = this.db.transaction(() => {
|
|
627
|
-
this.recordNudgeAttempt(qitemId, outcome.nudgeResult);
|
|
628
|
-
this.outbox.finalizeDelivery(intent.outboxId, finalState);
|
|
629
|
-
if (!blockerRef)
|
|
630
|
-
return null;
|
|
631
|
-
const item = this.getByIdOrThrow(qitemId);
|
|
632
|
-
const transition = this.transitionLog.append({
|
|
633
|
-
qitemId,
|
|
634
|
-
state: item.state,
|
|
635
|
-
actorSession: "queue@system",
|
|
636
|
-
transitionNote: `blocker ${blockerRef} wake attempted; delivery=${outcome.nudgeResult}`,
|
|
637
|
-
});
|
|
638
|
-
this.wakeRepo.record({
|
|
639
|
-
transitionId: transition.transitionId,
|
|
640
|
-
qitemId,
|
|
641
|
-
phase: "fired",
|
|
642
|
-
kind: "blocker",
|
|
643
|
-
ref: blockerRef,
|
|
644
|
-
deliveryStatus: outcome.nudgeResult,
|
|
645
|
-
});
|
|
646
|
-
return this.eventBus.persistWithinTransaction({
|
|
647
|
-
type: "queue.updated",
|
|
648
|
-
qitemId,
|
|
649
|
-
fromState: item.state,
|
|
650
|
-
toState: item.state,
|
|
651
|
-
closureReason: null,
|
|
652
|
-
closureTarget: null,
|
|
653
|
-
actorSession: "queue@system",
|
|
654
|
-
summary: item.summary ?? null,
|
|
655
|
-
});
|
|
656
|
-
})();
|
|
657
|
-
if (wakeEvent)
|
|
658
|
-
this.eventBus.notifySubscribers(wakeEvent);
|
|
659
|
-
}
|
|
660
|
-
return finalState;
|
|
661
|
-
}
|
|
662
|
-
/**
|
|
663
|
-
* W1-b: the post-commit delivery for a successor's wake, and the ONE shared
|
|
664
|
-
* staged-intent delivery path. When the durable intent store is present
|
|
665
|
-
* (production), deliver the just-committed intent — which CLAIMS and FINALIZES
|
|
666
|
-
* the row, so a later recovery sweep cannot send it a second time. When it is
|
|
667
|
-
* absent (test/bootstrap), fall back to the pre-W1 best-effort nudge so behavior
|
|
668
|
-
* is unchanged where there is no intent to make durable. Called AFTER the
|
|
669
|
-
* terminal transaction commits (reversed-never: a pane write must not join the
|
|
670
|
-
* db transaction).
|
|
671
|
-
*
|
|
672
|
-
* PUBLIC as of P34: every terminal-closing writer that stages an intent must
|
|
673
|
-
* deliver through THIS path rather than {@link maybeNudge}. `maybeNudge` sends
|
|
674
|
-
* WITHOUT claiming or finalizing, so a staged intent would remain `pending` and
|
|
675
|
-
* the startup recovery sweep would deliver the same wake AGAIN. One staged
|
|
676
|
-
* intent, one delivery, one finalized row.
|
|
677
|
-
*
|
|
678
|
-
* P34 correction: the no-outbox fallback above was documented here but never
|
|
679
|
-
* implemented — `deliverWakeIntent` simply returns "skipped" with no outbox
|
|
680
|
-
* attached, so the nudge vanished SILENTLY (a skip is not an error, so nothing
|
|
681
|
-
* surfaced it). The pre-W1 callers reached this path only after the MF2 guard
|
|
682
|
-
* had already proven an outbox was attached, which is why it never showed. P34
|
|
683
|
-
* routes writers here whose harnesses attach no outbox, so the fallback is now
|
|
684
|
-
* real code rather than a promise in a comment.
|
|
685
|
-
*/
|
|
686
|
-
async deliverWakeForSuccessor(successorQitemId, destinationSession, nudge, sourceSession) {
|
|
687
|
-
if (nudge === false)
|
|
688
|
-
return;
|
|
689
|
-
// No durable intent store ⇒ there is no intent to claim/finalize. Fall back to
|
|
690
|
-
// the pre-W1 best-effort nudge so the wake still happens (the documented
|
|
691
|
-
// contract), rather than silently skipping it.
|
|
692
|
-
if (!this.outbox) {
|
|
693
|
-
await this.maybeNudge(successorQitemId, destinationSession, nudge, sourceSession);
|
|
694
|
-
return;
|
|
695
|
-
}
|
|
696
|
-
await this.deliverWakeIntent(`${WAKE_INTENT_PREFIX}${successorQitemId}`);
|
|
697
|
-
}
|
|
698
|
-
/**
|
|
699
|
-
* W1-b: the startup-recovery sweep. Delivers wake intents a crash left
|
|
700
|
-
* committed-but-undelivered (the terminal txn committed, the process died
|
|
701
|
-
* before the post-commit deliver). Pages in bounded batches and TERMINATES on
|
|
702
|
-
* a served short batch or on a no-progress round (a flapping transport marks
|
|
703
|
-
* rows failed = visible, so it still progresses) — never a silent cap, never a
|
|
704
|
-
* spin.
|
|
705
|
-
*
|
|
706
|
-
* MF6 (honest retry policy): the sweep retries ONLY `pending` rows — i.e. wake
|
|
707
|
-
* intents a crash left committed-but-undelivered. Terminal `failed` and
|
|
708
|
-
* `indeterminate` rows are NOT re-driven: a failed row would risk resurrecting
|
|
709
|
-
* a dead wake and an indeterminate one may already have landed (double-send).
|
|
710
|
-
* Both are left in a VISIBLE terminal state for out-of-band reconciliation. No
|
|
711
|
-
* periodic timer (out of scope, ruled); a bounded retry of failed rows is the
|
|
712
|
-
* NAMED residue, not a silent guarantee.
|
|
713
|
-
*/
|
|
714
|
-
/**
|
|
715
|
-
* BLOCKING 1 (guard re-seal): the recovery-boundary reconciliation, called ONCE
|
|
716
|
-
* at startup (NOT inside the drain, which can be invoked concurrently). Moves any
|
|
717
|
-
* abandoned `sending` wake intents — a prior crashed process's claims — to
|
|
718
|
-
* `indeterminate`, WITHOUT re-sending: a claim left `sending` is ambiguous (the
|
|
719
|
-
* send may or may not have landed). Kept SEPARATE from drainPendingWakeIntents so
|
|
720
|
-
* an overlapping drain can never reconcile another drain's in-flight claim.
|
|
721
|
-
* Returns the count reconciled.
|
|
722
|
-
*/
|
|
723
|
-
reconcileAbandonedWakeIntents() {
|
|
724
|
-
if (!this.outbox)
|
|
725
|
-
return 0;
|
|
726
|
-
return this.outbox.reconcileAbandonedSending(WAKE_INTENT_PREFIX);
|
|
727
|
-
}
|
|
728
|
-
async drainPendingWakeIntents() {
|
|
729
|
-
const tally = { delivered: 0, indeterminate: 0, failed: 0 };
|
|
730
|
-
if (!this.outbox || !this.transport)
|
|
731
|
-
return tally;
|
|
732
|
-
const BATCH = 200;
|
|
733
|
-
for (;;) {
|
|
734
|
-
const pending = this.outbox.listPending(WAKE_INTENT_PREFIX, BATCH);
|
|
735
|
-
if (pending.length === 0)
|
|
736
|
-
break;
|
|
737
|
-
let progressed = 0;
|
|
738
|
-
for (const intent of pending) {
|
|
739
|
-
const outcome = await this.deliverWakeIntent(intent.outboxId);
|
|
740
|
-
if (outcome === "delivered") {
|
|
741
|
-
tally.delivered++;
|
|
742
|
-
progressed++;
|
|
743
|
-
}
|
|
744
|
-
else if (outcome === "indeterminate") {
|
|
745
|
-
tally.indeterminate++;
|
|
746
|
-
progressed++;
|
|
747
|
-
}
|
|
748
|
-
else if (outcome === "failed") {
|
|
749
|
-
tally.failed++;
|
|
750
|
-
progressed++;
|
|
751
|
-
}
|
|
752
|
-
}
|
|
753
|
-
// Nothing left pending changed state this round (e.g. transport gone
|
|
754
|
-
// mid-sweep) — stop rather than spin; the next daemon start retries.
|
|
755
|
-
if (progressed === 0)
|
|
756
|
-
break;
|
|
757
|
-
if (pending.length < BATCH)
|
|
758
|
-
break; // served short batch ⇒ drained
|
|
759
|
-
}
|
|
760
|
-
return tally;
|
|
761
|
-
}
|
|
762
|
-
/**
|
|
763
|
-
* Issue a default nudge to the destination after a create / handoff /
|
|
764
|
-
* handoff-and-complete commit. Records the result via recordNudgeAttempt.
|
|
765
|
-
* Errors are caught and surfaced as nudge_result strings — they do not
|
|
766
|
-
* unwind the underlying queue mutation.
|
|
767
|
-
*
|
|
768
|
-
* Phase D extension point (orch-ratified): public so workflow-projector
|
|
769
|
-
* can invoke after its outer transaction commits, completing the
|
|
770
|
-
* createWithinTransaction()'s deferred post-commit side effects.
|
|
771
|
-
*
|
|
772
|
-
* V0.3.1 slice 23 queue-handoff-envelope: the nudge body
|
|
773
|
-
* is now wrapped with the same From/To/---/body/---/↩ Reply envelope
|
|
774
|
-
* that `rig send` uses. `sourceSession` is the seat that triggered
|
|
775
|
-
* the create/handoff so the recipient pane shows where the nudge
|
|
776
|
-
* came from + a reply hint. A queue nudge is the ONE non-refusable
|
|
777
|
-
* sender — it has no seat to send an error back to — so when
|
|
778
|
-
* `sourceSession` is undefined `wrapPaneEnvelope` applies its own
|
|
779
|
-
* `<unknown sender>` fallback internally (`pane-envelope.ts`). After
|
|
780
|
-
* A1 that is the SOLE definition of the marker in the tree (the CLI
|
|
781
|
-
* copies were deleted, refused at the seat boundary instead); this
|
|
782
|
-
* site holds no copy of its own.
|
|
783
|
-
*/
|
|
784
|
-
async maybeNudge(qitemId, destinationSession, nudgeOpt, sourceSession, bodyOverride) {
|
|
785
|
-
if (nudgeOpt === false)
|
|
786
|
-
return;
|
|
787
|
-
if (!this.transport)
|
|
788
|
-
return;
|
|
789
|
-
const outcome = await this.performWakeSend(qitemId, destinationSession, sourceSession, bodyOverride);
|
|
790
|
-
this.recordNudgeAttempt(qitemId, outcome.nudgeResult);
|
|
791
|
-
}
|
|
792
|
-
/**
|
|
793
|
-
* W1 (transactional closure): the shared wake-send CORE. Builds the pane
|
|
794
|
-
* envelope, sends with verify, and CLASSIFIES the transport result into the W1
|
|
795
|
-
* delivery vocabulary (verified | indeterminate | failed). It touches NO
|
|
796
|
-
* persistence — callers decide what to record: {@link maybeNudge} records the
|
|
797
|
-
* nudge attempt; {@link deliverWakeIntent} additionally CAS-marks the durable
|
|
798
|
-
* intent row. Only ever called when `this.transport` is set (callers guard).
|
|
799
|
-
*
|
|
800
|
-
* The `indeterminate` classification is the ambiguous face: `res.ok && !res.verified`
|
|
801
|
-
* — the delivery LANDED on the wire but its render could not be confirmed
|
|
802
|
-
* (the "delivered-ack-pending" nudge literal). It is never promoted to
|
|
803
|
-
* delivered nor demoted to failed.
|
|
804
|
-
*/
|
|
805
|
-
async performWakeSend(qitemId, destinationSession, sourceSession, bodyOverride, prebuiltText) {
|
|
806
|
-
// DEFECT FIX qitem-20260827065907-b9ae334c (S1-class, 3 live specimens): a virtual
|
|
807
|
-
// @external destination has NO pane — the queue row ITSELF is the gateway
|
|
808
|
-
// subsystem's input (the Slack connector polls human-destined rows and its own
|
|
809
|
-
// ledger is the delivery record). Falling through to tmux here recorded
|
|
810
|
-
// "failed: … tmux reports no session" while the founder verifiably received the
|
|
811
|
-
// message, and that failed: literal poisoned the undelivered surface.
|
|
812
|
-
// OPR.0.5.6.14 — the inline @external branch became THE ONE RESOLVER SEAM
|
|
813
|
-
// (gateway/destination-resolver.ts): pane-bound keeps terminal transport;
|
|
814
|
-
// gateway-routable (@external AND registry-resolved aliases like the
|
|
815
|
-
// paneless human-*@kernel virtual identities — the live 4-row specimen
|
|
816
|
-
// class) is GATEWAY-OWNED (tmux never consulted; the connector's row-poll
|
|
817
|
-
// is the dispatch and its ledger the delivery record); neither is an
|
|
818
|
-
// honest structured teaching refusal (tmux is not consulted for an
|
|
819
|
-
// address it can never hold). Classified indeterminate for gateway
|
|
820
|
-
// (landed with the owning subsystem; render unconfirmable here) — never
|
|
821
|
-
// verified, never failed.
|
|
822
|
-
const destClass = classifyDestination(destinationSession, {
|
|
823
|
-
entities: (() => {
|
|
824
|
-
const loaded = this.loadHumanRegistryFn();
|
|
825
|
-
return loaded.ok ? loaded.entities : null;
|
|
826
|
-
})(),
|
|
827
|
-
hasTerminalTransport: (dest) => this.hasTerminalTransport(dest),
|
|
828
|
-
});
|
|
829
|
-
if (destClass.class === "gateway-routable") {
|
|
830
|
-
const resolvedNote = destClass.via === "registry-alias" && destClass.resolvedHuman
|
|
831
|
-
? ` — the human registry resolves it to registered human '${destClass.resolvedHuman}'`
|
|
832
|
-
: "";
|
|
833
|
-
return {
|
|
834
|
-
classified: "indeterminate",
|
|
835
|
-
nudgeResult: `gateway-owned: '${destinationSession}' is a virtual ${destClass.via === "registry-alias" ? "paneless human" : "@external"} destination${resolvedNote} — delivery rides the gateway subsystem (Slack connector), whose own ledger is the delivery record; tmux was not consulted (it can never hold this address class)`,
|
|
836
|
-
};
|
|
837
|
-
}
|
|
838
|
-
if (destClass.class === "unroutable") {
|
|
839
|
-
return { classified: "failed", nudgeResult: destClass.teaching };
|
|
840
|
-
}
|
|
841
|
-
const stampISO = new Date().toISOString();
|
|
842
|
-
let text;
|
|
843
|
-
if (prebuiltText !== undefined) {
|
|
844
|
-
// MF4: a durable wake intent carries its FROZEN envelope (generation resolved
|
|
845
|
-
// at STAGE time). Deliver it verbatim — never rebuild — so a crash-recovery
|
|
846
|
-
// after a tenure swap replays the emitting generation, not the current one.
|
|
847
|
-
text = prebuiltText;
|
|
848
|
-
}
|
|
849
|
-
else {
|
|
850
|
-
// OPR.0.4.4.19 FR-7: bodyOverride lets the resolve verb carry the
|
|
851
|
-
// decision text to the parked owner; default stays the handoff nudge.
|
|
852
|
-
const bareBody = bodyOverride ?? `Queue handoff: ${qitemId} - check your queue.`;
|
|
853
|
-
// GHOST-STAGE (h): the single HG-5 baseline change deferred from g — the handoff nudge now carries
|
|
854
|
-
// a Sent: stamp (so it renders byte-parically with a rig send) plus the SOURCE seat's occupant
|
|
855
|
-
// generation (g's already-wired render, resolved here; absent=UNKNOWN=omit, never forged). The
|
|
856
|
-
// stampISO also feeds the transport's delivered-latency flag so a nudge that waited on a busy /
|
|
857
|
-
// mid-handover successor shows ' · delivered +Ns' for free.
|
|
858
|
-
const genUuid = sourceSession
|
|
859
|
-
? (this.resolveOccupantGeneration?.(sourceSession) ?? undefined)
|
|
860
|
-
: undefined;
|
|
861
|
-
text = wrapPaneEnvelope(sourceSession, destinationSession, bareBody, { stampISO, genUuid });
|
|
862
|
-
}
|
|
863
|
-
try {
|
|
864
|
-
const res = await this.transport.send(destinationSession, text, { verify: true, stampISO });
|
|
865
|
-
// OPR.0.3.2.21.FR-4(c) — wording rename: the prior literal
|
|
866
|
-
// "sent-unverified" read as a failure even in the common case
|
|
867
|
-
// (delivery confirmed but the synchronous ack window expired,
|
|
868
|
-
// which is normal for codex seats mid-task). The new literal
|
|
869
|
-
// "delivered-ack-pending" reads as healthy. The old "verified"
|
|
870
|
-
// case is unchanged for backward-compat with any tooling that
|
|
871
|
-
// already consumed the positive literal.
|
|
872
|
-
if (res.ok) {
|
|
873
|
-
return res.verified
|
|
874
|
-
? { classified: "verified", nudgeResult: "verified" }
|
|
875
|
-
: { classified: "indeterminate", nudgeResult: "delivered-ack-pending" };
|
|
876
|
-
}
|
|
877
|
-
// MF6: a TIMEOUT is ambiguous — the send may have landed but the ack window
|
|
878
|
-
// expired — so it records `indeterminate` (never silently delivered, never a
|
|
879
|
-
// hard `failed`). A definite non-timeout failure (unreachable, unknown
|
|
880
|
-
// session) stays `failed`.
|
|
881
|
-
const detail = res.error ?? res.reason ?? "unknown";
|
|
882
|
-
if (isWakeTimeoutSignal(res.reason) || isWakeTimeoutSignal(res.error)) {
|
|
883
|
-
return { classified: "indeterminate", nudgeResult: `indeterminate:${detail}` };
|
|
884
|
-
}
|
|
885
|
-
return { classified: "failed", nudgeResult: `failed:${detail}` };
|
|
886
|
-
}
|
|
887
|
-
catch (err) {
|
|
888
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
889
|
-
// A thrown timeout is equally ambiguous (see above).
|
|
890
|
-
if (isWakeTimeoutSignal(msg)) {
|
|
891
|
-
return { classified: "indeterminate", nudgeResult: `indeterminate:${msg}` };
|
|
892
|
-
}
|
|
893
|
-
return { classified: "failed", nudgeResult: `failed:${msg}` };
|
|
894
|
-
}
|
|
895
|
-
}
|
|
896
|
-
async create(input) {
|
|
897
|
-
// FOUNDER ROOT INVARIANT (2026-08-27, supersedes 51-09 incr 4 / ruling cb19867f Q2):
|
|
898
|
-
// a LOCAL write stores the bare transport identity — no self-host suffix inside one
|
|
899
|
-
// instance. Host identity is added only at the cross-host forwarding boundary
|
|
900
|
-
// (routes/queue.ts stamp-at-FORWARD), and a genuine origin triple arriving from a
|
|
901
|
-
// forward is stored verbatim (never re-stamped, never stripped).
|
|
902
|
-
if (!this.validateRig(input.destinationSession)) {
|
|
903
|
-
throw destinationValidationError("destination_session", input.destinationSession, this.loadHumanRegistryFn);
|
|
904
|
-
}
|
|
905
|
-
const txn = this.db.transaction(() => this.createInTransactionalContext(input));
|
|
906
|
-
let id;
|
|
907
|
-
let persistedEvent;
|
|
908
|
-
try {
|
|
909
|
-
({ qitemId: id, persistedEvent } = txn());
|
|
910
|
-
}
|
|
911
|
-
catch (err) {
|
|
912
|
-
// OPR.0.4.6.MH3 Q-a (FR-5): at-least-once cross-host forwards retry with
|
|
913
|
-
// the SAME minted qitemId, so a PK conflict on an EXISTING row is an
|
|
914
|
-
// idempotent RE-DELIVERY when the identity fields match — return the
|
|
915
|
-
// stored row (no second insert, no second event/nudge). A conflict whose
|
|
916
|
-
// identity fields DIFFER (same id, different destination/source) is a
|
|
917
|
-
// caller id-reuse bug — a structured error, never a silent overwrite.
|
|
918
|
-
// Local (non-forwarded) creates that pass an explicit --id keep the same
|
|
919
|
-
// safety for free.
|
|
920
|
-
if (input.qitemId && isQitemPrimaryKeyConflict(err)) {
|
|
921
|
-
const existing = this.getById(input.qitemId);
|
|
922
|
-
if (existing) {
|
|
923
|
-
if (existing.destinationSession === input.destinationSession &&
|
|
924
|
-
existing.sourceSession === input.sourceSession) {
|
|
925
|
-
return existing;
|
|
926
|
-
}
|
|
927
|
-
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`, {
|
|
928
|
-
qitemId: input.qitemId,
|
|
929
|
-
existingDestination: existing.destinationSession,
|
|
930
|
-
existingSource: existing.sourceSession,
|
|
931
|
-
});
|
|
932
|
-
}
|
|
933
|
-
}
|
|
934
|
-
throw err;
|
|
935
|
-
}
|
|
936
|
-
this.eventBus.notifySubscribers(persistedEvent);
|
|
937
|
-
await this.maybeNudge(id, input.destinationSession, input.nudge, input.sourceSession);
|
|
938
|
-
return this.getByIdOrThrow(id);
|
|
939
|
-
}
|
|
940
|
-
/**
|
|
941
|
-
* PL-004 Phase D extension point (orch-ratified per slice IMPL §
|
|
942
|
-
* Driver Handoff Contract). Creates a queue item using the SAME
|
|
943
|
-
* caller-managed db.transaction for transactional-scribe semantics
|
|
944
|
-
* (workflow-projector folds step closure + next-qitem creation into
|
|
945
|
-
* one atomic unit). Returns the persisted event AND qitem id so the
|
|
946
|
-
* caller can defer notifySubscribers/maybeNudge until AFTER its
|
|
947
|
-
* outer transaction commits.
|
|
948
|
-
*
|
|
949
|
-
* Caller MUST:
|
|
950
|
-
* 1. Invoke this from inside a `db.transaction(() => {...})` block.
|
|
951
|
-
* 2. After the outer txn commits, call:
|
|
952
|
-
* - eventBus.notifySubscribers(persistedEvent)
|
|
953
|
-
* - this.maybeNudge(qitemId, destinationSession, input.nudge)
|
|
954
|
-
* 3. NOT call this from outside a transaction (will produce a
|
|
955
|
-
* half-state if the caller errors before committing).
|
|
956
|
-
*
|
|
957
|
-
* The split exists ONLY because notifySubscribers + maybeNudge are
|
|
958
|
-
* post-commit side effects (subscribers should not see events for
|
|
959
|
-
* data that may roll back; nudges should not fire for handoffs that
|
|
960
|
-
* may roll back). For independent create()s that don't need to
|
|
961
|
-
* compose with an outer transaction, use create() instead.
|
|
962
|
-
*/
|
|
963
|
-
createWithinTransaction(input) {
|
|
964
|
-
if (!this.validateRig(input.destinationSession)) {
|
|
965
|
-
throw destinationValidationError("destination_session", input.destinationSession, this.loadHumanRegistryFn);
|
|
966
|
-
}
|
|
967
|
-
const result = this.createInTransactionalContext(input);
|
|
968
|
-
return {
|
|
969
|
-
qitemId: result.qitemId,
|
|
970
|
-
persistedEvent: result.persistedEvent,
|
|
971
|
-
destinationSession: input.destinationSession,
|
|
972
|
-
nudge: input.nudge,
|
|
973
|
-
};
|
|
974
|
-
}
|
|
975
|
-
/**
|
|
976
|
-
* Internal: insert + transition + emit event. Caller is responsible
|
|
977
|
-
* for transaction wrapping (the public create() wraps; the public
|
|
978
|
-
* createWithinTransaction() does not — caller's outer transaction
|
|
979
|
-
* provides the atomic boundary).
|
|
980
|
-
*/
|
|
981
|
-
createInTransactionalContext(input) {
|
|
982
|
-
// OPR.0.4.4.19 FR-4/FR-5 — human-routed items require summary +
|
|
983
|
-
// evidence_ref at the domain write path (the validateClosure pattern).
|
|
984
|
-
// The validator is a no-op for non-human-routed items (BR-1).
|
|
985
|
-
const humanRoute = validateHumanRoute({
|
|
986
|
-
tier: input.tier ?? null,
|
|
987
|
-
destinationSession: input.destinationSession,
|
|
988
|
-
summary: input.summary ?? null,
|
|
989
|
-
evidenceRef: input.evidenceRef ?? null,
|
|
990
|
-
});
|
|
991
|
-
if (!humanRoute.ok) {
|
|
992
|
-
throw new QueueRepositoryError(humanRoute.code, humanRoute.message, {
|
|
993
|
-
missingFields: humanRoute.missingFields,
|
|
994
|
-
});
|
|
995
|
-
}
|
|
996
|
-
if (input.humanIntent != null && input.humanIntent !== "decision" && input.humanIntent !== "update") {
|
|
997
|
-
throw new QueueRepositoryError("invalid_human_notification", "humanIntent must be decision or update; omission retains legacy decision behavior.");
|
|
998
|
-
}
|
|
999
|
-
if (input.humanDetail != null && (typeof input.humanDetail !== "string" || !input.humanDetail.trim())) {
|
|
1000
|
-
throw new QueueRepositoryError("invalid_human_notification", "humanDetail must be nonempty supplemental text or omitted.");
|
|
1001
|
-
}
|
|
1002
|
-
if (input.humanIntent != null || input.humanDetail != null) {
|
|
1003
|
-
if (!isHumanSeatSessionRef(input.destinationSession)) {
|
|
1004
|
-
throw new QueueRepositoryError("invalid_human_notification", "humanIntent/humanDetail require a human destination; agent continuation belongs in its own qitem.");
|
|
1005
|
-
}
|
|
1006
|
-
if (!this.hasHumanIntentColumn)
|
|
1007
|
-
throw new QueueRepositoryError("invalid_human_notification", "Human notification fields require the current queue schema; they were not saved.");
|
|
1008
|
-
}
|
|
1009
|
-
const id = input.qitemId ?? newQitemId();
|
|
1010
|
-
const ts = new Date().toISOString();
|
|
1011
|
-
const priority = input.priority ?? "routine";
|
|
1012
|
-
const tier = input.tier ?? null;
|
|
1013
|
-
const tags = input.tags ? JSON.stringify(input.tags) : null;
|
|
1014
|
-
const chain = input.chainOfRecord ? JSON.stringify(input.chainOfRecord) : null;
|
|
1015
|
-
const expiresAt = input.expiresAt ?? null;
|
|
1016
|
-
const targetRepo = input.targetRepo ?? null;
|
|
1017
|
-
// 0.5.1-53 Atom 2b — supersession back-link (successor -> the row it replaced). Absent for a normal create.
|
|
1018
|
-
const handedOffFrom = input.handedOffFrom ?? null;
|
|
1019
|
-
if (this.hasTargetRepoColumn) {
|
|
1020
|
-
this.db
|
|
1021
|
-
.prepare(`INSERT INTO queue_items (
|
|
1022
|
-
qitem_id, ts_created, ts_updated, source_session, destination_session,
|
|
1023
|
-
state, priority, tier, tags, expires_at, chain_of_record, handed_off_from, body, target_repo
|
|
1024
|
-
) VALUES (?, ?, ?, ?, ?, 'pending', ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
1025
|
-
.run(id, ts, ts, input.sourceSession, input.destinationSession, priority, tier, tags, expiresAt, chain, handedOffFrom, input.body, targetRepo);
|
|
1026
|
-
}
|
|
1027
|
-
else {
|
|
1028
|
-
this.db
|
|
1029
|
-
.prepare(`INSERT INTO queue_items (
|
|
1030
|
-
qitem_id, ts_created, ts_updated, source_session, destination_session,
|
|
1031
|
-
state, priority, tier, tags, expires_at, chain_of_record, handed_off_from, body
|
|
1032
|
-
) VALUES (?, ?, ?, ?, ?, 'pending', ?, ?, ?, ?, ?, ?, ?)`)
|
|
1033
|
-
.run(id, ts, ts, input.sourceSession, input.destinationSession, priority, tier, tags, expiresAt, chain, handedOffFrom, input.body);
|
|
1034
|
-
}
|
|
1035
|
-
this.persistSummary(id, input.summary ?? null);
|
|
1036
|
-
this.persistEvidenceRef(id, input.evidenceRef ?? null);
|
|
1037
|
-
if (this.hasHumanIntentColumn) {
|
|
1038
|
-
this.db.prepare("UPDATE queue_items SET human_intent = ?, human_detail = ? WHERE qitem_id = ?")
|
|
1039
|
-
.run(input.humanIntent ?? null, input.humanDetail ?? null, id);
|
|
1040
|
-
}
|
|
1041
|
-
this.persistMintingGeneration(id, input.sourceSession);
|
|
1042
|
-
const notification = this.classifyOwnerNotification({
|
|
1043
|
-
action: "create",
|
|
1044
|
-
humanIntent: input.humanIntent,
|
|
1045
|
-
destinationSession: input.destinationSession,
|
|
1046
|
-
nextState: "pending",
|
|
1047
|
-
});
|
|
1048
|
-
this.transitionLog.append({
|
|
1049
|
-
qitemId: id,
|
|
1050
|
-
state: "pending",
|
|
1051
|
-
actorSession: input.sourceSession,
|
|
1052
|
-
transitionNote: "created",
|
|
1053
|
-
identityProvenance: input.identityProvenance ?? null, // P21 §4 era-stamp
|
|
1054
|
-
ownerNotificationKind: notification?.kind,
|
|
1055
|
-
ownerNotificationLevel: notification?.level,
|
|
1056
|
-
});
|
|
1057
|
-
const persistedEvent = this.eventBus.persistWithinTransaction({
|
|
1058
|
-
type: "queue.created",
|
|
1059
|
-
qitemId: id,
|
|
1060
|
-
sourceSession: input.sourceSession,
|
|
1061
|
-
destinationSession: input.destinationSession,
|
|
1062
|
-
priority,
|
|
1063
|
-
tier,
|
|
1064
|
-
summary: input.summary ?? null,
|
|
1065
|
-
});
|
|
1066
|
-
return { qitemId: id, persistedEvent };
|
|
1067
|
-
}
|
|
1068
|
-
/**
|
|
1069
|
-
* Transactional handoff: close the source qitem (state=done,
|
|
1070
|
-
* closure_reason=handed_off_to) and create a new qitem owned by `toSession`,
|
|
1071
|
-
* with `handed_off_from` recording the chain. One atomic transaction.
|
|
1072
|
-
*/
|
|
1073
|
-
async handoff(input) {
|
|
1074
|
-
const source = this.getById(input.qitemId);
|
|
1075
|
-
if (!source) {
|
|
1076
|
-
throw new QueueRepositoryError("qitem_not_found", `qitem ${input.qitemId} not found`);
|
|
1077
|
-
}
|
|
1078
|
-
if (isTerminalState(source.state)) {
|
|
1079
|
-
throw new QueueRepositoryError("qitem_already_terminal", `qitem ${input.qitemId} is already in terminal state ${source.state}`);
|
|
1080
|
-
}
|
|
1081
|
-
if (!this.validateRig(input.toSession)) {
|
|
1082
|
-
throw destinationValidationError("to_session", input.toSession, this.loadHumanRegistryFn);
|
|
1083
|
-
}
|
|
1084
|
-
const newId = newQitemId();
|
|
1085
|
-
const ts = new Date().toISOString();
|
|
1086
|
-
const body = input.body ?? source.body;
|
|
1087
|
-
const priority = input.priority ?? source.priority;
|
|
1088
|
-
const tier = input.tier ?? source.tier;
|
|
1089
|
-
const tags = input.tags ? JSON.stringify(input.tags) : (source.tags ? JSON.stringify(source.tags) : null);
|
|
1090
|
-
const chain = JSON.stringify([...(source.chainOfRecord ?? []), source.qitemId]);
|
|
1091
|
-
const targetRepo = input.targetRepo === undefined ? source.targetRepo : input.targetRepo;
|
|
1092
|
-
// OPR.0.4.4.19 FR-4/FR-5 — the handoff authors a NEW qitem; when that
|
|
1093
|
-
// new item is human-routed it requires its OWN summary + evidence_ref
|
|
1094
|
-
// (neither is inherited from the source — 044 semantics preserved).
|
|
1095
|
-
const humanRoute = validateHumanRoute({
|
|
1096
|
-
tier,
|
|
1097
|
-
destinationSession: input.toSession,
|
|
1098
|
-
summary: input.summary ?? null,
|
|
1099
|
-
evidenceRef: input.evidenceRef ?? null,
|
|
1100
|
-
});
|
|
1101
|
-
if (!humanRoute.ok) {
|
|
1102
|
-
throw new QueueRepositoryError(humanRoute.code, humanRoute.message, {
|
|
1103
|
-
missingFields: humanRoute.missingFields,
|
|
1104
|
-
});
|
|
1105
|
-
}
|
|
1106
|
-
const events = [];
|
|
1107
|
-
const txn = this.db.transaction(() => {
|
|
1108
|
-
this.db
|
|
1109
|
-
.prepare(`UPDATE queue_items
|
|
1110
|
-
SET state = 'handed-off',
|
|
1111
|
-
ts_updated = ?,
|
|
1112
|
-
handed_off_to = ?,
|
|
1113
|
-
closure_reason = 'handed_off_to',
|
|
1114
|
-
closure_target = ?
|
|
1115
|
-
WHERE qitem_id = ?`)
|
|
1116
|
-
.run(ts, input.toSession, input.toSession, source.qitemId);
|
|
1117
|
-
this.transitionLog.append({
|
|
1118
|
-
qitemId: source.qitemId,
|
|
1119
|
-
state: "handed-off",
|
|
1120
|
-
actorSession: input.fromSession,
|
|
1121
|
-
transitionNote: input.transitionNote ?? `handed off to ${input.toSession}`,
|
|
1122
|
-
closureReason: "handed_off_to",
|
|
1123
|
-
closureTarget: input.toSession,
|
|
1124
|
-
identityProvenance: input.identityProvenance ?? null, // P21 §4 era-stamp
|
|
1125
|
-
});
|
|
1126
|
-
// OPR.0.5.8.1 S1b — THE ROUTE THE FOUNDING SPECIMEN TOOK. Row b7a70333 went
|
|
1127
|
-
// handed-off at 10:02:03Z and its timer still fired at 10:18:07Z, because
|
|
1128
|
-
// handoff() is its own transaction and never passes through update().
|
|
1129
|
-
this.retireParkGeneratedTimer(source.qitemId, "park_ended:handed-off");
|
|
1130
|
-
if (this.hasTargetRepoColumn) {
|
|
1131
|
-
this.db
|
|
1132
|
-
.prepare(`INSERT INTO queue_items (
|
|
1133
|
-
qitem_id, ts_created, ts_updated, source_session, destination_session,
|
|
1134
|
-
state, priority, tier, tags, handed_off_from, chain_of_record, body, target_repo
|
|
1135
|
-
) VALUES (?, ?, ?, ?, ?, 'pending', ?, ?, ?, ?, ?, ?, ?)`)
|
|
1136
|
-
.run(newId, ts, ts, input.fromSession, input.toSession, priority, tier, tags, source.qitemId, chain, body, targetRepo);
|
|
1137
|
-
}
|
|
1138
|
-
else {
|
|
1139
|
-
this.db
|
|
1140
|
-
.prepare(`INSERT INTO queue_items (
|
|
1141
|
-
qitem_id, ts_created, ts_updated, source_session, destination_session,
|
|
1142
|
-
state, priority, tier, tags, handed_off_from, chain_of_record, body
|
|
1143
|
-
) VALUES (?, ?, ?, ?, ?, 'pending', ?, ?, ?, ?, ?, ?)`)
|
|
1144
|
-
.run(newId, ts, ts, input.fromSession, input.toSession, priority, tier, tags, source.qitemId, chain, body);
|
|
1145
|
-
}
|
|
1146
|
-
this.persistSummary(newId, input.summary ?? null);
|
|
1147
|
-
this.persistEvidenceRef(newId, input.evidenceRef ?? null);
|
|
1148
|
-
this.persistMintingGeneration(newId, input.fromSession);
|
|
1149
|
-
const successorNotification = this.classifyOwnerNotification({
|
|
1150
|
-
action: "create",
|
|
1151
|
-
destinationSession: input.toSession,
|
|
1152
|
-
nextState: "pending",
|
|
1153
|
-
});
|
|
1154
|
-
this.transitionLog.append({
|
|
1155
|
-
qitemId: newId,
|
|
1156
|
-
state: "pending",
|
|
1157
|
-
actorSession: input.fromSession,
|
|
1158
|
-
transitionNote: `handoff from ${source.qitemId}`,
|
|
1159
|
-
identityProvenance: input.identityProvenance ?? null, // P21 §4 era-stamp
|
|
1160
|
-
ownerNotificationKind: successorNotification?.kind,
|
|
1161
|
-
ownerNotificationLevel: successorNotification?.level,
|
|
1162
|
-
});
|
|
1163
|
-
// W1-a: the durable wake intent joins the SAME transaction as the close +
|
|
1164
|
-
// successor create. If this (or anything above) throws, the whole act rolls
|
|
1165
|
-
// back — one act or none.
|
|
1166
|
-
this.stageWakeIntent(newId, input.fromSession, input.toSession, input.identityProvenance ?? null, input.nudge);
|
|
1167
|
-
const handoffEvent = this.eventBus.persistWithinTransaction({
|
|
1168
|
-
type: "queue.handed_off",
|
|
1169
|
-
qitemId: source.qitemId,
|
|
1170
|
-
fromSession: input.fromSession,
|
|
1171
|
-
toSession: input.toSession,
|
|
1172
|
-
closureReason: "handed_off_to",
|
|
1173
|
-
summary: source.summary ?? null,
|
|
1174
|
-
});
|
|
1175
|
-
events.push({ name: "queue.handed_off", payload: handoffEvent });
|
|
1176
|
-
// OPR.0.5.6.26 — a handed-off blocker actuates its attached rows through the one
|
|
1177
|
-
// propagation site, with the update path's exact effect set.
|
|
1178
|
-
for (const dependentEvent of this.propagateBlockerCompletion({
|
|
1179
|
-
qitemId: source.qitemId,
|
|
1180
|
-
terminalState: "handed-off",
|
|
1181
|
-
actorSession: input.fromSession,
|
|
1182
|
-
identityProvenance: input.identityProvenance ?? null,
|
|
1183
|
-
ts,
|
|
1184
|
-
})) {
|
|
1185
|
-
events.push({ name: "queue.updated", payload: dependentEvent });
|
|
1186
|
-
}
|
|
1187
|
-
const createdEvent = this.eventBus.persistWithinTransaction({
|
|
1188
|
-
type: "queue.created",
|
|
1189
|
-
qitemId: newId,
|
|
1190
|
-
sourceSession: input.fromSession,
|
|
1191
|
-
destinationSession: input.toSession,
|
|
1192
|
-
priority,
|
|
1193
|
-
tier,
|
|
1194
|
-
summary: input.summary ?? null,
|
|
1195
|
-
});
|
|
1196
|
-
events.push({ name: "queue.created", payload: createdEvent });
|
|
1197
|
-
// W1-c: the seam guard — the LAST statement in the terminal txn. A close
|
|
1198
|
-
// that intended a wake cannot commit without its durable intent; a throw
|
|
1199
|
-
// here rolls the whole act back at the seam.
|
|
1200
|
-
this.assertTerminalClosureHasIntent(source.qitemId, newId, input.nudge);
|
|
1201
|
-
});
|
|
1202
|
-
txn();
|
|
1203
|
-
for (const e of events) {
|
|
1204
|
-
this.eventBus.notifySubscribers(e.payload);
|
|
1205
|
-
}
|
|
1206
|
-
// W1-b: deliver the just-committed wake intent (marking it), or the pre-W1
|
|
1207
|
-
// best-effort nudge when no intent store is attached. Post-commit only.
|
|
1208
|
-
await this.deliverWakeForSuccessor(newId, input.toSession, input.nudge, input.fromSession);
|
|
1209
|
-
return {
|
|
1210
|
-
closed: this.getByIdOrThrow(source.qitemId),
|
|
1211
|
-
created: this.getByIdOrThrow(newId),
|
|
1212
|
-
};
|
|
1213
|
-
}
|
|
1214
|
-
/**
|
|
1215
|
-
* Variant of {@link handoff} that closes the source qitem as `done`
|
|
1216
|
-
* (terminal closure) instead of `handed-off` (intermediate). Same atomic
|
|
1217
|
-
* close+create, same chain_of_record semantics, same default-nudge behavior.
|
|
1218
|
-
* Use when the source seat is fully complete with the work — no follow-up
|
|
1219
|
-
* tracking needed against the source qitem.
|
|
1220
|
-
*/
|
|
1221
|
-
async handoffAndComplete(input) {
|
|
1222
|
-
const source = this.getById(input.qitemId);
|
|
1223
|
-
if (!source) {
|
|
1224
|
-
throw new QueueRepositoryError("qitem_not_found", `qitem ${input.qitemId} not found`);
|
|
1225
|
-
}
|
|
1226
|
-
if (isTerminalState(source.state)) {
|
|
1227
|
-
throw new QueueRepositoryError("qitem_already_terminal", `qitem ${input.qitemId} is already in terminal state ${source.state}`);
|
|
1228
|
-
}
|
|
1229
|
-
if (!this.validateRig(input.toSession)) {
|
|
1230
|
-
throw destinationValidationError("to_session", input.toSession, this.loadHumanRegistryFn);
|
|
1231
|
-
}
|
|
1232
|
-
const newId = newQitemId();
|
|
1233
|
-
const ts = new Date().toISOString();
|
|
1234
|
-
const body = input.body ?? source.body;
|
|
1235
|
-
const priority = input.priority ?? source.priority;
|
|
1236
|
-
const tier = input.tier ?? source.tier;
|
|
1237
|
-
const tags = input.tags ? JSON.stringify(input.tags) : (source.tags ? JSON.stringify(source.tags) : null);
|
|
1238
|
-
const chain = JSON.stringify([...(source.chainOfRecord ?? []), source.qitemId]);
|
|
1239
|
-
const targetRepo = input.targetRepo === undefined ? source.targetRepo : input.targetRepo;
|
|
1240
|
-
// OPR.0.4.4.19 FR-4/FR-5 — same new-item enforcement as handoff().
|
|
1241
|
-
const humanRoute = validateHumanRoute({
|
|
1242
|
-
tier,
|
|
1243
|
-
destinationSession: input.toSession,
|
|
1244
|
-
summary: input.summary ?? null,
|
|
1245
|
-
evidenceRef: input.evidenceRef ?? null,
|
|
1246
|
-
});
|
|
1247
|
-
if (!humanRoute.ok) {
|
|
1248
|
-
throw new QueueRepositoryError(humanRoute.code, humanRoute.message, {
|
|
1249
|
-
missingFields: humanRoute.missingFields,
|
|
1250
|
-
});
|
|
1251
|
-
}
|
|
1252
|
-
const events = [];
|
|
1253
|
-
const txn = this.db.transaction(() => {
|
|
1254
|
-
this.db
|
|
1255
|
-
.prepare(`UPDATE queue_items
|
|
1256
|
-
SET state = 'done',
|
|
1257
|
-
ts_updated = ?,
|
|
1258
|
-
handed_off_to = ?,
|
|
1259
|
-
closure_reason = 'handed_off_to',
|
|
1260
|
-
closure_target = ?
|
|
1261
|
-
WHERE qitem_id = ?`)
|
|
1262
|
-
.run(ts, input.toSession, input.toSession, source.qitemId);
|
|
1263
|
-
this.transitionLog.append({
|
|
1264
|
-
qitemId: source.qitemId,
|
|
1265
|
-
state: "done",
|
|
1266
|
-
actorSession: input.fromSession,
|
|
1267
|
-
transitionNote: input.transitionNote ?? `handoff-and-complete to ${input.toSession}`,
|
|
1268
|
-
closureReason: "handed_off_to",
|
|
1269
|
-
closureTarget: input.toSession,
|
|
1270
|
-
identityProvenance: input.identityProvenance ?? null, // P21 §4 era-stamp
|
|
1271
|
-
});
|
|
1272
|
-
// OPR.0.5.8.1 S1b — same structural bypass as handoff(): own transaction,
|
|
1273
|
-
// never routes through update().
|
|
1274
|
-
this.retireParkGeneratedTimer(source.qitemId, "park_ended:done");
|
|
1275
|
-
if (this.hasTargetRepoColumn) {
|
|
1276
|
-
this.db
|
|
1277
|
-
.prepare(`INSERT INTO queue_items (
|
|
1278
|
-
qitem_id, ts_created, ts_updated, source_session, destination_session,
|
|
1279
|
-
state, priority, tier, tags, handed_off_from, chain_of_record, body, target_repo
|
|
1280
|
-
) VALUES (?, ?, ?, ?, ?, 'pending', ?, ?, ?, ?, ?, ?, ?)`)
|
|
1281
|
-
.run(newId, ts, ts, input.fromSession, input.toSession, priority, tier, tags, source.qitemId, chain, body, targetRepo);
|
|
1282
|
-
}
|
|
1283
|
-
else {
|
|
1284
|
-
this.db
|
|
1285
|
-
.prepare(`INSERT INTO queue_items (
|
|
1286
|
-
qitem_id, ts_created, ts_updated, source_session, destination_session,
|
|
1287
|
-
state, priority, tier, tags, handed_off_from, chain_of_record, body
|
|
1288
|
-
) VALUES (?, ?, ?, ?, ?, 'pending', ?, ?, ?, ?, ?, ?)`)
|
|
1289
|
-
.run(newId, ts, ts, input.fromSession, input.toSession, priority, tier, tags, source.qitemId, chain, body);
|
|
1290
|
-
}
|
|
1291
|
-
this.persistSummary(newId, input.summary ?? null);
|
|
1292
|
-
this.persistEvidenceRef(newId, input.evidenceRef ?? null);
|
|
1293
|
-
this.persistMintingGeneration(newId, input.fromSession);
|
|
1294
|
-
const successorNotification = this.classifyOwnerNotification({
|
|
1295
|
-
action: "create",
|
|
1296
|
-
destinationSession: input.toSession,
|
|
1297
|
-
nextState: "pending",
|
|
1298
|
-
});
|
|
1299
|
-
this.transitionLog.append({
|
|
1300
|
-
qitemId: newId,
|
|
1301
|
-
state: "pending",
|
|
1302
|
-
actorSession: input.fromSession,
|
|
1303
|
-
transitionNote: `handoff-and-complete from ${source.qitemId}`,
|
|
1304
|
-
ownerNotificationKind: successorNotification?.kind,
|
|
1305
|
-
ownerNotificationLevel: successorNotification?.level,
|
|
1306
|
-
});
|
|
1307
|
-
// W1-a: the durable wake intent joins the SAME transaction as the close +
|
|
1308
|
-
// successor create — one act or none (symmetric with handoff()).
|
|
1309
|
-
this.stageWakeIntent(newId, input.fromSession, input.toSession, input.identityProvenance ?? null, input.nudge);
|
|
1310
|
-
const handoffEvent = this.eventBus.persistWithinTransaction({
|
|
1311
|
-
type: "queue.handed_off",
|
|
1312
|
-
qitemId: source.qitemId,
|
|
1313
|
-
fromSession: input.fromSession,
|
|
1314
|
-
toSession: input.toSession,
|
|
1315
|
-
closureReason: "handed_off_to",
|
|
1316
|
-
summary: source.summary ?? null,
|
|
1317
|
-
});
|
|
1318
|
-
events.push({ name: "queue.handed_off", payload: handoffEvent });
|
|
1319
|
-
// OPR.0.5.6.26 — a done-via-handoff-and-complete blocker actuates its attached rows through the one
|
|
1320
|
-
// propagation site, with the update path's exact effect set (the confirmed R-2 prediction).
|
|
1321
|
-
for (const dependentEvent of this.propagateBlockerCompletion({
|
|
1322
|
-
qitemId: source.qitemId,
|
|
1323
|
-
terminalState: "done",
|
|
1324
|
-
actorSession: input.fromSession,
|
|
1325
|
-
identityProvenance: input.identityProvenance ?? null,
|
|
1326
|
-
ts,
|
|
1327
|
-
})) {
|
|
1328
|
-
events.push({ name: "queue.updated", payload: dependentEvent });
|
|
1329
|
-
}
|
|
1330
|
-
const createdEvent = this.eventBus.persistWithinTransaction({
|
|
1331
|
-
type: "queue.created",
|
|
1332
|
-
qitemId: newId,
|
|
1333
|
-
sourceSession: input.fromSession,
|
|
1334
|
-
destinationSession: input.toSession,
|
|
1335
|
-
priority,
|
|
1336
|
-
tier,
|
|
1337
|
-
summary: input.summary ?? null,
|
|
1338
|
-
});
|
|
1339
|
-
events.push({ name: "queue.created", payload: createdEvent });
|
|
1340
|
-
// W1-c: the seam guard — the LAST statement in the terminal txn. A close
|
|
1341
|
-
// that intended a wake cannot commit without its durable intent; a throw
|
|
1342
|
-
// here rolls the whole act back at the seam.
|
|
1343
|
-
this.assertTerminalClosureHasIntent(source.qitemId, newId, input.nudge);
|
|
1344
|
-
});
|
|
1345
|
-
txn();
|
|
1346
|
-
for (const e of events) {
|
|
1347
|
-
this.eventBus.notifySubscribers(e.payload);
|
|
1348
|
-
}
|
|
1349
|
-
// W1-b: deliver the just-committed wake intent (marking it), or the pre-W1
|
|
1350
|
-
// best-effort nudge when no intent store is attached. Post-commit only.
|
|
1351
|
-
await this.deliverWakeForSuccessor(newId, input.toSession, input.nudge, input.fromSession);
|
|
1352
|
-
return {
|
|
1353
|
-
closed: this.getByIdOrThrow(source.qitemId),
|
|
1354
|
-
created: this.getByIdOrThrow(newId),
|
|
1355
|
-
};
|
|
1356
|
-
}
|
|
1357
|
-
/**
|
|
1358
|
-
* OPR.0.4.6.MH3 FR-4 (C2, arch Q-c): the LOCAL half of a cross-host
|
|
1359
|
-
* handoff — close the source row AFTER the successor-create was forwarded
|
|
1360
|
-
* to (and accepted by) the target host. The two sides live in two DBs, so
|
|
1361
|
-
* this is deliberately NOT the atomic close+create of {@link handoff}: the
|
|
1362
|
-
* boundary is bridged by message-passing (successor-create FIRST on the
|
|
1363
|
-
* origin host, this source-close SECOND — never the reverse, so a crash
|
|
1364
|
-
* between the two leaves a live duplicate the idempotent re-drive
|
|
1365
|
-
* converges, never a dropped potato).
|
|
1366
|
-
*
|
|
1367
|
-
* Re-drive semantics (FR-4/FR-5, the interrupted-close case):
|
|
1368
|
-
* - source already terminal WITH a MATCHING closureTarget → idempotent
|
|
1369
|
-
* absorb: return the stored row unchanged (`absorbed: true`) — no
|
|
1370
|
-
* second close, no second event.
|
|
1371
|
-
* - source already terminal with a MISMATCHED closureTarget → structured
|
|
1372
|
-
* `cross_host_close_conflict` (someone else closed it meanwhile —
|
|
1373
|
-
* surface, never overwrite).
|
|
1374
|
-
* - otherwise → close exactly like the local handoff's close leg:
|
|
1375
|
-
* `closure_reason=handed_off_to`; `closure_target` carries the
|
|
1376
|
-
* host-qualified successor key `<qitem-id>@<host>` (custody metadata,
|
|
1377
|
-
* never a local lookup key); `handed_off_to`
|
|
1378
|
-
* stays the two-part `member@rig` (BR-1 — session-string carriers
|
|
1379
|
-
* never gain `@host`).
|
|
1380
|
-
*/
|
|
1381
|
-
closeCrossHostHandoffSource(input) {
|
|
1382
|
-
const source = this.getById(input.qitemId);
|
|
1383
|
-
if (!source) {
|
|
1384
|
-
throw new QueueRepositoryError("qitem_not_found", `qitem ${input.qitemId} not found`);
|
|
1385
|
-
}
|
|
1386
|
-
if (isTerminalState(source.state)) {
|
|
1387
|
-
if (source.closureTarget === input.closureTarget) {
|
|
1388
|
-
return { item: source, absorbed: true };
|
|
1389
|
-
}
|
|
1390
|
-
throw new QueueRepositoryError("cross_host_close_conflict", `qitem ${input.qitemId} is already closed toward ${source.closureTarget ?? "<no closure_target>"} — this re-drive names ${input.closureTarget}; surfacing the conflict, never overwriting`, {
|
|
1391
|
-
qitemId: input.qitemId,
|
|
1392
|
-
existingClosureTarget: source.closureTarget,
|
|
1393
|
-
attemptedClosureTarget: input.closureTarget,
|
|
1394
|
-
});
|
|
1395
|
-
}
|
|
1396
|
-
const ts = new Date().toISOString();
|
|
1397
|
-
const events = [];
|
|
1398
|
-
const txn = this.db.transaction(() => {
|
|
1399
|
-
this.db
|
|
1400
|
-
.prepare(`UPDATE queue_items
|
|
1401
|
-
SET state = ?,
|
|
1402
|
-
ts_updated = ?,
|
|
1403
|
-
handed_off_to = ?,
|
|
1404
|
-
closure_reason = 'handed_off_to',
|
|
1405
|
-
closure_target = ?
|
|
1406
|
-
WHERE qitem_id = ?`)
|
|
1407
|
-
.run(input.terminalState, ts, input.toSession, input.closureTarget, input.qitemId);
|
|
1408
|
-
this.transitionLog.append({
|
|
1409
|
-
qitemId: input.qitemId,
|
|
1410
|
-
state: input.terminalState,
|
|
1411
|
-
actorSession: input.fromSession,
|
|
1412
|
-
// BR-1: the minted note carries the TWO-PART toSession only — the
|
|
1413
|
-
// host-qualified successor key is allowed in closure_target and nowhere
|
|
1414
|
-
// else, and transition_note is a durable carrier.
|
|
1415
|
-
transitionNote: input.transitionNote ?? `cross-host handoff to ${input.toSession}`,
|
|
1416
|
-
closureReason: "handed_off_to",
|
|
1417
|
-
closureTarget: input.closureTarget,
|
|
1418
|
-
});
|
|
1419
|
-
// OPR.0.5.8.1 S1b — third member of the handoff family, same bypass.
|
|
1420
|
-
this.retireParkGeneratedTimer(input.qitemId, `park_ended:${input.terminalState}`);
|
|
1421
|
-
const handoffEvent = this.eventBus.persistWithinTransaction({
|
|
1422
|
-
type: "queue.handed_off",
|
|
1423
|
-
qitemId: input.qitemId,
|
|
1424
|
-
fromSession: input.fromSession,
|
|
1425
|
-
// The event body is a session-string carrier — two-part only (BR-1).
|
|
1426
|
-
toSession: input.toSession,
|
|
1427
|
-
closureReason: "handed_off_to",
|
|
1428
|
-
summary: source.summary ?? null,
|
|
1429
|
-
});
|
|
1430
|
-
events.push(handoffEvent);
|
|
1431
|
-
// OPR.0.5.6.26 (R2 B-1) — the cross-host terminal close is the third
|
|
1432
|
-
// handoff-family caller of the one propagation site: attached rows actuate
|
|
1433
|
-
// with the update path's exact effect set, at this close's actual terminal
|
|
1434
|
-
// state. Absorbed redrives return above this transaction and never re-run it.
|
|
1435
|
-
for (const dependentEvent of this.propagateBlockerCompletion({
|
|
1436
|
-
qitemId: input.qitemId,
|
|
1437
|
-
terminalState: input.terminalState,
|
|
1438
|
-
actorSession: input.fromSession,
|
|
1439
|
-
identityProvenance: null,
|
|
1440
|
-
ts,
|
|
1441
|
-
})) {
|
|
1442
|
-
events.push(dependentEvent);
|
|
1443
|
-
}
|
|
1444
|
-
});
|
|
1445
|
-
txn();
|
|
1446
|
-
for (const e of events) {
|
|
1447
|
-
this.eventBus.notifySubscribers(e);
|
|
1448
|
-
}
|
|
1449
|
-
return { item: this.getByIdOrThrow(input.qitemId), absorbed: false };
|
|
1450
|
-
}
|
|
1451
|
-
/**
|
|
1452
|
-
* `whoami` — return the seat's queue position from the daemon's perspective.
|
|
1453
|
-
* Counts active qitems (pending + in-progress + blocked) destined for the
|
|
1454
|
-
* caller, lists the most recent active qitems, and reports counts for the
|
|
1455
|
-
* caller's outgoing source role too. Read-only; no mutations.
|
|
1456
|
-
*
|
|
1457
|
-
* Per PL-004 Phase A § Routes: GET /api/queue/whoami.
|
|
1458
|
-
*/
|
|
1459
|
-
whoami(session, opts) {
|
|
1460
|
-
const limit = Math.max(1, Math.min(opts?.recentLimit ?? 25, 200));
|
|
1461
|
-
const countByState = (state) => {
|
|
1462
|
-
const row = this.db
|
|
1463
|
-
.prepare(`SELECT COUNT(*) AS n FROM queue_items WHERE destination_session = ? AND state = ?`)
|
|
1464
|
-
.get(session, state);
|
|
1465
|
-
return row.n;
|
|
1466
|
-
};
|
|
1467
|
-
const recent = this.db
|
|
1468
|
-
.prepare(`SELECT * FROM queue_items
|
|
1469
|
-
WHERE destination_session = ?
|
|
1470
|
-
AND state IN ('pending','in-progress','blocked')
|
|
1471
|
-
ORDER BY ts_updated DESC
|
|
1472
|
-
LIMIT ?`)
|
|
1473
|
-
.all(session, limit);
|
|
1474
|
-
const sourceTotalRow = this.db
|
|
1475
|
-
.prepare(`SELECT COUNT(*) AS n FROM queue_items WHERE source_session = ?`)
|
|
1476
|
-
.get(session);
|
|
1477
|
-
return {
|
|
1478
|
-
session,
|
|
1479
|
-
asDestination: {
|
|
1480
|
-
pending: countByState("pending"),
|
|
1481
|
-
inProgress: countByState("in-progress"),
|
|
1482
|
-
blocked: countByState("blocked"),
|
|
1483
|
-
recent: recent.map((r) => this.rowToItem(r)),
|
|
1484
|
-
},
|
|
1485
|
-
asSource: { total: sourceTotalRow.n },
|
|
1486
|
-
};
|
|
1487
|
-
}
|
|
1488
|
-
/**
|
|
1489
|
-
* Every in-progress row destined for `session`, UNBOUNDED and single-state.
|
|
1490
|
-
*
|
|
1491
|
-
* `whoami`'s `recent` is a display projection: it is capped (default 25, max 200) and
|
|
1492
|
-
* mixes pending/in-progress/blocked. Anything that must reason about how many batons a
|
|
1493
|
-
* seat truly holds — in particular a refusal that fires on ambiguity — cannot read it,
|
|
1494
|
-
* because a second in-progress row sitting past the cap is invisible and the refusal
|
|
1495
|
-
* silently degrades into a confident answer. This is that authoritative input.
|
|
1496
|
-
*/
|
|
1497
|
-
listInProgressForDestination(session) {
|
|
1498
|
-
const rows = this.db
|
|
1499
|
-
.prepare(`SELECT * FROM queue_items WHERE destination_session = ? AND state = 'in-progress'`)
|
|
1500
|
-
.all(session);
|
|
1501
|
-
return rows.map((r) => this.rowToItem(r));
|
|
1502
|
-
}
|
|
1503
|
-
/**
|
|
1504
|
-
* Mark a qitem `in-progress` (claim). Computes closure_required_at from tier.
|
|
1505
|
-
*/
|
|
1506
|
-
claim(input) {
|
|
1507
|
-
const qitem = this.getById(input.qitemId);
|
|
1508
|
-
if (!qitem) {
|
|
1509
|
-
throw new QueueRepositoryError("qitem_not_found", `qitem ${input.qitemId} not found`);
|
|
1510
|
-
}
|
|
1511
|
-
if (qitem.destinationSession !== input.destinationSession) {
|
|
1512
|
-
throw new QueueRepositoryError("claim_destination_mismatch", `qitem ${input.qitemId} destination is ${qitem.destinationSession}, not ${input.destinationSession}`);
|
|
1513
|
-
}
|
|
1514
|
-
if (qitem.state !== "pending" && qitem.state !== "blocked") {
|
|
1515
|
-
throw new QueueRepositoryError("qitem_not_claimable", `qitem ${input.qitemId} is in state ${qitem.state}; only pending/blocked are claimable`);
|
|
1516
|
-
}
|
|
1517
|
-
const ts = new Date().toISOString();
|
|
1518
|
-
const closureRequiredAt = computeClosureRequiredAt(ts, qitem.tier);
|
|
1519
|
-
// GHOST-STAGE (e/Class-B): stamp the CLAIMANT's occupant generation. THIS is the ghost
|
|
1520
|
-
// discriminator — under a handover the successor reuses the seat name, so a name-scoped release
|
|
1521
|
-
// would neutralize the successor's own claims; the retiring generation's claims are released by gen.
|
|
1522
|
-
const claimedByGeneration = this.hasClaimedGenColumn
|
|
1523
|
-
? (this.resolveOccupantGeneration?.(input.destinationSession) ?? null)
|
|
1524
|
-
: null;
|
|
1525
|
-
const txn = this.db.transaction(() => {
|
|
1526
|
-
if (this.hasClaimedGenColumn) {
|
|
1527
|
-
this.db
|
|
1528
|
-
.prepare(`UPDATE queue_items
|
|
1529
|
-
SET state = 'in-progress', ts_updated = ?, claimed_at = ?, closure_required_at = ?,
|
|
1530
|
-
claimed_by_generation_uuid = ?
|
|
1531
|
-
WHERE qitem_id = ?`)
|
|
1532
|
-
.run(ts, ts, closureRequiredAt, claimedByGeneration, input.qitemId);
|
|
1533
|
-
}
|
|
1534
|
-
else {
|
|
1535
|
-
this.db
|
|
1536
|
-
.prepare(`UPDATE queue_items
|
|
1537
|
-
SET state = 'in-progress', ts_updated = ?, claimed_at = ?, closure_required_at = ?
|
|
1538
|
-
WHERE qitem_id = ?`)
|
|
1539
|
-
.run(ts, ts, closureRequiredAt, input.qitemId);
|
|
1540
|
-
}
|
|
1541
|
-
this.transitionLog.append({
|
|
1542
|
-
qitemId: input.qitemId,
|
|
1543
|
-
state: "in-progress",
|
|
1544
|
-
actorSession: input.destinationSession,
|
|
1545
|
-
transitionNote: "claimed",
|
|
1546
|
-
identityProvenance: input.identityProvenance ?? null, // P21 §4 era-stamp
|
|
1547
|
-
});
|
|
1548
|
-
// OPR.0.5.8.1 S1b — CLAIM-RESUME. A blocked row is claimable ("only
|
|
1549
|
-
// pending/blocked are claimable"), so claiming is a real exit from a park
|
|
1550
|
-
// and it writes state directly rather than through update(). This is the
|
|
1551
|
-
// very transition the story contract named, and my first repair pinned it
|
|
1552
|
-
// through `update()` — a different spelling of the same outcome, which is
|
|
1553
|
-
// why it looked covered.
|
|
1554
|
-
this.retireParkGeneratedTimer(input.qitemId, "park_ended:claimed");
|
|
1555
|
-
return this.eventBus.persistWithinTransaction({
|
|
1556
|
-
type: "queue.claimed",
|
|
1557
|
-
qitemId: input.qitemId,
|
|
1558
|
-
destinationSession: input.destinationSession,
|
|
1559
|
-
claimedAt: ts,
|
|
1560
|
-
closureRequiredAt,
|
|
1561
|
-
summary: qitem.summary ?? null,
|
|
1562
|
-
});
|
|
1563
|
-
});
|
|
1564
|
-
const persistedEvent = txn();
|
|
1565
|
-
this.eventBus.notifySubscribers(persistedEvent);
|
|
1566
|
-
return this.getByIdOrThrow(input.qitemId);
|
|
1567
|
-
}
|
|
1568
|
-
unclaim(qitemId, destinationSession, reason, identityProvenance) {
|
|
1569
|
-
const qitem = this.getById(qitemId);
|
|
1570
|
-
if (!qitem) {
|
|
1571
|
-
throw new QueueRepositoryError("qitem_not_found", `qitem ${qitemId} not found`);
|
|
1572
|
-
}
|
|
1573
|
-
if (qitem.state !== "in-progress") {
|
|
1574
|
-
throw new QueueRepositoryError("qitem_not_in_progress", `qitem ${qitemId} is in state ${qitem.state}; only in-progress can be unclaimed`);
|
|
1575
|
-
}
|
|
1576
|
-
const ts = new Date().toISOString();
|
|
1577
|
-
const txn = this.db.transaction(() => {
|
|
1578
|
-
// (e/Class-B): returning to pending releases the claim, so clear the claimant-generation stamp
|
|
1579
|
-
// (the item is now unclaimed; a fresh claimant will re-stamp its own generation).
|
|
1580
|
-
const clearGen = this.hasClaimedGenColumn ? ", claimed_by_generation_uuid = NULL" : "";
|
|
1581
|
-
this.db
|
|
1582
|
-
.prepare(`UPDATE queue_items
|
|
1583
|
-
SET state = 'pending',
|
|
1584
|
-
ts_updated = ?,
|
|
1585
|
-
claimed_at = NULL,
|
|
1586
|
-
closure_required_at = NULL${clearGen}
|
|
1587
|
-
WHERE qitem_id = ?`)
|
|
1588
|
-
.run(ts, qitemId);
|
|
1589
|
-
this.transitionLog.append({
|
|
1590
|
-
qitemId,
|
|
1591
|
-
state: "pending",
|
|
1592
|
-
actorSession: destinationSession,
|
|
1593
|
-
transitionNote: `unclaimed: ${reason}`,
|
|
1594
|
-
identityProvenance: identityProvenance ?? null, // P21 §4 era-stamp
|
|
1595
|
-
});
|
|
1596
|
-
return this.eventBus.persistWithinTransaction({
|
|
1597
|
-
type: "queue.unclaimed",
|
|
1598
|
-
qitemId,
|
|
1599
|
-
destinationSession,
|
|
1600
|
-
reason,
|
|
1601
|
-
summary: qitem.summary ?? null,
|
|
1602
|
-
});
|
|
1603
|
-
});
|
|
1604
|
-
const persistedEvent = txn();
|
|
1605
|
-
this.eventBus.notifySubscribers(persistedEvent);
|
|
1606
|
-
return this.getByIdOrThrow(qitemId);
|
|
1607
|
-
}
|
|
1608
|
-
/**
|
|
1609
|
-
* General state mutator. Routes through hot-potato strict-rejection on
|
|
1610
|
-
* `done` transitions. All transitions append to the log.
|
|
1611
|
-
*
|
|
1612
|
-
* Phase B R2: emits queue.updated event atomically with the UPDATE +
|
|
1613
|
-
* transition log append, so the view-event-bridge can wake SSE consumers
|
|
1614
|
-
* on /api/views/:name/sse for normal state transitions (pending → blocked,
|
|
1615
|
-
* in-progress → done, closure, escalation). Phase A write semantics are
|
|
1616
|
-
* UNCHANGED — only an additional event emission inside the existing
|
|
1617
|
-
* transaction. This is an explicit narrow event-only extension to a
|
|
1618
|
-
* Phase A write surface so update-path mutations are visible to the
|
|
1619
|
-
* view bridge.
|
|
1620
|
-
*/
|
|
1621
|
-
update(input) {
|
|
1622
|
-
const txn = this.db.transaction(() => this.updateInTransactionalContext(input));
|
|
1623
|
-
const result = txn();
|
|
1624
|
-
for (const event of result.persistedEvents)
|
|
1625
|
-
this.eventBus.notifySubscribers(event);
|
|
1626
|
-
return this.getByIdOrThrow(input.qitemId);
|
|
1627
|
-
}
|
|
1628
|
-
/**
|
|
1629
|
-
* PL-004 Phase D extension point (orch-ratified per slice IMPL Driver
|
|
1630
|
-
* Handoff Contract / Guard R1 repair). Same closure validation +
|
|
1631
|
-
* UPDATE + transition log + queue.updated event as update(), but
|
|
1632
|
-
* runs inside the caller's outer db.transaction so it composes with
|
|
1633
|
-
* workflow-projector's transactional-scribe contract.
|
|
1634
|
-
*
|
|
1635
|
-
* Caller MUST:
|
|
1636
|
-
* 1. Invoke from inside a `db.transaction(() => {...})` block.
|
|
1637
|
-
* 2. After the outer txn commits, call:
|
|
1638
|
-
* eventBus.notifySubscribers(persistedEvent)
|
|
1639
|
-
* 3. NOT call this from outside a transaction (will produce a
|
|
1640
|
-
* half-state if the caller errors before committing).
|
|
1641
|
-
*
|
|
1642
|
-
* Closure validation runs at call time (before the UPDATE) so a
|
|
1643
|
-
* Phase A invariant violation (e.g., state=done without closure_reason)
|
|
1644
|
-
* throws before the workflow projector's outer transaction can commit
|
|
1645
|
-
* any partial state. The Phase A hot-potato strict-rejection rule
|
|
1646
|
-
* therefore applies to workflow projection unchanged.
|
|
1647
|
-
*/
|
|
1648
|
-
updateWithinTransaction(input) {
|
|
1649
|
-
const result = this.updateInTransactionalContext(input);
|
|
1650
|
-
return { qitemId: input.qitemId, ...result };
|
|
1651
|
-
}
|
|
1652
|
-
/**
|
|
1653
|
-
* Internal: closure validation + UPDATE + transition log + emit
|
|
1654
|
-
* queue.updated event. Caller is responsible for transaction wrapping
|
|
1655
|
-
* (the public update() wraps; the public updateWithinTransaction()
|
|
1656
|
-
* composes inside the caller's outer transaction).
|
|
1657
|
-
*/
|
|
1658
|
-
updateInTransactionalContext(input) {
|
|
1659
|
-
const qitem = this.getById(input.qitemId);
|
|
1660
|
-
if (!qitem) {
|
|
1661
|
-
throw new QueueRepositoryError("qitem_not_found", `qitem ${input.qitemId} not found`);
|
|
1662
|
-
}
|
|
1663
|
-
const hasNote = typeof input.transitionNote === "string" && input.transitionNote.trim().length > 0;
|
|
1664
|
-
const isGuardedTerminal = ["done", "canceled", "handed-off"].includes(qitem.state);
|
|
1665
|
-
const isStatePreservingAppend = input.state === undefined || (isGuardedTerminal && input.state === qitem.state);
|
|
1666
|
-
if (isStatePreservingAppend) {
|
|
1667
|
-
if (input.state === undefined && !hasNote) {
|
|
1668
|
-
throw new QueueRepositoryError("state_or_note_required", "queue update requires --state or a non-empty --note; nothing was written");
|
|
1669
|
-
}
|
|
1670
|
-
const disallowed = input.reopen === true
|
|
1671
|
-
|| input.closureReason != null
|
|
1672
|
-
|| input.closureTarget != null
|
|
1673
|
-
|| input.handedOffTo != null
|
|
1674
|
-
|| input.blockedOn != null
|
|
1675
|
-
|| input.wakeWatchdogId != null
|
|
1676
|
-
|| input.wakeAfterSeconds != null
|
|
1677
|
-
|| input.wakeMaxSeconds != null
|
|
1678
|
-
|| input.wakeProgressEvidence != null
|
|
1679
|
-
|| input.wakeMessage != null
|
|
1680
|
-
|| input.summary != null
|
|
1681
|
-
|| input.evidenceRef != null;
|
|
1682
|
-
if (disallowed) {
|
|
1683
|
-
throw new QueueRepositoryError("note_append_fields_not_admitted", "a state-preserving note append accepts only --note (and an optional same --state); state-write fields were supplied, so nothing was written");
|
|
1684
|
-
}
|
|
1685
|
-
this.transitionLog.append({
|
|
1686
|
-
qitemId: input.qitemId,
|
|
1687
|
-
state: qitem.state,
|
|
1688
|
-
actorSession: input.actorSession,
|
|
1689
|
-
transitionNote: input.transitionNote,
|
|
1690
|
-
identityProvenance: input.identityProvenance ?? null,
|
|
1691
|
-
});
|
|
1692
|
-
const persistedEvent = this.eventBus.persistWithinTransaction({
|
|
1693
|
-
type: "queue.updated",
|
|
1694
|
-
qitemId: input.qitemId,
|
|
1695
|
-
fromState: qitem.state,
|
|
1696
|
-
toState: qitem.state,
|
|
1697
|
-
closureReason: null,
|
|
1698
|
-
closureTarget: null,
|
|
1699
|
-
actorSession: input.actorSession,
|
|
1700
|
-
summary: qitem.summary ?? null,
|
|
1701
|
-
});
|
|
1702
|
-
return { persistedEvent, persistedEvents: [persistedEvent] };
|
|
1703
|
-
}
|
|
1704
|
-
if (!isQueueState(input.state)) {
|
|
1705
|
-
throw new QueueRepositoryError("invalid_state", `state=${input.state} not valid; valid: ${QUEUE_STATES.join(", ")}`);
|
|
1706
|
-
}
|
|
1707
|
-
if ((input.wakeWatchdogId != null || input.wakeAfterSeconds != null) && input.state !== "blocked") {
|
|
1708
|
-
throw new QueueRepositoryError("wake_not_admitted", "a park wake persists only with state=blocked; park the row or drop the wake option");
|
|
1709
|
-
}
|
|
1710
|
-
if (input.wakeWatchdogId != null && input.wakeAfterSeconds != null) {
|
|
1711
|
-
throw new QueueRepositoryError("wake_ambiguous", "choose one explicit park wake: an existing watchdog id or an atomic timer");
|
|
1712
|
-
}
|
|
1713
|
-
if (input.wakeAfterSeconds != null && (!Number.isInteger(input.wakeAfterSeconds) || input.wakeAfterSeconds <= 0)) {
|
|
1714
|
-
throw new QueueRepositoryError("wake_after_invalid", `wakeAfterSeconds must be a positive integer (got ${input.wakeAfterSeconds})`);
|
|
1715
|
-
}
|
|
1716
|
-
if (input.wakeMessage != null && input.wakeAfterSeconds == null) {
|
|
1717
|
-
throw new QueueRepositoryError("wake_message_not_admitted", "wakeMessage is internal timer content and requires wakeAfterSeconds");
|
|
1718
|
-
}
|
|
1719
|
-
if (input.wakeMaxSeconds != null && (input.wakeAfterSeconds == null || !Number.isInteger(input.wakeMaxSeconds) || input.wakeMaxSeconds < input.wakeAfterSeconds)) {
|
|
1720
|
-
throw new QueueRepositoryError("wake_max_invalid", "wakeMaxSeconds requires an initial delay and must be an integer at least as large");
|
|
1721
|
-
}
|
|
1722
|
-
if (input.wakeMessage != null && input.wakeMessage.trim().length === 0) {
|
|
1723
|
-
throw new QueueRepositoryError("wake_message_invalid", "wakeMessage must be non-empty when supplied");
|
|
1724
|
-
}
|
|
1725
|
-
const isReopen = isGuardedTerminal && input.state !== qitem.state;
|
|
1726
|
-
if (isReopen && !input.reopen) {
|
|
1727
|
-
throw new QueueRepositoryError("terminal_reopen_requires_ack", `qitem ${input.qitemId} is currently '${qitem.state}'; state='${input.state}' would reopen a terminal row. Re-run deliberately with --reopen --note <reason>.`, { currentState: qitem.state, requestedState: input.state });
|
|
1728
|
-
}
|
|
1729
|
-
if (isReopen && !isBlockerLive(input.state)) {
|
|
1730
|
-
throw new QueueRepositoryError("terminal_reopen_target_invalid", `qitem ${input.qitemId} is currently '${qitem.state}'; --reopen requires an active target state (pending, in-progress, or blocked), not '${input.state}'.`, { currentState: qitem.state, requestedState: input.state });
|
|
1731
|
-
}
|
|
1732
|
-
if (isReopen && !hasNote) {
|
|
1733
|
-
throw new QueueRepositoryError("reopen_note_required", `qitem ${input.qitemId} is currently '${qitem.state}'; deliberate reopen requires --note <reason> so the repair is auditable.`, { currentState: qitem.state, requestedState: input.state });
|
|
1734
|
-
}
|
|
1735
|
-
if (input.reopen && !isReopen) {
|
|
1736
|
-
throw new QueueRepositoryError("reopen_not_applicable", `--reopen applies only when moving a terminal row to an active state; qitem ${input.qitemId} is currently '${qitem.state}'.`, { currentState: qitem.state, requestedState: input.state });
|
|
1737
|
-
}
|
|
1738
|
-
const validation = validateClosure({
|
|
1739
|
-
state: input.state,
|
|
1740
|
-
closureReason: input.closureReason ?? null,
|
|
1741
|
-
closureTarget: input.closureTarget ?? null,
|
|
1742
|
-
});
|
|
1743
|
-
if (!validation.ok) {
|
|
1744
|
-
throw new QueueRepositoryError(validation.code, validation.message, {
|
|
1745
|
-
validReasons: "validReasons" in validation ? validation.validReasons : undefined,
|
|
1746
|
-
});
|
|
1747
|
-
}
|
|
1748
|
-
// OPR.0.4.6.WF3 FR-6 — the frontier close-path guard (pm ruling:
|
|
1749
|
-
// PREVENTION over detection). A TERMINAL closure (done/handed-off)
|
|
1750
|
-
// of a LIVE workflow-frontier packet from a NON-workflow verb
|
|
1751
|
-
// would strand the instance: the frontier would reference a
|
|
1752
|
-
// closed packet and the workflow's own bookkeeping (trail,
|
|
1753
|
-
// rebind, events) would never happen. Reject LOUD with
|
|
1754
|
-
// what/why/fix naming the workflow verbs. The workflow domain's
|
|
1755
|
-
// own writers pass viaWorkflowVerb (they hold the invariant);
|
|
1756
|
-
// non-workflow qitems return null from the predicate — closure
|
|
1757
|
-
// behavior byte-identical (the zero-friction negative).
|
|
1758
|
-
const isTerminalClosure = isTerminalState(input.state);
|
|
1759
|
-
if (isTerminalClosure && !input.viaWorkflowVerb && this.workflowFrontierPredicate) {
|
|
1760
|
-
const binding = this.workflowFrontierPredicate(input.qitemId);
|
|
1761
|
-
if (binding) {
|
|
1762
|
-
throw new QueueRepositoryError("workflow_frontier_packet", `qitem ${input.qitemId} is the LIVE frontier packet of workflow instance ${binding.instanceId} (${binding.workflowName}). Closing it out-of-band would strand the workflow. Use the workflow verbs instead: rig workflow project (advance) | rig workflow route (re-target the owner).`, { instanceId: binding.instanceId, workflowName: binding.workflowName, qitemId: input.qitemId });
|
|
1763
|
-
}
|
|
1764
|
-
}
|
|
1765
|
-
// OPR.0.4.4.19 FR-6 — leg-1 park (state=blocked on a HUMAN-seat blocker):
|
|
1766
|
-
// enforce summary + evidence_ref at the park moment, evaluated on the
|
|
1767
|
-
// EFFECTIVE values (provided on this call, else already on the item) so
|
|
1768
|
-
// an item that carried them from create parks without re-entry. The
|
|
1769
|
-
// enforcement is here at the write path — the `rig queue block` verb and
|
|
1770
|
-
// raw `update --state blocked` hit the same validator (no verb-only
|
|
1771
|
-
// enforcement). Blocking on another qitem requires nothing new (BR-1).
|
|
1772
|
-
const effectiveBlockedOn = input.blockedOn ?? qitem.blockedOn;
|
|
1773
|
-
if (input.state === "blocked" && effectiveBlockedOn && this.getById(effectiveBlockedOn)?.humanIntent === "update") {
|
|
1774
|
-
throw new QueueRepositoryError("invalid_human_notification", "An informational update is not an approval dependency. Create a separate decision request if a human decision is needed.");
|
|
1775
|
-
}
|
|
1776
|
-
if (qitem.humanIntent === "update" && input.state === "blocked" && isHumanSeatSessionRef(effectiveBlockedOn ?? "")) {
|
|
1777
|
-
throw new QueueRepositoryError("invalid_human_notification", "An informational delivery cannot become a human approval park; author a separate decision request.");
|
|
1778
|
-
}
|
|
1779
|
-
const isHumanPark = input.state === "blocked" && isHumanSeatSession(effectiveBlockedOn);
|
|
1780
|
-
// OPR.0.5.1 slice-51-06 D2 — summary/evidence_ref are persist-able ONLY at a human-seat park
|
|
1781
|
-
// (see the FR-6 note below). Silently ignoring them on any other transition is a data-loss trap
|
|
1782
|
-
// (the operator believes the metadata was saved). HARD-REJECT before ANY UPDATE/log/event so the
|
|
1783
|
-
// caller learns immediately and nothing is half-applied. null/undefined = absent (allowed);
|
|
1784
|
-
// empty string = present (a deliberate value → rejected on a non-park transition).
|
|
1785
|
-
if (!isHumanPark) {
|
|
1786
|
-
const invalidFields = [];
|
|
1787
|
-
if (input.summary != null)
|
|
1788
|
-
invalidFields.push("summary");
|
|
1789
|
-
if (input.evidenceRef != null)
|
|
1790
|
-
invalidFields.push("evidenceRef");
|
|
1791
|
-
if (invalidFields.length > 0) {
|
|
1792
|
-
const flags = invalidFields.map((f) => (f === "summary" ? "--summary" : "--evidence-ref")).join(" / ");
|
|
1793
|
-
throw new QueueRepositoryError("summary_evidence_not_persistable", `${invalidFields.join(" + ")} persist only on a human-seat park (state=blocked on a human seat); the '${input.state}' transition cannot store them. Remove ${flags}, or park the item (rig queue block --on <human-seat> --summary … --evidence-ref …).`, { invalidFields });
|
|
1794
|
-
}
|
|
1795
|
-
}
|
|
1796
|
-
// SWEEP-a (shape f2576102) — closure/blocked-field COHERENCE, beside the reference
|
|
1797
|
-
// reject above: an incoherent field must never silently persist (worse than a drop —
|
|
1798
|
-
// the COALESCE below would write it). Admits-map, derived from LIVE schema use:
|
|
1799
|
-
// closure_reason/closure_target → state "done", OR the PARK-RECORD form
|
|
1800
|
-
// (state "blocked" with closureReason "blocked_on" — the workflow gate/park
|
|
1801
|
-
// writers' established shape, workflow-runtime.ts:587/1013);
|
|
1802
|
-
// blocked_on → state "blocked" only.
|
|
1803
|
-
const isParkRecord = input.state === "blocked" && input.closureReason === "blocked_on";
|
|
1804
|
-
// Third live form (found by the neighborhood suites): the transactional handoff
|
|
1805
|
-
// closes its source as state "handed-off" with closureReason "handed_off_to".
|
|
1806
|
-
const isHandoffClose = input.state === "handed-off" && input.closureReason === "handed_off_to";
|
|
1807
|
-
// 0.5.1-53 Atom 2a — FOURTH admitted form: the supersession-cancel. A row corrected by
|
|
1808
|
-
// cancel-and-replace records state=canceled + closureReason=superseded + closureTarget=<successor>,
|
|
1809
|
-
// so superseded is distinguishable from abandoned (a plain cancel keeps closureReason=null).
|
|
1810
|
-
const isSupersedeCancel = input.state === "canceled" && input.closureReason === "superseded";
|
|
1811
|
-
if (input.state !== "done" && !isParkRecord && !isHandoffClose && !isSupersedeCancel && (input.closureReason != null || input.closureTarget != null)) {
|
|
1812
|
-
throw new QueueRepositoryError("closure_fields_not_admitted", `closure_reason/closure_target persist only on state=done, the blocked park-record form, the handoff close, or the superseded cancel; the '${input.state}' transition cannot store them. Close the item (--state done --closure-reason …) or drop the flags.`, {});
|
|
1813
|
-
}
|
|
1814
|
-
// A supersession must name WHAT replaced this row — fail LOUD before any write (never a silent
|
|
1815
|
-
// no-op leaving a stale row, the dead-signal class), symmetric with handed_off_to's target rule.
|
|
1816
|
-
if (isSupersedeCancel && !input.closureTarget) {
|
|
1817
|
-
throw new QueueRepositoryError("missing_closure_target", `closure_reason=superseded requires closure_target (the successor qitem that replaced this row).`, {});
|
|
1818
|
-
}
|
|
1819
|
-
if (input.blockedOn != null && input.state !== "blocked") {
|
|
1820
|
-
throw new QueueRepositoryError("blocked_on_not_admitted", `blocked_on persists only on state=blocked; the '${input.state}' transition cannot store it. Park the item (rig queue block --on …) or drop --blocked-on.`, {});
|
|
1821
|
-
}
|
|
1822
|
-
// 0.5.1-53 Atom 1b(ii) + 1a — blocker validation at the park moment. Non-human blocker kinds:
|
|
1823
|
-
// qitem-ref ("qitem-…") → must EXIST and be LIVE (1b-ii); a ghost or dead blocker never lifts.
|
|
1824
|
-
// typed gate (fold:/auth:/…) → first-class (1a), but a bare prefix with no gate body is malformed
|
|
1825
|
-
// (a typo must not masquerade as a gate).
|
|
1826
|
-
// anything else (legacy gate-name) → left as-is; out of this slice.
|
|
1827
|
-
// Human-seat parks (isHumanPark) enforce their own FR-6 contract above.
|
|
1828
|
-
if (input.state === "blocked" && !isHumanPark && typeof effectiveBlockedOn === "string") {
|
|
1829
|
-
if (effectiveBlockedOn.startsWith("qitem-")) {
|
|
1830
|
-
const blocker = this.getById(effectiveBlockedOn);
|
|
1831
|
-
if (!blocker) {
|
|
1832
|
-
throw new QueueRepositoryError("blocker_not_found", `blocked_on names a qitem that does not exist: ${effectiveBlockedOn}. A park must name a real, live blocker — a nonexistent blocker can never complete, so the row could never unpark.`,
|
|
1833
|
-
// F1 (error-honesty): the rejected value is named rejectedBlocker — an error payload
|
|
1834
|
-
// never carries the success-shaped blockedOn field (the field-filtered-misread class).
|
|
1835
|
-
{ rejectedBlocker: effectiveBlockedOn });
|
|
1836
|
-
}
|
|
1837
|
-
if (!isBlockerLive(blocker.state)) {
|
|
1838
|
-
throw new QueueRepositoryError("blocker_not_live", `blocked_on names a resolved qitem: ${effectiveBlockedOn} is '${blocker.state}'. A park must name a LIVE blocker — parking on a completed/closed row is a dead-blocker park that never self-clears.`, { rejectedBlocker: effectiveBlockedOn, blockerState: blocker.state });
|
|
1839
|
-
}
|
|
1840
|
-
}
|
|
1841
|
-
else {
|
|
1842
|
-
const typedPrefix = typedGateBlockerPrefix(effectiveBlockedOn);
|
|
1843
|
-
if (typedPrefix && !isTypedGateBlocker(effectiveBlockedOn)) {
|
|
1844
|
-
throw new QueueRepositoryError("blocker_malformed", `blocked_on '${effectiveBlockedOn}' is a bare '${typedPrefix}' prefix with no gate body. A typed gate blocker must name its gate (e.g. fold:one-home+attestation).`, { rejectedBlocker: effectiveBlockedOn });
|
|
1845
|
-
}
|
|
1846
|
-
}
|
|
1847
|
-
}
|
|
1848
|
-
let effectiveSummary = qitem.summary;
|
|
1849
|
-
let effectiveEvidenceRef = qitem.evidenceRef;
|
|
1850
|
-
if (isHumanPark) {
|
|
1851
|
-
effectiveSummary = input.summary ?? qitem.summary;
|
|
1852
|
-
effectiveEvidenceRef = input.evidenceRef ?? qitem.evidenceRef;
|
|
1853
|
-
const park = validateHumanPark({
|
|
1854
|
-
blockedOn: effectiveBlockedOn,
|
|
1855
|
-
summary: effectiveSummary,
|
|
1856
|
-
evidenceRef: effectiveEvidenceRef,
|
|
1857
|
-
});
|
|
1858
|
-
if (!park.ok) {
|
|
1859
|
-
throw new QueueRepositoryError(park.code, park.message, {
|
|
1860
|
-
missingFields: park.missingFields,
|
|
1861
|
-
});
|
|
1862
|
-
}
|
|
1863
|
-
}
|
|
1864
|
-
let parkWake = null;
|
|
1865
|
-
const jobsRepo = this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db);
|
|
1866
|
-
if (input.wakeWatchdogId != null) {
|
|
1867
|
-
const job = jobsRepo.getById(input.wakeWatchdogId);
|
|
1868
|
-
if (!job || job.state !== "active") {
|
|
1869
|
-
throw new QueueRepositoryError("wake_watchdog_not_live", `watchdog ${input.wakeWatchdogId} is not an active job; attach a live watchdog or arm an atomic timer`, { wakeWatchdogId: input.wakeWatchdogId });
|
|
1870
|
-
}
|
|
1871
|
-
if (job.targetSession !== qitem.destinationSession) {
|
|
1872
|
-
throw new QueueRepositoryError("wake_watchdog_target_mismatch", `watchdog ${job.jobId} targets ${job.targetSession}, not parked owner ${qitem.destinationSession}`, { wakeWatchdogId: job.jobId, targetSession: job.targetSession, destinationSession: qitem.destinationSession });
|
|
1873
|
-
}
|
|
1874
|
-
parkWake = { kind: "watchdog", ref: job.jobId };
|
|
1875
|
-
}
|
|
1876
|
-
else if (input.wakeAfterSeconds != null && input.wakeMaxSeconds != null) {
|
|
1877
|
-
if (effectiveBlockedOn === input.qitemId) {
|
|
1878
|
-
throw new QueueRepositoryError("wake_self_blocker", "a repeating wait must name an upstream blocker, not its own packet");
|
|
1879
|
-
}
|
|
1880
|
-
const oldWake = this.wakeRepo.getStatus(input.qitemId);
|
|
1881
|
-
const job = armQueueWait(this.db, jobsRepo, {
|
|
1882
|
-
previousJobId: oldWake?.kind === "timer" ? oldWake.ref : undefined,
|
|
1883
|
-
qitemId: input.qitemId, blocker: effectiveBlockedOn,
|
|
1884
|
-
evidence: input.wakeProgressEvidence,
|
|
1885
|
-
initialSeconds: input.wakeAfterSeconds, maxSeconds: input.wakeMaxSeconds,
|
|
1886
|
-
message: input.wakeMessage ?? `Resume parked qitem ${input.qitemId} and inspect current evidence.`,
|
|
1887
|
-
owner: qitem.destinationSession, actor: input.actorSession,
|
|
1888
|
-
});
|
|
1889
|
-
parkWake = { kind: "timer", ref: job.jobId };
|
|
1890
|
-
}
|
|
1891
|
-
else if (input.wakeAfterSeconds != null) {
|
|
1892
|
-
const job = jobsRepo.register({
|
|
1893
|
-
policy: "periodic-reminder",
|
|
1894
|
-
specYaml: [
|
|
1895
|
-
"policy: periodic-reminder",
|
|
1896
|
-
"target:",
|
|
1897
|
-
` session: ${JSON.stringify(qitem.destinationSession)}`,
|
|
1898
|
-
`message: ${JSON.stringify(input.wakeMessage ?? `Wake timer fired for parked qitem ${qitem.qitemId}. Resume the recorded continuation and update the row.`)}`,
|
|
1899
|
-
"",
|
|
1900
|
-
].join("\n"),
|
|
1901
|
-
targetSession: qitem.destinationSession,
|
|
1902
|
-
intervalSeconds: input.wakeAfterSeconds,
|
|
1903
|
-
registeredBySession: input.actorSession,
|
|
1904
|
-
});
|
|
1905
|
-
// OPR.0.5.8.1 S1 — start the interval at registration for EVERY explicit
|
|
1906
|
-
// `--wake-after` timer, not only provider-limit ones.
|
|
1907
|
-
//
|
|
1908
|
-
// `isDue` treats a job with no `last_evaluation_at` as due immediately, so
|
|
1909
|
-
// an unseeded timer fires on the scheduler's very first pass regardless of
|
|
1910
|
-
// its interval: measured at 0.69s for a requested 20m and 0.77s for a
|
|
1911
|
-
// requested 2h. The duration was never lost — `interval_seconds` held 1200
|
|
1912
|
-
// and 7200 correctly — it simply was not the thing being measured against.
|
|
1913
|
-
//
|
|
1914
|
-
// S16 introduced this seeding for provider-limit parks only and recorded
|
|
1915
|
-
// the narrow scope as deliberate. Widening it is the whole repair: the
|
|
1916
|
-
// mechanism is unchanged and already proven by the provider-limit path, so
|
|
1917
|
-
// this adds no scheduler and no per-wake bookkeeping.
|
|
1918
|
-
jobsRepo.recordEvaluation(job.jobId, job.registeredAt, false);
|
|
1919
|
-
parkWake = { kind: "timer", ref: job.jobId };
|
|
1920
|
-
}
|
|
1921
|
-
else if (input.state === "blocked" && effectiveBlockedOn?.startsWith("qitem-")) {
|
|
1922
|
-
parkWake = { kind: "blocker", ref: effectiveBlockedOn };
|
|
1923
|
-
}
|
|
1924
|
-
const ts = new Date().toISOString();
|
|
1925
|
-
const fromState = qitem.state;
|
|
1926
|
-
// 0.5.1-53 Atom 1b(i) — clear-on-exit. blocked_on is set EXPLICITLY, not COALESCE'd:
|
|
1927
|
-
// a row keeps its blocker ONLY while `state=blocked` (effectiveBlockedOn = the new
|
|
1928
|
-
// blocker, else the one it already carried), and any exit from blocked CLEARS it to
|
|
1929
|
-
// NULL. The prior `COALESCE(?, blocked_on)` preserved the blocker on every non-blocked
|
|
1930
|
-
// transition, leaving dead blockers that nothing audits (the root-cause strand).
|
|
1931
|
-
const nextBlockedOn = input.state === "blocked" ? effectiveBlockedOn : null;
|
|
1932
|
-
const notification = this.classifyOwnerNotification({
|
|
1933
|
-
action: "update",
|
|
1934
|
-
destinationSession: qitem.destinationSession,
|
|
1935
|
-
previousState: qitem.state,
|
|
1936
|
-
previousBlockedOn: qitem.blockedOn,
|
|
1937
|
-
nextState: input.state,
|
|
1938
|
-
nextBlockedOn,
|
|
1939
|
-
explicitKind: input.ownerNotificationKind,
|
|
1940
|
-
});
|
|
1941
|
-
this.db
|
|
1942
|
-
.prepare(`UPDATE queue_items
|
|
1943
|
-
SET state = ?,
|
|
1944
|
-
ts_updated = ?,
|
|
1945
|
-
closure_reason = COALESCE(?, closure_reason),
|
|
1946
|
-
closure_target = COALESCE(?, closure_target),
|
|
1947
|
-
handed_off_to = COALESCE(?, handed_off_to),
|
|
1948
|
-
blocked_on = ?
|
|
1949
|
-
WHERE qitem_id = ?`)
|
|
1950
|
-
.run(input.state, ts, validation.closureReason, validation.closureTarget, input.handedOffTo ?? null, nextBlockedOn, input.qitemId);
|
|
1951
|
-
// FR-6: park-time summary/evidence_ref are PERSISTED onto the existing
|
|
1952
|
-
// item (not merely validated-then-dropped) — visible to the attention
|
|
1953
|
-
// query and to Packet 2. Only the park path writes them.
|
|
1954
|
-
if (isHumanPark) {
|
|
1955
|
-
this.persistSummary(input.qitemId, input.summary ?? null);
|
|
1956
|
-
this.persistEvidenceRef(input.qitemId, input.evidenceRef ?? null);
|
|
1957
|
-
}
|
|
1958
|
-
const transition = this.transitionLog.append({
|
|
1959
|
-
qitemId: input.qitemId,
|
|
1960
|
-
state: input.state,
|
|
1961
|
-
actorSession: input.actorSession,
|
|
1962
|
-
transitionNote: isReopen ? `reopen acknowledged: ${input.transitionNote}` : input.transitionNote,
|
|
1963
|
-
closureReason: validation.closureReason ?? undefined,
|
|
1964
|
-
closureTarget: validation.closureTarget ?? undefined,
|
|
1965
|
-
identityProvenance: input.identityProvenance ?? null, // P21 §4 era-stamp
|
|
1966
|
-
ownerNotificationKind: notification?.kind,
|
|
1967
|
-
ownerNotificationLevel: notification?.level,
|
|
1968
|
-
});
|
|
1969
|
-
if (parkWake) {
|
|
1970
|
-
// OPR.0.5.8.1 S1b addendum — A NEW PARK EPISODE SUPERSEDES THE OLD.
|
|
1971
|
-
// Re-parking (blocked -> blocked with a fresh --wake-after) used to arm a
|
|
1972
|
-
// second job while the first stayed active, leaving two live timers on one
|
|
1973
|
-
// row: the third repeat-fire route, alongside the never-stopped fire and
|
|
1974
|
-
// the row-outliving timer.
|
|
1975
|
-
//
|
|
1976
|
-
// Read BEFORE recording the new armed row: getStatus returns the most
|
|
1977
|
-
// recent armed wake, so after the record below it would return the one we
|
|
1978
|
-
// are arming now rather than the one being superseded.
|
|
1979
|
-
//
|
|
1980
|
-
// Deliberately not gated on the previous state. The live+timer test is the
|
|
1981
|
-
// real safety, and leaving it ungated also cleans up a stale park-generated
|
|
1982
|
-
// timer left by any path that did not unpark cleanly. It cannot over-reach:
|
|
1983
|
-
// a job already terminal fails `live`, and an operator's attached watchdog
|
|
1984
|
-
// fails the kind test.
|
|
1985
|
-
if (this.wakeRepo.getStatus(input.qitemId)?.ref !== parkWake.ref) {
|
|
1986
|
-
this.retireParkGeneratedTimer(input.qitemId, "park_superseded");
|
|
1987
|
-
}
|
|
1988
|
-
this.wakeRepo.record({
|
|
1989
|
-
transitionId: transition.transitionId,
|
|
1990
|
-
qitemId: input.qitemId,
|
|
1991
|
-
phase: "armed",
|
|
1992
|
-
kind: parkWake.kind,
|
|
1993
|
-
ref: parkWake.ref,
|
|
1994
|
-
deliveryStatus: null,
|
|
1995
|
-
});
|
|
1996
|
-
}
|
|
1997
|
-
else if (fromState === "blocked" && input.state !== "blocked") {
|
|
1998
|
-
// OPR.0.5.8.1 S1b — a park-generated timer is bound to the PARK EPISODE.
|
|
1999
|
-
// Leaving `blocked` ends it, so a wake can never arrive telling a seat to
|
|
2000
|
-
// resume a row that is no longer parked. Specimen: job
|
|
2001
|
-
// 01M1E6F3QG41N76Y1CDX48P766 fired at 10:18:07Z for a row that went
|
|
2002
|
-
// handed-off at 10:02:03Z — sixteen minutes terminal, and the wake still
|
|
2003
|
-
// said "resume the recorded continuation".
|
|
2004
|
-
//
|
|
2005
|
-
// Stopping AT THE TRANSITION rather than checking row state at fire time,
|
|
2006
|
-
// because the fire path delivers before it consults the queue at all:
|
|
2007
|
-
// `recordWatchdogWakeAttempt` runs after delivery and merely returns early
|
|
2008
|
-
// when the row is gone, so a check there would audit a wake that had
|
|
2009
|
-
// already been sent.
|
|
2010
|
-
//
|
|
2011
|
-
// ONLY kind === "timer" is stopped. Those jobs are generated by this park
|
|
2012
|
-
// and owned by it. A watchdog the operator attached with --wake-watchdog
|
|
2013
|
-
// (kind "watchdog") is theirs, may target other rows, and must survive.
|
|
2014
|
-
this.retireParkGeneratedTimer(input.qitemId, `park_ended:${input.state}`);
|
|
2015
|
-
}
|
|
2016
|
-
// 0.5.1-53 Atom 1b(iii) — propagate-completion. blocked_on PROMISES "A waits until B completes";
|
|
2017
|
-
// that promise never fired on this runtime (rows sat blocked on done/canceled blockers for days).
|
|
2018
|
-
// When THIS qitem reaches a terminal state, auto-unpark every row parked on it (blocked_on = this,
|
|
2019
|
-
// state='blocked') to pending, clear its (now-resolved) blocker, log the transition, and emit an
|
|
2020
|
-
// event so watchers/sweeps see the unblock without a fetch.
|
|
2021
|
-
const dependentEvents = !isBlockerLive(input.state)
|
|
2022
|
-
? this.propagateBlockerCompletion({
|
|
2023
|
-
qitemId: input.qitemId,
|
|
2024
|
-
terminalState: input.state,
|
|
2025
|
-
actorSession: input.actorSession,
|
|
2026
|
-
identityProvenance: input.identityProvenance ?? null,
|
|
2027
|
-
ts,
|
|
2028
|
-
})
|
|
2029
|
-
: [];
|
|
2030
|
-
const persistedEvent = this.eventBus.persistWithinTransaction({
|
|
2031
|
-
type: "queue.updated",
|
|
2032
|
-
qitemId: input.qitemId,
|
|
2033
|
-
fromState,
|
|
2034
|
-
toState: input.state,
|
|
2035
|
-
closureReason: validation.closureReason ?? null,
|
|
2036
|
-
closureTarget: validation.closureTarget ?? null,
|
|
2037
|
-
actorSession: input.actorSession,
|
|
2038
|
-
// FR-1 × FR-6: the event carries the summary as of THIS mutation
|
|
2039
|
-
// (park-time summary included) so surfaces refresh without a fetch.
|
|
2040
|
-
summary: effectiveSummary ?? null,
|
|
2041
|
-
});
|
|
2042
|
-
return { persistedEvent, persistedEvents: [...dependentEvents, persistedEvent] };
|
|
2043
|
-
}
|
|
2044
|
-
/** OPR.0.5.6.26 — THE ONE PROPAGATION SITE. blocked_on promises "A waits until B
|
|
2045
|
-
* completes"; every terminal closure of a blocker actuates the attached rows'
|
|
2046
|
-
* auto-unpark through THIS helper — the update path and the handoff family both
|
|
2047
|
-
* call it inside their own transactions. The class this unifies away was
|
|
2048
|
-
* per-code-path: the handoff verbs wrote terminal states via direct SQL and the
|
|
2049
|
-
* promise never fired for them. Never a second copy of this logic. */
|
|
2050
|
-
/**
|
|
2051
|
-
* OPR.0.5.8.1 S1b — retire the timer a park generated for this row.
|
|
2052
|
-
*
|
|
2053
|
-
* THE SINGLE PLACE THIS DECISION IS MADE. `queue_items.state` is written by
|
|
2054
|
-
* SIX methods, not one, and the first version of this repair only hooked the
|
|
2055
|
-
* generic `updateInTransactionalContext`. Every other writer silently kept the
|
|
2056
|
-
* timer alive — including `handoff()`, which is the exact route that produced
|
|
2057
|
-
* the motivating specimen (review50-r2 found that one; enumerating the rest
|
|
2058
|
-
* found `claim()` and `propagateBlockerCompletion()` too, and `claim()` is the
|
|
2059
|
-
* "claim-resume" the story contract named explicitly).
|
|
2060
|
-
*
|
|
2061
|
-
* Callers must invoke this inside their own state-transition transaction, so a
|
|
2062
|
-
* row can never be observed out of its park with a live park timer.
|
|
2063
|
-
*
|
|
2064
|
-
* Only park-GENERATED timers are retired. A watchdog the operator attached with
|
|
2065
|
-
* `--wake-watchdog` is theirs, may target other rows, and always survives.
|
|
2066
|
-
* Non-live jobs are left alone, so calling this twice is harmless.
|
|
2067
|
-
*/
|
|
2068
|
-
retireParkGeneratedTimer(qitemId, reason) {
|
|
2069
|
-
const armed = this.wakeRepo.getStatus(qitemId);
|
|
2070
|
-
if (armed?.kind !== "timer" || !armed.live)
|
|
2071
|
-
return;
|
|
2072
|
-
(this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db)).markTerminal(armed.ref, reason);
|
|
2073
|
-
}
|
|
2074
|
-
propagateBlockerCompletion(input) {
|
|
2075
|
-
const dependentEvents = [];
|
|
2076
|
-
const blockedRows = this.db
|
|
2077
|
-
.prepare("SELECT qitem_id, destination_session FROM queue_items WHERE blocked_on = ? AND state = 'blocked'")
|
|
2078
|
-
.all(input.qitemId);
|
|
2079
|
-
for (const r of blockedRows) {
|
|
2080
|
-
const closed = this.getById(input.qitemId);
|
|
2081
|
-
const successors = input.terminalState === "handed-off" ? this.db.prepare("SELECT qitem_id FROM queue_items WHERE handed_off_from = ? AND destination_session = ?").all(input.qitemId, closed?.handedOffTo ?? "") : [];
|
|
2082
|
-
const successor = successors.length === 1 ? this.getById(successors[0].qitem_id) : null;
|
|
2083
|
-
if (successor && isBlockerLive(successor.state) && successor.destinationSession !== r.destination_session) {
|
|
2084
|
-
// Onward custody is a changed blocker. Returning to the waiting owner
|
|
2085
|
-
// below is the result arrival that actually resumes its continuation.
|
|
2086
|
-
const oldWake = this.wakeRepo.getStatus(r.qitem_id);
|
|
2087
|
-
this.db.prepare("UPDATE queue_items SET blocked_on = ?, ts_updated = ? WHERE qitem_id = ?")
|
|
2088
|
-
.run(successor.qitemId, input.ts, r.qitem_id);
|
|
2089
|
-
const rebound = this.transitionLog.append({ qitemId: r.qitem_id, state: "blocked", actorSession: input.actorSession,
|
|
2090
|
-
transitionNote: `blocker custody moved from ${input.qitemId} to ${successor.qitemId}`,
|
|
2091
|
-
identityProvenance: input.identityProvenance });
|
|
2092
|
-
const jobs = this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db);
|
|
2093
|
-
const retainedTimer = oldWake?.kind === "timer" && retargetQueueWait(this.db, jobs, oldWake.ref, successor.qitemId);
|
|
2094
|
-
if (!retainedTimer)
|
|
2095
|
-
this.retireParkGeneratedTimer(r.qitem_id, "blocker_custody_moved");
|
|
2096
|
-
this.wakeRepo.record({ transitionId: rebound.transitionId, qitemId: r.qitem_id, phase: "armed",
|
|
2097
|
-
kind: retainedTimer ? "timer" : "blocker", ref: retainedTimer ? oldWake.ref : successor.qitemId, deliveryStatus: null });
|
|
2098
|
-
const event = this.eventBus.persistWithinTransaction({ type: "queue.updated", qitemId: r.qitem_id,
|
|
2099
|
-
fromState: "blocked", toState: "blocked", closureReason: null, closureTarget: null,
|
|
2100
|
-
actorSession: input.actorSession, summary: this.getById(r.qitem_id)?.summary ?? null });
|
|
2101
|
-
this.eventBus.registerPersistedWithinActiveEnvelope(event);
|
|
2102
|
-
dependentEvents.push(event);
|
|
2103
|
-
continue;
|
|
2104
|
-
}
|
|
2105
|
-
this.db
|
|
2106
|
-
.prepare("UPDATE queue_items SET state = 'pending', blocked_on = NULL, ts_updated = ? WHERE qitem_id = ?")
|
|
2107
|
-
.run(input.ts, r.qitem_id);
|
|
2108
|
-
const resumeTransition = this.transitionLog.append({
|
|
2109
|
-
qitemId: r.qitem_id,
|
|
2110
|
-
state: "pending",
|
|
2111
|
-
actorSession: input.actorSession,
|
|
2112
|
-
transitionNote: `auto-unparked: blocker ${input.qitemId} reached terminal state '${input.terminalState}'`,
|
|
2113
|
-
});
|
|
2114
|
-
// OPR.0.5.8.1 S1b — AUTO-UNPARK. A row parked with `--on X --wake-after 20m`
|
|
2115
|
-
// carries BOTH a blocker and a timer; when X completes this unparks the row
|
|
2116
|
-
// directly, so without this the blocker did its job and the timer still fired
|
|
2117
|
-
// afterwards at a row that was no longer parked.
|
|
2118
|
-
this.retireParkGeneratedTimer(r.qitem_id, "park_ended:auto-unparked");
|
|
2119
|
-
const wakeIntentId = this.stageAutoUnparkWakeIntent({
|
|
2120
|
-
qitemId: r.qitem_id,
|
|
2121
|
-
destinationSession: r.destination_session,
|
|
2122
|
-
fromSession: input.actorSession,
|
|
2123
|
-
identityProvenance: input.identityProvenance,
|
|
2124
|
-
blockerQitemId: input.qitemId,
|
|
2125
|
-
resumeTransitionId: resumeTransition.transitionId,
|
|
2126
|
-
});
|
|
2127
|
-
if (wakeIntentId)
|
|
2128
|
-
this.deliverWakeIntentAfterCommit(wakeIntentId);
|
|
2129
|
-
const dependentEvent = this.eventBus.persistWithinTransaction({
|
|
2130
|
-
type: "queue.updated",
|
|
2131
|
-
qitemId: r.qitem_id,
|
|
2132
|
-
fromState: "blocked",
|
|
2133
|
-
toState: "pending",
|
|
2134
|
-
closureReason: null,
|
|
2135
|
-
closureTarget: null,
|
|
2136
|
-
actorSession: input.actorSession,
|
|
2137
|
-
summary: this.getById(r.qitem_id)?.summary ?? null,
|
|
2138
|
-
});
|
|
2139
|
-
this.eventBus.registerPersistedWithinActiveEnvelope(dependentEvent);
|
|
2140
|
-
dependentEvents.push(dependentEvent);
|
|
2141
|
-
}
|
|
2142
|
-
return dependentEvents;
|
|
2143
|
-
}
|
|
2144
|
-
getParkWakeStatus(qitemId) {
|
|
2145
|
-
return this.wakeRepo.getStatus(qitemId);
|
|
2146
|
-
}
|
|
2147
|
-
/** Refuse a legacy park-generated timer only when every row bound to it is
|
|
2148
|
-
* terminal. Current exits retire these timers transactionally; this is the
|
|
2149
|
-
* delivery-seam backstop for residue persisted by an older daemon. A timer
|
|
2150
|
-
* still bound to any actionable row, and every operator-attached watchdog,
|
|
2151
|
-
* remains deliverable. */
|
|
2152
|
-
resolveWatchdogPreDeliveryTerminalReason(jobId) {
|
|
2153
|
-
const targets = this.wakeRepo.findQitemsByGeneratedTimer(jobId);
|
|
2154
|
-
if (targets.length === 0 || targets.some(({ state }) => !isTerminalState(state)))
|
|
2155
|
-
return null;
|
|
2156
|
-
// Ownership, not just staleness. This backstop may retire a job only when
|
|
2157
|
-
// the job is SOLELY a park-generated timer. `--wake-watchdog` can attach an
|
|
2158
|
-
// operator row to the very job another row's `--wake-after` produced, and
|
|
2159
|
-
// that is a supported path — so a shared job carries a second, watchdog-kind
|
|
2160
|
-
// binding this reason has no authority over. The timer's rows being terminal
|
|
2161
|
-
// says nothing about the attachment; claiming the job anyway terminals it
|
|
2162
|
-
// before transport and the attachment can never wake.
|
|
2163
|
-
if (this.wakeRepo.findQitemsByAttachedWatchdog(jobId).length > 0)
|
|
2164
|
-
return null;
|
|
2165
|
-
return "park_timer_target_terminal";
|
|
2166
|
-
}
|
|
2167
|
-
listTransitions(qitemId) {
|
|
2168
|
-
return this.transitionLog.listForQitem(qitemId).map((transition) => {
|
|
2169
|
-
const wake = this.wakeRepo.getForTransition(transition.transitionId);
|
|
2170
|
-
return wake ? { ...transition, wake } : transition;
|
|
2171
|
-
});
|
|
2172
|
-
}
|
|
2173
|
-
/** Read-only scope-aware RECENT projection. Normalization and its hard cap
|
|
2174
|
-
* live with the append-only transition log; the repository owns the public
|
|
2175
|
-
* queue-domain door. */
|
|
2176
|
-
listRecentTransitions(scope, limit = 20) {
|
|
2177
|
-
return this.transitionLog.listRecent(typeof scope === "string" ? { kind: "rig", rig: scope } : scope, limit);
|
|
2178
|
-
}
|
|
2179
|
-
/** Called by the watchdog engine after the delivery attempt is durably
|
|
2180
|
-
* audited. The queue transition records that attempt independently of
|
|
2181
|
-
* whether the HELD row's owner consumed it. */
|
|
2182
|
-
recordWatchdogWakeAttempt(jobId, deliveryStatus) {
|
|
2183
|
-
const targets = this.wakeRepo.findBlockedQitemsByWatchdog(jobId);
|
|
2184
|
-
if (targets.length === 0)
|
|
2185
|
-
return;
|
|
2186
|
-
const recordFired = ({ qitemId, kind }) => {
|
|
2187
|
-
const transition = this.transitionLog.append({
|
|
2188
|
-
qitemId,
|
|
2189
|
-
state: "blocked",
|
|
2190
|
-
actorSession: "watchdog@system",
|
|
2191
|
-
transitionNote: `park wake fired: watchdog ${jobId}; delivery=${deliveryStatus}; awaiting owner consumption`,
|
|
2192
|
-
});
|
|
2193
|
-
this.wakeRepo.record({
|
|
2194
|
-
transitionId: transition.transitionId,
|
|
2195
|
-
qitemId,
|
|
2196
|
-
phase: "fired",
|
|
2197
|
-
kind,
|
|
2198
|
-
ref: jobId,
|
|
2199
|
-
deliveryStatus,
|
|
2200
|
-
});
|
|
2201
|
-
return this.eventBus.persistWithinTransaction({
|
|
2202
|
-
type: "queue.updated",
|
|
2203
|
-
qitemId,
|
|
2204
|
-
fromState: "blocked",
|
|
2205
|
-
toState: "blocked",
|
|
2206
|
-
closureReason: null,
|
|
2207
|
-
closureTarget: null,
|
|
2208
|
-
actorSession: "watchdog@system",
|
|
2209
|
-
summary: this.getById(qitemId)?.summary ?? null,
|
|
2210
|
-
});
|
|
2211
|
-
};
|
|
2212
|
-
const usageLimitBlockers = targets.filter(({ qitemId }) => this.getById(qitemId)?.tags?.includes(USAGE_LIMIT_BLOCKER_TAG));
|
|
2213
|
-
// OPR.0.5.8.1 S1b — a park-generated timer is ONE-SHOT. `periodic-reminder`
|
|
2214
|
-
// repeats every intervalSeconds forever, so an unstopped park timer wakes its
|
|
2215
|
-
// owner again at +2 intervals, +3, indefinitely.
|
|
2216
|
-
//
|
|
2217
|
-
// The provider-limit path below already ends its job after firing; that
|
|
2218
|
-
// behaviour is UNCHANGED by this repair and pinned as unchanged. This widens
|
|
2219
|
-
// the same act to ordinary park timers, without their blocker resolution —
|
|
2220
|
-
// resolving the blocker is a provider-limit outcome, not a timer one.
|
|
2221
|
-
const parkGeneratedTimer = targets.some(({ kind }) => kind === "timer");
|
|
2222
|
-
const events = this.db.transaction(() => {
|
|
2223
|
-
const firedEvents = targets.map(recordFired);
|
|
2224
|
-
if (usageLimitBlockers.length === 0) {
|
|
2225
|
-
if (parkGeneratedTimer && !backOffQueueWait(this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db), jobId, deliveryStatus)) {
|
|
2226
|
-
(this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db)).markTerminal(jobId, "park_timer_fired_once");
|
|
2227
|
-
}
|
|
2228
|
-
return firedEvents;
|
|
2229
|
-
}
|
|
2230
|
-
(this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db)).markTerminal(jobId, "usage_limit_expiry_fired");
|
|
2231
|
-
const resolutionEvents = usageLimitBlockers.flatMap(({ qitemId }) => this.updateInTransactionalContext({
|
|
2232
|
-
qitemId,
|
|
2233
|
-
actorSession: "watchdog@system",
|
|
2234
|
-
state: "done",
|
|
2235
|
-
closureReason: "no-follow-on",
|
|
2236
|
-
transitionNote: `provider-limit timer ${jobId} reached its expiry; resolving the shared blocker once`,
|
|
2237
|
-
}).persistedEvents);
|
|
2238
|
-
return [...firedEvents, ...resolutionEvents];
|
|
2239
|
-
})();
|
|
2240
|
-
for (const event of events)
|
|
2241
|
-
this.eventBus.notifySubscribers(event);
|
|
2242
|
-
}
|
|
2243
|
-
getById(qitemId) {
|
|
2244
|
-
const row = this.db
|
|
2245
|
-
.prepare("SELECT * FROM queue_items WHERE qitem_id = ?")
|
|
2246
|
-
.get(qitemId);
|
|
2247
|
-
if (!row)
|
|
2248
|
-
return null;
|
|
2249
|
-
const item = this.rowToItem(row);
|
|
2250
|
-
// OPR.0.5.6.14 — the row FACE answers "did it reach them" in one read for
|
|
2251
|
-
// gateway-routed rows; null for pane-bound (absence-governed, no key lies).
|
|
2252
|
-
const ledger = this.deliveryOutcomeFor(item.qitemId);
|
|
2253
|
-
return {
|
|
2254
|
-
...item,
|
|
2255
|
-
deliveryOutcome: ledger?.outcome ?? null,
|
|
2256
|
-
...(ledger && ledger.outcome !== "posted" ? { deliveryFailureDetail: ledger.detail } : {}),
|
|
2257
|
-
};
|
|
2258
|
-
}
|
|
2259
|
-
list(opts) {
|
|
2260
|
-
const limit = opts?.limit ?? 100;
|
|
2261
|
-
const conditions = [];
|
|
2262
|
-
const params = [];
|
|
2263
|
-
if (opts?.tag) {
|
|
2264
|
-
conditions.push("EXISTS (SELECT 1 FROM json_each(queue_items.tags) WHERE value = ?)");
|
|
2265
|
-
params.push(opts.tag);
|
|
2266
|
-
}
|
|
2267
|
-
if (opts?.rig) {
|
|
2268
|
-
const escaped = opts.rig.replace(/%/g, "\\%").replace(/_/g, "\\_");
|
|
2269
|
-
conditions.push("(destination_session LIKE ? ESCAPE '\\' OR source_session LIKE ? ESCAPE '\\')");
|
|
2270
|
-
params.push(`%@${escaped}`, `%@${escaped}`);
|
|
2271
|
-
}
|
|
2272
|
-
if (opts?.asSession) {
|
|
2273
|
-
conditions.push("(destination_session = ? OR source_session = ?)");
|
|
2274
|
-
params.push(opts.asSession, opts.asSession);
|
|
2275
|
-
}
|
|
2276
|
-
if (opts?.activeOnly && !opts?.state) {
|
|
2277
|
-
conditions.push("state IN ('pending', 'in-progress', 'blocked')");
|
|
2278
|
-
}
|
|
2279
|
-
if (opts?.destinationSession) {
|
|
2280
|
-
conditions.push("destination_session = ?");
|
|
2281
|
-
params.push(opts.destinationSession);
|
|
2282
|
-
}
|
|
2283
|
-
if (opts?.sourceSession) {
|
|
2284
|
-
conditions.push("source_session = ?");
|
|
2285
|
-
params.push(opts.sourceSession);
|
|
2286
|
-
}
|
|
2287
|
-
if (opts?.state) {
|
|
2288
|
-
const states = Array.isArray(opts.state) ? opts.state : [opts.state];
|
|
2289
|
-
const placeholders = states.map(() => "?").join(", ");
|
|
2290
|
-
conditions.push(`state IN (${placeholders})`);
|
|
2291
|
-
params.push(...states);
|
|
2292
|
-
}
|
|
2293
|
-
if (opts?.targetRepo && this.hasTargetRepoColumn) {
|
|
2294
|
-
conditions.push("target_repo = ?");
|
|
2295
|
-
params.push(opts.targetRepo);
|
|
2296
|
-
}
|
|
2297
|
-
const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
|
|
2298
|
-
const columns = opts?.compact ? COMPACT_QUEUE_COLUMNS + (this.hasHumanIntentColumn ? ", human_intent" : "") : "*";
|
|
2299
|
-
const useActiveFirst = !!(opts?.rig || opts?.asSession || opts?.activeOnly);
|
|
2300
|
-
const orderBy = useActiveFirst
|
|
2301
|
-
? "CASE WHEN state IN ('pending', 'in-progress', 'blocked') THEN 0 ELSE 1 END, ts_created DESC"
|
|
2302
|
-
: "ts_created DESC";
|
|
2303
|
-
params.push(limit);
|
|
2304
|
-
const rows = this.db
|
|
2305
|
-
.prepare(`SELECT ${columns} FROM queue_items ${where} ORDER BY ${orderBy} LIMIT ?`)
|
|
2306
|
-
.all(...params);
|
|
2307
|
-
const items = rows.map((r) => {
|
|
2308
|
-
const item = this.rowToItem(r, !opts?.compact);
|
|
2309
|
-
const ledger = this.deliveryOutcomeFor(item.qitemId);
|
|
2310
|
-
return {
|
|
2311
|
-
...item,
|
|
2312
|
-
deliveryOutcome: ledger?.outcome ?? null,
|
|
2313
|
-
...(ledger && ledger.outcome !== "posted" ? { deliveryFailureDetail: ledger.detail } : {}),
|
|
2314
|
-
};
|
|
2315
|
-
});
|
|
2316
|
-
return opts?.compact
|
|
2317
|
-
? items.map((item) => ({
|
|
2318
|
-
...item,
|
|
2319
|
-
fieldsElided: ["body", "summary", "evidenceRef", "humanDetail", "waiting"],
|
|
2320
|
-
}))
|
|
2321
|
-
: items;
|
|
2322
|
-
}
|
|
2323
|
-
/**
|
|
2324
|
-
* OPR.0.3.2.20 — durable attention-class query.
|
|
2325
|
-
*
|
|
2326
|
-
* Returns OPEN attention-class qitems (the source of truth for the
|
|
2327
|
-
* For You Action-required + Approval lenses) by pushing the
|
|
2328
|
-
* attention predicate INTO the SQL WHERE clause so the LIMIT
|
|
2329
|
-
* applies AFTER attention filtering. This makes the result
|
|
2330
|
-
* window-INDEPENDENT by construction: an old human-gate item
|
|
2331
|
-
* cannot be evicted past LIMIT by routine open qitems even when
|
|
2332
|
-
* there are >>LIMIT of them. (Guard verdict qitem-20260518190827
|
|
2333
|
-
* BLOCKER 1 — the prior fetch-then-filter approach in the route
|
|
2334
|
-
* could still hide attention items behind ATTENTION_FETCH_BOUND
|
|
2335
|
-
* newer routine open qitems.)
|
|
2336
|
-
*
|
|
2337
|
-
* Attention predicate in SQL (mirror of mission-control read
|
|
2338
|
-
* layer + the route-level `isAttentionItem`):
|
|
2339
|
-
* tier = 'human-gate' (approval)
|
|
2340
|
-
* OR destination_session matches human-seat regex (action-required)
|
|
2341
|
-
*
|
|
2342
|
-
* SQLite has no native regex; LIKE patterns are used as a
|
|
2343
|
-
* SUPER-SET (every regex match also matches one of the LIKE
|
|
2344
|
-
* patterns). Callers can refine in JS with isAttentionItem if
|
|
2345
|
-
* they need strict regex semantics — but for the LIMIT-pushdown
|
|
2346
|
-
* guarantee, the SQL superset is what matters: NO attention item
|
|
2347
|
-
* is filtered out by the SQL stage.
|
|
2348
|
-
*
|
|
2349
|
-
* Default open state set: pending|in-progress|blocked. Caller may
|
|
2350
|
-
* override via `state`.
|
|
2351
|
-
*/
|
|
2352
|
-
/** Delivered informational records remain queryable after closure. Receipt filtering
|
|
2353
|
-
* happens before LIMIT; no prose/tier classifier and no second event store. */
|
|
2354
|
-
listDeliveredHumanUpdates(opts = {}) {
|
|
2355
|
-
if (!this.hasHumanIntentColumn)
|
|
2356
|
-
return [];
|
|
2357
|
-
const limit = Number.isFinite(opts.limit) ? Math.max(1, Math.min(101, Math.floor(opts.limit))) : 20;
|
|
2358
|
-
const receipts = `SELECT qitem_id, ts, transition_note FROM queue_transitions` +
|
|
2359
|
-
(detectTable(this.db, "queue_transitions_archive") ? ` UNION ALL SELECT qitem_id, ts, transition_note FROM queue_transitions_archive` : "");
|
|
2360
|
-
const rows = this.db.prepare(`
|
|
2361
|
-
SELECT q.*, r.ts AS delivered_at, r.transition_note AS delivery_receipt
|
|
2362
|
-
FROM queue_items q JOIN (${receipts}) r ON r.qitem_id = q.qitem_id
|
|
2363
|
-
WHERE q.human_intent = 'update' AND is_human_seat_session(q.destination_session) = 1
|
|
2364
|
-
AND r.transition_note LIKE 'slack-owner-notification-posted %'
|
|
2365
|
-
ORDER BY r.ts DESC, q.qitem_id DESC LIMIT ?
|
|
2366
|
-
`).all(limit);
|
|
2367
|
-
return rows.map((row) => ({ ...this.rowToItem(row), deliveredAt: row.delivered_at, deliveryReceipt: row.delivery_receipt }));
|
|
2368
|
-
}
|
|
2369
|
-
listAttention(opts) {
|
|
2370
|
-
const limit = opts?.limit ?? 100;
|
|
2371
|
-
const states = opts?.state
|
|
2372
|
-
? Array.isArray(opts.state) ? opts.state : [opts.state]
|
|
2373
|
-
: ["pending", "in-progress", "blocked"];
|
|
2374
|
-
// Compose the WHERE clause: state-set + attention predicate +
|
|
2375
|
-
// optional scope filters (mirrors list() composition so
|
|
2376
|
-
// `attention=1` query params remain composable with
|
|
2377
|
-
// destinationSession/sourceSession/targetRepo — guard re-verify
|
|
2378
|
-
// qitem-20260518192210 BLOCKER 1).
|
|
2379
|
-
const statePlaceholders = states.map(() => "?").join(", ");
|
|
2380
|
-
// The attention predicate is EXACT in SQL (guard re-verify-3
|
|
2381
|
-
// qitem-20260518193005 BLOCKER 1): is_human_seat_session evaluates
|
|
2382
|
-
// the strict regex registered in the QueueRepository constructor.
|
|
2383
|
-
// Malformed rows that would have slipped through a LIKE superset
|
|
2384
|
-
// (e.g., 'human-@kernel' — empty name segment) are rejected at
|
|
2385
|
-
// the SQL stage, BEFORE LIMIT, so they cannot saturate the LIMIT
|
|
2386
|
-
// window and hide valid attention items.
|
|
2387
|
-
// OPR.0.4.4.19 FR-6 — the attention predicate gains the leg-1 park
|
|
2388
|
-
// clause: a qitem parked as state=blocked on a HUMAN-seat blocker is a
|
|
2389
|
-
// decision the human owes. Blocking on another qitem (today's shipped
|
|
2390
|
-
// usage) does NOT match — is_human_seat_session rejects qitem ids.
|
|
2391
|
-
const conditions = [
|
|
2392
|
-
`state IN (${statePlaceholders})`,
|
|
2393
|
-
`(
|
|
2394
|
-
is_human_seat_session(destination_session) = 1
|
|
2395
|
-
OR (state = 'blocked' AND is_human_seat_session(blocked_on) = 1)
|
|
2396
|
-
)`,
|
|
2397
|
-
];
|
|
2398
|
-
if (this.hasHumanIntentColumn)
|
|
2399
|
-
conditions.push("COALESCE(human_intent, 'decision') <> 'update'");
|
|
2400
|
-
const params = [...states];
|
|
2401
|
-
if (opts?.destinationSession) {
|
|
2402
|
-
conditions.push("destination_session = ?");
|
|
2403
|
-
params.push(opts.destinationSession);
|
|
2404
|
-
}
|
|
2405
|
-
if (opts?.sourceSession) {
|
|
2406
|
-
conditions.push("source_session = ?");
|
|
2407
|
-
params.push(opts.sourceSession);
|
|
2408
|
-
}
|
|
2409
|
-
if (opts?.targetRepo && this.hasTargetRepoColumn) {
|
|
2410
|
-
conditions.push("target_repo = ?");
|
|
2411
|
-
params.push(opts.targetRepo);
|
|
2412
|
-
}
|
|
2413
|
-
params.push(limit);
|
|
2414
|
-
const sql = `
|
|
2415
|
-
SELECT * FROM queue_items
|
|
2416
|
-
WHERE ${conditions.join(" AND ")}
|
|
2417
|
-
ORDER BY ts_created DESC
|
|
2418
|
-
LIMIT ?
|
|
2419
|
-
`;
|
|
2420
|
-
const rows = this.db.prepare(sql).all(...params);
|
|
2421
|
-
return rows.map((r) => this.rowToItem(r));
|
|
2422
|
-
}
|
|
2423
|
-
/**
|
|
2424
|
-
* Find qitems whose `closure_required_at` is past now. Used by watchdog;
|
|
2425
|
-
* does NOT itself emit events — callers decide whether to nudge or escalate.
|
|
2426
|
-
*
|
|
2427
|
-
* Slice 15 (finding 2): optionally rig-scoped, limited, and compact — mirroring
|
|
2428
|
-
* `list` — so `rig queue overdue` is bounded and body-free by default instead of
|
|
2429
|
-
* dumping every rig's full qitem bodies to a single caller. No args = the prior
|
|
2430
|
-
* behavior (all overdue, full rows) for the watchdog.
|
|
2431
|
-
*/
|
|
2432
|
-
findOverdue(opts) {
|
|
2433
|
-
const cutoff = opts?.now ?? new Date().toISOString();
|
|
2434
|
-
const conditions = ["state = 'in-progress'", "closure_required_at IS NOT NULL", "closure_required_at <= ?"];
|
|
2435
|
-
const params = [cutoff];
|
|
2436
|
-
if (opts?.rig) {
|
|
2437
|
-
const escaped = opts.rig.replace(/%/g, "\\%").replace(/_/g, "\\_");
|
|
2438
|
-
conditions.push("(destination_session LIKE ? ESCAPE '\\' OR source_session LIKE ? ESCAPE '\\')");
|
|
2439
|
-
params.push(`%@${escaped}`, `%@${escaped}`);
|
|
2440
|
-
}
|
|
2441
|
-
const columns = opts?.compact ? COMPACT_QUEUE_COLUMNS + (this.hasHumanIntentColumn ? ", human_intent" : "") : "*";
|
|
2442
|
-
let sql = `SELECT ${columns} FROM queue_items WHERE ${conditions.join(" AND ")} ORDER BY closure_required_at ASC`;
|
|
2443
|
-
if (opts?.limit !== undefined) {
|
|
2444
|
-
sql += " LIMIT ?";
|
|
2445
|
-
params.push(opts.limit);
|
|
2446
|
-
}
|
|
2447
|
-
const rows = this.db.prepare(sql).all(...params);
|
|
2448
|
-
return rows.map((r) => this.rowToItem(r, !opts?.compact));
|
|
2449
|
-
}
|
|
2450
|
-
/**
|
|
2451
|
-
* Surface two evidence-backed undelivered classes: the original pending
|
|
2452
|
-
* create-path nudge failures, and active human-notification episodes whose
|
|
2453
|
-
* gateway ledger says transport-failed or receiptless past the post window.
|
|
2454
|
-
* A generic null nudge is still excluded; only a structured OWNER episode
|
|
2455
|
-
* makes that absence meaningful. READ only — no retry or unwind.
|
|
2456
|
-
*/
|
|
2457
|
-
findUndelivered(opts) {
|
|
2458
|
-
// OPR.0.5.6.14 — delivery truth belongs to the CURRENT human-notification
|
|
2459
|
-
// episode, not to the row's whole history. Pull every active row that can
|
|
2460
|
-
// carry a current episode or a legacy nudge/receipt, then derive/filter in
|
|
2461
|
-
// JS. LIMIT is applied after that filtering so historical POSTED episodes
|
|
2462
|
-
// cannot consume the window and hide a later failure.
|
|
2463
|
-
const ownerEpisodeCandidate = this.hasOwnerNotificationColumns
|
|
2464
|
-
? `EXISTS (SELECT 1 FROM queue_transitions owner_episode
|
|
2465
|
-
WHERE owner_episode.qitem_id = queue_items.qitem_id
|
|
2466
|
-
AND owner_episode.owner_notification_level IS NOT NULL)`
|
|
2467
|
-
: "0";
|
|
2468
|
-
const conditions = [
|
|
2469
|
-
"state IN ('pending', 'in-progress', 'blocked')",
|
|
2470
|
-
`((state = 'pending' AND (last_nudge_result LIKE 'failed:%'
|
|
2471
|
-
OR last_nudge_result LIKE 'unroutable:%'
|
|
2472
|
-
OR last_nudge_result LIKE 'gateway-owned%'))
|
|
2473
|
-
OR ${ownerEpisodeCandidate}
|
|
2474
|
-
OR EXISTS (SELECT 1 FROM queue_transitions receipt
|
|
2475
|
-
WHERE receipt.qitem_id = queue_items.qitem_id
|
|
2476
|
-
AND (receipt.transition_note LIKE 'slack-owner-notification-posted %'
|
|
2477
|
-
OR receipt.transition_note LIKE 'slack-owner-notification-transport-failed %')))`,
|
|
2478
|
-
];
|
|
2479
|
-
const params = [];
|
|
2480
|
-
if (opts?.rig) {
|
|
2481
|
-
const escaped = opts.rig.replace(/%/g, "\\%").replace(/_/g, "\\_");
|
|
2482
|
-
conditions.push("(destination_session LIKE ? ESCAPE '\\' OR source_session LIKE ? ESCAPE '\\')");
|
|
2483
|
-
params.push(`%@${escaped}`, `%@${escaped}`);
|
|
2484
|
-
}
|
|
2485
|
-
const columns = opts?.compact ? COMPACT_QUEUE_COLUMNS + (this.hasHumanIntentColumn ? ", human_intent" : "") : "*";
|
|
2486
|
-
const sql = `SELECT ${columns} FROM queue_items WHERE ${conditions.join(" AND ")} ORDER BY ts_created ASC`;
|
|
2487
|
-
const rows = this.db.prepare(sql).all(...params);
|
|
2488
|
-
const out = [];
|
|
2489
|
-
for (const r of rows) {
|
|
2490
|
-
const item = this.rowToItem(r, !opts?.compact);
|
|
2491
|
-
const ledger = this.deliveryOutcomeFor(item.qitemId);
|
|
2492
|
-
if (ledger?.outcome === "posted")
|
|
2493
|
-
continue; // the receipt wins, always
|
|
2494
|
-
if (ledger?.outcome === "transport-failed") {
|
|
2495
|
-
out.push({
|
|
2496
|
-
...item,
|
|
2497
|
-
deliveryOutcome: "transport-failed",
|
|
2498
|
-
deliveryFailureClass: "transport-failed",
|
|
2499
|
-
deliveryFailureDetail: ledger.detail,
|
|
2500
|
-
});
|
|
2501
|
-
}
|
|
2502
|
-
else if (ledger?.outcome === "never-posted") {
|
|
2503
|
-
out.push({
|
|
2504
|
-
...item,
|
|
2505
|
-
deliveryOutcome: "never-posted",
|
|
2506
|
-
deliveryFailureClass: "never-posted",
|
|
2507
|
-
deliveryFailureDetail: ledger.detail,
|
|
2508
|
-
});
|
|
2509
|
-
}
|
|
2510
|
-
else {
|
|
2511
|
-
// No ledger verdict: only the legacy pending failed/unroutable class is
|
|
2512
|
-
// undelivered. An active non-human row can still have an old OWNER
|
|
2513
|
-
// transition; that historical episode is not a current obligation.
|
|
2514
|
-
const lastNudge = item.lastNudgeResult ?? "";
|
|
2515
|
-
if (item.state === "pending" && (lastNudge.startsWith("failed:") || lastNudge.startsWith("unroutable:"))) {
|
|
2516
|
-
out.push(item);
|
|
2517
|
-
}
|
|
2518
|
-
}
|
|
2519
|
-
if (opts?.limit !== undefined && out.length >= opts.limit)
|
|
2520
|
-
break;
|
|
2521
|
-
}
|
|
2522
|
-
return out;
|
|
2523
|
-
}
|
|
2524
|
-
/** OPR.0.5.6.14 — terminal transport is a CAPABILITY, not topology presence.
|
|
2525
|
-
* An exact session or composed canonical seat is pane-bound only when its
|
|
2526
|
-
* node carries an explicit tmux binding. external_cli is paneless and must
|
|
2527
|
-
* continue to the human-registry/gateway leg. FAIL-OPEN only where the DB
|
|
2528
|
-
* cannot carry classification evidence (empty/partial bootstrap schemas). */
|
|
2529
|
-
hasTerminalTransport(dest) {
|
|
2530
|
-
try {
|
|
2531
|
-
const anyTopology = this.db.prepare("SELECT 1 FROM sessions LIMIT 1").get()
|
|
2532
|
-
?? this.db.prepare("SELECT 1 FROM nodes LIMIT 1").get();
|
|
2533
|
-
if (!anyTopology)
|
|
2534
|
-
return true;
|
|
2535
|
-
if (this.db.prepare(`SELECT 1 FROM sessions s JOIN bindings b ON b.node_id = s.node_id
|
|
2536
|
-
WHERE s.session_name = ?
|
|
2537
|
-
AND COALESCE(b.attachment_type, 'tmux') = 'tmux'
|
|
2538
|
-
AND b.tmux_session IS NOT NULL LIMIT 1`).get(dest))
|
|
2539
|
-
return true;
|
|
2540
|
-
const at = dest.lastIndexOf("@");
|
|
2541
|
-
if (at <= 0)
|
|
2542
|
-
return true; // non-canonical shapes stay on the legacy path
|
|
2543
|
-
const seat = dest.slice(0, at);
|
|
2544
|
-
const rig = dest.slice(at + 1);
|
|
2545
|
-
const composed = this.db.prepare(`SELECT 1 FROM nodes n
|
|
2546
|
-
JOIN rigs r ON r.id = n.rig_id
|
|
2547
|
-
JOIN bindings b ON b.node_id = n.id
|
|
2548
|
-
WHERE r.name = ? AND REPLACE(n.logical_id, '.', '-') = ?
|
|
2549
|
-
AND COALESCE(b.attachment_type, 'tmux') = 'tmux'
|
|
2550
|
-
AND b.tmux_session IS NOT NULL LIMIT 1`).get(rig, seat);
|
|
2551
|
-
return !!composed;
|
|
2552
|
-
}
|
|
2553
|
-
catch {
|
|
2554
|
-
return true; // schema-partial fixture DB: never discriminate without evidence
|
|
2555
|
-
}
|
|
2556
|
-
}
|
|
2557
|
-
/** Null means legacy/no OWNER history; inactive means OWNER history exists
|
|
2558
|
-
* but the row no longer projects a current human-notification episode. */
|
|
2559
|
-
currentDeliveryEpisode(item) {
|
|
2560
|
-
const transition = this.transitionLog.latestOwnerNotificationForQitem(item.qitemId);
|
|
2561
|
-
if (!transition)
|
|
2562
|
-
return null;
|
|
2563
|
-
const registry = this.loadHumanRegistryFn();
|
|
2564
|
-
if (!registry.ok)
|
|
2565
|
-
return "inactive";
|
|
2566
|
-
const humanAddress = transition.ownerNotificationKind === "human-decision-resolved"
|
|
2567
|
-
? resolveRegisteredHumanAddress(transition.actorSession, registry.entities)
|
|
2568
|
-
: item.state === "blocked"
|
|
2569
|
-
? resolveRegisteredHumanAddress(item.blockedOn, registry.entities)
|
|
2570
|
-
: resolveRegisteredHumanAddress(item.destinationSession, registry.entities);
|
|
2571
|
-
return humanAddress
|
|
2572
|
-
? { notificationKey: `${item.qitemId}:${transition.transitionId}`, startedAt: transition.ts }
|
|
2573
|
-
: "inactive";
|
|
2574
|
-
}
|
|
2575
|
-
/** OPR.0.5.6.14 — derive the current episode's delivery ledger. Receipt
|
|
2576
|
-
* transitions are same-row but keyed by qitemId:OWNER-transitionId; an old
|
|
2577
|
-
* posted receipt cannot mask a later human park. Legacy pre-OWNER or literal
|
|
2578
|
-
* external rows retain their row-scoped fallback. */
|
|
2579
|
-
deliveryOutcomeFor(qitemId) {
|
|
2580
|
-
// Some repository-only fixtures intentionally model the pre-transition
|
|
2581
|
-
// schema. Delivery projection is additive there: absence means no verdict,
|
|
2582
|
-
// never a list failure.
|
|
2583
|
-
if (!this.hasQueueTransitionsTable)
|
|
2584
|
-
return null;
|
|
2585
|
-
const row = this.db.prepare("SELECT * FROM queue_items WHERE qitem_id = ?")
|
|
2586
|
-
.get(qitemId);
|
|
2587
|
-
if (!row)
|
|
2588
|
-
return null;
|
|
2589
|
-
// The delivery episode uses row fields, not the waiting/backstop view.
|
|
2590
|
-
// Keep this read fresh without repeating the caller's recovery-tag scan.
|
|
2591
|
-
const item = this.rowToItem(row, false);
|
|
2592
|
-
const episodeState = this.currentDeliveryEpisode(item);
|
|
2593
|
-
if (episodeState === "inactive")
|
|
2594
|
-
return null;
|
|
2595
|
-
const episode = episodeState;
|
|
2596
|
-
const notes = this.db.prepare(`SELECT transition_note FROM queue_transitions
|
|
2597
|
-
WHERE qitem_id = ? AND (transition_note LIKE 'slack-owner-notification-posted %'
|
|
2598
|
-
OR transition_note LIKE 'slack-owner-notification-transport-failed %')
|
|
2599
|
-
ORDER BY transition_id DESC`).all(qitemId);
|
|
2600
|
-
const currentNotes = episode
|
|
2601
|
-
? notes.filter((note) => note.transition_note.split(/\s+/).includes(`notification_key=${episode.notificationKey}`))
|
|
2602
|
-
: notes;
|
|
2603
|
-
const posted = currentNotes.find((note) => note.transition_note.startsWith("slack-owner-notification-posted "));
|
|
2604
|
-
if (posted)
|
|
2605
|
-
return { outcome: "posted", detail: posted.transition_note };
|
|
2606
|
-
const failed = currentNotes.find((note) => note.transition_note.startsWith("slack-owner-notification-transport-failed "));
|
|
2607
|
-
if (failed)
|
|
2608
|
-
return { outcome: "transport-failed", detail: failed.transition_note };
|
|
2609
|
-
const startedAt = episode?.startedAt ?? item.tsCreated;
|
|
2610
|
-
const gatewayRouted = episode !== null || item.lastNudgeResult?.startsWith("gateway-owned") === true;
|
|
2611
|
-
if (gatewayRouted) {
|
|
2612
|
-
const ageMs = Date.now() - new Date(startedAt.includes("T") ? startedAt : startedAt + "Z").getTime();
|
|
2613
|
-
if (ageMs > QueueRepository.NEVER_POSTED_WINDOW_MS) {
|
|
2614
|
-
const key = episode ? ` for notification_key=${episode.notificationKey}` : "";
|
|
2615
|
-
return { outcome: "never-posted", detail: `gateway-routed row with no delivery receipt${key} past the post window` };
|
|
2616
|
-
}
|
|
2617
|
-
}
|
|
2618
|
-
return null;
|
|
2619
|
-
}
|
|
2620
|
-
/** The grace window before a receiptless gateway-routed row honestly reads
|
|
2621
|
-
* never-posted (the connector sweep cadence bounds normal posting latency). */
|
|
2622
|
-
static NEVER_POSTED_WINDOW_MS = 120_000;
|
|
2623
|
-
recordNudgeAttempt(qitemId, result) {
|
|
2624
|
-
const ts = new Date().toISOString();
|
|
2625
|
-
this.db
|
|
2626
|
-
.prepare(`UPDATE queue_items
|
|
2627
|
-
SET last_nudge_attempt = ?, last_nudge_result = ?
|
|
2628
|
-
WHERE qitem_id = ?`)
|
|
2629
|
-
.run(ts, result, qitemId);
|
|
2630
|
-
}
|
|
2631
|
-
/**
|
|
2632
|
-
* Pod-fallback: redirect qitem to a fallback destination (e.g., when a seat
|
|
2633
|
-
* is unreachable). Emits qitem.fallback_routed; preserves chain_of_record.
|
|
2634
|
-
*/
|
|
2635
|
-
routeToFallback(qitemId, fallbackDestination, reason) {
|
|
2636
|
-
const qitem = this.getById(qitemId);
|
|
2637
|
-
if (!qitem) {
|
|
2638
|
-
throw new QueueRepositoryError("qitem_not_found", `qitem ${qitemId} not found`);
|
|
2639
|
-
}
|
|
2640
|
-
const ts = new Date().toISOString();
|
|
2641
|
-
const originalDestination = qitem.destinationSession;
|
|
2642
|
-
const newChain = JSON.stringify([...(qitem.chainOfRecord ?? []), `fallback-from:${originalDestination}`]);
|
|
2643
|
-
const txn = this.db.transaction(() => {
|
|
2644
|
-
this.db
|
|
2645
|
-
.prepare(`UPDATE queue_items
|
|
2646
|
-
SET destination_session = ?,
|
|
2647
|
-
ts_updated = ?,
|
|
2648
|
-
chain_of_record = ?,
|
|
2649
|
-
resolution = ?
|
|
2650
|
-
WHERE qitem_id = ?`)
|
|
2651
|
-
.run(fallbackDestination, ts, newChain, `fallback: ${reason}`, qitemId);
|
|
2652
|
-
this.transitionLog.append({
|
|
2653
|
-
qitemId,
|
|
2654
|
-
state: qitem.state,
|
|
2655
|
-
actorSession: "system:queue-fallback",
|
|
2656
|
-
transitionNote: `fallback-routed: ${originalDestination} → ${fallbackDestination} (${reason})`,
|
|
2657
|
-
});
|
|
2658
|
-
return this.eventBus.persistWithinTransaction({
|
|
2659
|
-
type: "qitem.fallback_routed",
|
|
2660
|
-
qitemId,
|
|
2661
|
-
originalDestination,
|
|
2662
|
-
rerouteDestination: fallbackDestination,
|
|
2663
|
-
reason,
|
|
2664
|
-
});
|
|
2665
|
-
});
|
|
2666
|
-
const persistedEvent = txn();
|
|
2667
|
-
this.eventBus.notifySubscribers(persistedEvent);
|
|
2668
|
-
return this.getByIdOrThrow(qitemId);
|
|
2669
|
-
}
|
|
2670
|
-
getByIdOrThrow(qitemId) {
|
|
2671
|
-
const item = this.getById(qitemId);
|
|
2672
|
-
if (!item) {
|
|
2673
|
-
throw new QueueRepositoryError("qitem_not_found", `qitem ${qitemId} not found after write`);
|
|
2674
|
-
}
|
|
2675
|
-
return item;
|
|
2676
|
-
}
|
|
2677
|
-
/** OPR.0.4.1.18 — persist the optional human-readable summary additively.
|
|
2678
|
-
* Guarded by detectQueueColumn so fixtures on a pre-044 schema (no summary
|
|
2679
|
-
* column) are unaffected; only writes when a value is present (NULL is the
|
|
2680
|
-
* default and degrades in the Story consumer). Runs inside the caller's
|
|
2681
|
-
* transaction (create / handoff / handoff-and-complete). */
|
|
2682
|
-
persistSummary(qitemId, summary) {
|
|
2683
|
-
if (this.hasSummaryColumn && summary !== null) {
|
|
2684
|
-
this.db.prepare("UPDATE queue_items SET summary = ? WHERE qitem_id = ?").run(summary, qitemId);
|
|
2685
|
-
}
|
|
2686
|
-
}
|
|
2687
|
-
/** OPR.0.4.4.19 FR-5 — persist the optional evidence_ref additively, same
|
|
2688
|
-
* contract as persistSummary (pre-048 fixtures degrade; NULL default). */
|
|
2689
|
-
persistEvidenceRef(qitemId, evidenceRef) {
|
|
2690
|
-
if (this.hasEvidenceRefColumn && evidenceRef !== null) {
|
|
2691
|
-
this.db.prepare("UPDATE queue_items SET evidence_ref = ? WHERE qitem_id = ?").run(evidenceRef, qitemId);
|
|
2692
|
-
}
|
|
2693
|
-
}
|
|
2694
|
-
/** GHOST-STAGE (e/Class-B) — persist the MINTING occupant-generation additively (same degrade
|
|
2695
|
-
* contract as persistSummary; NULL when unresolved/pre-063). Forensic provenance of the creator;
|
|
2696
|
-
* the RELEASE discriminator is claimed_by_generation_uuid (stamped at claim), not this. */
|
|
2697
|
-
persistMintingGeneration(qitemId, sourceSession) {
|
|
2698
|
-
if (!this.hasMintingGenColumn)
|
|
2699
|
-
return;
|
|
2700
|
-
const gen = this.resolveOccupantGeneration?.(sourceSession) ?? null;
|
|
2701
|
-
if (gen === null)
|
|
2702
|
-
return;
|
|
2703
|
-
this.db.prepare("UPDATE queue_items SET minting_generation_uuid = ? WHERE qitem_id = ?").run(gen, qitemId);
|
|
2704
|
-
}
|
|
2705
|
-
/**
|
|
2706
|
-
* GHOST-STAGE (e/Class-B) — at a seat swap, RELEASE (never hard-drop) every in-progress item CLAIMED
|
|
2707
|
-
* by the RETIRING generation back to pending: the role work is durable and the successor re-claims it;
|
|
2708
|
-
* only the retiree's stale claim is the ghost. Gen-scoped via claimed_by_generation_uuid (NOT the seat
|
|
2709
|
-
* name — the successor shares it, so a name-scoped release would steal the successor's own claims). A
|
|
2710
|
-
* NULL/empty generation never matches (UNKNOWN != retired). Clears the claim stamp + claimed_at and
|
|
2711
|
-
* appends an audit transition per item. Returns the count released. Pre-063 dbs no-op.
|
|
2712
|
-
*/
|
|
2713
|
-
releaseClaimsByGeneration(retiringGeneration) {
|
|
2714
|
-
if (!this.hasClaimedGenColumn || !retiringGeneration)
|
|
2715
|
-
return 0;
|
|
2716
|
-
const rows = this.db
|
|
2717
|
-
.prepare(`SELECT qitem_id FROM queue_items WHERE state = 'in-progress' AND claimed_by_generation_uuid = ?`)
|
|
2718
|
-
.all(retiringGeneration);
|
|
2719
|
-
if (rows.length === 0)
|
|
2720
|
-
return 0;
|
|
2721
|
-
const ts = new Date().toISOString();
|
|
2722
|
-
const txn = this.db.transaction(() => {
|
|
2723
|
-
for (const { qitem_id } of rows) {
|
|
2724
|
-
this.db
|
|
2725
|
-
.prepare(`UPDATE queue_items
|
|
2726
|
-
SET state = 'pending', ts_updated = ?, claimed_at = NULL, closure_required_at = NULL,
|
|
2727
|
-
claimed_by_generation_uuid = NULL
|
|
2728
|
-
WHERE qitem_id = ?`)
|
|
2729
|
-
.run(ts, qitem_id);
|
|
2730
|
-
this.transitionLog.append({
|
|
2731
|
-
qitemId: qitem_id,
|
|
2732
|
-
state: "pending",
|
|
2733
|
-
actorSession: "system",
|
|
2734
|
-
transitionNote: "released: claimant generation retired (seat handover)",
|
|
2735
|
-
});
|
|
2736
|
-
}
|
|
2737
|
-
});
|
|
2738
|
-
txn();
|
|
2739
|
-
return rows.length;
|
|
2740
|
-
}
|
|
2741
|
-
activityReader;
|
|
2742
|
-
attachActivityReader(reader) { this.activityReader = reader; }
|
|
2743
|
-
workflowGuidance;
|
|
2744
|
-
attachWorkflowGuidance(reader) { this.workflowGuidance = reader; }
|
|
2745
|
-
evaluateWaitReminder(input) {
|
|
2746
|
-
if (this.wakeRepo.findQitemsByAttachedWatchdog(input.jobId).length > 0
|
|
2747
|
-
&& this.wakeRepo.findQitemsByGeneratedTimer(input.jobId).every(row => row.state !== "blocked"))
|
|
2748
|
-
return null;
|
|
2749
|
-
const binding = this.wakeRepo.findBlockedQitemsByWatchdog(input.jobId).find(row => row.kind === "timer");
|
|
2750
|
-
const result = evaluateQueueWait(this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db), input.jobId, binding ? this.waitingView(binding.qitemId) : null);
|
|
2751
|
-
// Only an already-admitted send reads prose: healthy silence, receipts and
|
|
2752
|
-
// failed-delivery retries remain owned by the existing wait evaluator.
|
|
2753
|
-
if (result?.action === "send" && binding && this.workflowGuidance) {
|
|
2754
|
-
try {
|
|
2755
|
-
result.message += "\n" + this.workflowGuidance(binding.qitemId).join("\n");
|
|
2756
|
-
}
|
|
2757
|
-
catch (error) {
|
|
2758
|
-
result.message += "\nWorkflow method: UNKNOWN: current guidance unavailable: " + String(error);
|
|
2759
|
-
}
|
|
2760
|
-
}
|
|
2761
|
-
return result;
|
|
2762
|
-
}
|
|
2763
|
-
ownerActivity(session) {
|
|
2764
|
-
try {
|
|
2765
|
-
return this.activityReader?.(session) ?? null;
|
|
2766
|
-
}
|
|
2767
|
-
catch {
|
|
2768
|
-
return null;
|
|
2769
|
-
}
|
|
2770
|
-
}
|
|
2771
|
-
waitingView(qitemId) {
|
|
2772
|
-
const view = readWaitingView(this.db, qitemId, this.activityReader);
|
|
2773
|
-
if (view && ["pending", "in-progress"].includes(view.state)) {
|
|
2774
|
-
const recovery = readWakeLadderBackstop(this.db, qitemId);
|
|
2775
|
-
if (recovery) {
|
|
2776
|
-
view.laterBackstop = { ...view.nextBackstop, note: "Conditional safety net; current delivery/recovery ownership is evaluated first." };
|
|
2777
|
-
view.nextBackstop = recovery;
|
|
2778
|
-
}
|
|
2779
|
-
}
|
|
2780
|
-
return view;
|
|
2781
|
-
}
|
|
2782
|
-
rowToItem(row, includeWaiting = true) {
|
|
2783
|
-
// S04 — derive the pickup receipt at the ONE shared projection point (list/show/overdue
|
|
2784
|
-
// all flow through here), so the park-vs-strand question is answered by the row face.
|
|
2785
|
-
const meaningful = lastMeaningfulTransition(this.db, row.qitem_id);
|
|
2786
|
-
const waiting = includeWaiting ? this.waitingView(row.qitem_id) : null;
|
|
2787
|
-
const activity = this.ownerActivity(row.destination_session);
|
|
2788
|
-
const pickup = derivePickup({
|
|
2789
|
-
state: row.state,
|
|
2790
|
-
lastMeaningfulAt: meaningful?.at,
|
|
2791
|
-
activity: activity?.activity,
|
|
2792
|
-
needsInput: activity?.needsInput.count,
|
|
2793
|
-
claimedAt: row.claimed_at,
|
|
2794
|
-
lastHeartbeat: row.last_heartbeat,
|
|
2795
|
-
postClaimMotionCount: 0, // this reader supplies the current meaningful timestamp
|
|
2796
|
-
});
|
|
2797
|
-
return {
|
|
2798
|
-
pickup,
|
|
2799
|
-
...(waiting ? { waiting } : {}),
|
|
2800
|
-
qitemId: row.qitem_id,
|
|
2801
|
-
tsCreated: row.ts_created,
|
|
2802
|
-
tsUpdated: row.ts_updated,
|
|
2803
|
-
sourceSession: row.source_session,
|
|
2804
|
-
destinationSession: row.destination_session,
|
|
2805
|
-
state: row.state,
|
|
2806
|
-
priority: row.priority,
|
|
2807
|
-
tier: row.tier,
|
|
2808
|
-
tags: row.tags ? JSON.parse(row.tags) : null,
|
|
2809
|
-
blockedOn: row.blocked_on,
|
|
2810
|
-
handedOffTo: row.handed_off_to,
|
|
2811
|
-
handedOffFrom: row.handed_off_from,
|
|
2812
|
-
expiresAt: row.expires_at,
|
|
2813
|
-
chainOfRecord: row.chain_of_record ? JSON.parse(row.chain_of_record) : null,
|
|
2814
|
-
body: row.body ?? "",
|
|
2815
|
-
// OPR.0.4.1.18: summary present only when migration 044 has applied;
|
|
2816
|
-
// legacy/minimal fixtures supply rows where summary is undefined → null.
|
|
2817
|
-
summary: row.summary ?? null,
|
|
2818
|
-
// OPR.0.4.4.19 FR-5: evidence_ref present only when migration 048 has
|
|
2819
|
-
// applied; legacy fixtures degrade to null.
|
|
2820
|
-
evidenceRef: row.evidence_ref ?? null,
|
|
2821
|
-
humanIntent: row.human_intent ?? null,
|
|
2822
|
-
humanDetail: row.human_detail ?? null,
|
|
2823
|
-
closureReason: row.closure_reason,
|
|
2824
|
-
closureTarget: row.closure_target,
|
|
2825
|
-
closureRequiredAt: row.closure_required_at,
|
|
2826
|
-
claimedAt: row.claimed_at,
|
|
2827
|
-
lastNudgeAttempt: row.last_nudge_attempt,
|
|
2828
|
-
lastNudgeResult: row.last_nudge_result,
|
|
2829
|
-
lastHeartbeat: row.last_heartbeat,
|
|
2830
|
-
resolution: row.resolution,
|
|
2831
|
-
// PL-007: target_repo present only when migration 038 has applied;
|
|
2832
|
-
// older test fixtures supply legacy rows where target_repo is undefined.
|
|
2833
|
-
targetRepo: row.target_repo ?? null,
|
|
2834
|
-
};
|
|
2835
|
-
}
|
|
2836
|
-
}
|
|
2837
|
-
function isQueueState(value) {
|
|
2838
|
-
return typeof value === "string" && QUEUE_STATES.includes(value);
|
|
2839
|
-
}
|
|
2840
|
-
//# sourceMappingURL=queue-repository.js.map
|