@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
|
@@ -1,20 +1,66 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
# OpenRig setup reference
|
|
2
|
+
|
|
3
|
+
This is the full reference for installing and running OpenRig, written for the agent doing the setup and for anyone
|
|
4
|
+
who wants the detail. The short version for people is [Getting started](quickstart.md).
|
|
5
|
+
|
|
6
|
+
## For the agent doing the setup
|
|
7
|
+
|
|
8
|
+
The `rigs` skill is the procedure: follow it in order. This page is what it looks things up in.
|
|
9
|
+
|
|
10
|
+
- **Done** means the person is talking to the operator in a visible OpenRig view. A healthy daemon, a started kernel
|
|
11
|
+
or an opened window isn't done on its own. If they'd rather talk later, the handoff is still pending: say so, and
|
|
12
|
+
leave them the exact command.
|
|
13
|
+
- **Read readiness; don't assume it:**
|
|
14
|
+
- **The kernel:** the `Kernel:` line in `rig status`, and `rig ps --nodes --rig kernel`.
|
|
15
|
+
- **A team:** `rig ps --nodes --rig <team>`.
|
|
16
|
+
- A missing or unknown signal isn't ready.
|
|
17
|
+
- `rig up` exiting 1 with `Status: partial` and `Startup attention` means a seat is waiting at a prompt. Answer it,
|
|
18
|
+
or ask the person to, then run the `rig seat continue <seat>` it names.
|
|
19
|
+
- **Prerequisites:** check the person's existing toolchain first (mise, nvm, Homebrew or the nodejs.org installer)
|
|
20
|
+
and the PATH. Use what's there. Don't change a shared Homebrew's ownership, and don't make a local workaround the
|
|
21
|
+
standard route. If Node.js is installed after your session started, check that new shells and the session's hooks
|
|
22
|
+
can find it. In one published-0.6.11 Mac run, OpenRig's Claude hooks reported `node: command not found` until the
|
|
23
|
+
PATH was fixed.
|
|
24
|
+
- **Ask once, then reuse the answer:** the provider (Claude Code, Codex or both), Herdr, Ghostty on macOS,
|
|
25
|
+
remembered command allowances, and the team.
|
|
26
|
+
- **Before changing their machine:** say what applies to their route, then wait for a yes. See
|
|
27
|
+
[what OpenRig changes on your machine](../../README.md#what-openrig-changes-on-your-machine).
|
|
28
|
+
- **When something stops:**
|
|
29
|
+
- [Incomplete setup and restart](#incomplete-setup-and-restart) maps what you see to the next action.
|
|
30
|
+
- [What can interrupt installation and the OpenRig view](#what-can-interrupt-installation-and-the-openrig-view)
|
|
31
|
+
covers the view.
|
|
32
|
+
- [Headless or SSH handoff](#headless-or-ssh-handoff) covers no-display cases.
|
|
33
|
+
- A timed-out command may still have taken effect. Read `rig ps` or `rig seat status <seat>` before you run it
|
|
34
|
+
again.
|
|
35
|
+
- **Don't:**
|
|
36
|
+
- relaunch a team to reopen its view;
|
|
37
|
+
- start another seat to clear a prompt;
|
|
38
|
+
- build the person's project yourself. Give the goal to the operator.
|
|
15
39
|
|
|
16
40
|
## Before you start
|
|
17
41
|
|
|
42
|
+
> **What OpenRig changes on your machine**
|
|
43
|
+
> - **Install:** `@openrig/cli` goes in globally with npm.
|
|
44
|
+
> - **Setup:** `rig setup` adds an OpenRig block to `~/.tmux.conf`. It can install tmux (with Homebrew on macOS), and
|
|
45
|
+
> Herdr unless you pass `--no-herdr`. Plain `rig setup`, which is what the one-command install runs, checks both
|
|
46
|
+
> Claude Code and Codex and may install a missing one; `rig setup --providers claude` (or `codex`) limits it to
|
|
47
|
+
> yours.
|
|
48
|
+
> - **Starting OpenRig, for the coding agent you use** (paths are the usual defaults):
|
|
49
|
+
> - Codex: hooks and trust in `~/.codex/config.toml`.
|
|
50
|
+
> - Claude Code: workspace trust in `~/.claude.json`, and activity hooks in the project's
|
|
51
|
+
> `.claude/settings.local.json`, plus a status line unless you already have your own.
|
|
52
|
+
> - Discovery skills go in `~/.claude/skills` and `~/.agents/skills`.
|
|
53
|
+
> - **Starting a team in your project:** adds managed guidance to `AGENTS.md` or `CLAUDE.md`, plus the team's skills
|
|
54
|
+
> and plugins.
|
|
55
|
+
> - **Permissions:** by default, OpenRig's own kernel gets broader permissions than a project team gets by default.
|
|
56
|
+
> On Codex that's full access with no approval prompts (`-s danger-full-access -a never`). On Claude Code, its file
|
|
57
|
+
> tools, web fetches and operational commands, including reads under your home folder, run without asking. A
|
|
58
|
+
> permission policy, per-agent choice or Codex profile changes that. What your team can do depends on the team you
|
|
59
|
+
> choose and your settings; `workshop`, for example, ships with broad access.
|
|
60
|
+
> - **Backups:** OpenRig doesn't guarantee it can preserve or roll back these files, so back them up first.
|
|
61
|
+
>
|
|
62
|
+
> [Everything OpenRig writes, and why →](https://github.com/mvschwarz/openrig#what-openrig-changes-on-your-machine)
|
|
63
|
+
|
|
18
64
|
You need Node.js 22 or 24 and tmux, on macOS or Linux, and one working Claude
|
|
19
65
|
Code or Codex account: one is enough, since the kernel operator adapts the
|
|
20
66
|
shipped `starter` team to whichever you have. On Linux, the distribution's own
|
|
@@ -26,12 +72,16 @@ you aren't an administrator, or where Homebrew belongs to another account (its
|
|
|
26
72
|
`brew install` is refused), install Node.js in your own home folder with
|
|
27
73
|
[nvm](https://github.com/nvm-sh/nvm): run `touch ~/.zshrc` (a new Mac account
|
|
28
74
|
has none, and nvm's installer only adds itself to a profile file that already
|
|
29
|
-
exists), then
|
|
30
|
-
`nvm
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
75
|
+
exists), then nvm's install command, for nvm v0.40.8
|
|
76
|
+
`curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash`
|
|
77
|
+
([nvm's page](https://github.com/nvm-sh/nvm#install--update-script) has the
|
|
78
|
+
newest), open a new terminal, and run `nvm install 22`. nvm itself needs no
|
|
79
|
+
administrator password, and `npm install -g` then installs into your nvm folder.
|
|
80
|
+
If nvm's installer says you need Apple's command line tools, run
|
|
81
|
+
`xcode-select --install`, then its install command again. Native Windows isn't
|
|
82
|
+
supported. On Windows, use WSL2: it's the Windows route
|
|
83
|
+
OpenRig supports, though OpenRig's automated tests don't run on it yet. One
|
|
84
|
+
user's [working setup](#wsl2-a-reported-working-setup) is below. Node 20 and
|
|
35
85
|
odd-numbered releases (23, 25 and so on) are not supported; Node 26 and later
|
|
36
86
|
even-numbered releases are untested.
|
|
37
87
|
|
|
@@ -131,20 +181,19 @@ You can also read [`skills/rigs/SKILL.md`](../../skills/rigs/SKILL.md) directly.
|
|
|
131
181
|
script will do and changes nothing:
|
|
132
182
|
|
|
133
183
|
```sh
|
|
134
|
-
curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.
|
|
184
|
+
curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.7.0/scripts/install.sh | sh -s -- --dry-run
|
|
135
185
|
```
|
|
136
186
|
|
|
137
187
|
The same command without `--dry-run`,
|
|
138
|
-
`curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.
|
|
188
|
+
`curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.7.0/scripts/install.sh | sh`, installs the
|
|
139
189
|
latest published `@openrig/cli` with `npm install -g`,
|
|
140
190
|
runs the Node.js and SQLite check, then `rig setup --dry-run` and `rig setup`. `rig setup` checks both Claude Code and
|
|
141
|
-
Codex and may install a missing one, as described below. A failed step
|
|
142
|
-
`FAILED [n/4] <command or check> (exit <code>)`.
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
install only what the selected providers need, go step by step instead:
|
|
191
|
+
Codex and may install a missing one, as described below. A failed step prints
|
|
192
|
+
`FAILED [n/4] <command or check> (exit <code>)`. Where a provider isn't signed in yet, step 4 ends that way and
|
|
193
|
+
`rig setup` lists each sign-in under "Some steps need attention". If the only remaining failures are provider
|
|
194
|
+
sign-ins, the install steps finished: sign in to each selected provider as below, then continue at
|
|
195
|
+
[Start the kernel](#start-the-kernel-and-check-its-state). To install only what the selected providers need, go step
|
|
196
|
+
by step instead:
|
|
148
197
|
|
|
149
198
|
### Choose your providers
|
|
150
199
|
|
|
@@ -174,6 +223,26 @@ writes an OpenRig-managed block (mouse on, a longer history) into `~/.tmux.conf`
|
|
|
174
223
|
It is optional for this selected-provider path, not a requirement to fix an unused
|
|
175
224
|
provider.
|
|
176
225
|
|
|
226
|
+
The block keeps `terminal.history_limit` rows of scrollback per pane (default
|
|
227
|
+
10000). To keep more, run `rig config set terminal.history_limit 50000`, then
|
|
228
|
+
`rig setup` again. A running tmux server keeps its old limit until it restarts
|
|
229
|
+
or you run `tmux source-file ~/.tmux.conf`; before tmux 3.7 that changes new
|
|
230
|
+
panes only.
|
|
231
|
+
|
|
232
|
+
New managed agents and handover successors on macOS/Linux start from the daemon's
|
|
233
|
+
selected launch environment and declared seat values, rather than stored tmux globals.
|
|
234
|
+
Values named by tmux's `update-environment` option, including its default SSH-agent
|
|
235
|
+
and display variables, come from the daemon's environment.
|
|
236
|
+
Normal shell startup and configured tmux shell commands still run. If your custom setup
|
|
237
|
+
intentionally supplies values through tmux's global environment, opt in with
|
|
238
|
+
`rig config set terminal.inherit_tmux_environment true`. Setup points out this option
|
|
239
|
+
when it detects custom tmux configuration; it never enables it automatically. The setting
|
|
240
|
+
applies to future launches and successors, not running agents or your personal tmux server.
|
|
241
|
+
If the scoped environment cannot be prepared, launch keeps its previous environment and
|
|
242
|
+
reports a warning in fresh launch results and the daemon log. For handovers, check
|
|
243
|
+
that log for this warning. This is not a promise that shell startup cannot add or override values.
|
|
244
|
+
|
|
245
|
+
|
|
177
246
|
## Start the kernel and check its state
|
|
178
247
|
|
|
179
248
|
With a working selected login, start the daemon if it is stopped, then read its
|
|
@@ -205,9 +274,51 @@ A missing or unknown readiness signal is not proof of readiness. Follow
|
|
|
205
274
|
startup or missing-seat problems.
|
|
206
275
|
|
|
207
276
|
`rig setup` itself does not start the daemon. Preserve a daemon and kernel that
|
|
208
|
-
already exist:
|
|
209
|
-
`OPENRIG_NO_KERNEL=1` skips automatic kernel startup
|
|
210
|
-
|
|
277
|
+
already exist: daemon startup does not boot a second kernel when one is managed,
|
|
278
|
+
and `OPENRIG_NO_KERNEL=1` (`--no-kernel`) skips automatic kernel startup,
|
|
279
|
+
including the restore below. If neither runtime is authenticated, kernel boot
|
|
280
|
+
reports `auth_blocked`.
|
|
281
|
+
|
|
282
|
+
Daemon startup restores one existing kernel by itself: a managed kernel whose
|
|
283
|
+
seats are all `detached` and still bound to their newest session, which is what
|
|
284
|
+
startup reconcile leaves when every kernel terminal is gone, for example after a
|
|
285
|
+
reboot. It does not detect a reboot as such. It uses the same restore as
|
|
286
|
+
`rig up kernel --existing`, and `rig status` reports it as `Kernel: booting`
|
|
287
|
+
until the seats are ready. A kernel stopped with `rig down kernel`, including
|
|
288
|
+
one whose seats were already detached, stays down on later starts. So do a kernel
|
|
289
|
+
with only some seats stopped and seats you unclaimed. Start one again with
|
|
290
|
+
`rig up kernel --existing`.
|
|
291
|
+
When the tmux server is gone, an explicit `rig down` of any rig can start an
|
|
292
|
+
empty server and probe again. It records the stop and clears eligible bindings
|
|
293
|
+
only after confirming the sessions are absent. This can leave an empty tmux
|
|
294
|
+
server running; it never launches an agent or provider session. Unreadable or
|
|
295
|
+
permission results and changed occupants leave the stop bookkeeping unchanged.
|
|
296
|
+
|
|
297
|
+
While that automatic restore runs, `rig start` continues to your other rigs and
|
|
298
|
+
says the kernel is still restoring (`kernelRestore.state: "restoring"` with
|
|
299
|
+
`--json`). Its exit status 0 then does not mean the kernel is ready; check
|
|
300
|
+
`rig status`. When the restore has returned without a ready kernel, `rig start`
|
|
301
|
+
still goes on to your other rigs but exits 1 (`kernelRestore.state: "failed"`),
|
|
302
|
+
so `rig start && next` does not run `next`. A `rig down kernel` made during the
|
|
303
|
+
restore waits for it to return and then stops the kernel, which stays down on
|
|
304
|
+
later starts. A `rig up kernel --existing` with no fresh seats and no change to
|
|
305
|
+
the saved non-interruptive choice, made during the restore, or after it restored
|
|
306
|
+
every seat while those seats still run the sessions it started, reports that
|
|
307
|
+
restore's outcome instead of starting another. Explicitly repeating the saved
|
|
308
|
+
`--non-interruptive` or `--no-non-interruptive` choice also joins that restore.
|
|
309
|
+
|
|
310
|
+
An explicit `rig up kernel --existing --fresh <seat...>` waits for startup's
|
|
311
|
+
restore to finish, then replaces only the named seats that still hold the exact
|
|
312
|
+
sessions startup launched. Other seats keep running. An operator's conversation
|
|
313
|
+
correction also takes effect for that seat on the next explicit `up` or
|
|
314
|
+
`restore`, using the corrected target; editing the token alone restarts nothing.
|
|
315
|
+
Each replacement takes new seat leases, rechecks the managed occupant and terminal,
|
|
316
|
+
and reports its own per-seat outcome. If the occupant changed, it is left alone.
|
|
317
|
+
A different `--non-interruptive` or `--no-non-interruptive` choice after startup
|
|
318
|
+
launched the seats is refused: the running launch choice stays unchanged. Stop
|
|
319
|
+
the rig, then rerun with the desired choice.
|
|
320
|
+
|
|
321
|
+
Do not restart or recreate an
|
|
211
322
|
existing kernel merely to open its view. The startup TUI (`rig`) offers its own
|
|
212
323
|
kernel setup and individual-seat recovery; it does not automatically boot agents
|
|
213
324
|
when it starts the daemon.
|
|
@@ -644,7 +755,7 @@ the lifecycle API without booting a new kernel, then stop the remaining rigs.
|
|
|
644
755
|
| Shared terminal is absent | Inspect the existing kernel binding and recovery state; use standalone `rig tui` while resolving it. |
|
|
645
756
|
| Viewing terminal was closed | Open the conversations again with `rig terminal open saved:kernel --window`; `rig tui --shared` is only the dashboard fallback if that window cannot open. Do not relaunch the team. |
|
|
646
757
|
| Daemon restarted but tmux survived | Re-read `rig status` and the existing queue; a daemon restart is not a fresh project. |
|
|
647
|
-
| Host reboot lost tmux sessions |
|
|
758
|
+
| Host reboot lost tmux sessions | Starting the daemon restores the kernel by itself when all of its seats were lost; check `rig status`, and if it reports the restore failed, run `rig up kernel --existing`. For other rigs, open `rig`, start the daemon if needed (press **S** if it opens on the work views), and select the existing rig and seats. Resume is the default; a fresh conversation needs a separate decision. |
|
|
648
759
|
| Launch reports no usable snapshot | Inspect the existing rig and retained project files, then follow the same-seat recovery below. |
|
|
649
760
|
| Work is waiting on a prompt or decision | Read the row, transition and named prompt; preserve the obligation until the missing decision arrives. |
|
|
650
761
|
|
|
@@ -675,8 +786,9 @@ This recovery is for the case the reporter hit: the kernel's seats failed and no
|
|
|
675
786
|
IDs, for example `advisor.lead operator.agent operator.human queue.worker` when all four failed. `--fresh` starts a
|
|
676
787
|
new conversation for each seat you name. Seats you don't name follow their normal recovery policy and may remain
|
|
677
788
|
awaiting a decision if their old conversation can't be resumed. A later `rig daemon start` doesn't retry the failed
|
|
678
|
-
seats by itself: once a kernel exists, startup skips the built-in kernel boot
|
|
679
|
-
|
|
789
|
+
seats by itself: once a kernel exists, startup skips the built-in kernel boot and restores only a kernel whose seats
|
|
790
|
+
were all lost, not seats that failed. `rig status` then reads `Kernel: skipped` unless some of its seats are running
|
|
791
|
+
and ready, so check `rig ps --nodes --rig kernel --full`.
|
|
680
792
|
|
|
681
793
|
If a snapshot is unavailable, the startup view checks the selected seat's
|
|
682
794
|
retained startup source and authoritative occupant relation. It reports a
|
|
@@ -995,6 +1107,37 @@ same-seat stop/resume path after checking its retained policy; do not erase the
|
|
|
995
1107
|
rig or start a duplicate to reset permissions. A resume can reapply the stored
|
|
996
1108
|
launch mode, so verify the native mode again before continuing work.
|
|
997
1109
|
|
|
1110
|
+
## Optional Mac local-user check
|
|
1111
|
+
|
|
1112
|
+
On a Mac shared by multiple OS accounts, `transport.local_user_guard` can reduce
|
|
1113
|
+
accidental CLI routing to another account's local daemon. It is **off by default**.
|
|
1114
|
+
Enable it with `rig config set transport.local_user_guard true`, or set
|
|
1115
|
+
`OPENRIG_TRANSPORT_LOCAL_USER_GUARD=true` in the CLI's environment. Set it to
|
|
1116
|
+
`false` to turn it off; no daemon restart is needed for the CLI check.
|
|
1117
|
+
|
|
1118
|
+
When enabled, automatic local CLI data requests compare the daemon's reported
|
|
1119
|
+
`/healthz` PID and effective UID (`euid`) with two `ps` UID/start observations and
|
|
1120
|
+
a second health response, with at most one second of observation per check.
|
|
1121
|
+
Only stable agreement on a foreign effective UID stops the request. This does
|
|
1122
|
+
not require visibility into another user's socket descriptors. It does not
|
|
1123
|
+
stop the daemon, choose another port or retry. Diagnostic health/status checks
|
|
1124
|
+
remain available. Older daemons without `euid` remain unknown and are permitted.
|
|
1125
|
+
`sudo rig …` uses the caller's **effective** UID, so an enabled check against a
|
|
1126
|
+
user-owned daemon refuses when its reported/observed UID differs from root.
|
|
1127
|
+
|
|
1128
|
+
Explicit `OPENRIG_URL`/`RIGGED_URL` targets and registered remote hosts retain
|
|
1129
|
+
their selected routing, including tunnels. An internally resolved local URL is
|
|
1130
|
+
still checked. Default UI and TUI openings are checked before launch; this does
|
|
1131
|
+
not police later browser or TUI connections.
|
|
1132
|
+
|
|
1133
|
+
Missing, disagreeing, restricted or timed-out evidence **continues today's
|
|
1134
|
+
behavior**. This is a partial accidental-routing check, not authenticated user
|
|
1135
|
+
isolation: it trusts the daemon's PID/UID report and corroborates that process;
|
|
1136
|
+
it does not establish the socket's owner. Identity can change between observation
|
|
1137
|
+
and connection, and equal UIDs do not distinguish separate instances belonging
|
|
1138
|
+
to one account. The check
|
|
1139
|
+
does not add authentication to the daemon or protect direct HTTP clients.
|
|
1140
|
+
|
|
998
1141
|
## Custom settings and precedence
|
|
999
1142
|
|
|
1000
1143
|
- **OpenRig:** member `permission_policy` overrides rig `permission_policy`.
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# Getting started
|
|
2
|
+
|
|
3
|
+
OpenRig runs a team of coding agents (Claude Code, Codex and others) on your project, each in its own terminal. You
|
|
4
|
+
talk to one agent, and it hands work to the others. The team keeps its tasks and messages between sessions.
|
|
5
|
+
|
|
6
|
+
Most people let their coding agent set it up. This page explains what happens either way, so nothing is a black
|
|
7
|
+
box, and shows how to do each step by hand if you'd rather.
|
|
8
|
+
|
|
9
|
+
## The quick way: let your coding agent do it
|
|
10
|
+
|
|
11
|
+
In your project folder, add OpenRig's `rigs` skill to the agent you use:
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
# Claude Code
|
|
15
|
+
npx skills add https://github.com/mvschwarz/openrig/tree/<release-tag>/skills/rigs --skill rigs --agent claude-code
|
|
16
|
+
# Codex
|
|
17
|
+
npx skills add https://github.com/mvschwarz/openrig/tree/<release-tag>/skills/rigs --skill rigs --agent codex
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
For a new install, use the latest release's tag, for example `v0.7.0`. If OpenRig is already installed, use the tag
|
|
21
|
+
that matches `rig --version`, or upgrade first. If the command fails with `npx: command not found`, Node.js isn't
|
|
22
|
+
installed or isn't on your PATH yet (see [What you need](#what-you-need)). Then type `/rigs` in Claude Code, or `$rigs` in Codex, and say what
|
|
23
|
+
you want built.
|
|
24
|
+
|
|
25
|
+
The skill has your agent work through the steps below in order. It says what it will run and change before it runs
|
|
26
|
+
it, and it asks before installing anything on your system. It finishes when you're talking to the operator.
|
|
27
|
+
|
|
28
|
+
## How the pieces fit
|
|
29
|
+
|
|
30
|
+
- **`rig`** is the command you and your agents use. It comes from the npm package `@openrig/cli`.
|
|
31
|
+
- **The daemon** is a small background service on your machine. It keeps tasks, messages and state in a local
|
|
32
|
+
database. `rig daemon start` starts it.
|
|
33
|
+
- **tmux** runs each agent in its own terminal session. Agents keep running when you close a window, and one agent
|
|
34
|
+
can type into another's terminal.
|
|
35
|
+
- **The kernel** is OpenRig's own small team, which starts with the daemon. You talk to its **operator**, which
|
|
36
|
+
starts and runs teams for you. Its **advisor** helps you think through what you want.
|
|
37
|
+
- **Your team** (a *rig*) is the set of agents that work on your project, such as `starter`.
|
|
38
|
+
- **The OpenRig view** is a terminal window with the operator and, beside it or on another page, a dashboard of your
|
|
39
|
+
agents.
|
|
40
|
+
|
|
41
|
+
## What you need
|
|
42
|
+
|
|
43
|
+
- macOS or Linux. On Windows, use WSL2 ([one person's working setup](getting-started.md#wsl2-a-reported-working-setup)).
|
|
44
|
+
- Node.js 22 or 24 (on Apple silicon, Node.js 22) and tmux.
|
|
45
|
+
- Claude Code or Codex, signed in. One is enough to start.
|
|
46
|
+
|
|
47
|
+
If `node --version` does not show a supported version, first check your existing Node installation and PATH.
|
|
48
|
+
Ask your coding agent to help use the toolchain already on your machine. On a Mac, a shared Homebrew installation
|
|
49
|
+
may belong to another user; do not change its ownership to complete this setup. After correcting PATH or installing
|
|
50
|
+
Node, open a new terminal and check `node --version` and `npx --version` before continuing.
|
|
51
|
+
|
|
52
|
+
On a Mac where you aren't an administrator, or where another account owns Homebrew, install Node.js in your own home
|
|
53
|
+
folder with [nvm](https://github.com/nvm-sh/nvm); nvm itself needs no administrator password. A new Mac account has no
|
|
54
|
+
`~/.zshrc`, and nvm's installer only adds itself to a profile file that already exists, so create one first:
|
|
55
|
+
|
|
56
|
+
```sh
|
|
57
|
+
touch ~/.zshrc
|
|
58
|
+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Then open a new terminal and run `nvm install 22`. If nvm's installer says you need Apple's command line tools, run
|
|
62
|
+
`xcode-select --install`, then its install command again. That's nvm v0.40.8's install command; [nvm's
|
|
63
|
+
page](https://github.com/nvm-sh/nvm#install--update-script) has the newest.
|
|
64
|
+
|
|
65
|
+
## What happens, step by step
|
|
66
|
+
|
|
67
|
+
Each step shows the command, so you can run it yourself.
|
|
68
|
+
|
|
69
|
+
### 1. Install the `rig` command
|
|
70
|
+
|
|
71
|
+
```sh
|
|
72
|
+
npm install -g @openrig/cli
|
|
73
|
+
rig --version
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
This installs the CLI globally under your npm prefix. `rig --version` prints the version and a commit, such as
|
|
77
|
+
`0.6.12 (9e5382dd)`. With npm 11 or later, an `npm warn install-scripts` line is expected: it means only the
|
|
78
|
+
Node.js and SQLite check was skipped.
|
|
79
|
+
|
|
80
|
+
### 2. Set up the tools around it
|
|
81
|
+
|
|
82
|
+
```sh
|
|
83
|
+
rig setup --providers claude
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Use `codex` or `both` in place of `claude` to match the coding agents you use. Add `--dry-run` first to see the plan without changing anything. Setup does four things:
|
|
87
|
+
- it checks Node.js, tmux and your sign-in;
|
|
88
|
+
- it installs a missing tmux (with Homebrew on macOS, if you have it) or the coding agent you chose;
|
|
89
|
+
- it installs Herdr, a terminal workspace app the OpenRig view can use, unless you add `--no-herdr`;
|
|
90
|
+
- it adds an OpenRig block to `~/.tmux.conf` (mouse support and longer scrollback).
|
|
91
|
+
|
|
92
|
+
It doesn't start anything. It ends with a summary of what's done and what still needs you. A missing sign-in shows
|
|
93
|
+
there: run `claude auth login` or `codex login`, then carry on.
|
|
94
|
+
|
|
95
|
+
### 3. Start OpenRig
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
rig daemon start
|
|
99
|
+
rig status
|
|
100
|
+
rig ps --nodes --rig kernel
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
The daemon starts and boots the kernel with the coding agents you're signed in to, or both if you're signed in to both.
|
|
104
|
+
|
|
105
|
+
**What starting OpenRig changes, for the coding agents you use** (paths are the usual defaults):
|
|
106
|
+
- **For Codex:** hooks and trust in `~/.codex/config.toml`, when OpenRig or a Codex agent starts.
|
|
107
|
+
- **For Claude Code:** workspace trust in `~/.claude.json`, and activity hooks in the project's
|
|
108
|
+
`.claude/settings.local.json`, plus a status line unless you already have your own.
|
|
109
|
+
- **For both:** small discovery skills in `~/.claude/skills` and `~/.agents/skills`.
|
|
110
|
+
- **Kernel access:** by default the kernel gets broader permissions than a project team gets by default. On Codex
|
|
111
|
+
that's full access with no approval prompts. On Claude Code, its file tools, web fetches and operational commands,
|
|
112
|
+
including reads under your home folder, run without asking. A permission policy, per-agent choice or Codex profile
|
|
113
|
+
changes that.
|
|
114
|
+
|
|
115
|
+
OpenRig doesn't guarantee it can preserve or roll back these files, so back them up first. [Everything OpenRig writes, and why](../../README.md#what-openrig-changes-on-your-machine).
|
|
116
|
+
|
|
117
|
+
Started isn't the same as ready. `rig status` shows a `Kernel:` line, and `rig ps --nodes --rig kernel` shows each
|
|
118
|
+
kernel agent's state. They can take a moment after the daemon is up.
|
|
119
|
+
|
|
120
|
+
### 4. Open the OpenRig view
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
rig terminal open saved:kernel --window
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**What you'll see:**
|
|
127
|
+
- **Where it opens:** a new terminal window or tab. If your agent is already running inside Herdr, it opens a new
|
|
128
|
+
Herdr space instead. It uses Herdr when installed, plain tmux otherwise.
|
|
129
|
+
- **Layout:** in a narrow window, or when the width can't be measured, the operator fills the first page. From 120
|
|
130
|
+
columns, the dashboard and the operator share it. The advisor has its own tab.
|
|
131
|
+
- **On a Mac:** you may be asked to let your terminal app be controlled. Allowing it is fine.
|
|
132
|
+
- **Over SSH or with no display:** the window can't open. The command says why and, where it can, prints a command
|
|
133
|
+
to run in a new terminal. Otherwise your agent works out the exact command to join the operator.
|
|
134
|
+
|
|
135
|
+
You're installed when you're talking to the operator.
|
|
136
|
+
|
|
137
|
+
### 5. Start your first team
|
|
138
|
+
|
|
139
|
+
Tell the operator what you want built, and in which folder. It recommends one of three teams:
|
|
140
|
+
- `starter`: a builder and a reviewer, for one bounded change;
|
|
141
|
+
- `workshop`: a lead, a builder, QA and a reviewer, for ongoing work in one repository;
|
|
142
|
+
- `factory`: seven agents, for sustained product work.
|
|
143
|
+
|
|
144
|
+
Before it starts one, it tells you what starting a team in your folder changes: managed guidance in `AGENTS.md` or
|
|
145
|
+
`CLAUDE.md`, plus the team's skills. Then it waits for your yes. As shipped, `starter` uses both Claude Code and
|
|
146
|
+
Codex. With only one of them, ask the operator to adapt it.
|
|
147
|
+
|
|
148
|
+
By hand, from your repository (the first command shows what it would start, and starts nothing):
|
|
149
|
+
|
|
150
|
+
```sh
|
|
151
|
+
rig up starter --cwd . --plan
|
|
152
|
+
rig up starter --cwd .
|
|
153
|
+
rig ps --nodes --rig starter
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
If an agent stops at a sign-in, trust or permission prompt, `rig up` reports `Status: partial` and names the prompt.
|
|
157
|
+
Answer it in that agent's terminal, then run the `rig seat continue <seat>` command it prints. The team is ready
|
|
158
|
+
for work once its agents show as ready in `rig ps --nodes --rig starter`.
|
|
159
|
+
|
|
160
|
+
### 6. Give the team work, and stop it
|
|
161
|
+
|
|
162
|
+
```sh
|
|
163
|
+
rig send dev-build@starter 'Fix <one useful thing>. Ask dev-review to check it, and record the result and how I can try it.'
|
|
164
|
+
rig queue list --destination dev-build@starter
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
The builder records the work as a task, so you can follow it with `rig queue`. When you're done, `rig down starter`
|
|
168
|
+
stops that team. `rig daemon stop` stops the background service and leaves agent sessions running.
|
|
169
|
+
|
|
170
|
+
## The one-command install
|
|
171
|
+
|
|
172
|
+
Instead of steps 1 and 2 (the first line shows the plan and changes nothing):
|
|
173
|
+
|
|
174
|
+
```sh
|
|
175
|
+
curl -fsSL https://openrig.dev/install.sh | sh -s -- --dry-run
|
|
176
|
+
curl -fsSL https://openrig.dev/install.sh | sh
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
It checks Node.js and npm, installs the latest `@openrig/cli`, then runs `rig setup`. It doesn't know which coding agent
|
|
180
|
+
you use, so it checks and may install both. For just one, use steps 1 and 2. If a sign-in is missing, setup reports
|
|
181
|
+
it as the step to finish: sign in, then continue at step 3.
|
|
182
|
+
|
|
183
|
+
## What these words mean
|
|
184
|
+
|
|
185
|
+
- **Rig:** a team of agents, started with one command. Your first one is usually `starter`.
|
|
186
|
+
- **Seat:** one agent's role and address in a team, such as `dev-build@starter`.
|
|
187
|
+
- **Harness:** the software around the model that an agent runs in: Claude Code, Codex or Pi.
|
|
188
|
+
- **Kernel:** OpenRig's own small team, which starts with OpenRig. It isn't your project's team.
|
|
189
|
+
- **Operator:** the kernel's agent you talk to first. It recommends a team for your goal and starts it when you say
|
|
190
|
+
yes.
|
|
191
|
+
- **Advisor:** the kernel's agent for thinking through what you want before a team starts. It has its own tab.
|
|
192
|
+
- **OpenRig view:** the terminal view that opens on the operator. In a wide window the dashboard sits beside it;
|
|
193
|
+
otherwise, or when the width can't be measured, the dashboard is on its own page. `saved:kernel` in
|
|
194
|
+
`rig terminal open saved:kernel` is the name of this saved view.
|
|
195
|
+
|
|
196
|
+
## More
|
|
197
|
+
|
|
198
|
+
- **Every detail of setup:** troubleshooting, permissions, headless and SSH use, and what can stop the view from
|
|
199
|
+
opening. See the [setup reference](getting-started.md).
|
|
200
|
+
- **Stuck?** Run `rig context get help`, or read [Help](help.md).
|
|
@@ -36,9 +36,15 @@ own project folder is the same project and still acts as the seat, as before thi
|
|
|
36
36
|
launched before this change, a manual run) the hooks do what they always did. The plugin's activity relay stays quiet next to
|
|
37
37
|
the seat's own `settings.local.json` copy only when that entry is exactly OpenRig's and the script it names is the same
|
|
38
38
|
script; an entry from an older install doesn't match, so both report until the seat's next launch refreshes it.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
OpenRig automatically installs its Codex plugin for seats that select it. On its first installation, the six exact shipped
|
|
40
|
+
hook definitions are trusted before launch, after checking the installed hook files against this daemon's shipped copy.
|
|
41
|
+
Existing plugin disables and hook choices are retained. An existing untrusted installation stays under native review:
|
|
42
|
+
Codex's "continue without trusting" leaves no record, so OpenRig does not assume an absent trust record is permission.
|
|
43
|
+
The file check happens only when trust is granted: a later edit to the cached hook scripts keeps that trust, as with any hook trusted in Codex.
|
|
44
|
+
The Codex
|
|
45
|
+
column above then applies only to a Codex seat whose plugin selection includes openrig-core: every Codex hook command
|
|
46
|
+
exits 0 before running anything unless OpenRig gave that seat `OPENRIG_SEAT_PROJECT_DIR` and an explicit
|
|
47
|
+
`OPENRIG_NODE`.
|
|
42
48
|
|
|
43
49
|
Claude's additional firing signal is **transcript growth** — not turns (one turn
|
|
44
50
|
can burn 200k tokens across fifty tool calls) and not wall-clock (the failure is
|
|
@@ -354,7 +354,7 @@ pods:
|
|
|
354
354
|
|
|
355
355
|
- A seat gets the rig's `env` with its own `env` laid over it, name by name.
|
|
356
356
|
- The same environment is applied on first launch, on `rig up <rig-name>` restore, and to the successor of a seat handover.
|
|
357
|
-
- `rig up <spec> --env KEY=VALUE` (repeatable) adds or overrides a value for one launch. A one-off value belongs to the terminal that launch creates: it stays in that terminal's environment for as long as the terminal lives, and OpenRig removes it from the tmux session's environment as soon as the terminal has started, so a terminal started later in that session does not get it. A restore, a handover successor or any later launch starts from the spec's `env:` alone, so the value is not saved and does not carry forward. To keep a value, put it in `env:`. One exception to "does not carry forward", for a managed Claude seat (see below): a one-off name that the seat's spec does not declare stays on the session's list of names, `OPENRIG_SEAT_ENV_KEYS` (names only, no values), because the first launch and an in-place restart of the same terminal read that list. So if a later pane in that session gets a value for that name from the tmux server's own environment, its managed Claude launch can forward that value, where a launch without `--env` would leave it out. The first launch's one-off value itself is not passed on to that pane. This comes from reading the code and has not been measured. `--env` does not apply to `rig up <rig-name>` (a restore) or to a topology (several rigs from their own specs); the CLI refuses both. For a topology, put `env:` in each rig's spec.
|
|
357
|
+
- `rig up <spec> --env KEY=VALUE` (repeatable) adds or overrides a value for one launch. A one-off value belongs to the terminal that launch creates: it stays in that terminal's environment for as long as the terminal lives, and OpenRig removes it from the tmux session's environment as soon as the terminal has started, so a terminal started later in that session does not get it. If OpenRig can't take it out, the seat keeps running and the launch warns, naming the variable and the tmux command to put it back or remove it. Until then, a terminal started later in that session would get it. A restore, a handover successor or any later launch starts from the spec's `env:` alone, so the value is not saved and does not carry forward. To keep a value, put it in `env:`. One exception to "does not carry forward", for a managed Claude seat (see below): a one-off name that the seat's spec does not declare stays on the session's list of names, `OPENRIG_SEAT_ENV_KEYS` (names only, no values), because the first launch and an in-place restart of the same terminal read that list. So if a later pane in that session gets a value for that name from the tmux server's own environment, its managed Claude launch can forward that value, where a launch without `--env` would leave it out. The first launch's one-off value itself is not passed on to that pane. This comes from reading the code and has not been measured. `--env` does not apply to `rig up <rig-name>` (a restore) or to a topology (several rigs from their own specs); the CLI refuses both. For a topology, put `env:` in each rig's spec.
|
|
358
358
|
- Names starting `OPENRIG_` are reserved for OpenRig and refused. Empty values are refused, because the launch omits empty variables.
|
|
359
359
|
- `rig export` writes the rig and member `env:` back out.
|
|
360
360
|
|
|
@@ -8,7 +8,7 @@ daemon-owned retry scheduler. Sibling seats keep their own mode.
|
|
|
8
8
|
| Mode | Terminal input | When input is unavailable |
|
|
9
9
|
|---|---|---|
|
|
10
10
|
| `off` (default) | Existing delivery and prompt checks | Existing send result |
|
|
11
|
-
| `draft-aware` | Paste into a recognized empty composer; check ownership again before Enter |
|
|
11
|
+
| `draft-aware` | Paste into a recognized empty composer; check ownership again before Enter | Hold input and retain this attempt for inspection when bookkeeping is available |
|
|
12
12
|
| `hold` | No automatic terminal input, even at an empty prompt | Retain for inspection outside the pane |
|
|
13
13
|
|
|
14
14
|
Runtime permissions are separate. Recipient and interactive-prompt checks still
|
|
@@ -36,13 +36,22 @@ to finish. The API may return HTTP 202 with `pending: true`; wait for
|
|
|
36
36
|
`pending: false` before relying on the requested mode. Status reports desired
|
|
37
37
|
and effective modes and retains the text `Typing guard: on (hold)` for hold.
|
|
38
38
|
|
|
39
|
-
A held send immediately returns `outcome: "retained"`, `sent: false`,
|
|
40
|
-
`
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
draft, or restarting
|
|
39
|
+
A held send immediately returns `outcome: "retained"`, `sent: false`, its exact
|
|
40
|
+
reason (such as `draft_input_busy`) and the saved attempt's `outboxIds`. No automatic
|
|
41
|
+
retry is scheduled. Each explicit draft-aware request is a new attempt, including
|
|
42
|
+
one with a reused `deliveryId`; the result warns older callers that this field no
|
|
43
|
+
longer deduplicates input. The CLI does not generate a deduplication key.
|
|
44
|
+
|
|
45
|
+
Clearing a draft, changing modes or restarting does not flush saved messages or
|
|
46
|
+
callbacks. To try again, send a current request: it rechecks the recipient and input.
|
|
47
|
+
A caller abort before paste cancels input; after a write may have started, the
|
|
48
|
+
result preserves that uncertainty rather than claiming nothing was sent.
|
|
49
|
+
|
|
50
|
+
Bookkeeping is observational. If its write fails, an otherwise valid input attempt
|
|
51
|
+
still proceeds and the response includes a warning instead of a saved receipt.
|
|
52
|
+
Actual transport success stays success; an unknown write stays unknown. If input
|
|
53
|
+
was held and no record could be saved, the response reports failure with `sent:
|
|
54
|
+
false` and the protection reason, rather than claiming durable custody.
|
|
46
55
|
|
|
47
56
|
Reading never sends. Retirement frees that record's active retention quota while
|
|
48
57
|
preserving evidence; it does not deliver a message or close queue work.
|
|
@@ -72,22 +81,34 @@ A large paste can appear as several labels plus a literal tail. The existing
|
|
|
72
81
|
boundary. That complete rendering must be observed after this operation's paste
|
|
73
82
|
and remain unchanged before Enter. Labels alone do not prove arbitrary content.
|
|
74
83
|
|
|
75
|
-
|
|
|
84
|
+
| Historical delivery state | Meaning |
|
|
76
85
|
|---|---|
|
|
77
|
-
| `sending` |
|
|
78
|
-
| `held` | No input was written;
|
|
86
|
+
| `sending` | This saved attempt has an unresolved write outcome |
|
|
87
|
+
| `held` | No input was written; this attempt remains retained or has been retired |
|
|
79
88
|
| `complete` | Transport execution succeeded, including render verification if requested; native consumption is not asserted |
|
|
80
|
-
| `indeterminate` | Input may have occurred or requested render verification failed
|
|
89
|
+
| `indeterminate` | Input may have occurred or requested render verification failed |
|
|
90
|
+
| `failed` | A definite failure before input, such as caller cancellation |
|
|
81
91
|
|
|
82
92
|
Migration `100_typing_guard_modes` extends the existing guard/audit rows and
|
|
83
93
|
adds receipt metadata to the original outbox rows; it creates no tables, retry
|
|
84
94
|
indexes or executable requests. Combined wakes retain each original ID and body.
|
|
85
|
-
A held queue wake stays on the existing queue recovery path. Interrupted
|
|
86
|
-
become indeterminate at startup
|
|
95
|
+
A held queue wake stays on the existing queue recovery path. Interrupted historical
|
|
96
|
+
writes become indeterminate at startup. That history never suppresses a current
|
|
97
|
+
explicit request and is not consulted to determine its result.
|
|
98
|
+
|
|
99
|
+
At startup, the queue recovery pass retries still-current failed or unconfirmed
|
|
100
|
+
wake notifications. It preserves their original envelopes and warns that delivery
|
|
101
|
+
may repeat. Each notification is attempted once per pass, including coalesced
|
|
102
|
+
wakes; a failed attempt cannot spin in that pass. A no-write failure on a later
|
|
103
|
+
retry does not resolve an earlier unknown delivery. Prior-process claims are
|
|
104
|
+
reconciled before new startup sends can begin. Known deliveries and held or
|
|
105
|
+
retired messages stay untouched. Closed, claimed or reassigned work is not woken,
|
|
106
|
+
and the retry never repeats the queue mutation or a lifecycle action.
|
|
87
107
|
|
|
88
108
|
The existing retention limits apply: 100 records and 8 MiB per seat, with a 1 MiB
|
|
89
|
-
message limit.
|
|
90
|
-
|
|
109
|
+
message limit. Hold mode cannot retain another message at capacity. Draft-aware
|
|
110
|
+
input attempts continue with a bookkeeping warning if a record cannot be saved;
|
|
111
|
+
already-committed queue intent remains durable.
|
|
91
112
|
|
|
92
113
|
## Rollback and lifecycle
|
|
93
114
|
|
|
@@ -121,7 +142,25 @@ unchanged; no RigSpec field is required.
|
|
|
121
142
|
## Verification scope
|
|
122
143
|
|
|
123
144
|
Regression tests exercise rollback/re-upgrade, same-value legacy writes, exact
|
|
124
|
-
retained outcomes,
|
|
125
|
-
numbered bodies, real-menu refusals and multi-placeholder ownership. Native tests
|
|
145
|
+
retained outcomes, current requests after restart, coalesced queue bodies, trailing
|
|
146
|
+
spaces, numbered bodies, real-menu refusals and multi-placeholder ownership. Native tests
|
|
126
147
|
use private real tmux panes with scripted editable composers. These verify the
|
|
127
148
|
transport mechanics; they are not live Claude/Codex provider sessions.
|
|
149
|
+
|
|
150
|
+
## Watchdog reminders
|
|
151
|
+
|
|
152
|
+
A currently due watchdog reminder makes a new delivery attempt, including after an interrupted attempt or job
|
|
153
|
+
accounting. Historical outbox receipts do not suppress a lone reminder or prevent it from joining a digest. The
|
|
154
|
+
message tells its recipient that delivery may repeat after an unconfirmed attempt. Its job history records the
|
|
155
|
+
current transport result; an unknown write is not proof that nothing arrived.
|
|
156
|
+
|
|
157
|
+
The transport still protects approval/question prompts, human drafts and recipient identity. Scheduler timing,
|
|
158
|
+
current parked-row eligibility and stop checks still apply. This changes message retries, not the idempotence of
|
|
159
|
+
structured continuity actions such as creating a cutover baton.
|
|
160
|
+
|
|
161
|
+
The parked-owner supervisor also retries current obligations despite an earlier failed, unknown or unrecorded attempt.
|
|
162
|
+
A recorded success to the same known occupant waits for a change in its obligations. Rotation includes retained attempts,
|
|
163
|
+
so a held input cannot starve another owner. Interactive prompts stay with the existing prompt-refusal recovery.
|
|
164
|
+
Its own reminders wait while managed compaction owes the turn boundary, restore or audit, including a fresh check
|
|
165
|
+
at the paste and Enter boundary. A stage that begins after paste leaves an honest partial-input result; OpenRig
|
|
166
|
+
does not erase or replay that text. Peer messages and unrelated reminder policies keep their existing behavior.
|