@openrig/cli 0.5.8 → 0.5.9
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/claude-statusline-context.cjs +1 -0
- package/daemon/assets/plugins/openrig-core/README.md +1 -1
- package/daemon/assets/plugins/openrig-core/skills/agent-operated-software/SKILL.md +92 -0
- package/daemon/assets/plugins/openrig-core/skills/agent-operated-workflows/SKILL.md +79 -0
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +4 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +12 -16
- package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +11 -179
- package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +63 -19
- package/daemon/context-packs/skills/agent-operated-software/SKILL.md +92 -0
- package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +10 -0
- package/daemon/context-packs/skills/agent-operated-workflows/SKILL.md +79 -0
- package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +10 -0
- 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/SKILL.md +4 -2
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +81 -0
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +3 -1
- package/daemon/context-packs/skills/core/openrig-upgrade/scripts/migrate-telemetry-state-0.5.9.mjs +1419 -0
- 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/SKILL.md +2 -2
- 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/SKILL.md +12 -16
- 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/SKILL.md +11 -179
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +3 -3
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/your-world.md +1 -1
- package/daemon/context-packs/world-public/build-your-world.md +19 -0
- package/daemon/context-packs/world-public/claims.yaml +5 -1
- package/daemon/context-packs/world-public/manifest.yaml +40 -1
- package/daemon/context-packs/world-public/verify-world.sh +25 -9
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +4 -2
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/db/all-migrations.d.ts +1 -1
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +3 -1
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts +8 -5
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts.map +1 -1
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.js +8 -5
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.js.map +1 -1
- package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts +8 -0
- package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts.map +1 -0
- package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js +50 -0
- package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js.map +1 -0
- package/daemon/dist/domain/active-occupant.d.ts +6 -1
- package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
- package/daemon/dist/domain/active-occupant.js +47 -0
- package/daemon/dist/domain/active-occupant.js.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +8 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/daemon/dist/domain/bundle-context-packs-router.d.ts +3 -3
- package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-skills-router.d.ts +3 -0
- package/daemon/dist/domain/bundle-skills-router.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-skills-router.js +5 -1
- package/daemon/dist/domain/bundle-skills-router.js.map +1 -1
- package/daemon/dist/domain/claim-service.d.ts +2 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +33 -12
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.js +9 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts +25 -0
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.js +3 -1
- package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.js +143 -3
- package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.d.ts +22 -1
- package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.js +105 -40
- package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
- package/daemon/dist/domain/context-usage-store.d.ts +4 -0
- package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-usage-store.js +8 -4
- package/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/daemon/dist/domain/crash-cart-conductor.d.ts +13 -0
- package/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -1
- package/daemon/dist/domain/crash-cart-conductor.js +3 -1
- package/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
- package/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/daemon/dist/domain/execution-view.js +145 -16
- package/daemon/dist/domain/execution-view.js.map +1 -1
- package/daemon/dist/domain/instance-initialization.d.ts +25 -0
- package/daemon/dist/domain/instance-initialization.d.ts.map +1 -0
- package/daemon/dist/domain/instance-initialization.js +81 -0
- package/daemon/dist/domain/instance-initialization.js.map +1 -0
- package/daemon/dist/domain/lifecycle-manifest.d.ts +19 -0
- package/daemon/dist/domain/lifecycle-manifest.d.ts.map +1 -0
- package/daemon/dist/domain/lifecycle-manifest.js +73 -0
- package/daemon/dist/domain/lifecycle-manifest.js.map +1 -0
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +36 -36
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.js +104 -135
- package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
- package/daemon/dist/domain/native-process-lineage.d.ts +10 -0
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -0
- package/daemon/dist/domain/native-process-lineage.js +86 -0
- package/daemon/dist/domain/native-process-lineage.js.map +1 -0
- package/daemon/dist/domain/native-resume-probe.js +12 -1
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +2 -0
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +3 -1
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +3 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +21 -8
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/pane-binding-observation.d.ts +22 -0
- package/daemon/dist/domain/pane-binding-observation.d.ts.map +1 -0
- package/daemon/dist/domain/pane-binding-observation.js +54 -0
- package/daemon/dist/domain/pane-binding-observation.js.map +1 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.js +1 -1
- package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.js +16 -2
- package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
- package/daemon/dist/domain/profile-resolver.d.ts +12 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +60 -0
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/project-lifecycle-compiler.d.ts +35 -0
- package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -0
- package/daemon/dist/domain/project-lifecycle-compiler.js +190 -0
- package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -0
- package/daemon/dist/domain/provider/claude-usage-reader.d.ts +1 -1
- package/daemon/dist/domain/provider/claude-usage-reader.d.ts.map +1 -1
- package/daemon/dist/domain/provider/claude-usage-reader.js +28 -18
- package/daemon/dist/domain/provider/claude-usage-reader.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +5 -1
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +6 -0
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-retention.d.ts +3 -4
- package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
- package/daemon/dist/domain/queue-retention.js +5 -8
- package/daemon/dist/domain/queue-retention.js.map +1 -1
- package/daemon/dist/domain/queue-transition-log.d.ts +28 -0
- package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
- package/daemon/dist/domain/queue-transition-log.js +124 -0
- package/daemon/dist/domain/queue-transition-log.js.map +1 -1
- package/daemon/dist/domain/restore-attempt-receipt.d.ts +34 -0
- package/daemon/dist/domain/restore-attempt-receipt.d.ts.map +1 -0
- package/daemon/dist/domain/restore-attempt-receipt.js +59 -0
- package/daemon/dist/domain/restore-attempt-receipt.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +57 -24
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +152 -26
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-topology.d.ts +14 -0
- package/daemon/dist/domain/restore-topology.d.ts.map +1 -0
- package/daemon/dist/domain/restore-topology.js +27 -0
- package/daemon/dist/domain/restore-topology.js.map +1 -0
- package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-lifecycle-service.js +9 -0
- package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +19 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +65 -1
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +8 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +4 -0
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts +23 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.js +97 -46
- package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.js +15 -6
- package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +47 -1
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.js +525 -29
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/session-registry.d.ts +8 -1
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js +19 -0
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/skill-catalog.d.ts +81 -0
- package/daemon/dist/domain/skill-catalog.d.ts.map +1 -0
- package/daemon/dist/domain/skill-catalog.js +827 -0
- package/daemon/dist/domain/skill-catalog.js.map +1 -0
- package/daemon/dist/domain/skill-discovery.d.ts +3 -0
- package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/skill-discovery.js +1 -1
- package/daemon/dist/domain/skill-discovery.js.map +1 -1
- package/daemon/dist/domain/snapshot-capture.d.ts +4 -1
- package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-capture.js +38 -2
- package/daemon/dist/domain/snapshot-capture.js.map +1 -1
- package/daemon/dist/domain/snapshot-repository.d.ts +15 -1
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-repository.js +103 -1
- package/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +2 -0
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +12 -0
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/system-world.d.ts +45 -0
- package/daemon/dist/domain/system-world.d.ts.map +1 -0
- package/daemon/dist/domain/system-world.js +123 -0
- package/daemon/dist/domain/system-world.js.map +1 -0
- package/daemon/dist/domain/telemetry-state-paths.d.ts +7 -0
- package/daemon/dist/domain/telemetry-state-paths.d.ts.map +1 -0
- package/daemon/dist/domain/telemetry-state-paths.js +20 -0
- package/daemon/dist/domain/telemetry-state-paths.js.map +1 -0
- package/daemon/dist/domain/types.d.ts +103 -4
- 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 +8 -3
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +65 -29
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -23
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +44 -226
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.js +20 -6
- package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
- package/daemon/dist/domain/workflow-instance-store.d.ts +33 -1
- package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-instance-store.js +127 -2
- package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
- package/daemon/dist/domain/workflow-keepalive-arming.d.ts +7 -5
- package/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-keepalive-arming.js +27 -16
- package/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -1
- package/daemon/dist/domain/workflow-projector.d.ts +6 -2
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-projector.js +271 -2
- package/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-runtime.d.ts +62 -2
- package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-runtime.js +334 -18
- package/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts +9 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.js +85 -0
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
- package/daemon/dist/domain/workflow-types.d.ts +38 -1
- package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-types.js.map +1 -1
- package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-validator.js +20 -3
- package/daemon/dist/domain/workflow-validator.js.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +38 -9
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js +93 -347
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +13 -0
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/instance-initialization-surface.d.ts +3 -0
- package/daemon/dist/instance-initialization-surface.d.ts.map +1 -0
- package/daemon/dist/instance-initialization-surface.js +3 -0
- package/daemon/dist/instance-initialization-surface.js.map +1 -0
- package/daemon/dist/project-lifecycle-surface.d.ts +3 -0
- package/daemon/dist/project-lifecycle-surface.d.ts.map +1 -0
- package/daemon/dist/project-lifecycle-surface.js +3 -0
- package/daemon/dist/project-lifecycle-surface.js.map +1 -0
- package/daemon/dist/routes/bundles.js +10 -9
- package/daemon/dist/routes/bundles.js.map +1 -1
- package/daemon/dist/routes/config.d.ts.map +1 -1
- package/daemon/dist/routes/config.js +27 -49
- package/daemon/dist/routes/config.js.map +1 -1
- package/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/daemon/dist/routes/context-packs.js +114 -16
- package/daemon/dist/routes/context-packs.js.map +1 -1
- package/daemon/dist/routes/crash-cart.js +3 -0
- package/daemon/dist/routes/crash-cart.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +20 -0
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rigs.js +12 -1
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/rigspec.js +9 -2
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/seat.js +21 -1
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.js +16 -6
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/snapshots.d.ts.map +1 -1
- package/daemon/dist/routes/snapshots.js +41 -3
- package/daemon/dist/routes/snapshots.js.map +1 -1
- package/daemon/dist/routes/up.js +12 -1
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/watchdog.d.ts.map +1 -1
- package/daemon/dist/routes/watchdog.js +7 -6
- package/daemon/dist/routes/watchdog.js.map +1 -1
- package/daemon/dist/routes/workflow.d.ts.map +1 -1
- package/daemon/dist/routes/workflow.js +104 -39
- package/daemon/dist/routes/workflow.js.map +1 -1
- package/daemon/dist/server.d.ts +2 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +1 -0
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/skill-loadout-surface.d.ts +3 -0
- package/daemon/dist/skill-loadout-surface.d.ts.map +1 -0
- package/daemon/dist/skill-loadout-surface.js +2 -0
- package/daemon/dist/skill-loadout-surface.js.map +1 -0
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +72 -65
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/dist/system-world-surface.d.ts +2 -0
- package/daemon/dist/system-world-surface.d.ts.map +1 -0
- package/daemon/dist/system-world-surface.js +2 -0
- package/daemon/dist/system-world-surface.js.map +1 -0
- package/daemon/docs/reference/getting-started.md +2 -1
- package/daemon/docs/reference/instance-layout.md +106 -0
- package/daemon/docs/reference/mission-install.md +12 -2
- package/daemon/docs/reference/project-workspace.md +66 -40
- package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +4 -2
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +81 -0
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/scripts/migrate-telemetry-state-0.5.9.mjs +1419 -0
- package/dist/build-info.js +3 -3
- package/dist/commands/config-init-workspace.d.ts +4 -23
- package/dist/commands/config-init-workspace.d.ts.map +1 -1
- package/dist/commands/config-init-workspace.js +14 -576
- package/dist/commands/config-init-workspace.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +6 -4
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +114 -8
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +16 -0
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +51 -4
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +43 -3
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +169 -79
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +30 -0
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +61 -0
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/snapshot.d.ts.map +1 -1
- package/dist/commands/snapshot.js +4 -2
- package/dist/commands/snapshot.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +3 -0
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +3 -0
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +3 -0
- package/dist/commands/walk.js.map +1 -1
- package/dist/commands/workflow-render.d.ts +31 -0
- package/dist/commands/workflow-render.d.ts.map +1 -1
- package/dist/commands/workflow-render.js +84 -6
- package/dist/commands/workflow-render.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +96 -8
- package/dist/commands/workflow.js.map +1 -1
- package/dist/config-store.d.ts +9 -4
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +67 -30
- package/dist/config-store.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +8 -15
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +24 -31
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/lib/scope/mission-composition.d.ts +16 -0
- package/dist/lib/scope/mission-composition.d.ts.map +1 -0
- package/dist/lib/scope/mission-composition.js +110 -0
- package/dist/lib/scope/mission-composition.js.map +1 -0
- package/dist/lib/scope/scope-fs.d.ts +5 -0
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +34 -4
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/lib/work-install.d.ts +17 -0
- package/dist/lib/work-install.d.ts.map +1 -1
- package/dist/lib/work-install.js +49 -6
- package/dist/lib/work-install.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +4 -2
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
- package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/db/all-migrations.js +3 -1
- package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts +8 -5
- package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.js +8 -5
- package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts +8 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js +50 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +6 -1
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +47 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.js +8 -1
- package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts +3 -3
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.js +5 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/claim-service.d.ts +2 -0
- package/node_modules/@openrig/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/claim-service.js +33 -12
- package/node_modules/@openrig/daemon/dist/domain/claim-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js +9 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +25 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +3 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +143 -3
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +22 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +105 -40
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js +8 -4
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts +13 -0
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js +3 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js +145 -16
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/instance-initialization.d.ts +25 -0
- package/node_modules/@openrig/daemon/dist/domain/instance-initialization.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/instance-initialization.js +81 -0
- package/node_modules/@openrig/daemon/dist/domain/instance-initialization.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.d.ts +19 -0
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.js +73 -0
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +36 -36
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +104 -135
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.d.ts +10 -0
- package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.js +86 -0
- package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.js +12 -1
- package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts +2 -0
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +3 -1
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/node-launcher.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/node-launcher.js +21 -8
- package/node_modules/@openrig/daemon/dist/domain/node-launcher.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.d.ts +22 -0
- package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.js +54 -0
- package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js +1 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js +16 -2
- package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts +12 -0
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js +60 -0
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts +35 -0
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js +190 -0
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.js +28 -18
- package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +5 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +6 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts +3 -4
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.js +5 -8
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts +28 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js +124 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.d.ts +34 -0
- package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.js +59 -0
- package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts +57 -24
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +152 -26
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-topology.d.ts +14 -0
- package/node_modules/@openrig/daemon/dist/domain/restore-topology.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/restore-topology.js +27 -0
- package/node_modules/@openrig/daemon/dist/domain/restore-topology.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js +9 -0
- package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +19 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +65 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.d.ts +8 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.js +4 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts +23 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js +97 -46
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js +15 -6
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts +47 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +525 -29
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-registry.d.ts +8 -1
- package/node_modules/@openrig/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-registry.js +19 -0
- package/node_modules/@openrig/daemon/dist/domain/session-registry.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-catalog.d.ts +81 -0
- package/node_modules/@openrig/daemon/dist/domain/skill-catalog.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/skill-catalog.js +827 -0
- package/node_modules/@openrig/daemon/dist/domain/skill-catalog.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/skill-discovery.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-discovery.js +1 -1
- package/node_modules/@openrig/daemon/dist/domain/skill-discovery.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts +4 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js +38 -2
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.d.ts +15 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.js +103 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts +2 -0
- package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js +12 -0
- package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/system-world.d.ts +45 -0
- package/node_modules/@openrig/daemon/dist/domain/system-world.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/system-world.js +123 -0
- package/node_modules/@openrig/daemon/dist/domain/system-world.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.d.ts +7 -0
- package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.js +20 -0
- package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts +103 -4
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +8 -3
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +65 -29
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -23
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +44 -226
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js +20 -6
- package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.d.ts +33 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.js +127 -2
- package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.d.ts +7 -5
- package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.js +27 -16
- package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts +6 -2
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js +271 -2
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts +62 -2
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js +334 -18
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts +9 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js +85 -0
- package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts +38 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-types.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js +20 -3
- package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +38 -9
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js +93 -347
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/index.js +13 -0
- package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/instance-initialization-surface.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/instance-initialization-surface.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/instance-initialization-surface.js +3 -0
- package/node_modules/@openrig/daemon/dist/instance-initialization-surface.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.js +3 -0
- package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/routes/bundles.js +10 -9
- package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/config.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/config.js +27 -49
- package/node_modules/@openrig/daemon/dist/routes/config.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/context-packs.js +114 -16
- package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/crash-cart.js +3 -0
- package/node_modules/@openrig/daemon/dist/routes/crash-cart.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/queue.js +20 -0
- package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/rigs.js +12 -1
- package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/rigspec.js +9 -2
- package/node_modules/@openrig/daemon/dist/routes/rigspec.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/seat.js +21 -1
- package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/sessions.js +16 -6
- package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/snapshots.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/snapshots.js +41 -3
- package/node_modules/@openrig/daemon/dist/routes/snapshots.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/up.js +12 -1
- package/node_modules/@openrig/daemon/dist/routes/up.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/watchdog.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/watchdog.js +7 -6
- package/node_modules/@openrig/daemon/dist/routes/watchdog.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/workflow.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/workflow.js +104 -39
- package/node_modules/@openrig/daemon/dist/routes/workflow.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/server.d.ts +2 -0
- package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/server.js +1 -0
- package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/skill-loadout-surface.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/skill-loadout-surface.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/skill-loadout-surface.js +2 -0
- package/node_modules/@openrig/daemon/dist/skill-loadout-surface.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.js +72 -65
- package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/system-world-surface.d.ts +2 -0
- package/node_modules/@openrig/daemon/dist/system-world-surface.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/system-world-surface.js +2 -0
- package/node_modules/@openrig/daemon/dist/system-world-surface.js.map +1 -0
- package/node_modules/@openrig/daemon/package.json +17 -1
- package/package.json +1 -1
- package/tui/dist/commands/registry.d.ts.map +1 -1
- package/tui/dist/commands/registry.js +10 -1
- package/tui/dist/commands/registry.js.map +1 -1
- package/tui/dist/daemon-client.d.ts +11 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +15 -0
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/demo-data.d.ts.map +1 -1
- package/tui/dist/demo-data.js +65 -9
- package/tui/dist/demo-data.js.map +1 -1
- package/tui/dist/detail.d.ts +9 -0
- package/tui/dist/detail.d.ts.map +1 -1
- package/tui/dist/detail.js.map +1 -1
- package/tui/dist/execution/execution-model.d.ts +8 -2
- package/tui/dist/execution/execution-model.d.ts.map +1 -1
- package/tui/dist/execution/execution-model.js +482 -119
- package/tui/dist/execution/execution-model.js.map +1 -1
- package/tui/dist/hydrate.d.ts +3 -2
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +66 -8
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/input.d.ts +6 -1
- package/tui/dist/input.d.ts.map +1 -1
- package/tui/dist/input.js +20 -10
- package/tui/dist/input.js.map +1 -1
- package/tui/dist/main.js +39 -8
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/navigator.d.ts.map +1 -1
- package/tui/dist/navigator.js +10 -6
- package/tui/dist/navigator.js.map +1 -1
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +596 -155
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/scopes/scopes-model.d.ts +14 -8
- package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
- package/tui/dist/scopes/scopes-model.js +218 -46
- package/tui/dist/scopes/scopes-model.js.map +1 -1
- package/tui/dist/socket-server.d.ts +13 -0
- package/tui/dist/socket-server.d.ts.map +1 -1
- package/tui/dist/socket-server.js +24 -0
- package/tui/dist/socket-server.js.map +1 -1
- package/tui/dist/state.d.ts.map +1 -1
- package/tui/dist/state.js +20 -6
- package/tui/dist/state.js.map +1 -1
- package/tui/dist/stylize.d.ts.map +1 -1
- package/tui/dist/stylize.js +22 -28
- package/tui/dist/stylize.js.map +1 -1
- package/tui/dist/theme.d.ts +1 -1
- package/tui/dist/theme.d.ts.map +1 -1
- package/tui/dist/theme.js +5 -4
- package/tui/dist/theme.js.map +1 -1
- package/tui/dist/types.d.ts +97 -1
- package/tui/dist/types.d.ts.map +1 -1
- package/tui/dist/visual-layout.d.ts +6 -0
- package/tui/dist/visual-layout.d.ts.map +1 -0
- package/tui/dist/visual-layout.js +8 -0
- package/tui/dist/visual-layout.js.map +1 -0
- package/ui/dist/assets/{index-B_wqzP0D.js → index-wyX378xb.js} +15 -15
- package/ui/dist/index.html +1 -1
package/dist/commands/launch.js
CHANGED
|
@@ -10,6 +10,15 @@ const NON_RUNNING_LAUNCH_STATUSES = new Set(["awaiting-decision", "attention_req
|
|
|
10
10
|
function launchStatusRunning(status) {
|
|
11
11
|
return !NON_RUNNING_LAUNCH_STATUSES.has(status);
|
|
12
12
|
}
|
|
13
|
+
function printSnapshotSelection(selection) {
|
|
14
|
+
if (!selection)
|
|
15
|
+
return;
|
|
16
|
+
console.log(`Snapshot: ${selection.snapshotId} (${selection.kind}, ${selection.mode}, age ${Math.round(selection.ageMs / 1000)}s)`);
|
|
17
|
+
console.log(`Selection: ${selection.rationale}`);
|
|
18
|
+
const newer = selection.newerUsableAlternative;
|
|
19
|
+
if (newer?.snapshotId)
|
|
20
|
+
console.log(`Newer usable alternative: ${newer.snapshotId}${newer.kind ? ` (${newer.kind})` : ""}`);
|
|
21
|
+
}
|
|
13
22
|
export function launchCommand(depsOverride) {
|
|
14
23
|
const cmd = new Command("launch").description("Launch or relaunch a node in a running rig");
|
|
15
24
|
const getDeps = () => depsOverride ?? { lifecycleDeps: realDeps(), clientFactory: (url) => new DaemonClient(url) };
|
|
@@ -24,6 +33,8 @@ export function launchCommand(depsOverride) {
|
|
|
24
33
|
.argument("[nodeRef]", "Node logical ID or node ID (single target)")
|
|
25
34
|
.option("--seats <ids>", "Comma-separated logical IDs for subset launch")
|
|
26
35
|
.option("--hold-reason <reason>", "Reason for holding non-target seats")
|
|
36
|
+
.option("--snapshot-id <id>", "Use this exact restore-usable snapshot")
|
|
37
|
+
.option("--plan", "Show subset selection and non-target effects without mutation")
|
|
27
38
|
.option("--json", "JSON output")
|
|
28
39
|
.option("--host <id>", "Run on a remote host declared in ~/.openrig/hosts.yaml")
|
|
29
40
|
.action(async (rigId, nodeRef, opts) => {
|
|
@@ -39,11 +50,21 @@ export function launchCommand(depsOverride) {
|
|
|
39
50
|
let body;
|
|
40
51
|
if (seatList.length > 0) {
|
|
41
52
|
apiPath = `/api/rigs/${encodeURIComponent(rigId)}/nodes/launch-subset`;
|
|
42
|
-
body = { seats: seatList, ...(opts.holdReason ? { holdReason: opts.holdReason } : {}) };
|
|
53
|
+
body = { seats: seatList, ...(opts.holdReason ? { holdReason: opts.holdReason } : {}), ...(opts.snapshotId ? { snapshotId: opts.snapshotId } : {}), ...(opts.plan ? { plan: true } : {}) };
|
|
43
54
|
}
|
|
44
55
|
else if (nodeRef) {
|
|
56
|
+
if (opts.holdReason) {
|
|
57
|
+
console.error("--hold-reason applies only to multi-seat --seats launch; single-seat launch never changes non-targets");
|
|
58
|
+
process.exitCode = 1;
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (opts.plan) {
|
|
62
|
+
console.error("--plan currently applies only to multi-seat --seats launch");
|
|
63
|
+
process.exitCode = 1;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
45
66
|
apiPath = `/api/rigs/${encodeURIComponent(rigId)}/nodes/${encodeURIComponent(nodeRef)}/launch`;
|
|
46
|
-
body = opts.
|
|
67
|
+
body = opts.snapshotId ? { snapshotId: opts.snapshotId } : {};
|
|
47
68
|
}
|
|
48
69
|
else {
|
|
49
70
|
console.error("Either a node reference or --seats is required for launch --host");
|
|
@@ -75,6 +96,10 @@ export function launchCommand(depsOverride) {
|
|
|
75
96
|
const body = { seats: seatList };
|
|
76
97
|
if (opts.holdReason)
|
|
77
98
|
body.holdReason = opts.holdReason;
|
|
99
|
+
if (opts.snapshotId)
|
|
100
|
+
body.snapshotId = opts.snapshotId;
|
|
101
|
+
if (opts.plan)
|
|
102
|
+
body.plan = true;
|
|
78
103
|
const res = await client.post(`/api/rigs/${encodeURIComponent(rigId)}/nodes/launch-subset`, body);
|
|
79
104
|
if (opts.json) {
|
|
80
105
|
console.log(JSON.stringify(res.data, null, 2));
|
|
@@ -82,6 +107,16 @@ export function launchCommand(depsOverride) {
|
|
|
82
107
|
process.exitCode = 1;
|
|
83
108
|
return;
|
|
84
109
|
}
|
|
110
|
+
if (opts.plan && res.data.planOnly) {
|
|
111
|
+
console.log("Plan only; no changes made.");
|
|
112
|
+
printSnapshotSelection(res.data.snapshotSelection);
|
|
113
|
+
console.log(`Non-target effect: ${res.data.nonTargetEffects?.mode ?? "unavailable"}`);
|
|
114
|
+
for (const node of res.data.nonTargetEffects?.affected ?? []) {
|
|
115
|
+
const affected = node;
|
|
116
|
+
console.log(` ${affected.logicalId ?? "unknown"}: ${affected.reason ?? "unspecified"}`);
|
|
117
|
+
}
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
85
120
|
// Hard failure (no per-seat result to render — e.g. rig_not_found): error + exit.
|
|
86
121
|
if (!res.data.launched && !res.data.held && !res.data.alreadyRunning) {
|
|
87
122
|
console.error(res.data.error ?? `Launch failed (HTTP ${res.status})`);
|
|
@@ -92,6 +127,7 @@ export function launchCommand(depsOverride) {
|
|
|
92
127
|
// A seat that landed awaiting-decision / attention_required / failed is NOT
|
|
93
128
|
// launched (no session running) — print it honestly + exit non-zero.
|
|
94
129
|
const launchedAll = res.data.launched ?? [];
|
|
130
|
+
printSnapshotSelection(res.data.snapshotSelection);
|
|
95
131
|
const running = launchedAll.filter((n) => launchStatusRunning(n.status));
|
|
96
132
|
const needsDecision = launchedAll.filter((n) => !launchStatusRunning(n.status));
|
|
97
133
|
const heldIds = (res.data.held ?? []).map((n) => `${n.logicalId} (${n.reason})`).join(", ");
|
|
@@ -125,9 +161,19 @@ export function launchCommand(depsOverride) {
|
|
|
125
161
|
process.exitCode = 1;
|
|
126
162
|
return;
|
|
127
163
|
}
|
|
164
|
+
if (opts.plan) {
|
|
165
|
+
console.error("--plan currently applies only to multi-seat --seats launch");
|
|
166
|
+
process.exitCode = 1;
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
if (opts.holdReason) {
|
|
170
|
+
console.error("--hold-reason applies only to multi-seat --seats launch; single-seat launch never changes non-targets");
|
|
171
|
+
process.exitCode = 1;
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
128
174
|
const body = {};
|
|
129
|
-
if (opts.
|
|
130
|
-
body.
|
|
175
|
+
if (opts.snapshotId)
|
|
176
|
+
body.snapshotId = opts.snapshotId;
|
|
131
177
|
const res = await client.post(`/api/rigs/${encodeURIComponent(rigId)}/nodes/${encodeURIComponent(nodeRef)}/launch`, body);
|
|
132
178
|
if (opts.json) {
|
|
133
179
|
console.log(JSON.stringify(res.data, null, 2));
|
|
@@ -141,6 +187,7 @@ export function launchCommand(depsOverride) {
|
|
|
141
187
|
return;
|
|
142
188
|
}
|
|
143
189
|
const logicalId = res.data.logicalId ?? nodeRef;
|
|
190
|
+
printSnapshotSelection(res.data.snapshotSelection);
|
|
144
191
|
// OPR.0.4.3.28 correction — proceed-with-warning: print non-blocking launch warnings (e.g.
|
|
145
192
|
// liveness_probe_unknown) WITHOUT setting a non-zero exit.
|
|
146
193
|
const printLaunchWarnings = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAG,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,UAAU,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,UAAU,GAAG,OAAO,CAqJjE"}
|
package/dist/commands/restore.js
CHANGED
|
@@ -4,10 +4,13 @@ import { getDaemonStatus, getDaemonUrl, daemonStatusGuard } from "../daemon-life
|
|
|
4
4
|
import { realDeps } from "./daemon.js";
|
|
5
5
|
const LONG_RUNNING_TIMEOUT_MS = 45_000;
|
|
6
6
|
export function restoreCommand(depsOverride) {
|
|
7
|
-
const cmd = new Command("restore")
|
|
7
|
+
const cmd = new Command("restore")
|
|
8
|
+
.description("Restore a rig from a snapshot")
|
|
9
|
+
.addHelpText("after", "\nDirect restore: rig restore <snapshotId> --rig <rigId>");
|
|
8
10
|
const getDeps = () => depsOverride ?? { lifecycleDeps: realDeps(), clientFactory: (url) => new DaemonClient(url) };
|
|
9
11
|
cmd
|
|
10
|
-
.
|
|
12
|
+
.command("apply <snapshotId>", { isDefault: true, hidden: true })
|
|
13
|
+
.description("Restore a rig from a snapshot")
|
|
11
14
|
.requiredOption("--rig <rigId>", "Rig ID to restore into")
|
|
12
15
|
.action(async (snapshotId, opts) => {
|
|
13
16
|
const deps = getDeps();
|
|
@@ -37,7 +40,12 @@ export function restoreCommand(depsOverride) {
|
|
|
37
40
|
process.exitCode = 1;
|
|
38
41
|
return;
|
|
39
42
|
}
|
|
40
|
-
|
|
43
|
+
if (res.data.code === "snapshot_unusable") {
|
|
44
|
+
console.error(`Restore refused: ${res.data.error ?? "the selected snapshot is not restore-usable"}. Choose a different snapshot.`);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.error(`Restore conflict: ${res.data.error ?? "rig may still be running"}. Stop the rig first with: rig down ${rigId}`);
|
|
48
|
+
}
|
|
41
49
|
process.exitCode = 1;
|
|
42
50
|
}
|
|
43
51
|
else if (res.status >= 400) {
|
|
@@ -73,6 +81,38 @@ export function restoreCommand(depsOverride) {
|
|
|
73
81
|
}
|
|
74
82
|
}
|
|
75
83
|
});
|
|
84
|
+
cmd
|
|
85
|
+
.command("status <attemptId>")
|
|
86
|
+
.description("Show the derived current receipt for one restore attempt")
|
|
87
|
+
.requiredOption("--rig <rigId>", "Rig ID containing the restore attempt")
|
|
88
|
+
.option("--json", "JSON output")
|
|
89
|
+
.action(async (attemptId, opts) => {
|
|
90
|
+
const deps = getDeps();
|
|
91
|
+
const status = await getDaemonStatus(deps.lifecycleDeps);
|
|
92
|
+
if (!daemonStatusGuard(status))
|
|
93
|
+
return;
|
|
94
|
+
const client = deps.clientFactory(getDaemonUrl(status));
|
|
95
|
+
const res = await client.get(`/api/rigs/${encodeURIComponent(opts.rig)}/restore/status/${encodeURIComponent(attemptId)}`);
|
|
96
|
+
if (res.status >= 400 || !res.data.ok) {
|
|
97
|
+
console.error(res.data.error ?? `Restore attempt status failed (HTTP ${res.status})`);
|
|
98
|
+
process.exitCode = 1;
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (opts.json) {
|
|
102
|
+
console.log(JSON.stringify(res.data, null, 2));
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
console.log(`Restore attempt ${res.data.attemptId ?? attemptId}`);
|
|
106
|
+
if (res.data.snapshotSelection) {
|
|
107
|
+
console.log(`Snapshot: ${res.data.snapshotSelection.snapshotId} (${res.data.snapshotSelection.kind}, ${res.data.snapshotSelection.mode})`);
|
|
108
|
+
console.log(`Selection: ${res.data.snapshotSelection.rationale}`);
|
|
109
|
+
}
|
|
110
|
+
console.log(`Original verdict: ${res.data.originalResult?.rigResult ?? "unknown"}`);
|
|
111
|
+
console.log(`Current intended-set verdict: ${res.data.currentIntendedSetVerdict ?? "unknown"}`);
|
|
112
|
+
console.log(`Intended: ${res.data.intendedRoster?.length ?? 0}; excluded historical: ${res.data.excludedNodes?.length ?? 0}; unresolved: ${res.data.unresolvedIntendedSeats?.length ?? 0}`);
|
|
113
|
+
for (const node of res.data.unresolvedIntendedSeats ?? [])
|
|
114
|
+
console.log(` ${node.logicalId}: ${node.status}`);
|
|
115
|
+
});
|
|
76
116
|
return cmd;
|
|
77
117
|
}
|
|
78
118
|
function printRestoreNotAttempted(data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAuB,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAC9G,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,MAAM,UAAU,cAAc,CAAC,YAAyB;IACtD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/commands/scope.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,OAAO,EACL,sBAAsB,EAMvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/commands/scope.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,OAAO,EACL,sBAAsB,EAMvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAiBL,gBAAgB,EAGjB,MAAM,0BAA0B,CAAC;AAq8DlC,wBAAgB,YAAY,IAAI,OAAO,CAkCtC;AAGD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAC"}
|
package/dist/commands/scope.js
CHANGED
|
@@ -14,11 +14,12 @@ import { getDaemonStatus, getDaemonUrl, statusGuardMessage } from "../daemon-lif
|
|
|
14
14
|
import { realDeps } from "./daemon.js";
|
|
15
15
|
import { CLOSE_REASONS, MISSION_TEMPLATE_KINDS, SLICE_TEMPLATE_KINDS, STAGE_VALUES, ScopeCliError, } from "../lib/scope/types.js";
|
|
16
16
|
import { DEFAULT_PROJECT_PREFIX, inferMissionDotId, isMissionDotId, isSliceDotId, nextEscapeBandOrdinal, sliceIdFromMission, } from "../lib/scope/dot-id.js";
|
|
17
|
-
import { buildMissionDependencyGraph, ensureMissionId, ensureMissionIdPersisted, findMission, resolveNodeFile, findSlice, listMissions, listSlices, moveSlice, nextSliceNN, NOTES_FILE_PRECEDENCE, pad2, readFrontmatter, resolveNotesFile, resolveMissionsRoot, splitFrontmatter, todayDateISO, updateFrontmatter, } from "../lib/scope/scope-fs.js";
|
|
17
|
+
import { buildMissionDependencyGraph, ensureMissionId, ensureMissionIdPersisted, findMission, resolveNodeFile, findSlice, listMissions, listSlices, moveSlice, rollbackMovedSlice, nextSliceNN, NOTES_FILE_PRECEDENCE, pad2, readFrontmatter, resolveNotesFile, resolveMissionsRoot, splitFrontmatter, todayDateISO, updateFrontmatter, } from "../lib/scope/scope-fs.js";
|
|
18
18
|
import { renderCapabilityDeltaTemplate, renderNotesTemplate, renderMissionProgressTemplate, renderMissionTemplate, renderSliceProofTemplate, renderSliceProgressTemplate, renderSliceTemplate, titleFromSlug, } from "../lib/scope/templates.js";
|
|
19
19
|
import { addProgressRow, DEFAULT_PROGRESS_SECTION, parseStatus, PROGRESS_STATUSES, setProgressRow, } from "../lib/scope/progress-edit.js";
|
|
20
20
|
import { deriveScopeTrust } from "../lib/scope/trust.js";
|
|
21
21
|
import { capabilityDeltaExpiryFindings } from "../lib/scope/capability-delta.js";
|
|
22
|
+
import { applyMissionCompositionEdits, nextMissionMembershipOrder, planMissionMembershipAdd, planMissionMembershipRemove, } from "../lib/scope/mission-composition.js";
|
|
22
23
|
function makeStdout() {
|
|
23
24
|
return { write: (text) => process.stdout.write(text) };
|
|
24
25
|
}
|
|
@@ -27,6 +28,7 @@ kind: mission
|
|
|
27
28
|
composition:
|
|
28
29
|
mission_markdown:
|
|
29
30
|
spec: SPEC.md
|
|
31
|
+
slices: []
|
|
30
32
|
# Optional team and SDLC sections are added here.
|
|
31
33
|
`;
|
|
32
34
|
const SLICE_MANIFEST = `schema: openrig.slice/v0alpha1
|
|
@@ -76,6 +78,16 @@ function slugify(raw) {
|
|
|
76
78
|
.replace(/[^a-z0-9]+/g, "-")
|
|
77
79
|
.replace(/^-+|-+$/g, "");
|
|
78
80
|
}
|
|
81
|
+
function sliceManifestRef(missionPath, slicePath) {
|
|
82
|
+
return path.relative(missionPath, path.join(slicePath, "slice.yaml")).split(path.sep).join("/");
|
|
83
|
+
}
|
|
84
|
+
function rollbackComposition(edits) {
|
|
85
|
+
applyMissionCompositionEdits(edits.map((edit) => ({
|
|
86
|
+
manifestPath: edit.manifestPath,
|
|
87
|
+
original: edit.updated,
|
|
88
|
+
updated: edit.original,
|
|
89
|
+
})));
|
|
90
|
+
}
|
|
79
91
|
function getOpts(cmd) {
|
|
80
92
|
// commander v13 attaches opts on the parent.
|
|
81
93
|
let walker = cmd;
|
|
@@ -240,11 +252,6 @@ function buildSliceCreateCommand() {
|
|
|
240
252
|
}
|
|
241
253
|
const missionsRoot = resolveMissionsRoot({ override: getOpts(command).workspace });
|
|
242
254
|
const mission = findMission(missionsRoot, missionName);
|
|
243
|
-
// Persist the parent mission's id back into its README at the
|
|
244
|
-
// SAME moment we mint the child's id (per convention §1
|
|
245
|
-
// lazy-adoption rule + guard BC BLOCK 3 — every child-mint site
|
|
246
|
-
// must persist the parent's id, not just slice create).
|
|
247
|
-
const missionId = ensureMissionIdPersisted(mission, missionsRoot);
|
|
248
255
|
const nn = nextSliceNN(mission.absPath);
|
|
249
256
|
const sliceFolder = `${pad2(nn)}-${slug}`;
|
|
250
257
|
const sliceAbs = path.join(mission.absPath, "slices", sliceFolder);
|
|
@@ -255,9 +262,11 @@ function buildSliceCreateCommand() {
|
|
|
255
262
|
action: "Pick a different slug, or rm -rf the existing folder first.",
|
|
256
263
|
});
|
|
257
264
|
}
|
|
258
|
-
const id = sliceIdFromMission(missionId, nn);
|
|
259
265
|
const title = opts.title ?? titleFromSlug(slug);
|
|
260
266
|
const intent = opts.intent ?? title;
|
|
267
|
+
const compositionEdit = planMissionMembershipAdd(mission.absPath, `slices/${sliceFolder}/slice.yaml`, nextMissionMembershipOrder(mission.absPath));
|
|
268
|
+
const missionId = ensureMissionId(mission, missionsRoot);
|
|
269
|
+
const id = sliceIdFromMission(missionId, nn);
|
|
261
270
|
const dependsOn = Array.isArray(opts.dependsOn) ? [...new Set(opts.dependsOn)] : [];
|
|
262
271
|
for (const dependency of dependsOn) {
|
|
263
272
|
if (!isSliceDotId(dependency) || !dependency.startsWith(`${missionId}.`)) {
|
|
@@ -280,22 +289,35 @@ function buildSliceCreateCommand() {
|
|
|
280
289
|
depends_on: dependsOn,
|
|
281
290
|
});
|
|
282
291
|
const proofBody = renderSliceProofTemplate({ id, title });
|
|
283
|
-
fs.
|
|
284
|
-
fs.mkdirSync(path.join(sliceAbs, "proof"), { recursive: true });
|
|
285
|
-
// New scaffolds author SPEC.md; existing README-backed nodes are never rewritten.
|
|
292
|
+
const originalMissionNode = mission.readmePath ? fs.readFileSync(mission.readmePath, "utf8") : null;
|
|
286
293
|
const readmePath = path.join(sliceAbs, "SPEC.md");
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
294
|
+
try {
|
|
295
|
+
// Persist the parent id in the same rollback boundary as the child
|
|
296
|
+
// and composition membership. Validation above performs no writes.
|
|
297
|
+
ensureMissionIdPersisted(mission, missionsRoot);
|
|
298
|
+
fs.mkdirSync(sliceAbs, { recursive: true });
|
|
299
|
+
fs.mkdirSync(path.join(sliceAbs, "proof"), { recursive: true });
|
|
300
|
+
// New scaffolds author SPEC.md; existing README-backed nodes are never rewritten.
|
|
301
|
+
const readmeOnly = Boolean(opts.readmeOnly);
|
|
302
|
+
if (readmeOnly) {
|
|
303
|
+
const markerBody = body.replace(/^(---\n)/, `---\nprogress_rail: readme-only\n`);
|
|
304
|
+
fs.writeFileSync(readmePath, markerBody, "utf8");
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
fs.writeFileSync(readmePath, body, "utf8");
|
|
308
|
+
const progressPath = path.join(sliceAbs, "PROGRESS.md");
|
|
309
|
+
fs.writeFileSync(progressPath, renderSliceProgressTemplate(title), "utf8");
|
|
310
|
+
}
|
|
311
|
+
fs.writeFileSync(path.join(sliceAbs, "slice.yaml"), SLICE_MANIFEST, "utf8");
|
|
312
|
+
fs.writeFileSync(path.join(sliceAbs, "PROOF.md"), proofBody, "utf8");
|
|
313
|
+
applyMissionCompositionEdits(compositionEdit ? [compositionEdit] : []);
|
|
291
314
|
}
|
|
292
|
-
|
|
293
|
-
fs.
|
|
294
|
-
|
|
295
|
-
|
|
315
|
+
catch (error) {
|
|
316
|
+
fs.rmSync(sliceAbs, { recursive: true, force: true });
|
|
317
|
+
if (originalMissionNode !== null && mission.readmePath)
|
|
318
|
+
fs.writeFileSync(mission.readmePath, originalMissionNode, "utf8");
|
|
319
|
+
throw error;
|
|
296
320
|
}
|
|
297
|
-
fs.writeFileSync(path.join(sliceAbs, "slice.yaml"), SLICE_MANIFEST, "utf8");
|
|
298
|
-
fs.writeFileSync(path.join(sliceAbs, "PROOF.md"), proofBody, "utf8");
|
|
299
321
|
const payload = {
|
|
300
322
|
ok: true,
|
|
301
323
|
slice: {
|
|
@@ -336,37 +358,61 @@ function buildSliceShipCommand() {
|
|
|
336
358
|
const missionsRoot = resolveMissionsRoot({ override: getOpts(command).workspace });
|
|
337
359
|
const slice = findSlice(missionsRoot, slicePath, opts.mission ?? null);
|
|
338
360
|
const target = findMission(missionsRoot, releaseMission);
|
|
361
|
+
if (target.name === slice.missionName) {
|
|
362
|
+
throw new ScopeCliError({ fact: "Source and release mission are the same.", consequence: "Slice not shipped.", action: "Choose a different release mission." });
|
|
363
|
+
}
|
|
339
364
|
const targetSlicesDir = path.join(target.absPath, "slices");
|
|
340
|
-
fs.mkdirSync(targetSlicesDir, { recursive: true });
|
|
341
365
|
const newNN = nextSliceNN(target.absPath);
|
|
342
366
|
const slug = slice.slug ?? slugify(slice.name);
|
|
343
367
|
const newName = `${pad2(newNN)}-${slug}`;
|
|
344
368
|
const destAbs = path.join(targetSlicesDir, newName);
|
|
345
|
-
const
|
|
346
|
-
const
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
369
|
+
const sourceMission = findMission(missionsRoot, slice.missionName);
|
|
370
|
+
const edits = [
|
|
371
|
+
planMissionMembershipRemove(sourceMission.absPath, sliceManifestRef(sourceMission.absPath, slice.absPath)),
|
|
372
|
+
planMissionMembershipAdd(target.absPath, `slices/${newName}/slice.yaml`, nextMissionMembershipOrder(target.absPath)),
|
|
373
|
+
].filter((edit) => edit !== null);
|
|
374
|
+
applyMissionCompositionEdits(edits);
|
|
375
|
+
let moveResult = null;
|
|
376
|
+
const originalNode = slice.readmePath ? fs.readFileSync(slice.readmePath, "utf8") : null;
|
|
377
|
+
const originalTargetNode = target.readmePath ? fs.readFileSync(target.readmePath, "utf8") : null;
|
|
378
|
+
try {
|
|
379
|
+
moveResult = moveSlice(slice.absPath, destAbs);
|
|
380
|
+
const targetId = ensureMissionIdPersisted(target, missionsRoot);
|
|
381
|
+
const newSliceId = sliceIdFromMission(targetId, newNN);
|
|
382
|
+
const newReadme = resolveNodeFile(destAbs);
|
|
383
|
+
if (newReadme) {
|
|
384
|
+
updateFrontmatter(newReadme, {
|
|
385
|
+
id: newSliceId,
|
|
386
|
+
mission: target.name,
|
|
387
|
+
status: `shipped-to-${target.name}`,
|
|
388
|
+
"shipped-on": todayDateISO(),
|
|
389
|
+
"shipped-from": slice.missionName,
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
const { usedGit, repoRoot } = moveResult;
|
|
393
|
+
emit(out, {
|
|
394
|
+
ok: true,
|
|
395
|
+
shipped: {
|
|
396
|
+
from: { mission: slice.missionName, name: slice.name, id: slice.id },
|
|
397
|
+
to: { mission: target.name, name: newName, id: newSliceId, path: destAbs },
|
|
398
|
+
git: { usedGit, repoRoot },
|
|
399
|
+
},
|
|
400
|
+
}, json, [
|
|
401
|
+
`Shipped ${slice.missionName}/${slice.name} → ${target.name}/slices/${newName}`,
|
|
402
|
+
` id: ${newSliceId}`,
|
|
403
|
+
` git: ${usedGit ? "git mv" : "fs.rename (not in a git repo)"}`,
|
|
404
|
+
]);
|
|
405
|
+
}
|
|
406
|
+
catch (error) {
|
|
407
|
+
if (moveResult)
|
|
408
|
+
rollbackMovedSlice(slice.absPath, destAbs, moveResult);
|
|
409
|
+
if (originalNode !== null && slice.readmePath)
|
|
410
|
+
fs.writeFileSync(slice.readmePath, originalNode, "utf8");
|
|
411
|
+
if (originalTargetNode !== null && target.readmePath)
|
|
412
|
+
fs.writeFileSync(target.readmePath, originalTargetNode, "utf8");
|
|
413
|
+
rollbackComposition(edits);
|
|
414
|
+
throw error;
|
|
357
415
|
}
|
|
358
|
-
emit(out, {
|
|
359
|
-
ok: true,
|
|
360
|
-
shipped: {
|
|
361
|
-
from: { mission: slice.missionName, name: slice.name, id: slice.id },
|
|
362
|
-
to: { mission: target.name, name: newName, id: newSliceId, path: destAbs },
|
|
363
|
-
git: { usedGit, repoRoot },
|
|
364
|
-
},
|
|
365
|
-
}, json, [
|
|
366
|
-
`Shipped ${slice.missionName}/${slice.name} → ${target.name}/slices/${newName}`,
|
|
367
|
-
` id: ${newSliceId}`,
|
|
368
|
-
` git: ${usedGit ? "git mv" : "fs.rename (not in a git repo)"}`,
|
|
369
|
-
]);
|
|
370
416
|
}
|
|
371
417
|
catch (err) {
|
|
372
418
|
fail(err, json, out);
|
|
@@ -400,19 +446,39 @@ function buildSliceCloseCommand() {
|
|
|
400
446
|
const slice = findSlice(missionsRoot, slicePath, opts.mission ?? null);
|
|
401
447
|
const mission = findMission(missionsRoot, slice.missionName);
|
|
402
448
|
const closedDir = path.join(mission.absPath, "closed");
|
|
403
|
-
fs.mkdirSync(closedDir, { recursive: true });
|
|
404
449
|
const destName = slice.name;
|
|
405
450
|
const destAbs = path.join(closedDir, destName);
|
|
406
|
-
const
|
|
451
|
+
const compositionEdit = planMissionMembershipRemove(mission.absPath, sliceManifestRef(mission.absPath, slice.absPath));
|
|
452
|
+
const edits = compositionEdit ? [compositionEdit] : [];
|
|
453
|
+
applyMissionCompositionEdits(edits);
|
|
454
|
+
let moveResult = null;
|
|
455
|
+
const originalNode = slice.readmePath ? fs.readFileSync(slice.readmePath, "utf8") : null;
|
|
456
|
+
try {
|
|
457
|
+
moveResult = moveSlice(slice.absPath, destAbs);
|
|
458
|
+
}
|
|
459
|
+
catch (error) {
|
|
460
|
+
rollbackComposition(edits);
|
|
461
|
+
throw error;
|
|
462
|
+
}
|
|
463
|
+
const { usedGit, repoRoot } = moveResult;
|
|
407
464
|
const newReadme = resolveNodeFile(destAbs);
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
465
|
+
try {
|
|
466
|
+
if (newReadme) {
|
|
467
|
+
const updates = {
|
|
468
|
+
status: `closed-${reason}`,
|
|
469
|
+
"closed-on": todayDateISO(),
|
|
470
|
+
};
|
|
471
|
+
if (opts.note)
|
|
472
|
+
updates["closure-note"] = opts.note;
|
|
473
|
+
updateFrontmatter(newReadme, updates);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
catch (error) {
|
|
477
|
+
rollbackMovedSlice(slice.absPath, destAbs, moveResult);
|
|
478
|
+
if (originalNode !== null && slice.readmePath)
|
|
479
|
+
fs.writeFileSync(slice.readmePath, originalNode, "utf8");
|
|
480
|
+
rollbackComposition(edits);
|
|
481
|
+
throw error;
|
|
416
482
|
}
|
|
417
483
|
emit(out, {
|
|
418
484
|
ok: true,
|
|
@@ -453,36 +519,60 @@ function buildSliceMoveCommand() {
|
|
|
453
519
|
const missionsRoot = resolveMissionsRoot({ override: getOpts(command).workspace });
|
|
454
520
|
const slice = findSlice(missionsRoot, slicePath, opts.mission ?? null);
|
|
455
521
|
const target = findMission(missionsRoot, destMission);
|
|
522
|
+
if (target.name === slice.missionName) {
|
|
523
|
+
throw new ScopeCliError({ fact: "Source and destination mission are the same.", consequence: "Slice not moved.", action: "Choose a different destination mission." });
|
|
524
|
+
}
|
|
456
525
|
const targetSlicesDir = path.join(target.absPath, "slices");
|
|
457
|
-
fs.mkdirSync(targetSlicesDir, { recursive: true });
|
|
458
526
|
const newNN = nextSliceNN(target.absPath);
|
|
459
527
|
const slug = slice.slug ?? slugify(slice.name);
|
|
460
528
|
const newName = `${pad2(newNN)}-${slug}`;
|
|
461
529
|
const destAbs = path.join(targetSlicesDir, newName);
|
|
462
|
-
const
|
|
463
|
-
const
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
530
|
+
const sourceMission = findMission(missionsRoot, slice.missionName);
|
|
531
|
+
const edits = [
|
|
532
|
+
planMissionMembershipRemove(sourceMission.absPath, sliceManifestRef(sourceMission.absPath, slice.absPath)),
|
|
533
|
+
planMissionMembershipAdd(target.absPath, `slices/${newName}/slice.yaml`, nextMissionMembershipOrder(target.absPath)),
|
|
534
|
+
].filter((edit) => edit !== null);
|
|
535
|
+
applyMissionCompositionEdits(edits);
|
|
536
|
+
let moveResult = null;
|
|
537
|
+
const originalNode = slice.readmePath ? fs.readFileSync(slice.readmePath, "utf8") : null;
|
|
538
|
+
const originalTargetNode = target.readmePath ? fs.readFileSync(target.readmePath, "utf8") : null;
|
|
539
|
+
try {
|
|
540
|
+
moveResult = moveSlice(slice.absPath, destAbs);
|
|
541
|
+
const targetId = ensureMissionIdPersisted(target, missionsRoot);
|
|
542
|
+
const newSliceId = sliceIdFromMission(targetId, newNN);
|
|
543
|
+
const newReadme = resolveNodeFile(destAbs);
|
|
544
|
+
if (newReadme) {
|
|
545
|
+
updateFrontmatter(newReadme, {
|
|
546
|
+
id: newSliceId,
|
|
547
|
+
mission: target.name,
|
|
548
|
+
"moved-on": todayDateISO(),
|
|
549
|
+
"moved-from": slice.missionName,
|
|
550
|
+
});
|
|
551
|
+
}
|
|
552
|
+
const { usedGit, repoRoot } = moveResult;
|
|
553
|
+
emit(out, {
|
|
554
|
+
ok: true,
|
|
555
|
+
moved: {
|
|
556
|
+
from: { mission: slice.missionName, name: slice.name, id: slice.id },
|
|
557
|
+
to: { mission: target.name, name: newName, id: newSliceId, path: destAbs },
|
|
558
|
+
git: { usedGit, repoRoot },
|
|
559
|
+
},
|
|
560
|
+
}, json, [
|
|
561
|
+
`Moved ${slice.missionName}/${slice.name} → ${target.name}/slices/${newName}`,
|
|
562
|
+
` id: ${newSliceId}`,
|
|
563
|
+
` git: ${usedGit ? "git mv" : "fs.rename (not in a git repo)"}`,
|
|
564
|
+
]);
|
|
565
|
+
}
|
|
566
|
+
catch (error) {
|
|
567
|
+
if (moveResult)
|
|
568
|
+
rollbackMovedSlice(slice.absPath, destAbs, moveResult);
|
|
569
|
+
if (originalNode !== null && slice.readmePath)
|
|
570
|
+
fs.writeFileSync(slice.readmePath, originalNode, "utf8");
|
|
571
|
+
if (originalTargetNode !== null && target.readmePath)
|
|
572
|
+
fs.writeFileSync(target.readmePath, originalTargetNode, "utf8");
|
|
573
|
+
rollbackComposition(edits);
|
|
574
|
+
throw error;
|
|
473
575
|
}
|
|
474
|
-
emit(out, {
|
|
475
|
-
ok: true,
|
|
476
|
-
moved: {
|
|
477
|
-
from: { mission: slice.missionName, name: slice.name, id: slice.id },
|
|
478
|
-
to: { mission: target.name, name: newName, id: newSliceId, path: destAbs },
|
|
479
|
-
git: { usedGit, repoRoot },
|
|
480
|
-
},
|
|
481
|
-
}, json, [
|
|
482
|
-
`Moved ${slice.missionName}/${slice.name} → ${target.name}/slices/${newName}`,
|
|
483
|
-
` id: ${newSliceId}`,
|
|
484
|
-
` git: ${usedGit ? "git mv" : "fs.rename (not in a git repo)"}`,
|
|
485
|
-
]);
|
|
486
576
|
}
|
|
487
577
|
catch (err) {
|
|
488
578
|
fail(err, json, out);
|