@openrig/cli 0.6.6 → 0.6.8
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 +97 -28
- package/daemon/assets/claude-team-permissions.cjs +262 -0
- package/daemon/assets/onboarding/02-self-and-competent-action.md +20 -13
- 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/hooks/scripts/refocus-health.cjs +41 -0
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +69 -12
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +13 -2
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +4 -0
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +6 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +1 -1
- package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +31 -4
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +24 -13
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +42 -0
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +6 -0
- package/daemon/assets/skills/rigs/SKILL.md +133 -0
- package/daemon/context-packs/help/help.md +48 -19
- 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 +239 -43
- package/daemon/context-packs/reference/getting-started.md +356 -212
- package/daemon/context-packs/reference/instance-layout.md +5 -0
- package/daemon/context-packs/reference/manifest.yaml +4 -1
- package/daemon/context-packs/reference/rig-spec.md +48 -20
- package/daemon/context-packs/reference/whats-new.md +96 -0
- 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 +13 -2
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +4 -0
- 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 +6 -0
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +3 -0
- 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 +1 -1
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +19 -12
- package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +17 -16
- package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +2 -0
- 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/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/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/SKILL.md +31 -4
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +24 -13
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -0
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +42 -0
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +6 -0
- 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 +1 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +23 -13
- 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 +17 -0
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +2 -2
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
- package/daemon/dist/adapters/kernel-authority.js +29 -11
- package/daemon/dist/adapters/kernel-authority.js.map +1 -1
- package/daemon/dist/adapters/pi-readiness.d.ts +15 -0
- package/daemon/dist/adapters/pi-readiness.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-readiness.js +90 -0
- package/daemon/dist/adapters/pi-readiness.js.map +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.js +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner.js +13 -2
- package/daemon/dist/adapters/pi-runner.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +9 -6
- 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 +4 -0
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/096_rig_install_root.d.ts +3 -0
- package/daemon/dist/db/migrations/096_rig_install_root.d.ts.map +1 -0
- package/daemon/dist/db/migrations/096_rig_install_root.js +5 -0
- package/daemon/dist/db/migrations/096_rig_install_root.js.map +1 -0
- package/daemon/dist/db/migrations/097_thread_part_map.d.ts +3 -0
- package/daemon/dist/db/migrations/097_thread_part_map.d.ts.map +1 -0
- package/daemon/dist/db/migrations/097_thread_part_map.js +20 -0
- package/daemon/dist/db/migrations/097_thread_part_map.js.map +1 -0
- package/daemon/dist/domain/activity-taxonomy.d.ts +7 -0
- package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
- package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
- package/daemon/dist/domain/agent-activity-store.d.ts +12 -0
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
- package/daemon/dist/domain/agent-activity-store.js +55 -30
- package/daemon/dist/domain/agent-activity-store.js.map +1 -1
- package/daemon/dist/domain/agent-images/agent-image-types.d.ts +1 -1
- package/daemon/dist/domain/agent-images/agent-image-types.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +6 -4
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/daemon/dist/domain/bundle-install-context.d.ts +2 -2
- package/daemon/dist/domain/bundle-install-context.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-install-context.js +16 -3
- package/daemon/dist/domain/bundle-install-context.js.map +1 -1
- package/daemon/dist/domain/bundle-types.d.ts +1 -1
- package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
- package/daemon/dist/domain/chat-repository.d.ts +5 -0
- package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
- package/daemon/dist/domain/chat-repository.js +8 -0
- package/daemon/dist/domain/chat-repository.js.map +1 -1
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +5 -4
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/claude-activity-hooks.d.ts +3 -0
- package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
- package/daemon/dist/domain/claude-activity-hooks.js +8 -1
- package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +34 -2
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +195 -107
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +4 -2
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts +5 -0
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +23 -6
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/daemon/dist/domain/execution-view.js +57 -11
- package/daemon/dist/domain/execution-view.js.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.d.ts +4 -0
- package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.js +2 -0
- package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
- package/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/destination-resolver.js +7 -4
- package/daemon/dist/domain/gateway/destination-resolver.js.map +1 -1
- package/daemon/dist/domain/gateway/human-readiness.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-readiness.js +23 -6
- package/daemon/dist/domain/gateway/human-readiness.js.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.d.ts +2 -2
- package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.js +2 -2
- package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/capabilities.js +3 -1
- package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/channel-map.d.ts +39 -0
- package/daemon/dist/domain/gateway/slack/channel-map.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/channel-map.js +114 -0
- package/daemon/dist/domain/gateway/slack/channel-map.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/config.d.ts +7 -0
- package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/config.js +19 -2
- package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +24 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +105 -3
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.d.ts +7 -0
- package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.js +36 -0
- package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts +2 -0
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.js +1 -0
- package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts +7 -2
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.js +35 -3
- package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +34 -7
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +268 -51
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +17 -0
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +107 -24
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +2 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.js +40 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-routing.js +22 -2
- package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +14 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js +27 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
- package/daemon/dist/domain/generated-file-hygiene.d.ts.map +1 -1
- package/daemon/dist/domain/generated-file-hygiene.js +7 -4
- package/daemon/dist/domain/generated-file-hygiene.js.map +1 -1
- package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
- package/daemon/dist/domain/managed-blocks.js +5 -2
- package/daemon/dist/domain/managed-blocks.js.map +1 -1
- package/daemon/dist/domain/markdown-address.d.ts.map +1 -1
- package/daemon/dist/domain/markdown-address.js +23 -6
- package/daemon/dist/domain/markdown-address.js.map +1 -1
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
- package/daemon/dist/domain/native-process-lineage.js +50 -3
- package/daemon/dist/domain/native-process-lineage.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +2 -2
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +30 -4
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +1 -0
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/pane-binding-observation.d.ts +1 -0
- package/daemon/dist/domain/pane-binding-observation.d.ts.map +1 -1
- package/daemon/dist/domain/pane-binding-observation.js +3 -1
- package/daemon/dist/domain/pane-binding-observation.js.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.d.ts +6 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +12 -0
- package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +54 -15
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +11 -9
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +15 -12
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-nudge-text.d.ts +4 -0
- package/daemon/dist/domain/queue-nudge-text.d.ts.map +1 -0
- package/daemon/dist/domain/queue-nudge-text.js +35 -0
- package/daemon/dist/domain/queue-nudge-text.js.map +1 -0
- package/daemon/dist/domain/queue-repository.d.ts +7 -0
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +50 -20
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-retention.d.ts +2 -2
- package/daemon/dist/domain/queue-retention.js +4 -4
- package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wait-backoff.js +6 -2
- package/daemon/dist/domain/queue-wait-backoff.js.map +1 -1
- package/daemon/dist/domain/queue-waiting.d.ts.map +1 -1
- package/daemon/dist/domain/queue-waiting.js +7 -2
- package/daemon/dist/domain/queue-waiting.js.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.d.ts +15 -2
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +29 -6
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
- package/daemon/dist/domain/rehydrate-eligibility.js +5 -2
- package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
- package/daemon/dist/domain/reply-to-choice.d.ts +6 -2
- package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -1
- package/daemon/dist/domain/reply-to-choice.js +9 -6
- package/daemon/dist/domain/reply-to-choice.js.map +1 -1
- package/daemon/dist/domain/restore-check-service.d.ts +5 -1
- package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
- package/daemon/dist/domain/restore-check-service.js +17 -3
- package/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +17 -11
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +3 -1
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +13 -4
- 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 +6 -0
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +1 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +8 -4
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +19 -4
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +16 -6
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +9 -1
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/session-jsonl.d.ts.map +1 -1
- package/daemon/dist/domain/session-jsonl.js +10 -4
- package/daemon/dist/domain/session-jsonl.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +16 -21
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +70 -37
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/skill-audit.d.ts +19 -0
- package/daemon/dist/domain/skill-audit.d.ts.map +1 -1
- package/daemon/dist/domain/skill-audit.js +97 -5
- package/daemon/dist/domain/skill-audit.js.map +1 -1
- package/daemon/dist/domain/skill-catalog.d.ts +11 -0
- package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
- package/daemon/dist/domain/skill-catalog.js +145 -12
- package/daemon/dist/domain/skill-catalog.js.map +1 -1
- package/daemon/dist/domain/skill-mirror-drift.d.ts +6 -1
- package/daemon/dist/domain/skill-mirror-drift.d.ts.map +1 -1
- package/daemon/dist/domain/skill-mirror-drift.js +23 -12
- package/daemon/dist/domain/skill-mirror-drift.js.map +1 -1
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-repository.js +12 -32
- package/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +4 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.js +14 -7
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
- package/daemon/dist/domain/terminal/terminal-provider.d.ts +9 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.d.ts +4 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.js +23 -11
- package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +21 -9
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +2 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/usage-samples-store.js +2 -2
- package/daemon/dist/domain/usage-samples-store.js.map +1 -1
- package/daemon/dist/domain/usage-series.d.ts.map +1 -1
- package/daemon/dist/domain/usage-series.js +42 -10
- package/daemon/dist/domain/usage-series.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.js +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/watchdog-due.d.ts +17 -0
- package/daemon/dist/domain/watchdog-due.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-due.js +45 -0
- package/daemon/dist/domain/watchdog-due.js.map +1 -0
- package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-scheduler.js +3 -7
- package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-projector.js +15 -5
- package/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-runtime.js +1 -1
- package/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/daemon/dist/domain/workflow-step-trail-log.d.ts +6 -0
- package/daemon/dist/domain/workflow-step-trail-log.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-step-trail-log.js +11 -0
- package/daemon/dist/domain/workflow-step-trail-log.js.map +1 -1
- package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-validator.js +22 -1
- package/daemon/dist/domain/workflow-validator.js.map +1 -1
- package/daemon/dist/domain/workspace/project-catalog.js +1 -1
- package/daemon/dist/domain/workspace/project-catalog.js.map +1 -1
- package/daemon/dist/gateway-slack-surface.d.ts +1 -0
- package/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
- package/daemon/dist/gateway-slack-surface.js +2 -1
- package/daemon/dist/gateway-slack-surface.js.map +1 -1
- package/daemon/dist/index.d.ts +1 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +7 -7
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/agent-images.js +5 -5
- package/daemon/dist/routes/agent-images.js.map +1 -1
- package/daemon/dist/routes/bootstrap-failure-response.d.ts +13 -0
- package/daemon/dist/routes/bootstrap-failure-response.d.ts.map +1 -0
- package/daemon/dist/routes/bootstrap-failure-response.js +52 -0
- package/daemon/dist/routes/bootstrap-failure-response.js.map +1 -0
- package/daemon/dist/routes/bundles.d.ts.map +1 -1
- package/daemon/dist/routes/bundles.js +23 -36
- package/daemon/dist/routes/bundles.js.map +1 -1
- package/daemon/dist/routes/chat.d.ts.map +1 -1
- package/daemon/dist/routes/chat.js +16 -1
- package/daemon/dist/routes/chat.js.map +1 -1
- package/daemon/dist/routes/restore-check.d.ts.map +1 -1
- package/daemon/dist/routes/restore-check.js +2 -0
- package/daemon/dist/routes/restore-check.js.map +1 -1
- package/daemon/dist/routes/rigs.js +2 -2
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/seat.js +13 -13
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.js +11 -11
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/skills.d.ts.map +1 -1
- package/daemon/dist/routes/skills.js +15 -7
- package/daemon/dist/routes/skills.js.map +1 -1
- package/daemon/dist/routes/terminal-ws.js +15 -2
- package/daemon/dist/routes/terminal-ws.js.map +1 -1
- package/daemon/dist/routes/terminal.d.ts.map +1 -1
- package/daemon/dist/routes/terminal.js +6 -4
- package/daemon/dist/routes/terminal.js.map +1 -1
- package/daemon/dist/routes/up.d.ts.map +1 -1
- package/daemon/dist/routes/up.js +5 -56
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +32 -7
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js +9 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +10 -10
- package/daemon/docs/reference/agent-startup-guide.md +7 -2
- package/daemon/docs/reference/bundle-formats.md +6 -4
- package/daemon/docs/reference/chain-file-convention.md +2 -2
- package/daemon/docs/reference/developing.md +1 -1
- package/daemon/docs/reference/edge-types.md +1 -1
- package/daemon/docs/reference/getting-started.md +356 -212
- package/daemon/docs/reference/help.md +48 -19
- package/daemon/docs/reference/instance-layout.md +5 -0
- package/daemon/docs/reference/non-interruptive-mode.md +7 -4
- package/daemon/docs/reference/project-workspace.md +2 -2
- package/daemon/docs/reference/publishing-a-rig-bundle.md +15 -10
- package/daemon/docs/reference/refocus-channel.md +14 -2
- package/daemon/docs/reference/rig-bundle.md +39 -19
- package/daemon/docs/reference/rig-spec.md +48 -20
- package/daemon/docs/reference/rosters.md +2 -1
- package/daemon/docs/reference/schemas/registry-entry.v1.schema.json +1 -1
- package/daemon/docs/reference/sdlc-conventions.md +4 -2
- package/daemon/docs/reference/slack-app-setup.md +69 -9
- package/daemon/docs/reference/topology-naming.md +74 -0
- package/daemon/docs/reference/whats-new.md +96 -0
- package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +6 -0
- package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +3 -0
- package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +19 -12
- package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +17 -16
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +2 -0
- package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +60 -0
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +105 -19
- package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +5 -2
- package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +44 -0
- package/dist/build-info.js +3 -3
- package/dist/cli-error.d.ts.map +1 -1
- package/dist/cli-error.js +11 -3
- package/dist/cli-error.js.map +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -1
- package/dist/commands/agent-image.js +2 -2
- package/dist/commands/agent-image.js.map +1 -1
- package/dist/commands/bundle.d.ts.map +1 -1
- package/dist/commands/bundle.js +5 -4
- package/dist/commands/bundle.js.map +1 -1
- package/dist/commands/chatroom.d.ts.map +1 -1
- package/dist/commands/chatroom.js +21 -1
- package/dist/commands/chatroom.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +12 -2
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/doctor.d.ts +3 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +14 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +42 -0
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +4 -3
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +114 -8
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/package.d.ts.map +1 -1
- package/dist/commands/package.js +6 -3
- package/dist/commands/package.js.map +1 -1
- package/dist/commands/policy.d.ts.map +1 -1
- package/dist/commands/policy.js +6 -5
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/proof.js +1 -1
- package/dist/commands/proof.js.map +1 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +6 -3
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/restore-packet.d.ts.map +1 -1
- package/dist/commands/restore-packet.js +6 -4
- package/dist/commands/restore-packet.js.map +1 -1
- package/dist/commands/scope.js +6 -6
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/setup.d.ts +6 -15
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +121 -332
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +12 -1
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/slack.d.ts +5 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +143 -6
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/stream.js +1 -1
- package/dist/commands/stream.js.map +1 -1
- package/dist/commands/terminal.d.ts +33 -0
- package/dist/commands/terminal.d.ts.map +1 -1
- package/dist/commands/terminal.js +30 -12
- package/dist/commands/terminal.js.map +1 -1
- package/dist/commands/tui.js +4 -4
- package/dist/commands/tui.js.map +1 -1
- package/dist/commands/workflow-follow.d.ts +1 -1
- package/dist/commands/workflow-follow.d.ts.map +1 -1
- package/dist/commands/workflow-follow.js +4 -3
- package/dist/commands/workflow-follow.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +30 -18
- package/dist/commands/workflow.js.map +1 -1
- package/dist/config-store.js +1 -1
- package/dist/config-store.js.map +1 -1
- package/dist/front-door.d.ts.map +1 -1
- package/dist/front-door.js +4 -2
- package/dist/front-door.js.map +1 -1
- package/dist/herdr-launch-config.d.ts +3 -0
- package/dist/herdr-launch-config.d.ts.map +1 -0
- package/dist/herdr-launch-config.js +37 -0
- package/dist/herdr-launch-config.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/launch-plan-guard.d.ts +27 -0
- package/dist/launch-plan-guard.d.ts.map +1 -0
- package/dist/launch-plan-guard.js +73 -0
- package/dist/launch-plan-guard.js.map +1 -0
- package/dist/lib/bundle-source.d.ts +2 -0
- package/dist/lib/bundle-source.d.ts.map +1 -1
- package/dist/lib/bundle-source.js +12 -1
- package/dist/lib/bundle-source.js.map +1 -1
- package/dist/lib/context-git.d.ts +2 -0
- package/dist/lib/context-git.d.ts.map +1 -1
- package/dist/lib/context-git.js +55 -5
- package/dist/lib/context-git.js.map +1 -1
- package/dist/lib/scope/scope-fs.d.ts +3 -2
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +97 -9
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/lib/scope/templates.d.ts.map +1 -1
- package/dist/lib/scope/templates.js +28 -24
- package/dist/lib/scope/templates.js.map +1 -1
- package/dist/provider-auth.d.ts +32 -0
- package/dist/provider-auth.d.ts.map +1 -0
- package/dist/provider-auth.js +128 -0
- package/dist/provider-auth.js.map +1 -0
- package/dist/terminal-window.d.ts +19 -0
- package/dist/terminal-window.d.ts.map +1 -0
- package/dist/terminal-window.js +513 -0
- package/dist/terminal-window.js.map +1 -0
- package/package.json +2 -2
- package/tui/dist/commands/registry.js +2 -2
- package/tui/dist/commands/registry.js.map +1 -1
- package/tui/dist/config/config-model.d.ts.map +1 -1
- package/tui/dist/config/config-model.js +1 -0
- package/tui/dist/config/config-model.js.map +1 -1
- package/tui/dist/connections/connections-model.d.ts +5 -0
- 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 +5 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/execution/workflow-model.d.ts.map +1 -1
- package/tui/dist/execution/workflow-model.js +3 -1
- package/tui/dist/execution/workflow-model.js.map +1 -1
- package/tui/dist/hydrate.d.ts +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +3 -1
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/main.js +39 -15
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/page-read.js +1 -1
- package/tui/dist/page-read.js.map +1 -1
- package/tui/dist/pending-address.d.ts +7 -0
- package/tui/dist/pending-address.d.ts.map +1 -0
- package/tui/dist/pending-address.js +11 -0
- package/tui/dist/pending-address.js.map +1 -0
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +10 -6
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/scopes/scopes-model.js +4 -4
- package/tui/dist/socket-server.d.ts +3 -1
- package/tui/dist/socket-server.d.ts.map +1 -1
- package/tui/dist/socket-server.js +6 -0
- package/tui/dist/socket-server.js.map +1 -1
- package/tui/dist/state.d.ts.map +1 -1
- package/tui/dist/state.js +40 -13
- package/tui/dist/state.js.map +1 -1
- package/tui/dist/stylize.js +1 -1
- package/tui/dist/stylize.js.map +1 -1
- package/tui/dist/terminals/open-window.d.ts +5 -0
- package/tui/dist/terminals/open-window.d.ts.map +1 -0
- package/tui/dist/terminals/open-window.js +55 -0
- package/tui/dist/terminals/open-window.js.map +1 -0
- package/tui/dist/terminals/terminal-model.d.ts.map +1 -1
- package/tui/dist/terminals/terminal-model.js +16 -17
- package/tui/dist/terminals/terminal-model.js.map +1 -1
- package/tui/dist/types.d.ts +16 -1
- package/tui/dist/types.d.ts.map +1 -1
- package/ui/dist/assets/{index-HHSvwF97.js → index-D5n8EwkG.js} +1 -1
- package/ui/dist/index.html +1 -1
|
@@ -24,7 +24,9 @@ rig doctor --json
|
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
Use the installed command's `--help` if an option is unavailable. Read the diagnostic findings; don't treat them as
|
|
27
|
-
instructions to reset the machine.
|
|
27
|
+
instructions to reset the machine. `rig doctor` checks Claude and Codex authentication using the same local checks
|
|
28
|
+
as setup, including a configured Codex provider credential variable. A set variable does not prove that the provider accepts it or that managed
|
|
29
|
+
seats receive it. Doctor does not run an agent task: also inspect `rig ps --nodes --rig <rig>`. If the daemon is involved, `rig daemon status` and `rig daemon logs` show its state
|
|
28
30
|
and recent output.
|
|
29
31
|
|
|
30
32
|
**If OpenRig won't install or `rig` won't run, start here anyway.** Record the attempted package version, install
|
|
@@ -34,34 +36,58 @@ help.
|
|
|
34
36
|
## Match the guidance to the installed version
|
|
35
37
|
|
|
36
38
|
The reference documents beside this file describe the version they were installed with. GitHub's default branch can
|
|
37
|
-
contain changes that haven't reached your user's version.
|
|
39
|
+
contain changes that haven't reached your user's version. After an upgrade, start with the short note on what changed
|
|
40
|
+
in the installed version: `rig context get reference/whats-new.md`. For full release notes and known limitations, open
|
|
38
41
|
`https://github.com/mvschwarz/openrig/blob/v<version>/docs/releases/v<version>.md`, using the version number from
|
|
39
|
-
`rig --version` (without the commit it may show in parentheses).
|
|
42
|
+
`rig --version` (without the commit it may show in parentheses). When that file doesn't exist, use the version's
|
|
43
|
+
section of `https://github.com/mvschwarz/openrig/blob/v<version>/CHANGELOG.md`. If neither is available, say so
|
|
40
44
|
rather than treating a newer command as installed.
|
|
41
45
|
|
|
42
46
|
## Find your next step
|
|
43
47
|
|
|
44
48
|
### Installation or platform problems
|
|
45
49
|
|
|
46
|
-
Supported platforms are macOS and Linux
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
Supported platforms are macOS and Linux, and WSL2 on Windows; native Windows isn't supported. OpenRig's automated tests
|
|
51
|
+
don't run on WSL2 yet; one user's [reported working setup](getting-started.md#wsl2-a-reported-working-setup) lists what
|
|
52
|
+
mattered. OpenRig needs
|
|
53
|
+
Node.js 22 or 24 and tmux. A Linux distribution's own Node.js can be older; check `node --version`. With npm 11 or
|
|
54
|
+
later, an `npm warn install-scripts` line for `@openrig/cli` means only the postinstall Node.js and SQLite check was
|
|
55
|
+
skipped; `node "$(npm root -g)/@openrig/cli/scripts/check-abi.mjs"` runs it. A WSL error needs its actual versions,
|
|
56
|
+
commands and error text; don't assume a Windows-related pull request fixes it.
|
|
57
|
+
|
|
58
|
+
The one-command install ([getting-started](getting-started.md#install-and-sign-in)) prints its plan with
|
|
59
|
+
`--dry-run` and changes nothing. When a step fails it prints `FAILED [n/4] <command or check> (exit <code>)` and
|
|
60
|
+
stops. Read its diagnostic: if it names a runnable command, run that command by hand for the full error and record it
|
|
61
|
+
in a report; otherwise follow the accompanying diagnostic. If the only remaining failures are provider sign-ins under
|
|
62
|
+
"Some steps need attention", the install steps finished: sign in to each selected provider and continue.
|
|
49
63
|
|
|
50
64
|
### Installation finished, but there is nobody to talk to
|
|
51
65
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
the
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
66
|
+
Load the `rigs` skill and follow its step 2: it opens the OpenRig view (`rig terminal open saved:kernel --window`),
|
|
67
|
+
gives the attach commands when the window can't open or over SSH, and hands the person's goal to the operator.
|
|
68
|
+
[Install and sign in](getting-started.md#install-and-sign-in) says how to load it. The reference for the view, manual
|
|
69
|
+
attachment and the table of what can interrupt it is
|
|
70
|
+
[Open the kernel conversations](getting-started.md#open-the-kernel-conversations)
|
|
71
|
+
(`rig context get reference/getting-started.md#open-the-kernel-conversations`). Started is not ready: the view can
|
|
72
|
+
open while the kernel's agents finish starting, and opening it creates no other kernel or account.
|
|
73
|
+
|
|
74
|
+
### A step interrupted setup or the OpenRig view
|
|
75
|
+
|
|
76
|
+
Name the exact command and result, the reason it stopped and the next useful step. A harness's permission rules,
|
|
77
|
+
sandbox or automatic permission decision can refuse an installing agent's tool call before OpenRig runs.
|
|
78
|
+
Claude Code's [auto mode can deny calls](https://code.claude.com/docs/en/auto-mode-config); explain the reported
|
|
79
|
+
refusal and let the person review that step in their harness controls or run it themselves, within their chosen
|
|
80
|
+
permissions. Do not silently claim installation failed or completed from a refused call.
|
|
81
|
+
|
|
82
|
+
For missing tools, downloads or selected logins, use the specific setup hint. A Herdr install warning leaves plain
|
|
83
|
+
tmux available. A requested Ghostty install can fail setup; resolve it or decline with `--no-ghostty` and keep the
|
|
84
|
+
earlier choices. Terminal.app remains available; required tools and logins still matter. macOS may ask for
|
|
85
|
+
Automation permission; a missing display or remote daemon needs the documented headless/manual route.
|
|
86
|
+
Herdr may show an intro (Return to continue) and an agent-integration panel (Esc to close); the view does not
|
|
87
|
+
require installing those integrations. Enlarge a cramped 80×24 window. Use authorized desktop tools to inspect the
|
|
88
|
+
window contents, or state that visibility is unconfirmed and ask the person to check. A successful command or
|
|
89
|
+
window listing alone is not visual proof. The [OpenRig view guide and friction table](getting-started.md#open-the-kernel-conversations)
|
|
90
|
+
connects each observation to its next step. Preserve existing conversations while resolving it.
|
|
65
91
|
|
|
66
92
|
### The team did not start, or a terminal is missing
|
|
67
93
|
|
|
@@ -114,6 +140,9 @@ issue's current status; a similar symptom alone is not a diagnosis.
|
|
|
114
140
|
- A Codex seat on the default `workspace-write` sandbox starts without network access, so it can't reach the local
|
|
115
141
|
daemon, when its Codex configuration sets network access off, a managed requirement could restrict it, or Codex
|
|
116
142
|
doesn't answer OpenRig's configuration read in time: [#275](https://github.com/mvschwarz/openrig/issues/275).
|
|
143
|
+
- Kernel seats fail within a second of the first start on a distribution tmux whose server exits on `capture-pane`
|
|
144
|
+
(`tmux -V` prints `next-3.4`): [#980](https://github.com/mvschwarz/openrig/issues/980). The check and recovery
|
|
145
|
+
are in [Incomplete setup and restart](getting-started.md#incomplete-setup-and-restart).
|
|
117
146
|
|
|
118
147
|
For everything else, search [open issues](https://github.com/mvschwarz/openrig/issues).
|
|
119
148
|
|
|
@@ -79,6 +79,11 @@ Missing or malformed selections fail; absence is never inferred as disablement.
|
|
|
79
79
|
`rig context work-install --json` reports the effective state, source, manifest,
|
|
80
80
|
context selectors, and skills. With `--runtime`, its managed skill loadout then
|
|
81
81
|
combines System World, topology, and Project World selectors with provenance.
|
|
82
|
+
The catalog is a Git checkout. A skill folder with uncommitted or untracked content is
|
|
83
|
+
skipped by itself and named. With `--runtime`, work-install reports selected skips with
|
|
84
|
+
exit 1. It inspects by default; `--apply-skills` projects the remaining clean skills while
|
|
85
|
+
keeping any previously projected copy of the skipped skill. An uncommitted change directly
|
|
86
|
+
in the catalog root, such as `catalog.yaml`, still makes the whole catalog unavailable.
|
|
82
87
|
|
|
83
88
|
For a pre-0.5.9 home, use the `openrig-upgrade` skill's
|
|
84
89
|
`migrate-telemetry-state-0.5.9.mjs` helper as an Agent-Operated Migration. Its
|
|
@@ -6,7 +6,8 @@ This does not sign in to a provider or change any seat's permission policy.
|
|
|
6
6
|
|
|
7
7
|
The option applies only to seats whose resolved launch posture is `full_bypass`.
|
|
8
8
|
This must be declared through `builtin:yolo`, a `full_bypass` flag policy, or an explicit `full_bypass` selection;
|
|
9
|
-
ambient `OPENRIG_YOLO` alone without an attached policy is not covered.
|
|
9
|
+
ambient `OPENRIG_YOLO` alone without an attached policy is not covered. One exception: kernel Codex seats on the
|
|
10
|
+
kernel's operational default always get the Codex notice overrides below, without this option.
|
|
10
11
|
|
|
11
12
|
- Claude Code receives `--settings '{"skipDangerousModePermissionPrompt":true}'`, accepting its bypass-permissions warning.
|
|
12
13
|
A seat with an explicitly selected native permission mode other than `bypassPermissions` doesn't get it.
|
|
@@ -24,7 +25,8 @@ Turning it on for an existing rig works the same way: `rig down <rig-name>`, the
|
|
|
24
25
|
|
|
25
26
|
For an operator default on **new rigs**, use `rig config set launch.non_interruptive true`, or set
|
|
26
27
|
`OPENRIG_LAUNCH_NON_INTERRUPTIVE` in the daemon's environment (it overrides the config file).
|
|
27
|
-
The default is false;
|
|
28
|
+
The default is false; a rig spec's `non_interruptive` overrides it (see below), and an explicit positive or
|
|
29
|
+
negative command-line flag overrides both. Existing rigs
|
|
28
30
|
keep their saved choice when the operator default changes. On a remote install the receiving daemon's
|
|
29
31
|
default applies.
|
|
30
32
|
|
|
@@ -34,8 +36,9 @@ and, for each affected seat, "Non-interruptive: OpenRig accepted Claude's bypass
|
|
|
34
36
|
Codex's full-access and GPT-5.1 migration notices… no warning-acceptance settings were written."
|
|
35
37
|
|
|
36
38
|
A bundle's before-install view (`rig bundle inspect`) says when this option is available for its full-bypass
|
|
37
|
-
Claude and Codex seats, and that Claude Code asks once to accept its warning otherwise.
|
|
38
|
-
|
|
39
|
+
Claude and Codex seats, and that Claude Code asks once to accept its warning otherwise. When the bundle's `rig.yaml`
|
|
40
|
+
declares `non_interruptive: true`, it says instead that the bundle's launches are non-interruptive by default, and
|
|
41
|
+
leaves out the asks-once note. See [bundle formats](bundle-formats.md).
|
|
39
42
|
|
|
40
43
|
This feature writes no warning-acceptance settings to Claude or Codex files. It uses the launch-flag
|
|
41
44
|
surfaces checked in Claude Code 2.1.282 and Codex 0.153.4. Other notices introduced by later harness
|
|
@@ -115,7 +115,7 @@ an explicit install whose `install.skills` is empty clears it. This keeps
|
|
|
115
115
|
catalog, the workspace root itself is the project (`selectedBy: workspace`, or
|
|
116
116
|
`explicit` with a matching `--project`), and `--project` must match its
|
|
117
117
|
`project.yaml` id. Operating posture uses steps 3-5
|
|
118
|
-
the same way when a
|
|
118
|
+
the same way when a task names no project (see
|
|
119
119
|
[scoped operating posture](scoped-operating-posture.md)).
|
|
120
120
|
|
|
121
121
|
1. `--project <id>`;
|
|
@@ -160,7 +160,7 @@ existing file-reader allowlist. Catalog membership does not grant file-read or
|
|
|
160
160
|
execution permission. These views only read; they do not select a lifecycle
|
|
161
161
|
operation or activate a mission. Execution and slice queue membership require
|
|
162
162
|
an exact `project:<id>` tag; lifecycle instances use their authored project
|
|
163
|
-
identity. Unscoped historical
|
|
163
|
+
identity. Unscoped historical tasks and global review artifacts without
|
|
164
164
|
project binding are excluded from project-specific claims.
|
|
165
165
|
|
|
166
166
|
The read API adds `GET /api/scopes/projects` and optional `project` and
|
|
@@ -11,7 +11,9 @@ For every flag, see the [rig bundle reference](rig-bundle.md); for the file form
|
|
|
11
11
|
## 1. Lay out the folder
|
|
12
12
|
|
|
13
13
|
A shareable bundle is one folder, kept on GitHub: in its own repository, or as a subfolder of one you already have.
|
|
14
|
-
The folder holds the rig spec (`rig.yaml`), the agents it uses, and a README.
|
|
14
|
+
The folder holds the rig spec (`rig.yaml`), the agents it uses, and a README. Choose
|
|
15
|
+
[names that describe the team, domains and roles](topology-naming.md) before wiring its references.
|
|
16
|
+
The rules are the bundle standard
|
|
15
17
|
(`openrig.bundle-standard/v1`), summarized under "Advisory author check" in the
|
|
16
18
|
[rig bundle reference](rig-bundle.md#advisory-author-check).
|
|
17
19
|
|
|
@@ -35,9 +37,9 @@ Two optional files sit beside `rig.yaml`:
|
|
|
35
37
|
rig bundle check ./my-team # checks the folder against the standard; launches nothing
|
|
36
38
|
```
|
|
37
39
|
|
|
38
|
-
Fix what it reports, or say in your README why a finding doesn't apply. Any finding exits 1, and
|
|
39
|
-
|
|
40
|
-
commit you share. README completeness and embedded secrets always read `not_checked`: those are yours to review.
|
|
40
|
+
Fix what it reports, or say in your README why a finding doesn't apply. Any finding exits 1, and the output names the
|
|
41
|
+
file a finding is about when there is one. It checks the folder on disk, including files you haven't committed, so
|
|
42
|
+
check again at the commit you share. README completeness and embedded secrets always read `not_checked`: those are yours to review.
|
|
41
43
|
|
|
42
44
|
You can also build and look inside the archive:
|
|
43
45
|
|
|
@@ -77,18 +79,21 @@ ask.
|
|
|
77
79
|
|
|
78
80
|
Links need `git`, a running local OpenRig daemon, and a public GitHub link without credentials; they don't work with
|
|
79
81
|
`--host`. If the team uses `permission_policy: builtin:yolo` (no permission prompts), `--non-interruptive` lets OpenRig accept the harnesses'
|
|
80
|
-
first-launch warnings for you (see [non-interruptive mode](non-interruptive-mode.md)).
|
|
82
|
+
first-launch warnings for you (see [non-interruptive mode](non-interruptive-mode.md)). As the author, you can make that
|
|
83
|
+
the install default by declaring `non_interruptive: true` in `rig.yaml`; `--no-non-interruptive` overrides it.
|
|
81
84
|
|
|
82
85
|
Installing writes the bundle's files into the install target (`--target`, the current directory if you leave it
|
|
83
86
|
out) and launches the team from there, with the seats working in `--cwd`. If the target already
|
|
84
|
-
has a different file at the same path, install refuses and writes nothing, so use an empty or dedicated directory.
|
|
85
|
-
|
|
87
|
+
has a different file at the same path, install refuses and writes nothing, so use an empty or dedicated directory.
|
|
88
|
+
Installing again over a stopped team of the same name replaces it, and in its own install folder the changed files are
|
|
89
|
+
backed up first under `~/.openrig/bundle-backups/`. A running team of the same name is refused, so stop it with
|
|
90
|
+
`rig down` first. The reference's "Install a bundle" section has the details.
|
|
86
91
|
|
|
87
92
|
## 5. Choose your harnesses (when a bundle offers configurations)
|
|
88
93
|
|
|
89
94
|
```sh
|
|
90
95
|
rig up <link> --preset all-claude
|
|
91
|
-
rig up <link> --seat
|
|
96
|
+
rig up <link> --seat orch.lead=pi --seat dev.qa=codex
|
|
92
97
|
```
|
|
93
98
|
|
|
94
99
|
On openrig.dev/rigs, pick a configuration and the page gives you one command to paste, which fetches exactly that
|
|
@@ -99,14 +104,14 @@ or **"Not tested by OpenRig"**, which means exactly that. You're welcome to run
|
|
|
99
104
|
|
|
100
105
|
## 6. Submit it to openrig.dev/rigs
|
|
101
106
|
|
|
102
|
-
Open a pull request to [mvschwarz/openrig-
|
|
107
|
+
Open a pull request to [mvschwarz/openrig-registry](https://github.com/mvschwarz/openrig-registry) that adds one file,
|
|
103
108
|
`registry/submissions/<your-team>.yaml`, with three fields: `repository` (your GitHub repository URL), `folder` (the
|
|
104
109
|
folder holding `rig.yaml`, or `.` for the repository root) and `ref` (a branch, tag or commit). No pull requests? Open
|
|
105
110
|
an issue there with the same three things. A maintainer then writes the full entry, in the `registry-entry.v1` format
|
|
106
111
|
defined in the [bundle formats reference](bundle-formats.md), with the parts only a review can produce, such as the
|
|
107
112
|
pinned commit and each configuration's package digest.
|
|
108
113
|
|
|
109
|
-
Rig names are unique on the site. If `registry/<your-team>.yaml` already exists,
|
|
114
|
+
Rig names are unique on the site. If `registry/<your-team>.yaml` already exists, openrig-registry's registry check says the name is taken;
|
|
110
115
|
choose a distinct one, for example `<taken-name>-<your-name>`.
|
|
111
116
|
|
|
112
117
|
What happens next:
|
|
@@ -14,7 +14,7 @@ it is the mechanism that makes shipped chain files (see
|
|
|
14
14
|
|---|---|---|---|
|
|
15
15
|
| UserPromptSubmit | ✓ | ✓ | deliver due or on-demand context at a model-visible boundary |
|
|
16
16
|
| Stop | ✓ | — | catch a long Claude turn crossing the growth threshold |
|
|
17
|
-
| PostCompact | ✓ | ✓ | retain exact compaction due-state; deliver on the next prompt |
|
|
17
|
+
| PostCompact | ✓ | ✓ | retain exact compaction due-state; deliver on the next actionable prompt |
|
|
18
18
|
|
|
19
19
|
Claude's additional firing signal is **transcript growth** — not turns (one turn
|
|
20
20
|
can burn 200k tokens across fifty tool calls) and not wall-clock (the failure is
|
|
@@ -25,7 +25,12 @@ redundant double-fire around Codex's own compaction cadence. Set
|
|
|
25
25
|
`OPENRIG_REFOCUS_NOW=1` for an on-demand refocus and
|
|
26
26
|
`OPENRIG_REFOCUS_ENABLED=0` to disable the feature. Fresh `SessionStart` is
|
|
27
27
|
always a no-op: the default onboarding pack owns fresh orientation. Both
|
|
28
|
-
runtimes retain `PostCompact` due-state for the next prompt.
|
|
28
|
+
runtimes retain `PostCompact` due-state for the next prompt. After a managed Claude
|
|
29
|
+
compaction, the acknowledgement-only boundary and other prompts (for up to 10 minutes)
|
|
30
|
+
are skipped without consuming that state, so the hook delivers on the restore request
|
|
31
|
+
(after 10 minutes, on the next prompt);
|
|
32
|
+
that request asks the seat to read the refocusing skill and consume the delivered
|
|
33
|
+
traces rather than rerun them, and the read-depth audit accounts for them. Otherwise the hook
|
|
29
34
|
is a no-op (it writes a stderr advisory when the transcript shrinks or the
|
|
30
35
|
session has no identity), and it degrades to silence on unrelated hook errors.
|
|
31
36
|
Both runtimes stop the hook after 5 seconds, and the content REF lookup gets 2;
|
|
@@ -34,6 +39,13 @@ configured REF resolution failure instead degrades
|
|
|
34
39
|
loudly in the delivered payload while still completing the hook — a refocus
|
|
35
40
|
must never break a seat's turn.
|
|
36
41
|
|
|
42
|
+
Failed trace or configured-content resolution keeps refocus due. After three
|
|
43
|
+
consecutive failed attempts for the same seat and occupant, the hook emits one
|
|
44
|
+
idempotent issue-stream item tagged `issue,refocus`, visible through `rig stream
|
|
45
|
+
list --tag refocus`. A successful delivery resets that failure episode. An
|
|
46
|
+
unconfirmed stream write keeps the same item ID for the next failed attempt; it
|
|
47
|
+
does not send a wake, change seat status, or prove the agent read the content.
|
|
48
|
+
|
|
37
49
|
Because the hook runs at the seat's own turn boundaries, delivery to a
|
|
38
50
|
RUNNING seat needs no relaunch, no operator action, and no message traffic:
|
|
39
51
|
the next prompt the seat processes carries the content. The latency bound is
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# RigBundle Reference
|
|
2
2
|
|
|
3
3
|
Version: 2 (pod-aware)
|
|
4
|
-
Last validated against code: 2026-10-
|
|
5
|
-
Source of truth: `packages/daemon/src/domain/bundle-types.ts`, `packages/daemon/src/domain/bundle-archive.ts`, `packages/daemon/src/domain/pod-bundle-assembler.ts`, `packages/daemon/src/routes/bundles.ts`, `packages/cli/src/commands/bundle.ts`
|
|
4
|
+
Last validated against code: 2026-10-07, at the 0.6.6 cut `2620dea8` (whole document at `a350c59b`; changes to its sources since then checked)
|
|
5
|
+
Source of truth: `packages/daemon/src/domain/bundle-types.ts`, `packages/daemon/src/domain/bundle-archive.ts`, `packages/daemon/src/domain/pod-bundle-assembler.ts`, `packages/daemon/src/routes/bundles.ts`, `packages/cli/src/commands/bundle.ts`, `packages/daemon/src/domain/bundle-install-context.ts`, `packages/daemon/src/domain/bundle-source-resolver.ts`, `packages/daemon/src/domain/bootstrap-orchestrator.ts`
|
|
6
6
|
|
|
7
7
|
A `.rigbundle` is a self-contained distributable archive that packages a rig spec, all referenced agent specs, their resources (skills, guidance, startup files), culture file, documentation, and an integrity manifest into a single file. The recipient can install and launch the rig without needing the original source tree.
|
|
8
8
|
|
|
@@ -20,8 +20,8 @@ Replace `COMMIT` with a full commit ID. Branches and tags are also accepted, inc
|
|
|
20
20
|
resolve once to a full commit before fetching. Each result names the resolved source, configuration ID, package digest
|
|
21
21
|
and assembler. Save the printed commit-pinned URL to repeat the same source selection. Only a full 40-character commit
|
|
22
22
|
ID counts as a commit; a shorter one is looked up as a branch or tag name. `--preset` and repeatable
|
|
23
|
-
`--seat pod.member=runtime` select only configurations the folder declares. A link build
|
|
24
|
-
unless `--name` says otherwise.
|
|
23
|
+
`--seat pod.member=runtime` select only configurations the folder declares. A link build takes the rig's `name` from
|
|
24
|
+
its `rig.yaml` unless `--name` says otherwise, and is named `github-bundle` when `rig.yaml` has no readable name.
|
|
25
25
|
|
|
26
26
|
Link import needs a running, verified local daemon and a credential-free, publicly readable GitHub URL. It does not
|
|
27
27
|
upload files to remote daemons. For a remote target, run the link command on that host, or create an archive, transfer
|
|
@@ -59,7 +59,8 @@ checks pod-aware rig validity, README inclusion in `docs`, readable declared fil
|
|
|
59
59
|
minimum-version shape, declared preset consistency and known sensitive filenames. It does not contact a daemon,
|
|
60
60
|
build an archive, run preflight or launch anything. Findings give exit status 1; they are never an install gate. It
|
|
61
61
|
reads the folder on disk, not a link or a commit, so files that aren't committed are checked too. Human output gives
|
|
62
|
-
each rule's status, ID and reason
|
|
62
|
+
each rule's status, ID and reason, then the file it's about in parentheses when there is one; `--json` carries the
|
|
63
|
+
same as a `path` field.
|
|
63
64
|
|
|
64
65
|
README completeness and arbitrary embedded secrets need human review and are reported as `not_checked`. A bounded
|
|
65
66
|
or unreadable scan is also `not_checked`, never a clean scan. The check is advice for authors, not a security audit or
|
|
@@ -283,7 +284,7 @@ rig bundle create <spec-path-or-github-link> -o <output.rigbundle> [--rig-root <
|
|
|
283
284
|
| `--seat <pod.member=runtime>` | no | — | Use this runtime for one seat, within what `configurations.yaml` allows. Repeatable; applied after `--preset`. An undeclared choice is refused with the allowed set, and nothing is built. |
|
|
284
285
|
| `--context-pack <dir>` | no | — | Carry the context pack in `<dir>`. Repeatable. The directory may be outside the rig folder, for example a world pack whose `manifest.yaml` is at its repository root. Only `manifest.yaml` and the files it declares are carried, the same set `rig context add --git` installs, and the pack lands in the bundle at `context-packs/<manifest name>/`. Needs a pod-aware spec. |
|
|
285
286
|
| `--project-dir <dir>` | no | — | Carry the project the rig works in: the folder holding its `project.yaml` (which must declare an `id`) and files beside it, such as `SPEC.md`. On install the project is registered in the workspace catalog and the rig is associated with it, before any seat launches (see [project-workspace.md](project-workspace.md)). Needs a pod-aware spec. |
|
|
286
|
-
| `--name` | no | `my-bundle` (`github-bundle` for a link) | Bundle name in the manifest. |
|
|
287
|
+
| `--name` | no | the rig's `name` in `rig.yaml`; `my-bundle` (`github-bundle` for a link) when it has no readable name | Bundle name in the manifest. |
|
|
287
288
|
| `--bundle-version` | no | `0.1.0` | Bundle version in the manifest. |
|
|
288
289
|
| `--min-cli-version`, `--min-daemon-version` | no | — | The oldest OpenRig CLI or daemon that may install the bundle, checked on install. For a link they override the author's `bundle.yaml` minimums. |
|
|
289
290
|
| `--notes <text>` | no | — | Notes stored in the manifest's provenance. |
|
|
@@ -334,7 +335,9 @@ Under "Needs (not checked)" the view lists the author's setup preconditions, wit
|
|
|
334
335
|
shell, in order". For a declared full-bypass Claude seat it notes that Claude Code asks once to accept its bypass
|
|
335
336
|
warning, and when any Claude or Codex seat is full bypass it says that `--non-interruptive` is available (see
|
|
336
337
|
[non-interruptive mode](non-interruptive-mode.md)). It doesn't select the mode or check whether you've already
|
|
337
|
-
accepted the warning.
|
|
338
|
+
accepted the warning. When the bundle's `rig.yaml` declares `non_interruptive: true`, the view instead says that the
|
|
339
|
+
bundle declares non-interruptive launches for those seats, with broad file, command and network access, and that
|
|
340
|
+
`--no-non-interruptive` overrides it; the asks-once note is left out.
|
|
338
341
|
|
|
339
342
|
`rig bundle install` and bundle-form `rig up` print this same view to stderr before the existing action, including
|
|
340
343
|
`--plan`. With `--json`, stdout remains one result; its optional `behaviour` field carries the structured view.
|
|
@@ -367,9 +370,9 @@ rig bundle install <bundle-path-or-github-link> [--plan] [--yes] [--target <root
|
|
|
367
370
|
| `--target <root>` | yes in apply mode, for an archive path | the current directory for a link | Directory the bundle is installed into and launched from. Required for an archive path unless `--plan` is used. |
|
|
368
371
|
| `--cwd <dir>` | no | — | Working directory for every launched member, for this install only (for example, the repository the rig works on). Does not change the install target. |
|
|
369
372
|
| `--preset <name>`, `--seat <pod.member=runtime>` | no | — | For a GitHub link, the declared configuration to build and install. |
|
|
370
|
-
| `--non-interruptive` | no |
|
|
373
|
+
| `--non-interruptive` | no | the bundle `rig.yaml`'s `non_interruptive`, else the operator setting `launch.non_interruptive`, else off | Accept the harnesses' first-launch warnings for this rig's full-bypass Claude and Codex seats with launch flags, writing nothing to your settings. The choice is saved on the rig. `--no-non-interruptive` turns a saved choice off; stop a running rig with `rig down` first. See [non-interruptive mode](non-interruptive-mode.md). |
|
|
371
374
|
| `--skip-version-check` | no | off | Skip the compatibility check below. Not for routine use. |
|
|
372
|
-
| `--force` | no | off | Skip the
|
|
375
|
+
| `--force` | no | off | Skip the running-team check below. Not for routine use. A pod-aware bundle is still refused before target files are written when a team with the same name is running; a legacy (schema 1) bundle can be left partly installed. |
|
|
373
376
|
| `--json` | no | `false` | Emit machine-readable JSON. |
|
|
374
377
|
|
|
375
378
|
Install **launches the rig**; it does not just unpack it. It extracts the bundle to a temporary directory, validates integrity, and bootstraps the rig. In apply mode, the daemon requires `targetRoot`, so `rig bundle install` must be given `--target <root>` for an archive path unless you are running with `--plan`.
|
|
@@ -377,16 +380,28 @@ Install **launches the rig**; it does not just unpack it. It extracts the bundle
|
|
|
377
380
|
Before it plans or applies, install runs two checks on the archive, both also under `--plan`:
|
|
378
381
|
- **compatibility:** the manifest's `min_daemon_version` and `min_cli_version` against this daemon and CLI. A failure
|
|
379
382
|
reports "Bundle compatibility check failed" with the versions involved.
|
|
380
|
-
- **
|
|
381
|
-
"
|
|
383
|
+
- **running team:** a running team with the bundle's rig name refuses the install with "Bundle install conflict check
|
|
384
|
+
failed". The error names the installed and the offered team and lists three choices: use the existing team, stop it
|
|
385
|
+
with `rig down` and retry to replace it, or cancel. This check does not refuse a stopped team with that name.
|
|
382
386
|
|
|
383
|
-
Each error lists its fixes
|
|
387
|
+
Each error lists its fixes; the compatibility error also names `--skip-version-check`. `--skip-version-check` and
|
|
388
|
+
`--force` skip only these two checks: the manifest safety check of its `rig_spec` and `project` entries always runs.
|
|
389
|
+
|
|
390
|
+
For a pod-aware (schema version 2) bundle, installing a team whose rig name matches a stopped team replaces it: the
|
|
391
|
+
earlier team is archived when the new one is created, and the result gives the `rig unarchive <id>` command that
|
|
392
|
+
restores it. If OpenRig cannot confirm the earlier team is stopped, install refuses with `generation_unconfirmed` and
|
|
393
|
+
creates no replacement team. For an install into that team's own install folder, OpenRig makes this check before
|
|
394
|
+
writing any files; for any other target, bundle files already copied there stay.
|
|
395
|
+
|
|
396
|
+
A legacy (schema version 1) bundle does not replace a stopped team. Its approved external and package install steps run
|
|
397
|
+
first, and then its rig-name check fails preflight with "Rig name '<name>' already exists".
|
|
384
398
|
|
|
385
399
|
For a pod-aware (schema version 2) bundle, apply copies every extracted file (`bundle.yaml`, `rig.yaml`, `agents/`, culture and docs files, and any carried `project/`, `context-packs/` and author-declared contents) into the target and launches from there, then removes the temporary extraction. So:
|
|
386
400
|
|
|
387
401
|
- the target becomes the rig root: `agent_ref` paths resolve inside it, and a member with `cwd: "."` starts in the target (every pod-aware member must declare a `cwd`);
|
|
388
402
|
- an absolute member `cwd` stays as authored, and `--cwd <dir>` (on `rig bundle install` or `rig up`) still overrides every member's cwd;
|
|
389
|
-
- if the target already has a file with **different** content at any bundle path (for example its own `rig.yaml`), install refuses with `target_conflict` and writes nothing. Identical target files don't cause a target-content conflict; the other installation checks above, including the
|
|
403
|
+
- if the target already has a file with **different** content at any bundle path (for example its own `rig.yaml`), install refuses with `target_conflict` and writes nothing. Identical target files don't cause a target-content conflict; the other installation checks above, including the running-team check, still apply. Use an empty or dedicated directory as the target.
|
|
404
|
+
- exception: reinstalling over a stopped team into that team's own install folder (the target's `bundle.yaml` is schema version 2 with the same bundle name, or with `my-bundle` or `github-bundle`, the default names before 0.6.7) replaces its files there. Each differing path is first copied under `<OpenRig home>/bundle-backups/reinstall-*/files/`, with a `RESTORE.json` beside it; other files in the folder are kept. The files stay installed even if a later launch fails.
|
|
390
405
|
|
|
391
406
|
The bundle's declared skills, plugins, workflow specs, context packs and agent images are routed into your libraries **before any member launches**, and the context-pack library is rescanned, so a member's first turn can already read a pack the bundle carried. A routing failure does not stop the install: it is printed as a warning, returned in `routingFailures`, and recorded in the install audit. The human output lists what each declared kind routed and any entry that was not routed.
|
|
392
407
|
|
|
@@ -437,17 +452,20 @@ rig up <bundle-path-or-github-link> [--target <root>] [--cwd <dir>] [--plan] [--
|
|
|
437
452
|
take different routes:
|
|
438
453
|
- **A GitHub link** builds the archive and installs it through the `rig bundle install` path, with its compatibility
|
|
439
454
|
and rig-name checks and the install audit.
|
|
440
|
-
- **A local `.rigbundle` path** goes through the bundle bootstrap path directly. It skips the compatibility
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
455
|
+
- **A local `.rigbundle` path** goes through the bundle bootstrap path directly. It skips the compatibility check,
|
|
456
|
+
isn't recorded in the install audit (so `rig bundle history` doesn't list it), and doesn't print the routing summary.
|
|
457
|
+
For a pod-aware archive, a running team with the same name is still refused before target files are written, and a
|
|
458
|
+
stopped one is replaced as described under "Install a bundle". A legacy (schema 1) archive runs its approved install
|
|
459
|
+
steps before its rig-name check, which then refuses a running team and fails preflight for a stopped one; it also
|
|
460
|
+
gets no post-install routing this way. To get the checks and the audit for a local archive, use `rig bundle install`
|
|
461
|
+
or `rig bootstrap`.
|
|
444
462
|
|
|
445
463
|
`rig bootstrap <bundle-path>` also accepts archives and uses the ordinary bundle
|
|
446
464
|
install path, including compatibility checks and the install audit. Use `--plan`
|
|
447
465
|
to preview, or `--target <root>` to choose the persistent install directory. Its
|
|
448
466
|
default target is the caller's current directory; `--cwd` only changes the agents'
|
|
449
467
|
working directory. YAML files and library spec names keep the spec bootstrap path.
|
|
450
|
-
It prints no behaviour view and has no `--non-interruptive` option.
|
|
468
|
+
It prints no behaviour view and has no `--non-interruptive` option; a bundle's declared `non_interruptive` still applies.
|
|
451
469
|
|
|
452
470
|
- `--target <root>` is the install target described above (for a schema-version-2 bundle, the directory the bundle is copied into and launched from)
|
|
453
471
|
- if `--target` is omitted for a `.rigbundle` or a link, the CLI defaults the install target to the current working directory, so the bundle's files are written there
|
|
@@ -609,4 +627,6 @@ Equivalent explicit form:
|
|
|
609
627
|
rig up /path/to/my-team.rigbundle --target ~/projects/my-project
|
|
610
628
|
```
|
|
611
629
|
|
|
612
|
-
The bundle is extracted to a temporary directory and its integrity is verified. A schema-version-2 bundle is then copied into the target root
|
|
630
|
+
The bundle is extracted to a temporary directory and its integrity is verified. A schema-version-2 bundle is then copied into the target root and the rig is launched from there, with all agents and resources from the bundle. If you also want agents to launch with a different working directory for that run, pass `--cwd <dir>` separately.
|
|
631
|
+
|
|
632
|
+
A running team must be stopped before reinstalling. Reinstalling into a stopped team's recorded install folder preserves conflicting files in the instance's `bundle-backups` directory; the result names the backup. The folder must still contain that bundle's installed manifest. A copied same-name manifest in another folder does not authorize replacing its conflicting files. Other targets retain first-install behavior: different files at the same paths are refused before writing. New installations record the canonical target folder for each generation, independently of `--cwd`. Older generations and new generations created directly from `rig.yaml` have no recorded folder and retain the manifest-only check until their next successful bundle installation, so a copied same-name manifest can still qualify for those generations.
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
# RigSpec Reference
|
|
2
2
|
|
|
3
3
|
Version: 0.2 (pod-aware)
|
|
4
|
-
Last validated against code: 2026-10-
|
|
5
|
-
Source of truth: `packages/daemon/src/domain/rigspec-schema.ts`, `packages/daemon/src/domain/types.ts`, `packages/daemon/src/domain/startup-validation.ts`, `packages/daemon/src/domain/permission-policy/policy-ref.ts`, `packages/daemon/src/domain/profile-resolver.ts`, `packages/daemon/src/domain/rigspec-preflight.ts`
|
|
4
|
+
Last validated against code: 2026-10-07, at the 0.6.6 cut `2620dea8` (whole document at `fcaf1f8e`; changes to its sources since then checked)
|
|
5
|
+
Source of truth: `packages/daemon/src/domain/rigspec-schema.ts`, `packages/daemon/src/domain/types.ts`, `packages/daemon/src/domain/startup-validation.ts`, `packages/daemon/src/domain/permission-policy/policy-ref.ts`, `packages/daemon/src/domain/profile-resolver.ts`, `packages/daemon/src/domain/rigspec-preflight.ts`, `packages/daemon/src/adapters/kernel-authority.ts`, `packages/daemon/src/domain/native-permission-store.ts`, `packages/daemon/src/domain/codex-team-workspace.ts`
|
|
6
6
|
|
|
7
7
|
This is the canonical reference for the pod-aware RigSpec YAML format. Every field, validation rule, and default documented here was traced from the actual parser and validator code, not from prior documentation.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
For choosing IDs, see [naming rigs, pods and seats](topology-naming.md). Keep the same
|
|
12
|
+
logical names in edges, startup instructions, workflow targets and runtime presets.
|
|
13
|
+
|
|
11
14
|
## Minimal Valid Example
|
|
12
15
|
|
|
13
16
|
```yaml
|
|
@@ -18,7 +21,7 @@ pods:
|
|
|
18
21
|
- id: dev
|
|
19
22
|
label: Development
|
|
20
23
|
members:
|
|
21
|
-
- id:
|
|
24
|
+
- id: build
|
|
22
25
|
agent_ref: "local:agents/impl"
|
|
23
26
|
profile: default
|
|
24
27
|
runtime: claude-code
|
|
@@ -105,7 +108,7 @@ pods:
|
|
|
105
108
|
required: true
|
|
106
109
|
actions: []
|
|
107
110
|
members:
|
|
108
|
-
- id:
|
|
111
|
+
- id: build
|
|
109
112
|
agent_ref: "local:agents/impl"
|
|
110
113
|
profile: default
|
|
111
114
|
runtime: claude-code
|
|
@@ -131,7 +134,7 @@ pods:
|
|
|
131
134
|
cwd: "."
|
|
132
135
|
edges:
|
|
133
136
|
- kind: delegates_to
|
|
134
|
-
from:
|
|
137
|
+
from: build
|
|
135
138
|
to: qa
|
|
136
139
|
|
|
137
140
|
- id: rev
|
|
@@ -152,13 +155,13 @@ pods:
|
|
|
152
155
|
edges:
|
|
153
156
|
- kind: delegates_to
|
|
154
157
|
from: orch.lead
|
|
155
|
-
to: dev.
|
|
158
|
+
to: dev.build
|
|
156
159
|
- kind: delegates_to
|
|
157
160
|
from: orch.peer
|
|
158
161
|
to: dev.qa
|
|
159
162
|
- kind: can_observe
|
|
160
163
|
from: rev.r1
|
|
161
|
-
to: dev.
|
|
164
|
+
to: dev.build
|
|
162
165
|
- kind: can_observe
|
|
163
166
|
from: rev.r2
|
|
164
167
|
to: dev.qa
|
|
@@ -226,12 +229,35 @@ Claude keeps `acceptEdits` and receives inline session settings allowing ordinar
|
|
|
226
229
|
`rig` commands, project reads and common project test commands (for example,
|
|
227
230
|
`npm test`, `pnpm test`, `pytest`, `go test` and `cargo test`). Lifecycle commands
|
|
228
231
|
such as `rig up`, `rig down`, `rig restore`, `rig bundle install` and seat stop or
|
|
229
|
-
handover
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
232
|
+
handover ask through a session `PreToolUse` hook. Their literal help forms, such
|
|
233
|
+
as `rig down --help`, `rig bundle install -h` and `rig help down`, run without
|
|
234
|
+
that lifecycle prompt. Native personal, project and managed deny/ask rules still
|
|
235
|
+
apply; OpenRig does not remove or override them.
|
|
236
|
+
|
|
237
|
+
For allowances, the hook recognizes literal command words (including quoted or absolute paths),
|
|
238
|
+
leading environment assignments that do not change executable lookup or startup,
|
|
239
|
+
and `env`, `command` and `exec` wrappers without options other than `--`.
|
|
240
|
+
Relative executable paths and assignments such as `PATH` or `NODE_OPTIONS` stay
|
|
241
|
+
with native checks. The same existing team allowances apply after spelling
|
|
242
|
+
normalization; project `node_modules/.bin/vitest` and `jest` paths match their
|
|
243
|
+
existing `npx` allowances. It does not automatically allow pipelines, command
|
|
244
|
+
substitutions, redirects, heredocs, shell functions or other unrecognized syntax.
|
|
245
|
+
Lifecycle prefixes are checked at every word position, including after wrappers,
|
|
246
|
+
control-flow words and CLI argument separators. A `--` separator before or after
|
|
247
|
+
the subcommand ends option parsing, so a later `--help` is an operand and still
|
|
248
|
+
asks. Ask detection also scans with comment text retained, so a `#` inside a
|
|
249
|
+
substitution does not hide a later lifecycle command. Unquoted prose or comments
|
|
250
|
+
containing a lifecycle command may also ask; ordinary trailing comments do not
|
|
251
|
+
change allowance matching. Quoted messages and quoted heredoc bodies remain data.
|
|
252
|
+
Arithmetic shifts are not treated as heredoc operators. These are command
|
|
253
|
+
allowances, not containment: a project's test command can execute code. The
|
|
254
|
+
hook and allowances are passed with `--settings` at launch, including resume
|
|
255
|
+
and fork; nothing is written to personal or project permission files.
|
|
256
|
+
|
|
257
|
+
If the helper asset is missing at launch, OpenRig falls back to the native lifecycle
|
|
258
|
+
ask rules; help can prompt in that fallback. A helper that disappears or times out
|
|
259
|
+
after launch cannot supply a decision, leaving Claude's remaining native rules
|
|
260
|
+
in effect. The hook is a convenience policy, not a containment boundary.
|
|
235
261
|
|
|
236
262
|
Codex keeps `workspace-write` with its existing approval policy and receives the
|
|
237
263
|
configured OpenRig workspace root plus its pod's shared state directory as
|
|
@@ -267,7 +293,8 @@ The destructive class is `delete_everything`, `drop_persistent_store` and
|
|
|
267
293
|
**At launch.** `builtin:yolo` selects Claude `--dangerously-skip-permissions`, Codex
|
|
268
294
|
`-s danger-full-access -a never`, and Pi `--approve`. `builtin:auto` selects Claude
|
|
269
295
|
`--permission-mode auto`, while Codex and Pi do not have an auto mode and launch at the floor.
|
|
270
|
-
Every other seat launches at the floor
|
|
296
|
+
Every other seat launches at the floor (a non-kernel seat with no policy also gets the
|
|
297
|
+
[team launch default](#team-launch-defaults) above):
|
|
271
298
|
- Claude `--permission-mode acceptEdits`;
|
|
272
299
|
- Codex `-s workspace-write`, or `-p <profile>` when the member sets
|
|
273
300
|
`codex_config_profile`, in which case the profile governs its own sandbox;
|
|
@@ -276,7 +303,8 @@ Every other seat launches at the floor:
|
|
|
276
303
|
Seats of the rig named `kernel` are the exception. With no member or rig policy, no
|
|
277
304
|
per-seat choice and (for Codex) no named profile, Claude launches in `acceptEdits` with a
|
|
278
305
|
per-launch `--settings` allow list for its file tools and operational commands, and Codex
|
|
279
|
-
launches with `-s danger-full-access -a never
|
|
306
|
+
launches with `-s danger-full-access -a never`, plus per-launch `-c` overrides that hide its
|
|
307
|
+
full-access and GPT-5.1 migration notices, whatever the rig's non-interruptive choice.
|
|
280
308
|
|
|
281
309
|
**Config-surface policies are recorded, not applied at launch.** The seat still starts at
|
|
282
310
|
the floor. The `allow`, `ask` and `deny` rules take effect once they are translated into the
|
|
@@ -388,7 +416,7 @@ directory's `CLAUDE.md`, including blocks written by other rigs.
|
|
|
388
416
|
|
|
389
417
|
- **State:** Each seat uses `$OPENRIG_HOME/state/pi/<session>/agent` as its Pi agent directory, with `sessions/` beside it, instead of your default `~/.pi/agent`. The runner sets `PI_CODING_AGENT_DIR` to that directory. `<session>` is the seat's session name, unchanged; for a pod member it is `{podId}-{memberId}@{rigName}`. `$OPENRIG_HOME` defaults to `~/.openrig`. OpenRig creates these directories at launch and does not copy anything from `~/.pi/agent`.
|
|
390
418
|
- **Custom models:** Pi reads `models.json` from its agent directory, so a seat reads `$OPENRIG_HOME/state/pi/<session>/agent/models.json`, not `~/.pi/agent/models.json`. Custom provider and model definitions for a seat go in that file. A seat that uses only providers Pi already includes does not need one. OpenRig does not create or write `models.json`.
|
|
391
|
-
- **Credentials:** The Pi process receives only `PATH`, `HOME`, `USER`, `LOGNAME`, `TERM`, `LANG`, `LC_ALL`, `SHELL`, `TMPDIR`, a fixed set of OpenRig seat and instance variables, `PI_CODING_AGENT_DIR`, `PI_CODING_AGENT_SESSION_DIR`, and at most one provider key. That key is `OPENROUTER_API_KEY`, `ZAI_API_KEY` or `
|
|
419
|
+
- **Credentials:** The Pi process receives only `PATH`, `HOME`, `USER`, `LOGNAME`, `TERM`, `LANG`, `LC_ALL`, `SHELL`, `TMPDIR`, a fixed set of OpenRig seat and instance variables, `PI_CODING_AGENT_DIR`, `PI_CODING_AGENT_SESSION_DIR`, and at most one provider key. That key is `OPENROUTER_API_KEY`, `ZAI_API_KEY`, `KIMI_API_KEY` or `MINIMAX_API_KEY`, passed only when it is set in the seat's environment and the seat's `model` is written as `openrouter/<id>`, `zai/<id>`, `kimi-coding/<id>` or `minimax/<id>`. Naming that variable in `recovery.provider_auth_env_allowlist` (empty by default) makes the daemon add it, when set in the daemon's environment, to the seat's launch environment. No other variable reaches Pi, including other providers' keys and a custom provider's own key variable.
|
|
392
420
|
|
|
393
421
|
### Oh My Pi (`runtime: omp`)
|
|
394
422
|
|
|
@@ -428,7 +456,7 @@ The canonical session name is derived from the pod ID, member ID, and rig name:
|
|
|
428
456
|
{podId}-{memberId}@{rigName}
|
|
429
457
|
```
|
|
430
458
|
|
|
431
|
-
Example: pod `dev`, member `
|
|
459
|
+
Example: pod `dev`, member `build`, rig `my-team` → session `dev-build@my-team`
|
|
432
460
|
|
|
433
461
|
Pod and member IDs cannot contain `@` because the first `@` separates their portion
|
|
434
462
|
of the session address from the rig name. Rig names may still contain `@`.
|
|
@@ -457,13 +485,13 @@ Edges within a pod use **unqualified member IDs** (just the member `id`, not `po
|
|
|
457
485
|
pods:
|
|
458
486
|
- id: dev
|
|
459
487
|
members:
|
|
460
|
-
- id:
|
|
488
|
+
- id: build
|
|
461
489
|
# ...
|
|
462
490
|
- id: qa
|
|
463
491
|
# ...
|
|
464
492
|
edges:
|
|
465
493
|
- kind: delegates_to
|
|
466
|
-
from:
|
|
494
|
+
from: build # NOT dev.build
|
|
467
495
|
to: qa # NOT dev.qa
|
|
468
496
|
```
|
|
469
497
|
|
|
@@ -477,7 +505,7 @@ Edges between pods use **fully-qualified `pod.member` IDs**:
|
|
|
477
505
|
edges:
|
|
478
506
|
- kind: delegates_to
|
|
479
507
|
from: orch.lead # pod.member format
|
|
480
|
-
to: dev.
|
|
508
|
+
to: dev.build # pod.member format
|
|
481
509
|
```
|
|
482
510
|
|
|
483
511
|
Cross-pod edges must reference different pods. An edge where both `from` and `to` are in the same pod is a validation error — use pod-local edges instead.
|
|
@@ -4,7 +4,8 @@ A roster records who to involve for a purpose and why. The same seat can appear
|
|
|
4
4
|
rosters with different capabilities and engagement. Membership is a recommendation, not an
|
|
5
5
|
assignment or a grant of authority. Contact someone with the existing `rig send` or `rig queue` commands.
|
|
6
6
|
|
|
7
|
-
Put JSON files in `<workspace.root>/rosters
|
|
7
|
+
Put JSON files in `<workspace.root>/rosters/`; the included starter and factory leads write
|
|
8
|
+
their team's `<rig>.json` there at first start and never replace an existing one. Read `workspace.root` with
|
|
8
9
|
`rig config get workspace.root`, or use `--folder` to read another folder in place.
|
|
9
10
|
|
|
10
11
|
```sh
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://openrig.dev/schemas/registry-entry.v1.json",
|
|
4
|
-
"title": "Registry entry (openrig-
|
|
4
|
+
"title": "Registry entry (openrig-registry/registry/<slug>.yaml)",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"required": [
|
|
7
7
|
"schema",
|