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