@openrig/cli 0.4.4 → 0.4.7
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/assets/guidance/CULTURE-default.md +19 -0
- package/daemon/assets/guidance/openrig-start.md +20 -5
- package/daemon/assets/plugins/openrig-core/README.md +1 -1
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -6
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +11 -72
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +34 -22
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +108 -0
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +11 -16
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +95 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +819 -101
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +26 -9
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +11 -9
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +162 -0
- package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +165 -0
- package/daemon/dist/adapters/cmux-transport.d.ts.map +1 -1
- package/daemon/dist/adapters/cmux-transport.js +8 -1
- package/daemon/dist/adapters/cmux-transport.js.map +1 -1
- package/daemon/dist/adapters/cmux.d.ts +9 -0
- package/daemon/dist/adapters/cmux.d.ts.map +1 -1
- package/daemon/dist/adapters/cmux.js +21 -0
- package/daemon/dist/adapters/cmux.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +3 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +32 -12
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts +32 -0
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-resume.js +125 -0
- package/daemon/dist/adapters/pi-resume.js.map +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.d.ts +88 -0
- package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.js +153 -0
- package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -0
- package/daemon/dist/adapters/pi-runner.d.ts +99 -0
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runner.js +519 -0
- package/daemon/dist/adapters/pi-runner.js.map +1 -0
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts +61 -0
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runtime-adapter.js +356 -0
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -0
- package/daemon/dist/adapters/tmux.d.ts +22 -1
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +40 -1
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/builtins/workflow-specs/branched-remediation.yaml +31 -0
- package/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +152 -0
- package/daemon/dist/builtins/workflow-specs/gated-release.yaml +26 -0
- package/daemon/dist/builtins/workflow-specs/linear-build.yaml +21 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts +20 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts.map +1 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.js +24 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.js.map +1 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts +22 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts.map +1 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.js +26 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.js.map +1 -0
- package/daemon/dist/db/migrations/051_workflow_resume.d.ts +22 -0
- package/daemon/dist/db/migrations/051_workflow_resume.d.ts.map +1 -0
- package/daemon/dist/db/migrations/051_workflow_resume.js +27 -0
- package/daemon/dist/db/migrations/051_workflow_resume.js.map +1 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts +26 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts.map +1 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js +30 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js.map +1 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts +48 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts.map +1 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.js +53 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.js.map +1 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts +34 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts.map +1 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.js +49 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.js.map +1 -0
- package/daemon/dist/domain/claim-service.d.ts +11 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +3 -1
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +3 -0
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +19 -3
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/cmux-layout-service.d.ts +36 -0
- package/daemon/dist/domain/cmux-layout-service.d.ts.map +1 -1
- package/daemon/dist/domain/cmux-layout-service.js +100 -28
- package/daemon/dist/domain/cmux-layout-service.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts +2 -0
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +14 -0
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/discovery-types.d.ts +1 -1
- package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
- package/daemon/dist/domain/feed/attention-aggregator.js +1 -1
- package/daemon/dist/domain/feed/attention-aggregator.js.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.js +31 -10
- package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts +11 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.js +55 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.js.map +1 -0
- package/daemon/dist/domain/hosts/read-through.d.ts +28 -0
- package/daemon/dist/domain/hosts/read-through.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/read-through.js +139 -0
- package/daemon/dist/domain/hosts/read-through.js.map +1 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +21 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.js +56 -4
- package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +10 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +250 -97
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +11 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +10 -0
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.d.ts +2 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +23 -0
- package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts +7 -0
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.js +93 -13
- package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
- package/daemon/dist/domain/projection-lane.d.ts +7 -0
- package/daemon/dist/domain/projection-lane.d.ts.map +1 -0
- package/daemon/dist/domain/projection-lane.js +28 -0
- package/daemon/dist/domain/projection-lane.js.map +1 -0
- package/daemon/dist/domain/ps-projection.d.ts +19 -0
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +81 -30
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +116 -7
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +226 -16
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-retention.d.ts +130 -0
- package/daemon/dist/domain/queue-retention.d.ts.map +1 -0
- package/daemon/dist/domain/queue-retention.js +224 -0
- package/daemon/dist/domain/queue-retention.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +5 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +29 -2
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/resume-token-capture.d.ts +13 -0
- package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-capture.js +14 -1
- package/daemon/dist/domain/resume-token-capture.js.map +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-validation.js +58 -10
- package/daemon/dist/domain/resume-token-validation.js.map +1 -1
- package/daemon/dist/domain/review/compose.d.ts +127 -5
- package/daemon/dist/domain/review/compose.d.ts.map +1 -1
- package/daemon/dist/domain/review/compose.js +244 -19
- package/daemon/dist/domain/review/compose.js.map +1 -1
- package/daemon/dist/domain/review/fleet-compose.d.ts +52 -0
- package/daemon/dist/domain/review/fleet-compose.d.ts.map +1 -0
- package/daemon/dist/domain/review/fleet-compose.js +294 -0
- package/daemon/dist/domain/review/fleet-compose.js.map +1 -0
- package/daemon/dist/domain/review/gather.d.ts +17 -2
- package/daemon/dist/domain/review/gather.d.ts.map +1 -1
- package/daemon/dist/domain/review/gather.js +269 -108
- package/daemon/dist/domain/review/gather.js.map +1 -1
- package/daemon/dist/domain/review/proof-io.d.ts +2 -0
- package/daemon/dist/domain/review/proof-io.d.ts.map +1 -0
- package/daemon/dist/domain/review/proof-io.js +38 -0
- package/daemon/dist/domain/review/proof-io.js.map +1 -0
- package/daemon/dist/domain/review/types.d.ts +104 -1
- package/daemon/dist/domain/review/types.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.js +3 -0
- package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +7 -6
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +33 -11
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +3 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +4 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +26 -2
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +6 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +26 -1
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +20 -1
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-verifier.d.ts +7 -1
- package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-verifier.js +39 -1
- package/daemon/dist/domain/runtime-verifier.js.map +1 -1
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +8 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.js +57 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +38 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.js +98 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.js +22 -1
- package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js +57 -20
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +9 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +2 -0
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-store.d.ts +7 -0
- package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-store.js +27 -0
- package/daemon/dist/domain/seat-identity-store.js.map +1 -1
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +6 -4
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/session-name.d.ts +22 -0
- package/daemon/dist/domain/session-name.d.ts.map +1 -1
- package/daemon/dist/domain/session-name.js +29 -0
- package/daemon/dist/domain/session-name.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +17 -0
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +44 -0
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/slices/qitem-membership.d.ts +17 -0
- package/daemon/dist/domain/slices/qitem-membership.d.ts.map +1 -0
- package/daemon/dist/domain/slices/qitem-membership.js +60 -0
- package/daemon/dist/domain/slices/qitem-membership.js.map +1 -0
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts +5 -0
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-detail-projector.js +161 -16
- package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
- package/daemon/dist/domain/slices/slice-indexer.d.ts +86 -0
- package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-indexer.js +422 -45
- package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +18 -2
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js +23 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +9 -0
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +71 -3
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/startup-proof.d.ts +10 -6
- package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
- package/daemon/dist/domain/startup-proof.js +35 -7
- package/daemon/dist/domain/startup-proof.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +16 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +13 -0
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +28 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js +100 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -0
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +94 -0
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/herdr-adapter.js +307 -0
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -0
- package/daemon/dist/domain/terminal/herdr-transport.d.ts +50 -0
- package/daemon/dist/domain/terminal/herdr-transport.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/herdr-transport.js +145 -0
- package/daemon/dist/domain/terminal/herdr-transport.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts +88 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-provider.js +17 -0
- package/daemon/dist/domain/terminal/terminal-provider.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts +60 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-service.js +174 -0
- package/daemon/dist/domain/terminal/terminal-service.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-views-store.d.ts +77 -0
- package/daemon/dist/domain/terminal/terminal-views-store.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-views-store.js +146 -0
- package/daemon/dist/domain/terminal/terminal-views-store.js.map +1 -0
- package/daemon/dist/domain/terminal/view-composer.d.ts +42 -0
- package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/view-composer.js +137 -0
- package/daemon/dist/domain/terminal/view-composer.js.map +1 -0
- package/daemon/dist/domain/tmux-option-defaults.d.ts +89 -0
- package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -0
- package/daemon/dist/domain/tmux-option-defaults.js +132 -0
- package/daemon/dist/domain/tmux-option-defaults.js.map +1 -0
- package/daemon/dist/domain/transcript-capture.d.ts +3 -0
- package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-capture.js +28 -0
- package/daemon/dist/domain/transcript-capture.js.map +1 -1
- package/daemon/dist/domain/transcript-store.d.ts +10 -0
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +26 -0
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +38 -1
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +92 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts.map +1 -1
- package/daemon/dist/domain/workflow/slice-workflow-projection.js +6 -2
- package/daemon/dist/domain/workflow/slice-workflow-projection.js.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.d.ts +28 -0
- package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-boot-sweep.js +102 -0
- package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -0
- package/daemon/dist/domain/workflow-deadline.d.ts +74 -0
- package/daemon/dist/domain/workflow-deadline.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-deadline.js +165 -0
- package/daemon/dist/domain/workflow-deadline.js.map +1 -0
- package/daemon/dist/domain/workflow-exception-escalation.d.ts +33 -0
- package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception-escalation.js +104 -0
- package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -0
- package/daemon/dist/domain/workflow-exception-router.d.ts +33 -0
- package/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception-router.js +96 -0
- package/daemon/dist/domain/workflow-exception-router.js.map +1 -0
- package/daemon/dist/domain/workflow-exception.d.ts +90 -0
- package/daemon/dist/domain/workflow-exception.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception.js +122 -0
- package/daemon/dist/domain/workflow-exception.js.map +1 -0
- package/daemon/dist/domain/workflow-frontier-guard.d.ts +24 -0
- package/daemon/dist/domain/workflow-frontier-guard.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-frontier-guard.js +30 -0
- package/daemon/dist/domain/workflow-frontier-guard.js.map +1 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts +28 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-instance-store.js +66 -10
- package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
- package/daemon/dist/domain/workflow-keepalive-arming.d.ts +35 -0
- package/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-keepalive-arming.js +87 -0
- package/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -0
- package/daemon/dist/domain/workflow-projector.d.ts +117 -2
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-projector.js +672 -41
- package/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-role-context.d.ts +57 -0
- package/daemon/dist/domain/workflow-role-context.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-role-context.js +120 -0
- package/daemon/dist/domain/workflow-role-context.js.map +1 -0
- package/daemon/dist/domain/workflow-role-resolver.d.ts +65 -0
- package/daemon/dist/domain/workflow-role-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-role-resolver.js +108 -0
- package/daemon/dist/domain/workflow-role-resolver.js.map +1 -0
- package/daemon/dist/domain/workflow-runtime.d.ts +157 -1
- package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-runtime.js +718 -11
- package/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts +26 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.js +327 -13
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
- package/daemon/dist/domain/workflow-types.d.ts +143 -8
- package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-types.js +14 -1
- package/daemon/dist/domain/workflow-types.js.map +1 -1
- package/daemon/dist/domain/workflow-validator.d.ts +11 -1
- package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-validator.js +246 -1
- package/daemon/dist/domain/workflow-validator.js.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js +9 -4
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/index.d.ts +17 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +44 -0
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/activity.js +22 -0
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/hosts.d.ts +5 -0
- package/daemon/dist/routes/hosts.d.ts.map +1 -0
- package/daemon/dist/routes/hosts.js +346 -0
- package/daemon/dist/routes/hosts.js.map +1 -0
- package/daemon/dist/routes/mission-control.js +1 -1
- package/daemon/dist/routes/mission-control.js.map +1 -1
- package/daemon/dist/routes/missions.d.ts +7 -0
- package/daemon/dist/routes/missions.d.ts.map +1 -1
- package/daemon/dist/routes/missions.js +6 -1
- package/daemon/dist/routes/missions.js.map +1 -1
- package/daemon/dist/routes/ps.d.ts.map +1 -1
- package/daemon/dist/routes/ps.js +5 -1
- package/daemon/dist/routes/ps.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts +2 -7
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +272 -10
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/review.d.ts.map +1 -1
- package/daemon/dist/routes/review.js +26 -0
- package/daemon/dist/routes/review.js.map +1 -1
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +21 -10
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/daemon/dist/routes/scope-audit.js +141 -135
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/seat.js +13 -0
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.js +2 -1
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/slices.d.ts.map +1 -1
- package/daemon/dist/routes/slices.js +48 -38
- package/daemon/dist/routes/slices.js.map +1 -1
- package/daemon/dist/routes/terminal.d.ts +11 -0
- package/daemon/dist/routes/terminal.d.ts.map +1 -0
- package/daemon/dist/routes/terminal.js +104 -0
- package/daemon/dist/routes/terminal.js.map +1 -0
- package/daemon/dist/routes/transcripts.d.ts.map +1 -1
- package/daemon/dist/routes/transcripts.js +62 -33
- package/daemon/dist/routes/transcripts.js.map +1 -1
- package/daemon/dist/routes/workflow.d.ts.map +1 -1
- package/daemon/dist/routes/workflow.js +102 -10
- package/daemon/dist/routes/workflow.js.map +1 -1
- package/daemon/dist/server.d.ts +5 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +22 -0
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +235 -12
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-startup-guide.md +1 -0
- package/daemon/specs/agents/apps/vault-specialist/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/builder/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/lead/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/planner/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/reviewer/agent.yaml +2 -1
- package/daemon/specs/agents/design/product-designer/agent.yaml +12 -2
- package/daemon/specs/agents/development/implementer/agent.yaml +12 -2
- package/daemon/specs/agents/development/qa/agent.yaml +12 -2
- package/daemon/specs/agents/development/qa/guidance/role.md +1 -0
- package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +30 -0
- package/daemon/specs/agents/factory-rsi/dogfood/guidance/role.md +37 -0
- package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +30 -0
- package/daemon/specs/agents/factory-rsi/release-manager/guidance/role.md +40 -0
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +12 -2
- package/daemon/specs/agents/product-management/pm/agent.yaml +1 -2
- package/daemon/specs/agents/research/analyst/agent.yaml +2 -1
- package/daemon/specs/agents/research/synthesizer/agent.yaml +2 -1
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +12 -2
- package/daemon/specs/agents/shared/agent.yaml +5 -8
- package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +13 -1
- package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +132 -0
- package/daemon/{assets/plugins/openrig-core/skills → specs/agents/shared/skills/core}/agent-startup-and-context-ingestion/SKILL.md +27 -19
- package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +264 -0
- package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +190 -0
- package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +104 -0
- package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +25 -8
- package/daemon/specs/agents/shared/skills/core/openrig-cmux/SKILL.md +81 -0
- package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +153 -0
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +460 -0
- package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
- package/daemon/specs/agents/shared/skills/core/rig-lifecycle/SKILL.md +22 -11
- package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +160 -0
- package/daemon/specs/agents/shared/skills/core/specification-system/SKILL.md +103 -0
- package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
- package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +125 -0
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +4 -4
- package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +3 -0
- package/daemon/specs/agents/shared/skills/process/brainstorming/OPENRIG.md +3 -3
- package/daemon/specs/agents/shared/skills/process/executing-plans/OPENRIG.md +1 -1
- package/daemon/specs/agents/shared/skills/process/frontend-design/SKILL.md +6 -3
- package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/process/using-superpowers/OPENRIG.md +1 -1
- package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +12 -2
- package/daemon/specs/agents/shared/skills/process/writing-plans/OPENRIG.md +1 -1
- package/daemon/specs/rigs/focused/pm-team/CULTURE.md +1 -1
- package/daemon/specs/rigs/launch/factory-rsi/CULTURE.md +47 -0
- package/daemon/specs/rigs/launch/factory-rsi/rig.yaml +115 -0
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -2
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +5 -4
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -2
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -5
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -2
- package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +3 -4
- package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
- package/dist/bin-wrapper.d.ts.map +1 -1
- package/dist/bin-wrapper.js +3 -1
- package/dist/bin-wrapper.js.map +1 -1
- package/dist/build-info.js +3 -3
- package/dist/cli-error.d.ts +33 -0
- package/dist/cli-error.d.ts.map +1 -0
- package/dist/cli-error.js +94 -0
- package/dist/cli-error.js.map +1 -0
- package/dist/commands/broadcast.d.ts +6 -1
- package/dist/commands/broadcast.d.ts.map +1 -1
- package/dist/commands/broadcast.js +101 -15
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +99 -8
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/config-init-workspace.js +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +4 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.d.ts +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +17 -11
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +5 -0
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/host.d.ts +14 -0
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +361 -23
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +5 -0
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/proof.js +1 -1
- package/dist/commands/proof.js.map +1 -1
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +26 -6
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +36 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +176 -31
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/restore-packet.d.ts.map +1 -1
- package/dist/commands/restore-packet.js +13 -2
- package/dist/commands/restore-packet.js.map +1 -1
- package/dist/commands/rig.d.ts.map +1 -1
- package/dist/commands/rig.js +122 -0
- package/dist/commands/rig.js.map +1 -1
- package/dist/commands/scope.js +2 -2
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +229 -30
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/slack.d.ts +37 -0
- package/dist/commands/slack.d.ts.map +1 -0
- package/dist/commands/slack.js +274 -0
- package/dist/commands/slack.js.map +1 -0
- package/dist/commands/terminal.d.ts +6 -0
- package/dist/commands/terminal.d.ts.map +1 -0
- package/dist/commands/terminal.js +116 -0
- package/dist/commands/terminal.js.map +1 -0
- package/dist/commands/transcript.d.ts +6 -1
- package/dist/commands/transcript.d.ts.map +1 -1
- package/dist/commands/transcript.js +113 -30
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/ui.d.ts +1 -0
- package/dist/commands/ui.d.ts.map +1 -1
- package/dist/commands/ui.js +2 -0
- package/dist/commands/ui.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +10 -1
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +14 -3
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/workflow-errors.d.ts +23 -0
- package/dist/commands/workflow-errors.d.ts.map +1 -0
- package/dist/commands/workflow-errors.js +100 -0
- package/dist/commands/workflow-errors.js.map +1 -0
- package/dist/commands/workflow-follow.d.ts +71 -0
- package/dist/commands/workflow-follow.d.ts.map +1 -0
- package/dist/commands/workflow-follow.js +259 -0
- package/dist/commands/workflow-follow.js.map +1 -0
- package/dist/commands/workflow-render.d.ts +114 -0
- package/dist/commands/workflow-render.d.ts.map +1 -0
- package/dist/commands/workflow-render.js +223 -0
- package/dist/commands/workflow-render.js.map +1 -0
- package/dist/commands/workflow.d.ts +1 -0
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +278 -14
- package/dist/commands/workflow.js.map +1 -1
- package/dist/config-store.d.ts +15 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +103 -0
- package/dist/config-store.js.map +1 -1
- package/dist/cross-host-cli-helpers.d.ts +13 -0
- package/dist/cross-host-cli-helpers.d.ts.map +1 -1
- package/dist/cross-host-cli-helpers.js +27 -0
- package/dist/cross-host-cli-helpers.js.map +1 -1
- package/dist/cross-host-target.d.ts +49 -0
- package/dist/cross-host-target.d.ts.map +1 -0
- package/dist/cross-host-target.js +35 -0
- package/dist/cross-host-target.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +45 -14
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/host-registry.d.ts +14 -1
- package/dist/host-registry.d.ts.map +1 -1
- package/dist/host-registry.js +47 -6
- package/dist/host-registry.js.map +1 -1
- package/dist/host-selection.d.ts +13 -0
- package/dist/host-selection.d.ts.map +1 -0
- package/dist/host-selection.js +54 -0
- package/dist/host-selection.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.d.ts +38 -0
- package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -0
- package/dist/lib/scope/scaffold-placeholder.js +98 -0
- package/dist/lib/scope/scaffold-placeholder.js.map +1 -0
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js +57 -20
- package/dist/lib/scope/scope-audit.js.map +1 -1
- package/dist/lib/scope-templates/backlog-deprecation.md +1 -1
- package/dist/lib/scope-templates/backlog-tech-debt.md +1 -1
- package/dist/lib/scope-templates/bug-fix.md +1 -1
- package/dist/lib/scope-templates/implementation-prd.md +1 -1
- package/dist/lib/scope-templates/mission-notes.md +7 -2
- package/dist/lib/scope-templates/mission-placeholder.md +1 -1
- package/dist/lib/scope-templates/mission-progress.md +1 -1
- package/dist/lib/scope-templates/mission-release.md +1 -1
- package/dist/lib/scope-templates/placeholder.md +1 -1
- package/dist/lib/scope-templates/proof.md +1 -1
- package/dist/lib/scope-templates/release-feature.md +1 -1
- package/dist/lib/scope-templates/research.md +1 -1
- package/dist/lib/scope-templates/slice-progress.md +1 -1
- package/dist/remote-host-ops.d.ts +1 -0
- package/dist/remote-host-ops.d.ts.map +1 -1
- package/dist/remote-host-ops.js +13 -6
- package/dist/remote-host-ops.js.map +1 -1
- package/dist/session-name.d.ts +23 -0
- package/dist/session-name.d.ts.map +1 -0
- package/dist/session-name.js +61 -0
- package/dist/session-name.js.map +1 -0
- package/dist/slack/config.d.ts +41 -0
- package/dist/slack/config.d.ts.map +1 -0
- package/dist/slack/config.js +60 -0
- package/dist/slack/config.js.map +1 -0
- package/dist/slack/inbound.d.ts +75 -0
- package/dist/slack/inbound.d.ts.map +1 -0
- package/dist/slack/inbound.js +133 -0
- package/dist/slack/inbound.js.map +1 -0
- package/dist/slack/message.d.ts +26 -0
- package/dist/slack/message.d.ts.map +1 -0
- package/dist/slack/message.js +60 -0
- package/dist/slack/message.js.map +1 -0
- package/dist/slack/outbound.d.ts +39 -0
- package/dist/slack/outbound.d.ts.map +1 -0
- package/dist/slack/outbound.js +52 -0
- package/dist/slack/outbound.js.map +1 -0
- package/dist/slack/queue-bridge.d.ts +56 -0
- package/dist/slack/queue-bridge.d.ts.map +1 -0
- package/dist/slack/queue-bridge.js +114 -0
- package/dist/slack/queue-bridge.js.map +1 -0
- package/dist/slack/secrets.d.ts +21 -0
- package/dist/slack/secrets.d.ts.map +1 -0
- package/dist/slack/secrets.js +73 -0
- package/dist/slack/secrets.js.map +1 -0
- package/dist/slack/slack-api.d.ts +49 -0
- package/dist/slack/slack-api.d.ts.map +1 -0
- package/dist/slack/slack-api.js +110 -0
- package/dist/slack/slack-api.js.map +1 -0
- package/dist/slack/state-store.d.ts +62 -0
- package/dist/slack/state-store.d.ts.map +1 -0
- package/dist/slack/state-store.js +132 -0
- package/dist/slack/state-store.js.map +1 -0
- package/package.json +1 -1
- package/ui/dist/assets/index-DkNi0RT8.js +623 -0
- package/ui/dist/assets/index-N-SdPj-I.css +32 -0
- package/ui/dist/index.html +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-architect/SKILL.md +0 -361
- package/daemon/assets/plugins/openrig-core/skills/openrig-operator/SKILL.md +0 -222
- package/daemon/docs/reference/product-factory-vps-runbook.md +0 -132
- package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +0 -115
- package/daemon/specs/agents/shared/skills/core/openrig-installer/SKILL.md +0 -142
- package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +0 -110
- package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +0 -1245
- package/daemon/specs/agents/shared/skills/core/openrig-user-settings/SKILL.md +0 -153
- package/ui/dist/assets/index-D69ZhNIr.js +0 -598
- package/ui/dist/assets/index-DJYun-8d.css +0 -32
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getNodeInventoryForAllRigs, readPendingWorkBySession } from "./node-inventory.js";
|
|
2
2
|
import { archiveWhereClause } from "./rig-repository.js";
|
|
3
3
|
/**
|
|
4
4
|
* OPR.0.4.4.21 — THE rig-rollup attention predicate (one predicate, one
|
|
@@ -51,6 +51,31 @@ export function deriveRigLifecycleState(nodeStates) {
|
|
|
51
51
|
}
|
|
52
52
|
return "degraded";
|
|
53
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Slice-05 item-5 (D5) — the SINGLE effective-running predicate for the ps
|
|
56
|
+
* running rollup. `sessions.status='running'` alone is verdict-blind: a seat
|
|
57
|
+
* whose tmux session was torn down out-of-band keeps `status='running'` in the
|
|
58
|
+
* DB, so the raw SQL count fabricates a dead seat as running. The
|
|
59
|
+
* SeatIdentityReconciler (and, since Slice-05, the live SessionTransport on a
|
|
60
|
+
* `session_missing` send/capture) records an APPLICABLE `session_missing`
|
|
61
|
+
* verdict for exactly that case; node-inventory already surfaces it here,
|
|
62
|
+
* applicability-gated (a stale verdict is null → fail-open).
|
|
63
|
+
*
|
|
64
|
+
* ONLY `reason === "session_missing"` — a genuinely-gone tmux session — is
|
|
65
|
+
* excluded. `pane_pid_gone` / `mismatch` / `tmux_unavailable` and an absent or
|
|
66
|
+
* inapplicable (null) verdict all stay running: an ambiguous or non-fatal
|
|
67
|
+
* identity signal must never fabricate `stopped` (it down-ranks lifecycle to
|
|
68
|
+
* attention, a separate axis). runningCount, status, and activeCount all flow
|
|
69
|
+
* through this one predicate so the three never contradict each other. This
|
|
70
|
+
* reads the verdict; it NEVER mutates `sessions.status`.
|
|
71
|
+
*/
|
|
72
|
+
export function isEffectivelyRunning(node) {
|
|
73
|
+
if (node.sessionStatus !== "running")
|
|
74
|
+
return false;
|
|
75
|
+
if (node.identityVerdict?.reason === "session_missing")
|
|
76
|
+
return false;
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
54
79
|
/**
|
|
55
80
|
* Projects rig/run summary for `rig ps`.
|
|
56
81
|
* Aggregates across all rigs: node counts, running counts, status, uptime, snapshot age.
|
|
@@ -99,14 +124,38 @@ export class PsProjectionService {
|
|
|
99
124
|
ORDER BY r.name
|
|
100
125
|
`).all();
|
|
101
126
|
const now = Date.now();
|
|
127
|
+
// FS-1 W1.2 (rig-level N+1 collapse): the pending-work map is host-global and
|
|
128
|
+
// bounded by distinct destination sessions (seat count), so read it ONCE here
|
|
129
|
+
// instead of one countNodesWithPendingWork query per rig. Per-rig hasWorkCount
|
|
130
|
+
// is then a pure JS derivation over the already-fetched inventory below.
|
|
131
|
+
const pendingByDest = readPendingWorkBySession(this.db);
|
|
132
|
+
// FS-1 W1.2: node inventory for ALL rigs built in ONE batched pass (was one
|
|
133
|
+
// getNodeInventory query-set PER RIG — the rig-level N+1); indexed per rig below.
|
|
134
|
+
const inventoryByRig = getNodeInventoryForAllRigs(this.db);
|
|
102
135
|
return rows.map((r) => {
|
|
136
|
+
// Derive rig-level lifecycleState by folding per-node states. FS-1 W1.2:
|
|
137
|
+
// inventory for ALL rigs was built in ONE batched pass above (previously one
|
|
138
|
+
// getNodeInventory query-set per rig — the rig-level N+1); index it here.
|
|
139
|
+
const inventory = inventoryByRig.get(r.rig_id) ?? [];
|
|
140
|
+
// Slice-05 item-5 (D5) — running honesty. The raw SQL `running_count` is
|
|
141
|
+
// the running BASE: it selects each node's latest session by
|
|
142
|
+
// `created_at DESC, id DESC` (the "newest session counts" contract). We
|
|
143
|
+
// must NOT re-derive that base from `inventory` — node-inventory picks the
|
|
144
|
+
// latest session by `id DESC` alone, a DIFFERENT ordering that diverges
|
|
145
|
+
// whenever session ids are not monotonic with created_at (pre-existing
|
|
146
|
+
// latent inconsistency, orthogonal to D5). Instead, subtract ONLY the
|
|
147
|
+
// status-running seats that are not EFFECTIVELY running — i.e. those
|
|
148
|
+
// carrying an applicable `session_missing` verdict — so a torn-down tmux
|
|
149
|
+
// session is never fabricated as running. The subtraction routes through
|
|
150
|
+
// the SAME isEffectivelyRunning predicate the activeCount gate uses below,
|
|
151
|
+
// so the two counts never disagree on liveness. NEVER mutates
|
|
152
|
+
// `sessions.status`.
|
|
153
|
+
const sessionMissingRunning = inventory.filter((n) => n.sessionStatus === "running" && !isEffectivelyRunning(n)).length;
|
|
154
|
+
const effectiveRunningCount = Math.max(0, r.running_count - sessionMissingRunning);
|
|
103
155
|
const status = r.node_count === 0 ? "stopped"
|
|
104
|
-
:
|
|
105
|
-
:
|
|
156
|
+
: effectiveRunningCount === r.node_count ? "running"
|
|
157
|
+
: effectiveRunningCount > 0 ? "partial"
|
|
106
158
|
: "stopped";
|
|
107
|
-
// Derive rig-level lifecycleState by folding per-node states. The cost is one
|
|
108
|
-
// node-inventory pass per rig; this matches the v0 "derive, no migration" decision.
|
|
109
|
-
const inventory = getNodeInventory(this.db, r.rig_id);
|
|
110
159
|
const lifecycleState = deriveRigLifecycleState(inventory.map((e) => e.lifecycleState));
|
|
111
160
|
// Slice 15 — `terminal-active` count. Subset of running tmux-bound
|
|
112
161
|
// seats whose latest SeatActivity observation says
|
|
@@ -115,7 +164,7 @@ export class PsProjectionService {
|
|
|
115
164
|
let activeCount = 0;
|
|
116
165
|
if (this.seatActivity) {
|
|
117
166
|
for (const node of inventory) {
|
|
118
|
-
if (node
|
|
167
|
+
if (!isEffectivelyRunning(node))
|
|
119
168
|
continue;
|
|
120
169
|
if (!node.canonicalSessionName)
|
|
121
170
|
continue;
|
|
@@ -128,7 +177,30 @@ export class PsProjectionService {
|
|
|
128
177
|
// least one pending qitem whose `destination_session` matches the
|
|
129
178
|
// node's `canonicalSessionName`. Sourced ONLY from the queue
|
|
130
179
|
// projection; never from tmux output.
|
|
131
|
-
|
|
180
|
+
// FS-1 W1.2: derived in JS from the single global `pendingByDest` map,
|
|
181
|
+
// byte-identical to the deleted per-rig `countNodesWithPendingWork` query.
|
|
182
|
+
// That query matched `q.destination_session = s.session_name` (SINGLE-KEY)
|
|
183
|
+
// where `s` is the node's latest session; `canonicalSessionName` IS that
|
|
184
|
+
// latest `session_name` (node-inventory.ts return), and the map is
|
|
185
|
+
// `destination_session -> pending count`, so `> 0` reproduces its `EXISTS`.
|
|
186
|
+
// NAMED DIVERGENCE (arch pin, FS-1): this derivation DELIBERATELY keeps the
|
|
187
|
+
// legacy rollup's SINGLE-KEY match (canonicalSessionName == the latest
|
|
188
|
+
// session_name) and does NOT use the per-node DUAL-KEY sibling
|
|
189
|
+
// `countPendingForEntry` (node-inventory.ts) — the canonical + derived
|
|
190
|
+
// `{pod}-{member}@{rig}` match that is the BLOCKING-A2 adopted-seat fix.
|
|
191
|
+
// The rollup and the per-node enrichment already diverged here BEFORE FS-1;
|
|
192
|
+
// FS-1 is a perf slice whose proof spine is byte-identity, so it preserves
|
|
193
|
+
// the rollup's exact prior semantics on purpose — this is preserved, not a
|
|
194
|
+
// bug. KNOWN CONSEQUENCE: the rollup undercounts pending work for adopted
|
|
195
|
+
// seats. The future correctness fix now sits ONE LINE away — swap this loop
|
|
196
|
+
// for the shared dual-key `countPendingForEntry` derivation + update the
|
|
197
|
+
// byte-identity harness. Arch-routed to pm as a named small correctness
|
|
198
|
+
// candidate (a glance-layer undercount).
|
|
199
|
+
let hasWorkCount = 0;
|
|
200
|
+
for (const node of inventory) {
|
|
201
|
+
if (node.canonicalSessionName && (pendingByDest.get(node.canonicalSessionName) ?? 0) > 0)
|
|
202
|
+
hasWorkCount++;
|
|
203
|
+
}
|
|
132
204
|
// OPR.0.4.4.21 — attention fold, same inventory pass. Hook activity
|
|
133
205
|
// is a synchronous events lookup by session name (NodeInventoryEntry
|
|
134
206
|
// carries canonicalSessionName, not nodeId); `now` makes staleness
|
|
@@ -147,7 +219,7 @@ export class PsProjectionService {
|
|
|
147
219
|
name: r.name,
|
|
148
220
|
rigName: r.name,
|
|
149
221
|
nodeCount: r.node_count,
|
|
150
|
-
runningCount:
|
|
222
|
+
runningCount: effectiveRunningCount,
|
|
151
223
|
activeCount,
|
|
152
224
|
hasWorkCount,
|
|
153
225
|
status,
|
|
@@ -164,27 +236,6 @@ export class PsProjectionService {
|
|
|
164
236
|
});
|
|
165
237
|
}
|
|
166
238
|
}
|
|
167
|
-
/**
|
|
168
|
-
* Slice 15 — count nodes in this rig that have at least one pending
|
|
169
|
-
* qitem assigned to them (queue.destination_session matches a node's
|
|
170
|
-
* latest session_name). Pure SQL query — does NOT consult tmux output
|
|
171
|
-
* or SeatActivity (non-inference contract).
|
|
172
|
-
*/
|
|
173
|
-
function countNodesWithPendingWork(db, rigId) {
|
|
174
|
-
const row = db.prepare(`
|
|
175
|
-
SELECT COUNT(DISTINCT n.id) as c
|
|
176
|
-
FROM nodes n
|
|
177
|
-
JOIN sessions s ON s.node_id = n.id
|
|
178
|
-
AND s.id = (SELECT s2.id FROM sessions s2 WHERE s2.node_id = n.id ORDER BY s2.id DESC LIMIT 1)
|
|
179
|
-
WHERE n.rig_id = ?
|
|
180
|
-
AND EXISTS (
|
|
181
|
-
SELECT 1 FROM queue_items q
|
|
182
|
-
WHERE q.destination_session = s.session_name
|
|
183
|
-
AND q.state = 'pending'
|
|
184
|
-
)
|
|
185
|
-
`).get(rigId);
|
|
186
|
-
return row?.c ?? 0;
|
|
187
|
-
}
|
|
188
239
|
/**
|
|
189
240
|
* Slice 15 — count of pending qitems assigned to a specific canonical
|
|
190
241
|
* session name. Exposed for per-node enrichment in node-inventory.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ps-projection.js","sourceRoot":"","sources":["../../src/domain/ps-projection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ps-projection.js","sourceRoot":"","sources":["../../src/domain/ps-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,15 @@ import { QueueTransitionLog } from "./queue-transition-log.js";
|
|
|
5
5
|
import { type ClosureReason } from "./hot-potato-enforcer.js";
|
|
6
6
|
export declare const QUEUE_STATES: readonly ["pending", "in-progress", "done", "blocked", "failed", "denied", "canceled", "handed-off"];
|
|
7
7
|
export type QueueState = (typeof QUEUE_STATES)[number];
|
|
8
|
+
/** OPR.0.4.6.FS-1 (W2 P1): the queue's terminal state set, named ONCE. The
|
|
9
|
+
* archiver (queue-retention.ts) AND the inline closure guards below all consume
|
|
10
|
+
* THIS predicate, so a future terminal-state addition can never silently
|
|
11
|
+
* diverge the archiver from the queue (arch D3-REFINEMENT P1; widen-never-sibling).
|
|
12
|
+
* `['done','handed-off']` is the full terminal set — workflow step closures exit
|
|
13
|
+
* `handoff -> state=handed-off`, the highest-volume terminal class. The `satisfies`
|
|
14
|
+
* clause is the compile guard: removing a state from QUEUE_STATES fails here. */
|
|
15
|
+
export declare const TERMINAL_QUEUE_STATES: readonly ["done", "handed-off"];
|
|
16
|
+
export declare function isTerminalState(state: string): boolean;
|
|
8
17
|
export declare const QUEUE_PRIORITIES: readonly ["routine", "urgent", "critical"];
|
|
9
18
|
export type QueuePriority = (typeof QUEUE_PRIORITIES)[number];
|
|
10
19
|
export interface QueueItem {
|
|
@@ -31,6 +40,9 @@ export interface QueueItem {
|
|
|
31
40
|
* (convention C3). NULL for all non-human-routed items (BR-1); required
|
|
32
41
|
* at the domain write path only when the §5 predicate is true. */
|
|
33
42
|
evidenceRef: string | null;
|
|
43
|
+
/** Present only on compact list rows so omitted content cannot be mistaken
|
|
44
|
+
* for an author-supplied empty value. Full reads never carry this marker. */
|
|
45
|
+
fieldsElided?: Array<"body" | "summary" | "evidenceRef">;
|
|
34
46
|
closureReason: ClosureReason | null;
|
|
35
47
|
closureTarget: string | null;
|
|
36
48
|
closureRequiredAt: string | null;
|
|
@@ -95,6 +107,13 @@ export interface QueueUpdateInput {
|
|
|
95
107
|
qitemId: string;
|
|
96
108
|
actorSession: string;
|
|
97
109
|
state: QueueState;
|
|
110
|
+
/**
|
|
111
|
+
* OPR.0.4.6.WF3 FR-6 — set ONLY by the workflow domain's own write
|
|
112
|
+
* paths (projector close, route close): they hold the frontier
|
|
113
|
+
* invariant, so the close-path guard exempts them. Not a security
|
|
114
|
+
* boundary — a correctness foot-gun guard (pm ruling: prevention).
|
|
115
|
+
*/
|
|
116
|
+
viaWorkflowVerb?: boolean;
|
|
98
117
|
transitionNote?: string;
|
|
99
118
|
closureReason?: string;
|
|
100
119
|
closureTarget?: string;
|
|
@@ -174,15 +193,42 @@ export declare class QueueRepositoryError extends Error {
|
|
|
174
193
|
readonly meta: Record<string, unknown> | undefined;
|
|
175
194
|
constructor(code: string, message: string, meta?: Record<string, unknown>);
|
|
176
195
|
}
|
|
196
|
+
/** OPR.0.4.6.WF5 (guard-named fix shape): exported so the workflow
|
|
197
|
+
* domain can PREALLOCATE a gate packet's id — the class-(c) exception
|
|
198
|
+
* identity tags need occurrence:<gatePacketId> ON the packet at create
|
|
199
|
+
* (one item, tagged in its own create — never a second item, never a
|
|
200
|
+
* post-create tag rewrite). The queue still mints ids for every caller
|
|
201
|
+
* that does not preallocate. */
|
|
202
|
+
export declare function newQitemId(): string;
|
|
203
|
+
/**
|
|
204
|
+
* OPR.0.4.6.MH3 Q-a: is this the SQLite PRIMARY KEY conflict on
|
|
205
|
+
* queue_items.qitem_id? better-sqlite3 sets `.code` on its SqliteError; the
|
|
206
|
+
* message check is a defensive twin so a driver-name change never silently
|
|
207
|
+
* turns an idempotent absorb into a 500.
|
|
208
|
+
*/
|
|
209
|
+
export declare function isQitemPrimaryKeyConflict(err: unknown): boolean;
|
|
177
210
|
/**
|
|
178
|
-
*
|
|
179
|
-
* append-only transition log and hot-potato strict-rejection contract.
|
|
211
|
+
* OPR.0.4.6.MH3 D-1 (FR-4/FR-5): the deterministic cross-host SUCCESSOR id.
|
|
180
212
|
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
213
|
+
* A cross-host handoff exposes no caller `--id`, so the successor's dedup
|
|
214
|
+
* identity must come from the operation itself: the id is a PURE, STATELESS
|
|
215
|
+
* function of (source qitemId, destination session, destination host). Same
|
|
216
|
+
* arguments → same id on every re-drive, across daemon restarts, with zero
|
|
217
|
+
* local state — so the origin-side PRIMARY KEY absorb (Q-a) converges every
|
|
218
|
+
* interrupted-close re-drive. Source→successor is 1:1 by construction (a
|
|
219
|
+
* closed source is terminal; nothing re-opens it). The `qitem-xh-` namespace
|
|
220
|
+
* makes collision with organic `qitem-<ts>-<hex>` ids structurally impossible
|
|
221
|
+
* (plan R-2). The compound key is JSON-encoded — no hand-rolled separators.
|
|
222
|
+
*
|
|
223
|
+
* n1 residual (arch-named, inherent to the ratified at-least-once/no-2PC
|
|
224
|
+
* fence — NOT a dedup bug): a re-drive naming a DIFFERENT destination before
|
|
225
|
+
* the source close lands is a NEW handoff decision and derives a DIFFERENT
|
|
226
|
+
* id, so it cannot absorb the earlier successor — that earlier successor can
|
|
227
|
+
* remain live on the target host. The chain_of_record + cross-host provenance
|
|
228
|
+
* tags keep such an orphan visible/traceable; the source-close conflict check
|
|
229
|
+
* surfaces the disagreement rather than overwriting it.
|
|
185
230
|
*/
|
|
231
|
+
export declare function deriveCrossHostSuccessorId(sourceQitemId: string, destinationSession: string, hostId: string): string;
|
|
186
232
|
export declare class QueueRepository {
|
|
187
233
|
readonly db: Database.Database;
|
|
188
234
|
readonly transitionLog: QueueTransitionLog;
|
|
@@ -197,6 +243,9 @@ export declare class QueueRepository {
|
|
|
197
243
|
private readonly hasTargetRepoColumn;
|
|
198
244
|
private readonly hasSummaryColumn;
|
|
199
245
|
private readonly hasEvidenceRefColumn;
|
|
246
|
+
/** OPR.0.4.6.WF3 FR-6 — injected by startup (never imported): the
|
|
247
|
+
* workflow domain's is-live-frontier-packet predicate. */
|
|
248
|
+
private readonly workflowFrontierPredicate;
|
|
200
249
|
constructor(db: Database.Database, eventBus: EventBus, opts?: {
|
|
201
250
|
validateRig?: (sessionRef: string) => boolean;
|
|
202
251
|
/**
|
|
@@ -208,6 +257,18 @@ export declare class QueueRepository {
|
|
|
208
257
|
* a test or daemon-bootstrap path where transport is not yet wired).
|
|
209
258
|
*/
|
|
210
259
|
transport?: QueueNudgeTransport;
|
|
260
|
+
/**
|
|
261
|
+
* OPR.0.4.6.WF3 FR-6 — the frontier close-path guard's INJECTED
|
|
262
|
+
* predicate (the validateRig injection precedent: the queue is
|
|
263
|
+
* the lower primitive and NEVER imports the workflow domain;
|
|
264
|
+
* startup wires the workflow domain's exported predicate in).
|
|
265
|
+
* Absent (tests, bootstrap, pre-workflow schemas) = zero new
|
|
266
|
+
* behavior.
|
|
267
|
+
*/
|
|
268
|
+
workflowFrontierPredicate?: (qitemId: string) => {
|
|
269
|
+
instanceId: string;
|
|
270
|
+
workflowName: string;
|
|
271
|
+
} | null;
|
|
211
272
|
});
|
|
212
273
|
/**
|
|
213
274
|
* Attach the wake-path transport AFTER construction. Used by daemon
|
|
@@ -292,6 +353,44 @@ export declare class QueueRepository {
|
|
|
292
353
|
closed: QueueItem;
|
|
293
354
|
created: QueueItem;
|
|
294
355
|
}>;
|
|
356
|
+
/**
|
|
357
|
+
* OPR.0.4.6.MH3 FR-4 (C2, arch Q-c): the LOCAL half of a cross-host
|
|
358
|
+
* handoff — close the source row AFTER the successor-create was forwarded
|
|
359
|
+
* to (and accepted by) the target host. The two sides live in two DBs, so
|
|
360
|
+
* this is deliberately NOT the atomic close+create of {@link handoff}: the
|
|
361
|
+
* boundary is bridged by message-passing (successor-create FIRST on the
|
|
362
|
+
* origin host, this source-close SECOND — never the reverse, so a crash
|
|
363
|
+
* between the two leaves a live duplicate the idempotent re-drive
|
|
364
|
+
* converges, never a dropped potato).
|
|
365
|
+
*
|
|
366
|
+
* Re-drive semantics (FR-4/FR-5, the interrupted-close case):
|
|
367
|
+
* - source already terminal WITH a MATCHING closureTarget → idempotent
|
|
368
|
+
* absorb: return the stored row unchanged (`absorbed: true`) — no
|
|
369
|
+
* second close, no second event.
|
|
370
|
+
* - source already terminal with a MISMATCHED closureTarget → structured
|
|
371
|
+
* `cross_host_close_conflict` (someone else closed it meanwhile —
|
|
372
|
+
* surface, never overwrite).
|
|
373
|
+
* - otherwise → close exactly like the local handoff's close leg:
|
|
374
|
+
* `closure_reason=handed_off_to`; `closure_target` carries the OPAQUE
|
|
375
|
+
* three-part `<member@rig>@<host>` form (arch R1 — presence-checked
|
|
376
|
+
* display/audit metadata, NEVER parsed for routing); `handed_off_to`
|
|
377
|
+
* stays the two-part `member@rig` (BR-1 — session-string carriers
|
|
378
|
+
* never gain `@host`).
|
|
379
|
+
*/
|
|
380
|
+
closeCrossHostHandoffSource(input: {
|
|
381
|
+
qitemId: string;
|
|
382
|
+
fromSession: string;
|
|
383
|
+
/** Two-part `member@rig` destination — the session-string carrier (BR-1). */
|
|
384
|
+
toSession: string;
|
|
385
|
+
/** Opaque three-part `<member@rig>@<host>` closure target (arch R1). */
|
|
386
|
+
closureTarget: string;
|
|
387
|
+
/** `handed-off` for /handoff; `done` for /handoff-and-complete. */
|
|
388
|
+
terminalState: "handed-off" | "done";
|
|
389
|
+
transitionNote?: string;
|
|
390
|
+
}): {
|
|
391
|
+
item: QueueItem;
|
|
392
|
+
absorbed: boolean;
|
|
393
|
+
};
|
|
295
394
|
/**
|
|
296
395
|
* `whoami` — return the seat's queue position from the daemon's perspective.
|
|
297
396
|
* Counts active qitems (pending + in-progress + blocked) destined for the
|
|
@@ -405,8 +504,18 @@ export declare class QueueRepository {
|
|
|
405
504
|
/**
|
|
406
505
|
* Find qitems whose `closure_required_at` is past now. Used by watchdog;
|
|
407
506
|
* does NOT itself emit events — callers decide whether to nudge or escalate.
|
|
507
|
+
*
|
|
508
|
+
* Slice 15 (finding 2): optionally rig-scoped, limited, and compact — mirroring
|
|
509
|
+
* `list` — so `rig queue overdue` is bounded and body-free by default instead of
|
|
510
|
+
* dumping every rig's full qitem bodies to a single caller. No args = the prior
|
|
511
|
+
* behavior (all overdue, full rows) for the watchdog.
|
|
408
512
|
*/
|
|
409
|
-
findOverdue(
|
|
513
|
+
findOverdue(opts?: {
|
|
514
|
+
now?: string;
|
|
515
|
+
rig?: string;
|
|
516
|
+
limit?: number;
|
|
517
|
+
compact?: boolean;
|
|
518
|
+
}): QueueItem[];
|
|
410
519
|
recordNudgeAttempt(qitemId: string, result: string): void;
|
|
411
520
|
recordHeartbeat(qitemId: string): void;
|
|
412
521
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-repository.d.ts","sourceRoot":"","sources":["../../src/domain/queue-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"queue-repository.d.ts","sourceRoot":"","sources":["../../src/domain/queue-repository.ts"],"names":[],"mappings":"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"}
|