@openrig/cli 0.6.13 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -9
- package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/README.md +11 -4
- package/daemon/assets/plugins/openrig-core/hooks/codex.json +6 -6
- package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +13 -1
- package/daemon/assets/plugins/openrig-core/hooks/scripts/codex-hook-trust.cjs +49 -0
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +26 -5
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -2
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +3 -2
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +24 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +39 -21
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +10 -4
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +12 -32
- package/daemon/assets/skills/rigs/SKILL.md +24 -5
- package/daemon/context-packs/help/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +18 -8
- package/daemon/context-packs/reference/getting-started.md +178 -35
- package/daemon/context-packs/reference/manifest.yaml +1 -1
- package/daemon/context-packs/reference/rig-spec.md +1 -1
- package/daemon/context-packs/reference/whats-new.md +126 -100
- package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
- package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +9 -2
- 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/SKILL.md +24 -0
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/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 +2 -2
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +11 -5
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +3 -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 +39 -21
- 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/SKILL.md +2 -0
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +3 -1
- package/daemon/context-packs/skills/pods/development-team/references/refactoring.md +11 -0
- 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/SKILL.md +46 -96
- 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/SKILL.md +17 -80
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +5 -3
- package/daemon/context-packs/skills/process/verification-before-completion/references/performance-claims.md +12 -0
- package/daemon/context-packs/skills/queue-handoff/SKILL.md +10 -4
- 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/refocusing/scripts/trace-to-root.py +12 -32
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-public/manifest.yaml +1 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts +6 -2
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +33 -6
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +2 -7
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +68 -2
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +371 -60
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.d.ts +16 -0
- package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.js +52 -9
- package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
- package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
- package/daemon/dist/adapters/kernel-authority.js +9 -5
- package/daemon/dist/adapters/kernel-authority.js.map +1 -1
- package/daemon/dist/adapters/pi-runner.d.ts +2 -0
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner.js +5 -0
- package/daemon/dist/adapters/pi-runner.js.map +1 -1
- package/daemon/dist/adapters/runtime-probe-exec.d.ts +11 -0
- package/daemon/dist/adapters/runtime-probe-exec.d.ts.map +1 -0
- package/daemon/dist/adapters/runtime-probe-exec.js +25 -0
- package/daemon/dist/adapters/runtime-probe-exec.js.map +1 -0
- package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runner.js +2 -0
- package/daemon/dist/adapters/stub-runner.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +21 -1
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +101 -14
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +12 -0
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts +3 -0
- package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts.map +1 -0
- package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js +8 -0
- package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js.map +1 -0
- package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts +3 -0
- package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts.map +1 -0
- package/daemon/dist/db/migrations/118_human_quiet_windows.js +30 -0
- package/daemon/dist/db/migrations/118_human_quiet_windows.js.map +1 -0
- package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts +3 -0
- package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts.map +1 -0
- package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js +7 -0
- package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js.map +1 -0
- package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts +13 -0
- package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts.map +1 -0
- package/daemon/dist/db/migrations/121_rig_startup_layers.js +17 -0
- package/daemon/dist/db/migrations/121_rig_startup_layers.js.map +1 -0
- package/daemon/dist/db/migrations/122_human_operating_modes.d.ts +3 -0
- package/daemon/dist/db/migrations/122_human_operating_modes.d.ts.map +1 -0
- package/daemon/dist/db/migrations/122_human_operating_modes.js +55 -0
- package/daemon/dist/db/migrations/122_human_operating_modes.js.map +1 -0
- package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts +3 -0
- package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts.map +1 -0
- package/daemon/dist/db/migrations/123_queue_delegated_decision.js +10 -0
- package/daemon/dist/db/migrations/123_queue_delegated_decision.js.map +1 -0
- package/daemon/dist/domain/active-occupant.d.ts +5 -3
- package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
- package/daemon/dist/domain/active-occupant.js +2 -2
- package/daemon/dist/domain/active-occupant.js.map +1 -1
- package/daemon/dist/domain/activity-taxonomy.d.ts +16 -1
- package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
- package/daemon/dist/domain/activity-taxonomy.js +21 -0
- package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
- package/daemon/dist/domain/agent-activity-store.d.ts +20 -0
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
- package/daemon/dist/domain/agent-activity-store.js +41 -5
- package/daemon/dist/domain/agent-activity-store.js.map +1 -1
- package/daemon/dist/domain/agent-images/evidence-guard.js +3 -3
- package/daemon/dist/domain/agent-images/evidence-guard.js.map +1 -1
- package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/agent-images/resume-token-discovery.js +2 -10
- package/daemon/dist/domain/agent-images/resume-token-discovery.js.map +1 -1
- package/daemon/dist/domain/ask-service.d.ts +1 -0
- package/daemon/dist/domain/ask-service.d.ts.map +1 -1
- package/daemon/dist/domain/ask-service.js +7 -1
- package/daemon/dist/domain/ask-service.js.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts +2 -0
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +5 -6
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/daemon/dist/domain/claim-service.d.ts +10 -19
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +90 -0
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/classification-sources.d.ts.map +1 -1
- package/daemon/dist/domain/classification-sources.js +2 -0
- package/daemon/dist/domain/classification-sources.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +19 -6
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +108 -38
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/claude-core-plugin-env.d.ts +11 -0
- package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -1
- package/daemon/dist/domain/claude-core-plugin-env.js +15 -0
- package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -1
- package/daemon/dist/domain/codex-core-plugin-install.d.ts +41 -0
- package/daemon/dist/domain/codex-core-plugin-install.d.ts.map +1 -0
- package/daemon/dist/domain/codex-core-plugin-install.js +126 -0
- package/daemon/dist/domain/codex-core-plugin-install.js.map +1 -0
- package/daemon/dist/domain/codex-thread-id.d.ts +23 -1
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +58 -17
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts +13 -5
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +47 -13
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-usage-store.js +3 -0
- package/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/daemon/dist/domain/current-work.d.ts +18 -0
- package/daemon/dist/domain/current-work.d.ts.map +1 -1
- package/daemon/dist/domain/current-work.js +17 -3
- package/daemon/dist/domain/current-work.js.map +1 -1
- package/daemon/dist/domain/draft-aware-delivery.d.ts +7 -7
- package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/draft-aware-delivery.js +61 -82
- package/daemon/dist/domain/draft-aware-delivery.js.map +1 -1
- package/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/daemon/dist/domain/execution-view.js +2 -1
- package/daemon/dist/domain/execution-view.js.map +1 -1
- package/daemon/dist/domain/existing-rig-restore.d.ts +110 -0
- package/daemon/dist/domain/existing-rig-restore.d.ts.map +1 -0
- package/daemon/dist/domain/existing-rig-restore.js +254 -0
- package/daemon/dist/domain/existing-rig-restore.js.map +1 -0
- package/daemon/dist/domain/fresh-occupant-relation.d.ts.map +1 -1
- package/daemon/dist/domain/fresh-occupant-relation.js +11 -3
- package/daemon/dist/domain/fresh-occupant-relation.js.map +1 -1
- package/daemon/dist/domain/gateway/channel-operations.d.ts +3 -4
- package/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/channel-operations.js.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.d.ts +0 -5
- package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.js +3 -46
- package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
- package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +11 -1
- package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/delivery-rules-engine.js +12 -2
- package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -1
- package/daemon/dist/domain/gateway/dispatch-buffer.d.ts +4 -0
- package/daemon/dist/domain/gateway/dispatch-buffer.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/dispatch-buffer.js +18 -0
- package/daemon/dist/domain/gateway/dispatch-buffer.js.map +1 -1
- package/daemon/dist/domain/gateway/human-mode-account.d.ts +61 -0
- package/daemon/dist/domain/gateway/human-mode-account.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/human-mode-account.js +112 -0
- package/daemon/dist/domain/gateway/human-mode-account.js.map +1 -0
- package/daemon/dist/domain/gateway/human-operating-modes.d.ts +171 -0
- package/daemon/dist/domain/gateway/human-operating-modes.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/human-operating-modes.js +422 -0
- package/daemon/dist/domain/gateway/human-operating-modes.js.map +1 -0
- package/daemon/dist/domain/gateway/human-quiet-windows.d.ts +121 -0
- package/daemon/dist/domain/gateway/human-quiet-windows.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/human-quiet-windows.js +217 -0
- package/daemon/dist/domain/gateway/human-quiet-windows.js.map +1 -0
- package/daemon/dist/domain/gateway/human-registry.d.ts +23 -2
- package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.js +67 -5
- package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.js +9 -0
- package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +10 -2
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +24 -2
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.d.ts +1 -0
- package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.js +5 -1
- package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +9 -3
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.js +40 -6
- package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +19 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +128 -41
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +3 -2
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +268 -50
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.d.ts +4 -0
- package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.js +34 -4
- package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +3 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.js +9 -9
- package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
- package/daemon/dist/domain/hosts/learned-host-bindings.d.ts +28 -0
- package/daemon/dist/domain/hosts/learned-host-bindings.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/learned-host-bindings.js +77 -0
- package/daemon/dist/domain/hosts/learned-host-bindings.js.map +1 -0
- package/daemon/dist/domain/hot-potato-enforcer.d.ts +7 -5
- package/daemon/dist/domain/hot-potato-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/hot-potato-enforcer.js +19 -10
- package/daemon/dist/domain/hot-potato-enforcer.js.map +1 -1
- package/daemon/dist/domain/human-questions.d.ts +8 -1
- package/daemon/dist/domain/human-questions.d.ts.map +1 -1
- package/daemon/dist/domain/human-questions.js.map +1 -1
- package/daemon/dist/domain/kernel-boot-tracker.d.ts +17 -1
- package/daemon/dist/domain/kernel-boot-tracker.d.ts.map +1 -1
- package/daemon/dist/domain/kernel-boot-tracker.js +44 -3
- package/daemon/dist/domain/kernel-boot-tracker.js.map +1 -1
- package/daemon/dist/domain/kernel-boot.d.ts +21 -0
- package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
- package/daemon/dist/domain/kernel-boot.js +57 -2
- package/daemon/dist/domain/kernel-boot.js.map +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +2 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.js +8 -3
- package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
- package/daemon/dist/domain/native-process-lineage.js +43 -15
- package/daemon/dist/domain/native-process-lineage.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +26 -12
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +5 -3
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +29 -25
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/outbox-handler.d.ts +3 -5
- package/daemon/dist/domain/outbox-handler.d.ts.map +1 -1
- package/daemon/dist/domain/outbox-handler.js +9 -19
- package/daemon/dist/domain/outbox-handler.js.map +1 -1
- package/daemon/dist/domain/park-wake-text.d.ts +11 -0
- package/daemon/dist/domain/park-wake-text.d.ts.map +1 -0
- package/daemon/dist/domain/park-wake-text.js +26 -0
- package/daemon/dist/domain/park-wake-text.js.map +1 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts +4 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +29 -6
- package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
- package/daemon/dist/domain/policies/delivery-digest-flush.d.ts +1 -0
- package/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -1
- package/daemon/dist/domain/policies/delivery-digest-flush.js +25 -4
- package/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -1
- package/daemon/dist/domain/policies/mode-scheduled-end.d.ts +37 -0
- package/daemon/dist/domain/policies/mode-scheduled-end.d.ts.map +1 -0
- package/daemon/dist/domain/policies/mode-scheduled-end.js +161 -0
- package/daemon/dist/domain/policies/mode-scheduled-end.js.map +1 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +11 -7
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
- package/daemon/dist/domain/policies/parked-owner-consumer.js +82 -113
- package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
- package/daemon/dist/domain/policies/quiet-release.d.ts +109 -0
- package/daemon/dist/domain/policies/quiet-release.d.ts.map +1 -0
- package/daemon/dist/domain/policies/quiet-release.js +213 -0
- package/daemon/dist/domain/policies/quiet-release.js.map +1 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +8 -3
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/proof/source-watch.js +2 -2
- package/daemon/dist/domain/proof/source-watch.js.map +1 -1
- package/daemon/dist/domain/queue-destination-check.d.ts +6 -0
- package/daemon/dist/domain/queue-destination-check.d.ts.map +1 -0
- package/daemon/dist/domain/queue-destination-check.js +35 -0
- package/daemon/dist/domain/queue-destination-check.js.map +1 -0
- package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
- package/daemon/dist/domain/queue-owner.js +2 -1
- package/daemon/dist/domain/queue-owner.js.map +1 -1
- package/daemon/dist/domain/queue-recovery.d.ts +1 -1
- package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
- package/daemon/dist/domain/queue-recovery.js +3 -2
- package/daemon/dist/domain/queue-recovery.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +108 -67
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +316 -140
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts +13 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +95 -13
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/daemon/dist/domain/queue-transition-log.d.ts +5 -0
- package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
- package/daemon/dist/domain/queue-transition-log.js +25 -8
- package/daemon/dist/domain/queue-transition-log.js.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.d.ts +2 -0
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +94 -11
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/daemon/dist/domain/quiet-hold-custody.d.ts +24 -0
- package/daemon/dist/domain/quiet-hold-custody.d.ts.map +1 -0
- package/daemon/dist/domain/quiet-hold-custody.js +85 -0
- package/daemon/dist/domain/quiet-hold-custody.js.map +1 -0
- package/daemon/dist/domain/rehydrate-eligibility.d.ts +12 -1
- package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
- package/daemon/dist/domain/rehydrate-eligibility.js +47 -9
- package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +11 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +144 -15
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts +3 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +30 -13
- package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/daemon/dist/domain/review/gather.d.ts.map +1 -1
- package/daemon/dist/domain/review/gather.js +8 -5
- package/daemon/dist/domain/review/gather.js.map +1 -1
- package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
- package/daemon/dist/domain/rig-mode/operating-posture.js +3 -1
- package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +11 -1
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +27 -3
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +31 -4
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +9 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +59 -28
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts +5 -0
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +30 -0
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +27 -2
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts +18 -3
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +124 -57
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts +8 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.js +3 -1
- package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
- package/daemon/dist/domain/seat-delivery-guard.js +21 -5
- package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +2 -2
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +28 -2
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.js +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-store.js +5 -2
- package/daemon/dist/domain/seat-identity-store.js.map +1 -1
- package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -1
- package/daemon/dist/domain/seat-launch-environment.js +17 -1
- package/daemon/dist/domain/seat-launch-environment.js.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +4 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-restart-in-place.d.ts +33 -14
- package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -1
- package/daemon/dist/domain/seat-restart-in-place.js +102 -30
- package/daemon/dist/domain/seat-restart-in-place.js.map +1 -1
- package/daemon/dist/domain/self-attach-service.d.ts +3 -2
- package/daemon/dist/domain/self-attach-service.d.ts.map +1 -1
- package/daemon/dist/domain/self-attach-service.js +18 -1
- package/daemon/dist/domain/self-attach-service.js.map +1 -1
- package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
- package/daemon/dist/domain/services-readiness.js +14 -3
- package/daemon/dist/domain/services-readiness.js.map +1 -1
- package/daemon/dist/domain/session-registry.d.ts +45 -0
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js +124 -0
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +24 -6
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +58 -41
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/skill-discovery.d.ts +7 -1
- package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/skill-discovery.js +41 -7
- package/daemon/dist/domain/skill-discovery.js.map +1 -1
- package/daemon/dist/domain/snapshot-repository.d.ts +1 -0
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-repository.js +23 -10
- package/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +21 -3
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +66 -16
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/startup-submission-evidence.d.ts +4 -11
- package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
- package/daemon/dist/domain/startup-submission-evidence.js +11 -17
- package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +2 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +3 -1
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.js +22 -4
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
- package/daemon/dist/domain/topology-converge.d.ts +1 -0
- package/daemon/dist/domain/topology-converge.d.ts.map +1 -1
- package/daemon/dist/domain/topology-converge.js +1 -0
- package/daemon/dist/domain/topology-converge.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +15 -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-browser.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-browser.js +2 -0
- package/daemon/dist/domain/user-settings/settings-browser.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 +37 -7
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/wake-resolve-service.d.ts +1 -0
- package/daemon/dist/domain/wake-resolve-service.d.ts.map +1 -1
- package/daemon/dist/domain/wake-resolve-service.js +10 -0
- package/daemon/dist/domain/wake-resolve-service.js.map +1 -1
- package/daemon/dist/domain/wake-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/wake-resolver.js +7 -0
- package/daemon/dist/domain/wake-resolver.js.map +1 -1
- package/daemon/dist/domain/watchdog-delivery.d.ts +3 -23
- package/daemon/dist/domain/watchdog-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-delivery.js +12 -89
- package/daemon/dist/domain/watchdog-delivery.js.map +1 -1
- package/daemon/dist/domain/watchdog-history-log.d.ts +5 -2
- package/daemon/dist/domain/watchdog-history-log.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-history-log.js.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts +2 -2
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.js +4 -0
- package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +16 -24
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +44 -43
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/daemon/dist/domain/whoami-service.d.ts +2 -0
- package/daemon/dist/domain/whoami-service.d.ts.map +1 -1
- package/daemon/dist/domain/whoami-service.js +23 -6
- package/daemon/dist/domain/whoami-service.js.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.d.ts +2 -1
- package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.js +11 -5
- package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
- package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-exception-escalation.js +2 -1
- package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-projector.js +5 -2
- package/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-role-context.js +2 -2
- package/daemon/dist/domain/workflow-role-context.js.map +1 -1
- package/daemon/dist/domain/workflow-runtime.d.ts +1 -1
- package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-runtime.js +2 -0
- package/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/daemon/dist/routes/activity.d.ts +13 -1
- package/daemon/dist/routes/activity.d.ts.map +1 -1
- package/daemon/dist/routes/activity.js +67 -2
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/agent-images.d.ts.map +1 -1
- package/daemon/dist/routes/agent-images.js +2 -0
- package/daemon/dist/routes/agent-images.js.map +1 -1
- package/daemon/dist/routes/compaction.d.ts.map +1 -1
- package/daemon/dist/routes/compaction.js +8 -3
- package/daemon/dist/routes/compaction.js.map +1 -1
- package/daemon/dist/routes/discovery.js +3 -0
- package/daemon/dist/routes/discovery.js.map +1 -1
- package/daemon/dist/routes/down.js +9 -1
- package/daemon/dist/routes/down.js.map +1 -1
- package/daemon/dist/routes/gateway.d.ts +2 -0
- package/daemon/dist/routes/gateway.d.ts.map +1 -1
- package/daemon/dist/routes/gateway.js +181 -1
- package/daemon/dist/routes/gateway.js.map +1 -1
- package/daemon/dist/routes/kernel-status.js +6 -1
- package/daemon/dist/routes/kernel-status.js.map +1 -1
- package/daemon/dist/routes/provider.d.ts.map +1 -1
- package/daemon/dist/routes/provider.js +0 -73
- package/daemon/dist/routes/provider.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +73 -13
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +29 -10
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/rigspec.js +2 -3
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/seat.js +2 -2
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.js +35 -0
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/skills.js +2 -2
- package/daemon/dist/routes/skills.js.map +1 -1
- package/daemon/dist/routes/transcripts.d.ts.map +1 -1
- package/daemon/dist/routes/transcripts.js +7 -3
- package/daemon/dist/routes/transcripts.js.map +1 -1
- package/daemon/dist/routes/transport.js +1 -1
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/routes/up.js +36 -52
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +6 -4
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +104 -65
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-state-taxonomy.md +17 -2
- package/daemon/docs/reference/getting-started.md +178 -35
- package/daemon/docs/reference/quickstart.md +200 -0
- package/daemon/docs/reference/refocus-channel.md +9 -3
- package/daemon/docs/reference/rig-spec.md +1 -1
- package/daemon/docs/reference/seat-delivery.md +57 -18
- package/daemon/docs/reference/slack-app-setup.md +49 -2
- package/daemon/docs/reference/whats-new.md +126 -100
- package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +24 -0
- package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +2 -2
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +11 -5
- package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +2 -0
- package/daemon/specs/agents/shared/skills/pods/development-team/references/refactoring.md +11 -0
- package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +46 -96
- package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +17 -80
- package/daemon/specs/agents/shared/skills/process/verification-before-completion/references/performance-claims.md +12 -0
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +93 -14
- package/dist/build-info.js +3 -3
- package/dist/cli-error.d.ts +4 -0
- package/dist/cli-error.d.ts.map +1 -1
- package/dist/cli-error.js +6 -0
- package/dist/cli-error.js.map +1 -1
- package/dist/client.d.ts +7 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +28 -0
- package/dist/client.js.map +1 -1
- package/dist/commands/agent-image.d.ts.map +1 -1
- package/dist/commands/agent-image.js +15 -7
- package/dist/commands/agent-image.js.map +1 -1
- package/dist/commands/archive.d.ts.map +1 -1
- package/dist/commands/archive.js +17 -3
- package/dist/commands/archive.js.map +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +13 -3
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/attach.d.ts.map +1 -1
- package/dist/commands/attach.js +6 -4
- package/dist/commands/attach.js.map +1 -1
- package/dist/commands/broadcast.js +2 -0
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/chatroom.d.ts.map +1 -1
- package/dist/commands/chatroom.js +1 -0
- package/dist/commands/chatroom.js.map +1 -1
- package/dist/commands/community-harness.d.ts.map +1 -1
- package/dist/commands/community-harness.js +2 -1
- package/dist/commands/community-harness.js.map +1 -1
- package/dist/commands/compact-plan.d.ts.map +1 -1
- package/dist/commands/compact-plan.js +2 -1
- package/dist/commands/compact-plan.js.map +1 -1
- package/dist/commands/compact.d.ts.map +1 -1
- package/dist/commands/compact.js +15 -7
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +11 -2
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +16 -9
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +39 -16
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/expand.d.ts.map +1 -1
- package/dist/commands/expand.js +16 -2
- package/dist/commands/expand.js.map +1 -1
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +9 -2
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/fork.d.ts.map +1 -1
- package/dist/commands/fork.js +3 -1
- package/dist/commands/fork.js.map +1 -1
- package/dist/commands/gateway.d.ts +39 -0
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +310 -3
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/health.js +3 -2
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/host.d.ts +1 -1
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +2 -2
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +9 -2
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/plugin.d.ts.map +1 -1
- package/dist/commands/plugin.js +2 -1
- package/dist/commands/plugin.js.map +1 -1
- package/dist/commands/provider.d.ts.map +1 -1
- package/dist/commands/provider.js +0 -73
- package/dist/commands/provider.js.map +1 -1
- package/dist/commands/ps.d.ts +4 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +95 -5
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +4 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +78 -3
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/reconcile-session.d.ts.map +1 -1
- package/dist/commands/reconcile-session.js +25 -4
- package/dist/commands/reconcile-session.js.map +1 -1
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +16 -2
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/restore-check.d.ts.map +1 -1
- package/dist/commands/restore-check.js +2 -1
- package/dist/commands/restore-check.js.map +1 -1
- package/dist/commands/restore-packet.d.ts.map +1 -1
- package/dist/commands/restore-packet.js +2 -1
- package/dist/commands/restore-packet.js.map +1 -1
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +23 -6
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +5 -2
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/seat.js +0 -4
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +27 -3
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts +3 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +29 -9
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/shrink.d.ts.map +1 -1
- package/dist/commands/shrink.js +16 -2
- package/dist/commands/shrink.js.map +1 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +11 -24
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/snapshot.d.ts.map +1 -1
- package/dist/commands/snapshot.js +36 -10
- package/dist/commands/snapshot.js.map +1 -1
- package/dist/commands/specs.d.ts.map +1 -1
- package/dist/commands/specs.js +11 -5
- package/dist/commands/specs.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +36 -10
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +4 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/transcript.d.ts.map +1 -1
- package/dist/commands/transcript.js +12 -7
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/ui.d.ts.map +1 -1
- package/dist/commands/ui.js +8 -1
- package/dist/commands/ui.js.map +1 -1
- package/dist/commands/unarchive.d.ts.map +1 -1
- package/dist/commands/unarchive.js +16 -2
- package/dist/commands/unarchive.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +33 -7
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +2 -1
- package/dist/commands/walk.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +3 -0
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config-store.d.ts +5 -2
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +39 -7
- package/dist/config-store.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +9 -4
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +38 -12
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/daemon-reachability.d.ts +13 -0
- package/dist/daemon-reachability.d.ts.map +1 -1
- package/dist/daemon-reachability.js +28 -0
- package/dist/daemon-reachability.js.map +1 -1
- package/dist/fetch-with-timeout.d.ts.map +1 -1
- package/dist/fetch-with-timeout.js +19 -16
- package/dist/fetch-with-timeout.js.map +1 -1
- package/dist/front-door.d.ts.map +1 -1
- package/dist/front-door.js +3 -1
- package/dist/front-door.js.map +1 -1
- package/dist/host-bindings.d.ts +6 -0
- package/dist/host-bindings.d.ts.map +1 -1
- package/dist/host-bindings.js +7 -4
- package/dist/host-bindings.js.map +1 -1
- package/dist/lib/bundle-check.d.ts.map +1 -1
- package/dist/lib/bundle-check.js +13 -5
- package/dist/lib/bundle-check.js.map +1 -1
- package/dist/local-daemon-owner.d.ts +28 -0
- package/dist/local-daemon-owner.d.ts.map +1 -0
- package/dist/local-daemon-owner.js +98 -0
- package/dist/local-daemon-owner.js.map +1 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +57 -14
- package/dist/mcp-server.js.map +1 -1
- package/dist/rig-handle.d.ts +18 -1
- package/dist/rig-handle.d.ts.map +1 -1
- package/dist/rig-handle.js +19 -2
- package/dist/rig-handle.js.map +1 -1
- package/package.json +1 -1
- package/tui/dist/config/config-model.js +1 -1
- package/tui/dist/config/config-model.js.map +1 -1
- package/tui/dist/connections/connections-model.d.ts +0 -5
- package/tui/dist/connections/connections-model.d.ts.map +1 -1
- package/tui/dist/connections/connections-model.js +1 -1
- package/tui/dist/connections/connections-model.js.map +1 -1
- package/tui/dist/daemon-client.d.ts +2 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +23 -0
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +13 -1
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/live.d.ts +10 -1
- package/tui/dist/live.d.ts.map +1 -1
- package/tui/dist/live.js +56 -7
- package/tui/dist/live.js.map +1 -1
- package/tui/dist/main.js +35 -2
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +111 -7
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/types.d.ts +53 -0
- package/tui/dist/types.d.ts.map +1 -1
- package/tui/dist/version-skew.d.ts +24 -0
- package/tui/dist/version-skew.d.ts.map +1 -0
- package/tui/dist/version-skew.js +37 -0
- package/tui/dist/version-skew.js.map +1 -0
- package/daemon/dist/domain/provider/subscription-moves.d.ts +0 -77
- package/daemon/dist/domain/provider/subscription-moves.d.ts.map +0 -1
- package/daemon/dist/domain/provider/subscription-moves.js +0 -140
- package/daemon/dist/domain/provider/subscription-moves.js.map +0 -1
package/README.md
CHANGED
|
@@ -8,28 +8,74 @@ OpenRig is open-source software for building and running your own network of age
|
|
|
8
8
|
|
|
9
9
|
It's the open-source system behind my AI civilization experiments.
|
|
10
10
|
|
|
11
|
-
**Guide:** [Getting started](docs/reference/
|
|
11
|
+
**Guide:** [Getting started](docs/reference/quickstart.md) · **Stuck?** [Help](docs/reference/help.md) · **Questions:** [Q&A](https://github.com/mvschwarz/openrig/discussions/92) · **Updates and demos:** [@_feralmachine on X](https://x.com/_feralmachine)
|
|
12
12
|
|
|
13
13
|
## See it running
|
|
14
14
|
|
|
15
15
|

|
|
16
16
|
|
|
17
|
-
**Start here:** [the guided first-use path](docs/reference/
|
|
17
|
+
**Start here:** [the guided first-use path](docs/reference/quickstart.md): install, talk to the kernel operator, then choose a team for your first useful change.
|
|
18
18
|
|
|
19
19
|
Not setting this up today? Get the next walkthrough and occasional OpenRig updates → https://openrig.dev/follow
|
|
20
20
|
|
|
21
21
|
## Install and first run
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
**Let your coding agent set it up.** First check that `node --version` shows 22 or 24: the command below needs
|
|
24
|
+
Node.js and the `npx` that comes with it. Then, in your project folder, add OpenRig's `rigs` skill to the agent you
|
|
25
|
+
use:
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
```sh
|
|
28
|
+
# Claude Code
|
|
29
|
+
npx skills add https://github.com/mvschwarz/openrig/tree/v0.7.0/skills/rigs --skill rigs --agent claude-code
|
|
30
|
+
# Codex
|
|
31
|
+
npx skills add https://github.com/mvschwarz/openrig/tree/v0.7.0/skills/rigs --skill rigs --agent codex
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Then type `/rigs` in Claude Code, or `$rigs` in Codex, and say what you want built. The skill has your agent tell
|
|
35
|
+
you what it will run and change before it does, install OpenRig, open the OpenRig view and pass your goal to
|
|
36
|
+
OpenRig's operator.
|
|
37
|
+
|
|
38
|
+
You need Node.js 22 or 24 (22 on Apple silicon), tmux, macOS or Linux (WSL2 on Windows), and Claude Code or Codex
|
|
39
|
+
signed in. One provider is enough to start.
|
|
40
|
+
|
|
41
|
+
Already have OpenRig? Use the tag that matches `rig --version`, or upgrade first.
|
|
42
|
+
|
|
43
|
+
Prefer to type the commands yourself? [Install it yourself ↓](#install-it-yourself)
|
|
44
|
+
|
|
45
|
+
Requires Node.js 22 or 24 and tmux, on macOS or Linux, and one working Claude Code or Codex account: one is enough, since the kernel operator adapts the shipped `starter` team to whichever you have. On Linux, the distribution's own Node.js can be older (Ubuntu 24.04's is 18); install a supported version with [nvm](https://github.com/nvm-sh/nvm) (`nvm install 22`) or NodeSource. On a Mac with Apple silicon, use Node.js 22 ([compatibility history](docs/releases/v0.5.15.md#known-compatibility-limitation)). On a Mac where you aren't an administrator, or where Homebrew belongs to another account (its `brew install` is refused), install Node.js in your own home folder with [nvm](https://github.com/nvm-sh/nvm): run `touch ~/.zshrc` (a new Mac account has none, and nvm's installer only adds itself to a profile file that already exists), then nvm's install command, for nvm v0.40.8 `curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash` ([nvm's page](https://github.com/nvm-sh/nvm#install--update-script) has the newest), open a new terminal, and run `nvm install 22`. nvm itself needs no administrator password, and `npm install -g` then installs into your nvm folder. If nvm's installer says you need Apple's command line tools, run `xcode-select --install`, then its install command again. On Windows, use WSL2, the Windows route OpenRig supports; native Windows isn't supported. OpenRig's automated tests don't run on WSL2 yet; see [one user's working setup](docs/reference/getting-started.md#wsl2-a-reported-working-setup).
|
|
46
|
+
|
|
47
|
+
> **What OpenRig changes on your machine**
|
|
48
|
+
> - **Install:** `@openrig/cli` goes in globally with npm.
|
|
49
|
+
> - **Setup:** `rig setup` adds an OpenRig block to `~/.tmux.conf`. It can install tmux (with Homebrew on macOS), and
|
|
50
|
+
> Herdr unless you pass `--no-herdr`. Plain `rig setup`, which is what the one-command install runs, checks both
|
|
51
|
+
> Claude Code and Codex and may install a missing one; `rig setup --providers claude` (or `codex`) limits it to
|
|
52
|
+
> yours.
|
|
53
|
+
> - **Starting OpenRig, for the coding agent you use** (paths are the usual defaults):
|
|
54
|
+
> - Codex: hooks and trust in `~/.codex/config.toml`.
|
|
55
|
+
> - Claude Code: workspace trust in `~/.claude.json`, and activity hooks in the project's
|
|
56
|
+
> `.claude/settings.local.json`, plus a status line unless you already have your own.
|
|
57
|
+
> - Discovery skills go in `~/.claude/skills` and `~/.agents/skills`.
|
|
58
|
+
> - **Starting a team in your project:** adds managed guidance to `AGENTS.md` or `CLAUDE.md`, plus the team's skills
|
|
59
|
+
> and plugins.
|
|
60
|
+
> - **Permissions:** by default, OpenRig's own kernel gets broader permissions than a project team gets by default.
|
|
61
|
+
> On Codex that's full access with no approval prompts (`-s danger-full-access -a never`). On Claude Code, its file
|
|
62
|
+
> tools, web fetches and operational commands, including reads under your home folder, run without asking. A
|
|
63
|
+
> permission policy, per-agent choice or Codex profile changes that. What your team can do depends on the team you
|
|
64
|
+
> choose and your settings; `workshop`, for example, ships with broad access.
|
|
65
|
+
> - **Backups:** OpenRig doesn't guarantee it can preserve or roll back these files, so back them up first.
|
|
66
|
+
>
|
|
67
|
+
> [Everything OpenRig writes, and why →](https://github.com/mvschwarz/openrig#what-openrig-changes-on-your-machine)
|
|
68
|
+
|
|
69
|
+
### Install it yourself
|
|
70
|
+
|
|
71
|
+
This runs OpenRig's install script from the `v0.7.0` release. It checks Node.js and npm, installs the latest published `@openrig/cli` with `npm install -g`, runs the Node.js and SQLite check, then runs `rig setup --dry-run` and `rig setup`. The first line prints that plan and changes nothing:
|
|
26
72
|
|
|
27
73
|
```bash
|
|
28
|
-
curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.
|
|
29
|
-
curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.
|
|
74
|
+
curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.7.0/scripts/install.sh | sh -s -- --dry-run
|
|
75
|
+
curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.7.0/scripts/install.sh | sh
|
|
30
76
|
```
|
|
31
77
|
|
|
32
|
-
If
|
|
78
|
+
If a provider isn't signed in yet, the last step reports `FAILED [4/4]`, and `rig setup` lists the sign-in under "Some steps need attention". If the only remaining failures are provider sign-ins, the install steps finished; sign in to each selected provider as below and continue.
|
|
33
79
|
|
|
34
80
|
**Or step by step:**
|
|
35
81
|
|
|
@@ -60,10 +106,11 @@ to an unused provider.
|
|
|
60
106
|
### Your agent opens OpenRig for you
|
|
61
107
|
|
|
62
108
|
After installing, your agent opens the OpenRig TUI and the operator for you. To get back to them later, ask your
|
|
63
|
-
agent for OpenRig or your agents in any words. After checking the selected login, it
|
|
109
|
+
agent for OpenRig or your agents in any words. After checking the selected login, it starts the daemon if it's stopped
|
|
110
|
+
and opens the view:
|
|
64
111
|
|
|
65
112
|
```sh
|
|
66
|
-
rig daemon start
|
|
113
|
+
rig daemon start
|
|
67
114
|
rig terminal open saved:kernel --window
|
|
68
115
|
```
|
|
69
116
|
|
|
@@ -342,6 +389,8 @@ For cmux, use `--provider cmux`. In the TUI, a rig's detail view has an `Open te
|
|
|
342
389
|
|
|
343
390
|
## Key Concepts
|
|
344
391
|
|
|
392
|
+
The first words you meet, in plain language: [What these words mean](docs/reference/quickstart.md#what-these-words-mean).
|
|
393
|
+
|
|
345
394
|
- **RigSpec**: Declarative multi-agent harness definition in YAML. Pods, members, edges, continuity policies, culture file.
|
|
346
395
|
- **AgentSpec**: Reusable agent blueprint with skills, guidance, hooks, profiles, and startup contracts.
|
|
347
396
|
- **Seat**: A stable role and address in a rig, such as `dev-build@starter`. The conversation occupying it can change while its identity and authored context remain.
|
|
@@ -41,14 +41,21 @@ This plugin ships dual-manifest packaging — both `.claude-plugin/` and `.codex
|
|
|
41
41
|
`CLAUDE_PROJECT_DIR` doesn't follow a `cd`. A Claude started in the seat's own project folder is the same project and
|
|
42
42
|
still acts as the seat. A seat launched before this change has no `OPENRIG_SEAT_PROJECT_DIR` until its next launch, restore
|
|
43
43
|
or handover, and behaves as before until then.
|
|
44
|
-
- **Codex CLI** —
|
|
45
|
-
the
|
|
44
|
+
- **Codex CLI** — OpenRig installs the plugin automatically when a Codex seat selects it and hooks are enabled.
|
|
45
|
+
On the first installation, it trusts only the six exact shipped hook definitions, after checking installed hook files
|
|
46
|
+
and scripts against the daemon's packaged copy. Existing plugin disables and hook choices remain in place across
|
|
47
|
+
restart and upgrade. An existing untrusted plugin stays under native review: Codex does not persist "continue without
|
|
48
|
+
trusting", so an absent trust record on an existing installation is not treated as permission.
|
|
49
|
+
- **One activity producer:** the four managed inline hooks report Codex activity; the plugin's activity entries are
|
|
50
|
+
no-ops. The plugin supplies refocus and skills. Disabling an inline activity hook is not bypassed by the plugin.
|
|
51
|
+
- **Seat scope:** the commands require both `OPENRIG_SEAT_PROJECT_DIR` and the executable `OPENRIG_NODE`. Personal and
|
|
52
|
+
unselected sessions are no-ops. A nested Codex inheriting those seat variables still acts as that seat.
|
|
46
53
|
|
|
47
54
|
Generated Claude settings commands for the activity relay and context collector use the daemon's absolute Node
|
|
48
55
|
executable when its name is recognized (`node` or `node.exe`); other names keep the legacy bare `node` command and
|
|
49
56
|
its PATH requirement. Pinned commands do not require Node on the Claude process's inherited PATH. The executable must
|
|
50
|
-
remain installed; removing or moving it requires normal command refresh from a healthy runtime. This does not change the
|
|
51
|
-
manifest commands, which still use `node`, or prove that an already-running Claude reloaded changed settings.
|
|
57
|
+
remain installed; removing or moving it requires normal command refresh from a healthy runtime. This does not change the Claude plugin
|
|
58
|
+
manifest's commands, which still use `node` (the Codex manifest's run `$OPENRIG_NODE`, above), or prove that an already-running Claude reloaded changed settings.
|
|
52
59
|
|
|
53
60
|
One skill targets Claude Code's compaction behavior specifically:
|
|
54
61
|
- `claude-compaction-restore` — used to rebuild a Claude Code agent's working mental model after `/compact`, from JSONL transcripts and touched files
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"hooks": [
|
|
6
6
|
{
|
|
7
7
|
"type": "command",
|
|
8
|
-
"command": "
|
|
8
|
+
"command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\" --from-plugin",
|
|
9
9
|
"timeout": 5
|
|
10
10
|
}
|
|
11
11
|
]
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"hooks": [
|
|
17
17
|
{
|
|
18
18
|
"type": "command",
|
|
19
|
-
"command": "
|
|
19
|
+
"command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\" --from-plugin",
|
|
20
20
|
"timeout": 5
|
|
21
21
|
}
|
|
22
22
|
]
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"hooks": [
|
|
26
26
|
{
|
|
27
27
|
"type": "command",
|
|
28
|
-
"command": "
|
|
28
|
+
"command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/refocus.cjs\" --runtime codex",
|
|
29
29
|
"timeout": 60
|
|
30
30
|
}
|
|
31
31
|
]
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"hooks": [
|
|
37
37
|
{
|
|
38
38
|
"type": "command",
|
|
39
|
-
"command": "
|
|
39
|
+
"command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\" --from-plugin",
|
|
40
40
|
"timeout": 5
|
|
41
41
|
}
|
|
42
42
|
]
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"hooks": [
|
|
48
48
|
{
|
|
49
49
|
"type": "command",
|
|
50
|
-
"command": "
|
|
50
|
+
"command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/refocus.cjs\" --runtime codex",
|
|
51
51
|
"timeout": 60
|
|
52
52
|
}
|
|
53
53
|
]
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"hooks": [
|
|
59
59
|
{
|
|
60
60
|
"type": "command",
|
|
61
|
-
"command": "
|
|
61
|
+
"command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\" --from-plugin",
|
|
62
62
|
"timeout": 5
|
|
63
63
|
}
|
|
64
64
|
]
|
|
@@ -46,7 +46,9 @@ function firstString(...values) {
|
|
|
46
46
|
return null;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
// The route this run reports by, so the daemon can count one event once per route: "plugin" for the plugin's hook
|
|
50
|
+
// (started with --from-plugin), "managed" for the settings or managed hook copy.
|
|
51
|
+
function buildOpenRigPayload(providerPayload, env = process.env, now = () => new Date(), argv = process.argv) {
|
|
50
52
|
const sessionName = firstString(env.OPENRIG_SESSION_NAME, env.RIGGED_SESSION_NAME);
|
|
51
53
|
const nodeId = firstString(env.OPENRIG_NODE_ID, env.RIGGED_NODE_ID);
|
|
52
54
|
const runtime = firstString(env.OPENRIG_RUNTIME, env.RIGGED_RUNTIME);
|
|
@@ -80,6 +82,7 @@ function buildOpenRigPayload(providerPayload, env = process.env, now = () => new
|
|
|
80
82
|
subtype,
|
|
81
83
|
turnId: firstString(providerPayload.turn_id, providerPayload.turnId),
|
|
82
84
|
occurredAt: now().toISOString(),
|
|
85
|
+
relayRoute: argv.includes("--from-plugin") ? "plugin" : "managed",
|
|
83
86
|
};
|
|
84
87
|
}
|
|
85
88
|
|
|
@@ -170,6 +173,10 @@ function buildSessionIdentityPayload(providerPayload, env = process.env, now = (
|
|
|
170
173
|
|
|
171
174
|
if ((!sessionName && !nodeId) || !runtime) return null;
|
|
172
175
|
|
|
176
|
+
// #1524 (a): whether the runtime sent transcript_path, and its raw value. Codex sends an explicit null for a
|
|
177
|
+
// thread it never persists; the daemon tells that apart from an absent key, an empty string or a malformed value.
|
|
178
|
+
const transcriptPathPresent = Object.prototype.hasOwnProperty.call(providerPayload, "transcript_path");
|
|
179
|
+
|
|
173
180
|
return {
|
|
174
181
|
eventFamily: "session_identity",
|
|
175
182
|
sessionName,
|
|
@@ -182,6 +189,8 @@ function buildSessionIdentityPayload(providerPayload, env = process.env, now = (
|
|
|
182
189
|
// The daemon finds the Claude that ran this hook from its parent chain.
|
|
183
190
|
hookPid: process.pid,
|
|
184
191
|
sessionId,
|
|
192
|
+
transcriptPathPresent,
|
|
193
|
+
...(transcriptPathPresent ? { transcriptPath: providerPayload.transcript_path } : {}),
|
|
185
194
|
occurredAt: now().toISOString(),
|
|
186
195
|
};
|
|
187
196
|
}
|
|
@@ -268,6 +277,9 @@ function settingsRelayReports(hookEvent, providerPayload, env = process.env) {
|
|
|
268
277
|
function pluginRunIsRedundant(providerPayload, argv = process.argv, env = process.env) {
|
|
269
278
|
if (!argv.includes("--from-plugin")) return false;
|
|
270
279
|
const hookEvent = firstString(providerPayload.hookEvent, providerPayload.hookEventName, providerPayload.hook_event_name, providerPayload.event, providerPayload.eventName);
|
|
280
|
+
// Codex activity has one producer: OpenRig's managed inline hooks. The plugin supplies refocus and skills, but its
|
|
281
|
+
// activity entries are no-ops. Do not infer merged native hook state here or bypass a person's inline-hook disable.
|
|
282
|
+
if (firstString(env.OPENRIG_RUNTIME, env.RIGGED_RUNTIME) === "codex") return true;
|
|
271
283
|
return settingsRelayReports(hookEvent, providerPayload, env);
|
|
272
284
|
}
|
|
273
285
|
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Codex's hook trust identity: the key and hash Codex records for a hook it has trusted.
|
|
4
|
+
//
|
|
5
|
+
// The recipe reproduces Codex's (codex-rs hooks/src/engine/discovery.rs hook_hash at rust-v0.163.0): the normalized
|
|
6
|
+
// identity { event_name: <snake_case label>, matcher?, hooks: [<normalized handler>] }, with absent fields dropped, keys
|
|
7
|
+
// sorted recursively, compact JSON, then "sha256:" + hex. The daemon's trust writer for its own managed activity hooks uses
|
|
8
|
+
// it (codex-runtime-adapter.ts, computeCodexHookTrust). It needs no packages.
|
|
9
|
+
|
|
10
|
+
const crypto = require("node:crypto");
|
|
11
|
+
|
|
12
|
+
const EVENT_LABELS = {
|
|
13
|
+
SessionStart: "session_start",
|
|
14
|
+
UserPromptSubmit: "user_prompt_submit",
|
|
15
|
+
Stop: "stop",
|
|
16
|
+
PostCompact: "post_compact",
|
|
17
|
+
PermissionRequest: "permission_request",
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
function sortKeys(value) {
|
|
21
|
+
if (Array.isArray(value)) return value.map(sortKeys);
|
|
22
|
+
if (value !== null && typeof value === "object") {
|
|
23
|
+
const out = {};
|
|
24
|
+
for (const key of Object.keys(value).sort()) out[key] = sortKeys(value[key]);
|
|
25
|
+
return out;
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** Codex's trust hash for one command handler, from every field Codex folds into it. */
|
|
31
|
+
function codexHookHash(eventLabel, handler) {
|
|
32
|
+
const normalized = { type: "command", command: handler.command, timeout: handler.timeoutSec, async: handler.async === true };
|
|
33
|
+
if (handler.statusMessage != null) normalized.statusMessage = handler.statusMessage;
|
|
34
|
+
if (handler.additionalContextLimit != null) normalized.additionalContextLimit = handler.additionalContextLimit;
|
|
35
|
+
const identity = { event_name: eventLabel, hooks: [normalized] };
|
|
36
|
+
if (handler.matcher != null) identity.matcher = handler.matcher;
|
|
37
|
+
const hex = crypto.createHash("sha256").update(JSON.stringify(sortKeys(identity)), "utf8").digest("hex");
|
|
38
|
+
return `sha256:${hex}`;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** Codex's persisted trust key and hash for one hook, at its position in the config layer. */
|
|
42
|
+
function computeCodexHookTrust(event, input) {
|
|
43
|
+
const label = EVENT_LABELS[event];
|
|
44
|
+
if (!label) throw new Error(`no Codex hook label for ${event}`);
|
|
45
|
+
const key = `${input.keySource}:${label}:${input.groupIndex ?? 0}:${input.handlerIndex ?? 0}`;
|
|
46
|
+
return { key, hash: codexHookHash(label, input) };
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
module.exports = { EVENT_LABELS, codexHookHash, computeCodexHookTrust };
|
|
@@ -17,6 +17,8 @@ const DEFAULT_THRESHOLD = 2_600_000;
|
|
|
17
17
|
const FALSE_VALUES = new Set(["0", "false", "off", "no"]);
|
|
18
18
|
// The issue report after a failed attempt gets this long once the attempt's lookups are done.
|
|
19
19
|
const REPORT_MS = 1_500;
|
|
20
|
+
// A failed attempt's reason, kept for the retry's label. The attempt's own TRACE GAP line keeps the full text.
|
|
21
|
+
const PENDING_FAILURE_MAX = 300;
|
|
20
22
|
// The hook's time budget. Both registrations allow this hook 60 s (hooks/claude.json, hooks/codex.json). With no budget
|
|
21
23
|
// selected, every lookup keeps its fixed 2 s cap exactly as before. OPENRIG_REFOCUS_BUDGET_MS selects a longer one, up
|
|
22
24
|
// to 52 s: each lookup's cap then scales with it and every lookup is also clipped to what's left of it, so a slow lookup
|
|
@@ -286,15 +288,17 @@ function renderTrace() {
|
|
|
286
288
|
timeout,
|
|
287
289
|
maxBuffer: 16 * 1024 * 1024,
|
|
288
290
|
});
|
|
289
|
-
const reason = result.error?.message || result.stderr?.trim() || `trace exited ${result.status ?? "without a status"}
|
|
291
|
+
const reason = String(result.error?.message || result.stderr?.trim() || `trace exited ${result.status ?? "without a status"}`)
|
|
292
|
+
.replace(/\s+/g, " ").trim();
|
|
290
293
|
const failed = Boolean(result.error) || result.status !== 0 || !result.stdout?.trim();
|
|
291
294
|
const trace = [
|
|
292
|
-
...(failed ? [`TRACE GAP — ${
|
|
295
|
+
...(failed ? [`TRACE GAP — ${reason}`] : []),
|
|
293
296
|
result.stdout?.trim(),
|
|
294
297
|
].filter(Boolean).join("\n");
|
|
295
298
|
return {
|
|
296
299
|
text: [trace, role].filter(Boolean).join("\n\n"),
|
|
297
300
|
failed,
|
|
301
|
+
failure: failed ? `trace gap: ${reason}` : null,
|
|
298
302
|
};
|
|
299
303
|
}
|
|
300
304
|
|
|
@@ -334,8 +338,14 @@ function runsForThisSeatsProject(env = process.env) {
|
|
|
334
338
|
const rawPrompt = typeof input.prompt === "string" ? input.prompt.trim() : "";
|
|
335
339
|
// Claude can wrap a complete submitted message as pasted content. Unwrap only
|
|
336
340
|
// that envelope; a peer quoting a restore request is still an ordinary prompt.
|
|
337
|
-
|
|
338
|
-
|
|
341
|
+
// Check the delimiters separately: overlapping whitespace/wildcard matches can
|
|
342
|
+
// backtrack excessively on an incomplete paste or text after the closing tag.
|
|
343
|
+
const opening = harness === "claude" ? rawPrompt.match(/^<pasted_content id="([^"]+)">/) : null;
|
|
344
|
+
const closing = opening ? `</pasted_content id="${opening[1]}">` : "";
|
|
345
|
+
const prompt = opening
|
|
346
|
+
&& rawPrompt.length >= opening[0].length + closing.length
|
|
347
|
+
&& rawPrompt.endsWith(closing)
|
|
348
|
+
? rawPrompt.slice(opening[0].length, -closing.length).trim()
|
|
339
349
|
: rawPrompt;
|
|
340
350
|
if (event === "UserPromptSubmit" && prompt.startsWith("OpenRig post-compaction turn boundary.")) process.exit(0);
|
|
341
351
|
|
|
@@ -429,6 +439,7 @@ function runsForThisSeatsProject(env = process.env) {
|
|
|
429
439
|
if (state.pendingOn !== "PostCompact") {
|
|
430
440
|
delete state.pendingOn;
|
|
431
441
|
delete state.pendingAt;
|
|
442
|
+
delete state.pendingFailure;
|
|
432
443
|
}
|
|
433
444
|
state.lastReset = { at: new Date().toISOString(), fromBytes: Number(state.lastBytes || 0), toBytes: size };
|
|
434
445
|
state.lastBytes = size;
|
|
@@ -463,6 +474,8 @@ function runsForThisSeatsProject(env = process.env) {
|
|
|
463
474
|
if (state.managedRestorePending) state.managedRestorePendingAt = new Date().toISOString();
|
|
464
475
|
else delete state.managedRestorePendingAt;
|
|
465
476
|
}
|
|
477
|
+
// A new compaction is a fresh obligation, not a retry of the refocus before it.
|
|
478
|
+
if (event === "PostCompact") delete state.pendingFailure;
|
|
466
479
|
if (event === "PostCompact" || !state.pendingOn) state.pendingOn = event;
|
|
467
480
|
state.pendingAt ||= new Date().toISOString();
|
|
468
481
|
persist();
|
|
@@ -487,10 +500,13 @@ function runsForThisSeatsProject(env = process.env) {
|
|
|
487
500
|
const trace = rendered.text;
|
|
488
501
|
const configured = readConfiguredContent(home);
|
|
489
502
|
const failed = rendered.failed || Boolean(configured.failure);
|
|
503
|
+
// A post-compaction refocus still pending after a failed attempt is a retry of it, not a second compaction.
|
|
490
504
|
const why = onDemand
|
|
491
505
|
? "on demand"
|
|
492
506
|
: state.pendingOn === "PostCompact"
|
|
493
|
-
?
|
|
507
|
+
? state.pendingFailure
|
|
508
|
+
? `retrying the post-compaction refocus; the last attempt failed: ${state.pendingFailure}`
|
|
509
|
+
: "just compacted — your picture is lossy"
|
|
494
510
|
: `${Math.round(grown / 1e6 * 10) / 10}MB of work since your last refocus`;
|
|
495
511
|
|
|
496
512
|
const body = configured.failure
|
|
@@ -541,6 +557,10 @@ function runsForThisSeatsProject(env = process.env) {
|
|
|
541
557
|
if (failed || error) {
|
|
542
558
|
state.pendingOn ||= event;
|
|
543
559
|
state.pendingAt ||= new Date().toISOString();
|
|
560
|
+
const failure = rendered.failure
|
|
561
|
+
|| (configured.failure ? `content ref ${configured.contentRef}: ${configured.failure}` : null)
|
|
562
|
+
|| `the refocus could not be written: ${String(error?.message ?? error).replace(/\s+/g, " ").trim()}`;
|
|
563
|
+
state.pendingFailure = failure.length > PENDING_FAILURE_MAX ? `${failure.slice(0, PENDING_FAILURE_MAX - 1)}…` : failure;
|
|
544
564
|
persist();
|
|
545
565
|
return;
|
|
546
566
|
}
|
|
@@ -549,6 +569,7 @@ function runsForThisSeatsProject(env = process.env) {
|
|
|
549
569
|
state.firedOn = event;
|
|
550
570
|
delete state.pendingOn;
|
|
551
571
|
delete state.pendingAt;
|
|
572
|
+
delete state.pendingFailure;
|
|
552
573
|
persist();
|
|
553
574
|
});
|
|
554
575
|
})();
|
|
@@ -221,12 +221,19 @@ The audit message asks for a read-depth table and tells you not to conserve toke
|
|
|
221
221
|
|
|
222
222
|
The next restore map links this note, which keeps the chain unbroken.
|
|
223
223
|
|
|
224
|
+
## Then resume
|
|
225
|
+
|
|
226
|
+
Resume the outcome selected by the user's current instructions, standing duties and assigned work. Use existing
|
|
227
|
+
task records, decisions and your recap to recover the next useful action, remaining constraints and evidence
|
|
228
|
+
already earned. Check uncertain effects before replaying work. Available skills and historical suggestions do not
|
|
229
|
+
by themselves widen scope or create required stages. Use authorized skills, subagents, peer help and useful tests
|
|
230
|
+
within your remit without another permission request. Route a missing decision to its existing owner and continue
|
|
231
|
+
unaffected work.
|
|
232
|
+
|
|
224
233
|
## Guardrails
|
|
225
234
|
|
|
226
235
|
- Compaction is survival, not housekeeping. Compact only when a seat is genuinely near its limit, never to
|
|
227
236
|
"lean" a seat or prepare a starter image; a compacted seat can sound confident while missing the context it needs.
|
|
228
|
-
- Continue from the map and the files, not from the summary's "next step" alone: a hold placed after the
|
|
229
|
-
summary was written still binds.
|
|
230
237
|
- Do not launch a fresh session in place of restoring.
|
|
231
238
|
- An honest `PARTIAL` with its reason is a correct outcome. Claiming coverage you did not reach is the
|
|
232
239
|
failure.
|
|
@@ -242,8 +242,9 @@ If you're booting into a new seat in an OpenRig rig:
|
|
|
242
242
|
4. **Check what skills you have** — list `.claude/skills/` or
|
|
243
243
|
`.agents/skills/` in your cwd. Each skill has a frontmatter description
|
|
244
244
|
that tells you when to reach for it.
|
|
245
|
-
5. **Check your peers** — `rig
|
|
246
|
-
|
|
245
|
+
5. **Check your peers** — `rig ps --nodes` and the queue first (who is up,
|
|
246
|
+
who holds what). Capture a peer (`rig capture <peer-session>`) only when
|
|
247
|
+
you actually need to see its screen.
|
|
247
248
|
6. **Check the transcripts** if you're returning to an in-flight workstream
|
|
248
249
|
— `rig transcript <session> --tail 100` for recent context.
|
|
249
250
|
7. **Ask `rig ask <rig> "<question>"`** if you need cross-cutting evidence
|
|
@@ -5,6 +5,8 @@ metadata:
|
|
|
5
5
|
cli_surfaces_referenced:
|
|
6
6
|
- gateway human list
|
|
7
7
|
- gateway human show
|
|
8
|
+
- gateway human mode room
|
|
9
|
+
- gateway human mode decide
|
|
8
10
|
- queue create
|
|
9
11
|
- queue transitions
|
|
10
12
|
- queue block
|
|
@@ -69,6 +71,28 @@ rig queue create --destination <entityId>@external \
|
|
|
69
71
|
--evidence-ref <durable-evidence> --verify --json
|
|
70
72
|
```
|
|
71
73
|
|
|
74
|
+
Before asking a **decision**, check whether the person has a mode on with a
|
|
75
|
+
decision room: what they said the team may decide for them meanwhile.
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
rig gateway human mode room <entityId>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
If it names a room and your decision is plainly inside their words (and none of
|
|
82
|
+
their exclusions), decide instead of waiting. Create the ask as above, then
|
|
83
|
+
record your choice on it straight away:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
rig gateway human mode decide <qitem-id> --application <applicationId> \
|
|
87
|
+
--choose <question>=<option> --reason "<why>" --reversible # or --irreversible
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
It's recorded as decided on their behalf, never as their answer, the ask
|
|
91
|
+
closes, and it's in their account when they're back. Say honestly whether it
|
|
92
|
+
can be undone. A permission prompt or an approval is never decided this way.
|
|
93
|
+
With no room, a room that doesn't plainly cover it, or any doubt, ask and wait;
|
|
94
|
+
a recommended option is not a decision.
|
|
95
|
+
|
|
72
96
|
An optional `--human-detail-file <path>` supplies one coherent supplemental
|
|
73
97
|
reply in the same thread. Announce its purpose in the brief; the product also
|
|
74
98
|
marks that a detail reply follows. The primary must already contain the complete
|
|
@@ -91,7 +91,7 @@ These ship in the OpenRig repo and reach a seat when its profile selects them. T
|
|
|
91
91
|
Pod handbooks (load when you're in that pod):
|
|
92
92
|
- **orchestration-team** — you're orchestrating a rig: dispatching, monitoring, keeping the loop moving.
|
|
93
93
|
- **development-team** — you're on the dev pod: building and shipping product changes.
|
|
94
|
-
- **review-team** — you're reviewing: fresh scrutiny, anti-slop,
|
|
94
|
+
- **review-team** — you're reviewing: fresh scrutiny, anti-slop, grounded findings.
|
|
95
95
|
- **oversight-team** — you're in an oversight pod: monitor boundaries and route findings without taking over the work.
|
|
96
96
|
|
|
97
97
|
Product-management craft (load when shaping/reviewing work):
|
|
@@ -106,7 +106,7 @@ Product-management craft (load when shaping/reviewing work):
|
|
|
106
106
|
### Vendored craft — load when you're coding (ships with upstream provenance)
|
|
107
107
|
General engineering skills OpenRig ships as vendored copies. Open when the task matches; they carry "modified by OpenRig" provenance.
|
|
108
108
|
|
|
109
|
-
- **verification-before-completion** — about to claim done / passing / fixed:
|
|
109
|
+
- **verification-before-completion** — about to claim done / passing / fixed: have evidence that applies to the candidate you name first.
|
|
110
110
|
- **systematic-debugging** — debugging: find the root cause before the fix.
|
|
111
111
|
- **agent-browser** — driving a browser (screenshot / screencast) from an agent.
|
|
112
112
|
- **frontend-design** — designing frontend / UI.
|
|
@@ -90,6 +90,23 @@ rig queue handoff <qitem-id> \
|
|
|
90
90
|
--body-file /tmp/import-report-handoff.md
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
+
### After a queue write — use the response; read back only when it doesn't show what you need
|
|
94
|
+
|
|
95
|
+
A queue write (`create`, `claim`, `update`, `handoff`, `handoff-and-complete`) answers with the row it wrote; a
|
|
96
|
+
handoff answers with the closed row and its successor. When that answer shows what you need to establish, use it.
|
|
97
|
+
Read back (`rig queue show <id> --full --json`, or `rig queue transitions <id>`) when it doesn't, for example:
|
|
98
|
+
|
|
99
|
+
- the outcome was INDETERMINATE (a transport failure, or a 502 `remote_queue_write_failed`), or the write warned
|
|
100
|
+
`qitem_body_not_saved` (an existing row came back). Reconcile by the original ID before any retry;
|
|
101
|
+
- the output was compact or truncated and the field you need isn't in it (the compact receipt shows `bodyBytes`, not
|
|
102
|
+
the body, and its footer names what it left out);
|
|
103
|
+
- you need a transition note, a closure or blocker detail, or a successor that the output you saw omits;
|
|
104
|
+
- you need evidence from downstream of the write: the recipient's wake (`create --verify` waits for it), or its
|
|
105
|
+
pickup or claim (a later read);
|
|
106
|
+
- your team's custody rule asks for a separate read-back.
|
|
107
|
+
|
|
108
|
+
Don't read back only to see again a field the response already showed you.
|
|
109
|
+
|
|
93
110
|
### §1b doctrine — turn ends by passing the ball
|
|
94
111
|
|
|
95
112
|
**A turn ends by passing the ball, never by going idle holding the slice waiting
|
|
@@ -384,11 +401,19 @@ rig reconcile-session <session>
|
|
|
384
401
|
rig reconcile-session <session> --rig <rigId> --node <logicalId>
|
|
385
402
|
rig reconcile-session <session> --no-launch
|
|
386
403
|
rig reconcile-session <session> --json
|
|
404
|
+
rig reconcile-session <session> --repair-missing-pane --no-launch
|
|
387
405
|
```
|
|
388
406
|
|
|
389
|
-
This is a no-launch, no-input adopt
|
|
390
|
-
|
|
391
|
-
|
|
407
|
+
This is a no-launch, no-input adopt: it records a new claimed session row for
|
|
408
|
+
the seat (any running row is superseded); it re-captures the resume token if
|
|
409
|
+
it can, and conversation continuity stays unverified. `--rig`/`--node`
|
|
410
|
+
disambiguate when the canonical session name does not uniquely resolve.
|
|
411
|
+
`--no-launch` is accepted for explicitness.
|
|
412
|
+
|
|
413
|
+
`--repair-missing-pane --no-launch` is different: for a running launched seat
|
|
414
|
+
whose tmux pane was never recorded, it fills in the pane and keeps the
|
|
415
|
+
session, resume token and generation. It never adopts. Both forms refuse
|
|
416
|
+
while the seat's typing protection is on.
|
|
392
417
|
|
|
393
418
|
### Five-term restore status vocabulary
|
|
394
419
|
|
|
@@ -948,12 +973,7 @@ rig auth seats … --runtime codex # seat -> profile registry (metadata
|
|
|
948
973
|
|
|
949
974
|
### Manage subscriptions across a fleet (when the person asks you to)
|
|
950
975
|
|
|
951
|
-
**This applies only when
|
|
952
|
-
- the daemon's `provider.subscription_moves` setting is on. It's off by default; the person turns it on with
|
|
953
|
-
`rig config set provider.subscription_moves true`;
|
|
954
|
-
- the person has asked you to manage their subscriptions.
|
|
955
|
-
|
|
956
|
-
Otherwise, don't take this job on. Installing or upgrading OpenRig appoints no agent, launches no bundle and starts no
|
|
976
|
+
**This applies only when the person has asked you to manage their subscriptions.** Otherwise, don't take this job on. Installing or upgrading OpenRig appoints no agent, launches no bundle and starts no
|
|
957
977
|
rotation.
|
|
958
978
|
|
|
959
979
|
When a person runs several Claude and Codex subscriptions across machines, the fleet studio bundle's one agent is meant
|
|
@@ -961,19 +981,19 @@ to keep work running, through the Fleet app. Until that bundle is available, the
|
|
|
961
981
|
subscriptions can use this section. If that's you, you decide which subscription or home moves, and when. You decide
|
|
962
982
|
from:
|
|
963
983
|
- the usage and assignment readings, and their freshness;
|
|
964
|
-
-
|
|
984
|
+
- your earlier move reports;
|
|
965
985
|
- the person's standing preferences.
|
|
966
986
|
|
|
967
987
|
You say why, and you see the outcome through. OpenRig gives you the facts and the tools; it never decides for you,
|
|
968
988
|
and there's no threshold to obey.
|
|
969
989
|
|
|
970
990
|
**Who decides:**
|
|
971
|
-
- **The person's operator agent** can ask you for a move, or
|
|
991
|
+
- **The person's operator agent** can ask you for a move, or ask what you've moved. It doesn't make competing moves of
|
|
972
992
|
its own.
|
|
973
993
|
- **One agent manages subscriptions:** the one the person asked, or the fleet studio's agent once that bundle is
|
|
974
994
|
available. There's no other fleet-manager role and no automatic manager. Use the commands below directly; no extra
|
|
975
995
|
hand-off is needed.
|
|
976
|
-
- **The Observatory is optional:** it can show
|
|
996
|
+
- **The Observatory is optional:** it can show readings, but you don't need it to rotate.
|
|
977
997
|
|
|
978
998
|
**The unit is a Codex home, with every seat on it.** Moving some seats on a shared home to a different account, and
|
|
979
999
|
moving Claude seats, aren't supported moves yet: say so instead of improvising.
|
|
@@ -1005,8 +1025,7 @@ moving Claude seats, aren't supported moves yet: say so instead of improvising.
|
|
|
1005
1025
|
--expect-account <the target's Account line>`. `--verify` only checks; it never restarts. Only that check
|
|
1006
1026
|
reports `moved`, and anything less is unconfirmed.
|
|
1007
1027
|
- **A slow reply isn't a failure:** never restart a seat a second time. Follow up at your next look.
|
|
1008
|
-
5. **
|
|
1009
|
-
(`--help` shows the shape):
|
|
1028
|
+
5. **Report every move, partial or unconfirmed included,** to whoever asked for it (a queue item to their seat):
|
|
1010
1029
|
- the home and machine;
|
|
1011
1030
|
- from and to, as labels;
|
|
1012
1031
|
- your reason;
|
|
@@ -1014,10 +1033,8 @@ moving Claude seats, aren't supported moves yet: say so instead of improvising.
|
|
|
1014
1033
|
- each seat's result (`moved`, `unconfirmed` or `unknown`) with its evidence or what's missing;
|
|
1015
1034
|
- the peers, for example "not restarted; account unverified".
|
|
1016
1035
|
|
|
1017
|
-
A
|
|
1018
|
-
|
|
1019
|
-
earlier unconfirmed seat records a new move with `supersedes`. Asked "why did this
|
|
1020
|
-
seat move?", answer from `rig provider moves --seat <seat>`. Never put credentials in a record.
|
|
1036
|
+
A home switched with every seat left as a peer is still a move to report. A follow-up that confirms an earlier
|
|
1037
|
+
unconfirmed seat says which report it follows. Never put credentials in a report.
|
|
1021
1038
|
6. **When a sign-in is needed:**
|
|
1022
1039
|
- Ask the person once, durably: a queue item to their seat, naming the machine and the subscription.
|
|
1023
1040
|
- Move nothing onto that subscription until it's done.
|
|
@@ -1385,9 +1402,10 @@ or `rig add` (one member) when a seat needs an explicit model, a permission poli
|
|
|
1385
1402
|
different agent spec or role profile, per-seat runtime or cwd, or startup files.
|
|
1386
1403
|
|
|
1387
1404
|
Node-granular managed partial restore (v0.3.4+):
|
|
1388
|
-
- `rig launch <rig> <nodeRef>`
|
|
1389
|
-
rig's name or ID; a name shared by more than one active rig stops with the candidate IDs.
|
|
1390
|
-
|
|
1405
|
+
- `rig launch <rig> <nodeRef>` launches a single seat that isn't running, by logical id or node id, through orchestration.
|
|
1406
|
+
`<rig>` is the rig's name or ID; a name shared by more than one active rig stops with the candidate IDs. A seat that's
|
|
1407
|
+
already running is left as it is; for a fresh occupant there, use `rig seat launch <seat> --fresh --stop --reason <why>`.
|
|
1408
|
+
- `rig launch <rig> --seats <a,b,c>` launches a comma-separated subset of seats.
|
|
1391
1409
|
- `--hold-reason <text>` records a reason for holding non-target seats during the partial launch.
|
|
1392
1410
|
- This is a SUPPORTED managed path. The prior `pod_aware_launch_unsupported` dead-end is retired; pod-aware narrow launch now goes through this surface rather than ad-hoc rebuilds.
|
|
1393
1411
|
|