@openrig/cli 0.6.4-rc.1 → 0.6.5
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 +384 -0
- package/daemon/assets/onboarding/02-self-and-competent-action.md +5 -0
- 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.cjs +100 -20
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +201 -132
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +11 -11
- package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +24 -0
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +17 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +6 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +45 -19
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +1 -19
- package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +3 -0
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +56 -4
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +0 -5
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +5 -6
- package/daemon/context-packs/help/help.md +9 -4
- 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 +25 -12
- package/daemon/context-packs/reference/getting-started.md +7 -2
- package/daemon/context-packs/reference/instance-layout.md +11 -0
- package/daemon/context-packs/reference/manifest.yaml +1 -1
- package/daemon/context-packs/reference/rig-spec.md +32 -5
- 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 +201 -132
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +5 -3
- package/daemon/context-packs/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -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 +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 +6 -0
- 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/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/SKILL.md +24 -3
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +3 -3
- 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 +11 -11
- 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/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
- package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +2 -2
- package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +17 -0
- package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +2 -2
- package/daemon/context-packs/skills/openrig-user/SKILL.md +45 -19
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
- 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/SKILL.md +1 -19
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/SKILL.md +3 -0
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +56 -4
- 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 +0 -5
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +5 -6
- 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 +17 -3
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +157 -53
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts +7 -1
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +39 -8
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts +7 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +14 -6
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +8 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +34 -12
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.d.ts +2 -1
- package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.js +5 -2
- package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
- package/daemon/dist/adapters/daemon-url.d.ts +7 -0
- package/daemon/dist/adapters/daemon-url.d.ts.map +1 -0
- package/daemon/dist/adapters/daemon-url.js +12 -0
- package/daemon/dist/adapters/daemon-url.js.map +1 -0
- package/daemon/dist/adapters/omp-resume.d.ts +6 -0
- package/daemon/dist/adapters/omp-resume.d.ts.map +1 -0
- package/daemon/dist/adapters/omp-resume.js +6 -0
- package/daemon/dist/adapters/omp-resume.js.map +1 -0
- package/daemon/dist/adapters/omp-runtime-adapter.d.ts +10 -0
- package/daemon/dist/adapters/omp-runtime-adapter.d.ts.map +1 -0
- package/daemon/dist/adapters/omp-runtime-adapter.js +16 -0
- package/daemon/dist/adapters/omp-runtime-adapter.js.map +1 -0
- package/daemon/dist/adapters/pi-resume.d.ts +4 -0
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-resume.js +20 -18
- package/daemon/dist/adapters/pi-resume.js.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.d.ts +14 -2
- package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.js +62 -5
- package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
- package/daemon/dist/adapters/pi-runner.d.ts +49 -5
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner.js +362 -67
- package/daemon/dist/adapters/pi-runner.js.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts +3 -2
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.js +49 -32
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/preflight-exec.d.ts +11 -0
- package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -0
- package/daemon/dist/adapters/preflight-exec.js +52 -0
- package/daemon/dist/adapters/preflight-exec.js.map +1 -0
- package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runner.js +3 -1
- package/daemon/dist/adapters/stub-runner.js.map +1 -1
- package/daemon/dist/adapters/stub-runtime-adapter.js +1 -1
- package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +47 -5
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +305 -54
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/daemon-shutdown.d.ts +19 -0
- package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
- package/daemon/dist/daemon-shutdown.js +81 -0
- package/daemon/dist/daemon-shutdown.js.map +1 -1
- package/daemon/dist/db/all-migrations.d.ts +1 -1
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +10 -2
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/090_human_reply_to.d.ts +3 -0
- package/daemon/dist/db/migrations/090_human_reply_to.d.ts.map +1 -0
- package/daemon/dist/db/migrations/090_human_reply_to.js +7 -0
- package/daemon/dist/db/migrations/090_human_reply_to.js.map +1 -0
- package/daemon/dist/db/migrations/091_human_questions.d.ts +3 -0
- package/daemon/dist/db/migrations/091_human_questions.d.ts.map +1 -0
- package/daemon/dist/db/migrations/091_human_questions.js +9 -0
- package/daemon/dist/db/migrations/091_human_questions.js.map +1 -0
- package/daemon/dist/db/migrations/092_node_effort.d.ts +3 -0
- package/daemon/dist/db/migrations/092_node_effort.d.ts.map +1 -0
- package/daemon/dist/db/migrations/092_node_effort.js +8 -0
- package/daemon/dist/db/migrations/092_node_effort.js.map +1 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts +3 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts.map +1 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js +12 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js.map +1 -0
- package/daemon/dist/domain/activity-endpoint.d.ts.map +1 -1
- package/daemon/dist/domain/activity-endpoint.js +3 -1
- package/daemon/dist/domain/activity-endpoint.js.map +1 -1
- package/daemon/dist/domain/agent-activity-store.d.ts +3 -1
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
- package/daemon/dist/domain/agent-activity-store.js +13 -3
- package/daemon/dist/domain/agent-activity-store.js.map +1 -1
- package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/agent-images/agent-image-library-service.js +76 -56
- package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +24 -3
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +3 -2
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-archive.js +25 -5
- package/daemon/dist/domain/bundle-archive.js.map +1 -1
- package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
- package/daemon/dist/domain/chat-repository.js +3 -1
- package/daemon/dist/domain/chat-repository.js.map +1 -1
- package/daemon/dist/domain/checkpoint-store.d.ts.map +1 -1
- package/daemon/dist/domain/checkpoint-store.js +2 -2
- package/daemon/dist/domain/checkpoint-store.js.map +1 -1
- package/daemon/dist/domain/claim-service.d.ts +7 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +6 -2
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +35 -12
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +256 -128
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.d.ts +13 -0
- package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.js +31 -4
- package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
- package/daemon/dist/domain/codex-daemon-support.d.ts +1 -1
- package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -1
- package/daemon/dist/domain/codex-daemon-support.js +2 -2
- package/daemon/dist/domain/codex-daemon-support.js.map +1 -1
- package/daemon/dist/domain/codex-network-default.d.ts +42 -0
- package/daemon/dist/domain/codex-network-default.d.ts.map +1 -0
- package/daemon/dist/domain/codex-network-default.js +230 -0
- package/daemon/dist/domain/codex-network-default.js.map +1 -0
- package/daemon/dist/domain/codex-profile-preflight.d.ts +1 -1
- package/daemon/dist/domain/codex-profile-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/codex-profile-preflight.js +3 -3
- package/daemon/dist/domain/codex-profile-preflight.js.map +1 -1
- package/daemon/dist/domain/codex-thread-id.d.ts +4 -2
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +10 -6
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +2 -1
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.js +13 -2
- package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.d.ts +5 -0
- package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.js +30 -15
- package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +10 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/profile-source-resolver.js +43 -8
- package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
- package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/seat-recap-store.js +73 -16
- package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -1
- package/daemon/dist/domain/context-usage-store.d.ts +3 -0
- package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-usage-store.js +4 -2
- package/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/daemon/dist/domain/crash-cart-detect.d.ts.map +1 -1
- package/daemon/dist/domain/crash-cart-detect.js +2 -1
- package/daemon/dist/domain/crash-cart-detect.js.map +1 -1
- package/daemon/dist/domain/crash-cart-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/crash-cart-discovery.js +4 -2
- package/daemon/dist/domain/crash-cart-discovery.js.map +1 -1
- package/daemon/dist/domain/current-work.d.ts +17 -0
- package/daemon/dist/domain/current-work.d.ts.map +1 -1
- package/daemon/dist/domain/current-work.js +46 -0
- package/daemon/dist/domain/current-work.js.map +1 -1
- package/daemon/dist/domain/cwd-resolution.js +1 -1
- package/daemon/dist/domain/cwd-resolution.js.map +1 -1
- package/daemon/dist/domain/daemon-url.d.ts +7 -0
- package/daemon/dist/domain/daemon-url.d.ts.map +1 -0
- package/daemon/dist/domain/daemon-url.js +12 -0
- package/daemon/dist/domain/daemon-url.js.map +1 -0
- package/daemon/dist/domain/discovery-types.d.ts +1 -1
- package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
- package/daemon/dist/domain/event-bus.d.ts +1 -0
- package/daemon/dist/domain/event-bus.d.ts.map +1 -1
- package/daemon/dist/domain/event-bus.js +18 -7
- package/daemon/dist/domain/event-bus.js.map +1 -1
- package/daemon/dist/domain/execution-view.d.ts +3 -3
- package/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/daemon/dist/domain/execution-view.js +116 -93
- package/daemon/dist/domain/execution-view.js.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +9 -7
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.js +38 -16
- package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +71 -3
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +145 -11
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/manifest.js +1 -1
- package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.d.ts +17 -0
- package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.js +77 -3
- package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.js +2 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.js +15 -5
- package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/secrets.js +5 -4
- package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts +16 -10
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.js +91 -23
- package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +33 -10
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +107 -26
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +114 -27
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.js +3 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.js +18 -0
- package/daemon/dist/domain/gateway/slack/state-store.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 +7 -2
- package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +3 -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 +14 -2
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/graph-projection.js +1 -0
- package/daemon/dist/domain/graph-projection.js.map +1 -1
- package/daemon/dist/domain/health-checkpoints.d.ts +2 -0
- package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -1
- package/daemon/dist/domain/health-checkpoints.js +2 -0
- package/daemon/dist/domain/health-checkpoints.js.map +1 -1
- package/daemon/dist/domain/health-detectors.d.ts +32 -1
- package/daemon/dist/domain/health-detectors.d.ts.map +1 -1
- package/daemon/dist/domain/health-detectors.js +40 -9
- package/daemon/dist/domain/health-detectors.js.map +1 -1
- package/daemon/dist/domain/health-diagnosis.d.ts +3 -1
- package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
- package/daemon/dist/domain/health-diagnosis.js +6 -3
- package/daemon/dist/domain/health-diagnosis.js.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.d.ts +5 -1
- package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.js +20 -4
- package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +3 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.js +10 -3
- package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
- package/daemon/dist/domain/human-questions.d.ts +41 -0
- package/daemon/dist/domain/human-questions.d.ts.map +1 -0
- package/daemon/dist/domain/human-questions.js +81 -0
- package/daemon/dist/domain/human-questions.js.map +1 -0
- package/daemon/dist/domain/markdown-address.js +1 -1
- package/daemon/dist/domain/markdown-address.js.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.d.ts +5 -0
- package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.js +11 -1
- package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +25 -63
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +34 -100
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +1 -0
- package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js +6 -3
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +5 -0
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +33 -2
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +2 -0
- package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +4 -0
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +33 -2
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -1
- package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts +27 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.js +60 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.js.map +1 -0
- package/daemon/dist/domain/native-process-lineage.d.ts +9 -2
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
- package/daemon/dist/domain/native-process-lineage.js +104 -11
- package/daemon/dist/domain/native-process-lineage.js.map +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts +5 -1
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +17 -4
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +91 -44
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +4 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +4 -1
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +1 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.js +25 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
- package/daemon/dist/domain/permission-drift.d.ts +1 -0
- package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
- package/daemon/dist/domain/permission-drift.js +13 -1
- package/daemon/dist/domain/permission-drift.js.map +1 -1
- package/daemon/dist/domain/plugin-discovery-service.d.ts +5 -6
- package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-discovery-service.js +14 -8
- package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.d.ts +6 -2
- package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.js +58 -15
- package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +6 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
- package/daemon/dist/domain/policies/parked-owner-consumer.js +11 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
- package/daemon/dist/domain/profile-resolver.d.ts +1 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +7 -0
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
- package/daemon/dist/domain/project-lifecycle-compiler.js +10 -2
- package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
- package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
- package/daemon/dist/domain/projection-planner.js +14 -5
- package/daemon/dist/domain/projection-planner.js.map +1 -1
- package/daemon/dist/domain/proof/judgments.d.ts +3 -0
- package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
- package/daemon/dist/domain/proof/judgments.js +13 -8
- package/daemon/dist/domain/proof/judgments.js.map +1 -1
- package/daemon/dist/domain/proof/source-watch.d.ts.map +1 -1
- package/daemon/dist/domain/proof/source-watch.js +45 -27
- package/daemon/dist/domain/proof/source-watch.js.map +1 -1
- package/daemon/dist/domain/provider/host-usage-rollup.js +9 -5
- package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +22 -3
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +50 -11
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
- package/daemon/dist/domain/queue-recovery.js +7 -1
- package/daemon/dist/domain/queue-recovery.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +98 -6
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +301 -33
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts +3 -0
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +111 -26
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.d.ts +8 -7
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +278 -19
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.d.ts +10 -9
- package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.js +31 -11
- package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
- package/daemon/dist/domain/reply-to-choice.d.ts +26 -0
- package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -0
- package/daemon/dist/domain/reply-to-choice.js +45 -0
- package/daemon/dist/domain/reply-to-choice.js.map +1 -0
- package/daemon/dist/domain/restore-check-service.d.ts +27 -8
- package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
- package/daemon/dist/domain/restore-check-service.js +202 -126
- package/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +3 -2
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +65 -208
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +2 -6
- package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/daemon/dist/domain/restore-preconditions.d.ts +12 -0
- package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -0
- package/daemon/dist/domain/restore-preconditions.js +202 -0
- package/daemon/dist/domain/restore-preconditions.js.map +1 -0
- package/daemon/dist/domain/resume-metadata-refresher.d.ts +20 -4
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +70 -8
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/daemon/dist/domain/resume-token-capture.d.ts +22 -1
- package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-capture.js +32 -4
- package/daemon/dist/domain/resume-token-capture.js.map +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-validation.js +24 -24
- package/daemon/dist/domain/resume-token-validation.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +3 -0
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +21 -0
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rig-teardown.d.ts +3 -0
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +96 -19
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +6 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +4 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +37 -8
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +2 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +20 -5
- 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 +14 -2
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +7 -0
- 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/runtime-verifier.d.ts +3 -1
- package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-verifier.js +10 -1
- package/daemon/dist/domain/runtime-verifier.js.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -4
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.js +4 -4
- package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts +9 -4
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +73 -22
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts +1 -0
- package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.js +32 -9
- package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +6 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +8 -5
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.js +99 -18
- package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-launch-environment.d.ts +26 -0
- package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -0
- package/daemon/dist/domain/seat-launch-environment.js +178 -0
- package/daemon/dist/domain/seat-launch-environment.js.map +1 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +7 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.js +37 -2
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +4 -2
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.d.ts +5 -4
- package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.js +23 -9
- package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-switch-client-service.js +3 -2
- package/daemon/dist/domain/seat-switch-client-service.js.map +1 -1
- package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
- package/daemon/dist/domain/services-readiness.js +6 -2
- package/daemon/dist/domain/services-readiness.js.map +1 -1
- package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -1
- package/daemon/dist/domain/session-fingerprinter.js +16 -1
- package/daemon/dist/domain/session-fingerprinter.js.map +1 -1
- package/daemon/dist/domain/session-name.d.ts.map +1 -1
- package/daemon/dist/domain/session-name.js +6 -0
- package/daemon/dist/domain/session-name.js.map +1 -1
- package/daemon/dist/domain/session-registry.d.ts +3 -0
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js +7 -0
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +30 -1
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +290 -145
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/snapshot-repository.d.ts +2 -1
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-repository.js +39 -15
- package/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js +70 -11
- package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
- package/daemon/dist/domain/spec-validation-service.d.ts +6 -0
- package/daemon/dist/domain/spec-validation-service.d.ts.map +1 -1
- package/daemon/dist/domain/spec-validation-service.js +16 -1
- package/daemon/dist/domain/spec-validation-service.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +8 -0
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +148 -37
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/startup-submission-evidence.d.ts +41 -0
- package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -0
- package/daemon/dist/domain/startup-submission-evidence.js +67 -0
- package/daemon/dist/domain/startup-submission-evidence.js.map +1 -0
- package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
- package/daemon/dist/domain/startup-validation.js +4 -0
- package/daemon/dist/domain/startup-validation.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +5 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +8 -6
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.js +2 -1
- package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
- package/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/tmux-discovery-scanner.js +7 -2
- package/daemon/dist/domain/tmux-discovery-scanner.js.map +1 -1
- package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -1
- package/daemon/dist/domain/tmux-option-defaults.js +5 -0
- package/daemon/dist/domain/tmux-option-defaults.js.map +1 -1
- package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-capture.js +1 -1
- package/daemon/dist/domain/transcript-capture.js.map +1 -1
- package/daemon/dist/domain/transcript-rotation.d.ts +26 -5
- package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-rotation.js +176 -25
- package/daemon/dist/domain/transcript-rotation.js.map +1 -1
- package/daemon/dist/domain/transcript-store.d.ts +1 -1
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +11 -4
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +18 -5
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/usage-series.d.ts.map +1 -1
- package/daemon/dist/domain/usage-series.js +11 -6
- package/daemon/dist/domain/usage-series.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +2 -0
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +88 -6
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/view-projector.d.ts +11 -6
- package/daemon/dist/domain/view-projector.d.ts.map +1 -1
- package/daemon/dist/domain/view-projector.js +2 -6
- package/daemon/dist/domain/view-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts +29 -7
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.js +103 -14
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-resolver.js +1 -1
- package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -1
- package/daemon/dist/health-detectors-surface.d.ts +1 -1
- package/daemon/dist/health-detectors-surface.d.ts.map +1 -1
- package/daemon/dist/health-detectors-surface.js.map +1 -1
- package/daemon/dist/index.d.ts +4 -4
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +11 -7
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/middleware/json-body-error.d.ts +17 -0
- package/daemon/dist/middleware/json-body-error.d.ts.map +1 -0
- package/daemon/dist/middleware/json-body-error.js +42 -0
- package/daemon/dist/middleware/json-body-error.js.map +1 -0
- package/daemon/dist/routes/activity.d.ts.map +1 -1
- package/daemon/dist/routes/activity.js +85 -6
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/attention.d.ts.map +1 -1
- package/daemon/dist/routes/attention.js +7 -1
- package/daemon/dist/routes/attention.js.map +1 -1
- package/daemon/dist/routes/bundles.js +32 -3
- package/daemon/dist/routes/bundles.js.map +1 -1
- package/daemon/dist/routes/compaction.d.ts.map +1 -1
- package/daemon/dist/routes/compaction.js +30 -2
- package/daemon/dist/routes/compaction.js.map +1 -1
- package/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/daemon/dist/routes/context-packs.js +10 -2
- package/daemon/dist/routes/context-packs.js.map +1 -1
- package/daemon/dist/routes/files.js +2 -2
- package/daemon/dist/routes/files.js.map +1 -1
- package/daemon/dist/routes/gateway.d.ts.map +1 -1
- package/daemon/dist/routes/gateway.js +6 -1
- package/daemon/dist/routes/gateway.js.map +1 -1
- package/daemon/dist/routes/hosts.d.ts.map +1 -1
- package/daemon/dist/routes/hosts.js +51 -12
- package/daemon/dist/routes/hosts.js.map +1 -1
- package/daemon/dist/routes/mission-control.d.ts.map +1 -1
- package/daemon/dist/routes/mission-control.js +6 -2
- package/daemon/dist/routes/mission-control.js.map +1 -1
- package/daemon/dist/routes/missions.d.ts.map +1 -1
- package/daemon/dist/routes/missions.js +17 -5
- package/daemon/dist/routes/missions.js.map +1 -1
- package/daemon/dist/routes/plugins.d.ts.map +1 -1
- package/daemon/dist/routes/plugins.js +5 -1
- package/daemon/dist/routes/plugins.js.map +1 -1
- package/daemon/dist/routes/proof.d.ts.map +1 -1
- package/daemon/dist/routes/proof.js +9 -2
- package/daemon/dist/routes/proof.js.map +1 -1
- package/daemon/dist/routes/ps.d.ts.map +1 -1
- package/daemon/dist/routes/ps.js +18 -0
- package/daemon/dist/routes/ps.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +150 -67
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/restore-check.d.ts.map +1 -1
- package/daemon/dist/routes/restore-check.js +40 -1
- package/daemon/dist/routes/restore-check.js.map +1 -1
- package/daemon/dist/routes/rigs.js +1 -1
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/rigspec.d.ts.map +1 -1
- package/daemon/dist/routes/rigspec.js +7 -10
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +11 -0
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.js +1 -1
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/telemetry.d.ts.map +1 -1
- package/daemon/dist/routes/telemetry.js +6 -1
- package/daemon/dist/routes/telemetry.js.map +1 -1
- package/daemon/dist/routes/terminal-ws.d.ts +1 -2
- package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
- package/daemon/dist/routes/terminal-ws.js +1 -2
- package/daemon/dist/routes/terminal-ws.js.map +1 -1
- package/daemon/dist/routes/up.js +2 -1
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/views.js +2 -2
- package/daemon/dist/routes/views.js.map +1 -1
- package/daemon/dist/server.d.ts +2 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +7 -2
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/spec-validation-surface.d.ts +2 -0
- package/daemon/dist/spec-validation-surface.d.ts.map +1 -0
- package/daemon/dist/spec-validation-surface.js +2 -0
- package/daemon/dist/spec-validation-surface.js.map +1 -0
- package/daemon/dist/startup.d.ts +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +137 -50
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js +8 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +36 -1
- package/daemon/docs/reference/agent-startup-guide.md +81 -2
- package/daemon/docs/reference/browser-access.md +4 -1
- package/daemon/docs/reference/developing.md +17 -9
- package/daemon/docs/reference/getting-started.md +7 -2
- package/daemon/docs/reference/health-diagnosis.md +10 -3
- package/daemon/docs/reference/help.md +9 -4
- package/daemon/docs/reference/host-resources.md +60 -0
- package/daemon/docs/reference/instance-layout.md +11 -0
- package/daemon/docs/reference/rig-spec.md +32 -5
- package/daemon/docs/reference/sdlc-conventions.md +6 -3
- package/daemon/docs/reference/slack-app-setup.md +6 -0
- package/daemon/specs/agents/shared/agent.yaml +1 -1
- 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 +6 -0
- package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -8
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -8
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -8
- package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +1 -1
- package/dist/atomic-text-write.d.ts +3 -0
- package/dist/atomic-text-write.d.ts.map +1 -0
- package/dist/atomic-text-write.js +79 -0
- package/dist/atomic-text-write.js.map +1 -0
- package/dist/build-info.js +3 -3
- package/dist/cli-error.d.ts.map +1 -1
- package/dist/cli-error.js +15 -2
- package/dist/cli-error.js.map +1 -1
- package/dist/client.d.ts +14 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +29 -4
- package/dist/client.js.map +1 -1
- package/dist/commands/agent-image.d.ts.map +1 -1
- package/dist/commands/agent-image.js +2 -0
- package/dist/commands/agent-image.js.map +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +10 -1
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +4 -6
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/broadcast.js +1 -1
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/chatroom.d.ts.map +1 -1
- package/dist/commands/chatroom.js +22 -1
- package/dist/commands/chatroom.js.map +1 -1
- package/dist/commands/compact-plan.d.ts.map +1 -1
- package/dist/commands/compact-plan.js +34 -5
- package/dist/commands/compact-plan.js.map +1 -1
- package/dist/commands/compact.d.ts.map +1 -1
- package/dist/commands/compact.js +24 -4
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +2 -4
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +19 -14
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/crash-cart.d.ts.map +1 -1
- package/dist/commands/crash-cart.js +2 -1
- package/dist/commands/crash-cart.js.map +1 -1
- package/dist/commands/daemon.d.ts +13 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +35 -17
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/destroy.d.ts.map +1 -1
- package/dist/commands/destroy.js +3 -2
- package/dist/commands/destroy.js.map +1 -1
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +2 -4
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +3 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +8 -0
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/export.js +2 -2
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +23 -3
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +9 -0
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +13 -3
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/plugin.d.ts.map +1 -1
- package/dist/commands/plugin.js +12 -2
- package/dist/commands/plugin.js.map +1 -1
- package/dist/commands/ps.d.ts +1 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +97 -35
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +2 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +129 -17
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/requirements.d.ts.map +1 -1
- package/dist/commands/requirements.js +6 -3
- package/dist/commands/requirements.js.map +1 -1
- package/dist/commands/rig-mode.d.ts.map +1 -1
- package/dist/commands/rig-mode.js +6 -1
- package/dist/commands/rig-mode.js.map +1 -1
- package/dist/commands/rig.d.ts.map +1 -1
- package/dist/commands/rig.js +20 -20
- package/dist/commands/rig.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +22 -0
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +39 -9
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +6 -5
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +8 -1
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/specs.d.ts.map +1 -1
- package/dist/commands/specs.js +2 -0
- package/dist/commands/specs.js.map +1 -1
- package/dist/commands/start.js +6 -5
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/startup-proof.d.ts.map +1 -1
- package/dist/commands/startup-proof.js +2 -1
- package/dist/commands/startup-proof.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +7 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/terminal.d.ts.map +1 -1
- package/dist/commands/terminal.js +4 -0
- package/dist/commands/terminal.js.map +1 -1
- package/dist/commands/transcript.js +5 -3
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/up.d.ts +8 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +78 -4
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +3 -0
- package/dist/commands/walk.js.map +1 -1
- package/dist/commands/workflow-follow.d.ts +2 -0
- package/dist/commands/workflow-follow.d.ts.map +1 -1
- package/dist/commands/workflow-follow.js +6 -4
- package/dist/commands/workflow-follow.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +2 -4
- package/dist/commands/workflow.js.map +1 -1
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +2 -4
- package/dist/commands/workspace.js.map +1 -1
- package/dist/config-store.d.ts +2 -0
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +24 -6
- package/dist/config-store.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +9 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +61 -19
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/daemon-reachability.d.ts +18 -0
- package/dist/daemon-reachability.d.ts.map +1 -0
- package/dist/daemon-reachability.js +48 -0
- package/dist/daemon-reachability.js.map +1 -0
- package/dist/lib/file-transfer.d.ts +1 -1
- package/dist/lib/file-transfer.d.ts.map +1 -1
- package/dist/lib/file-transfer.js +17 -5
- package/dist/lib/file-transfer.js.map +1 -1
- package/dist/lib/scope/mission-composition.d.ts.map +1 -1
- package/dist/lib/scope/mission-composition.js +11 -0
- package/dist/lib/scope/mission-composition.js.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.d.ts +4 -4
- package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.js +4 -4
- package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +10 -16
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/lib/scope-templates/slice-progress.md +11 -7
- package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -1
- package/dist/restore-packet/claude-transcript-parser.js +2 -0
- package/dist/restore-packet/claude-transcript-parser.js.map +1 -1
- package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -1
- package/dist/restore-packet/codex-jsonl-parser.js +2 -0
- package/dist/restore-packet/codex-jsonl-parser.js.map +1 -1
- package/dist/restore-packet/runtime-detect.d.ts.map +1 -1
- package/dist/restore-packet/runtime-detect.js +2 -0
- package/dist/restore-packet/runtime-detect.js.map +1 -1
- package/package.json +4 -3
- package/tui/dist/attention/source-continuity.d.ts.map +1 -1
- package/tui/dist/attention/source-continuity.js +5 -3
- package/tui/dist/attention/source-continuity.js.map +1 -1
- package/tui/dist/daemon-client.d.ts +2 -1
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +13 -4
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/execution/execution-model.d.ts.map +1 -1
- package/tui/dist/execution/execution-model.js +19 -7
- package/tui/dist/execution/execution-model.js.map +1 -1
- package/tui/dist/grammar.d.ts.map +1 -1
- package/tui/dist/grammar.js +3 -2
- package/tui/dist/grammar.js.map +1 -1
- package/tui/dist/health/health-model.d.ts.map +1 -1
- package/tui/dist/health/health-model.js +17 -5
- package/tui/dist/health/health-model.js.map +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +1 -0
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/input.d.ts.map +1 -1
- package/tui/dist/input.js +5 -0
- package/tui/dist/input.js.map +1 -1
- package/tui/dist/live-events.d.ts +2 -2
- package/tui/dist/live-events.d.ts.map +1 -1
- package/tui/dist/live-events.js +65 -27
- package/tui/dist/live-events.js.map +1 -1
- package/tui/dist/local-reading.d.ts.map +1 -1
- package/tui/dist/local-reading.js +2 -0
- package/tui/dist/local-reading.js.map +1 -1
- package/tui/dist/main.js +16 -3
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/page-read.d.ts.map +1 -1
- package/tui/dist/page-read.js +4 -1
- package/tui/dist/page-read.js.map +1 -1
- package/tui/dist/render.d.ts +2 -0
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +15 -4
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
- package/tui/dist/scopes/scopes-model.js +36 -31
- package/tui/dist/scopes/scopes-model.js.map +1 -1
- package/tui/dist/socket-server.d.ts +6 -2
- package/tui/dist/socket-server.d.ts.map +1 -1
- package/tui/dist/socket-server.js +159 -14
- package/tui/dist/socket-server.js.map +1 -1
- package/tui/dist/types.d.ts +18 -0
- package/tui/dist/types.d.ts.map +1 -1
- package/ui/dist/assets/{index-N-SdPj-I.css → index-DNU3XZr_.css} +1 -1
- package/ui/dist/assets/{index-BVW54ItO.js → index-HHSvwF97.js} +75 -75
- package/ui/dist/index.html +2 -2
|
@@ -250,11 +250,14 @@ OpenRig performs best-effort deterministic runtime configuration for managed ses
|
|
|
250
250
|
installations may retain one; existing user settings are not removed.
|
|
251
251
|
- Claude global state: `~/.claude.json`
|
|
252
252
|
Purpose: pre-trust managed workspaces and mark onboarding complete for fresh managed sessions.
|
|
253
|
+
Explicit permission modes use the launch-selected `HOME/.claude.json`, or
|
|
254
|
+
`<CLAUDE_CONFIG_DIR>/.claude.json` when that variable is set. Classic startup
|
|
255
|
+
retains the daemon-home path.
|
|
253
256
|
- Claude project-local config: `.claude/settings.local.json`
|
|
254
257
|
Purpose: apply context collector/activity hooks and selected `claude_settings_fragment` resources inside the project without committing them to git.
|
|
255
258
|
- Claude project-local MCP config: `.mcp.json`
|
|
256
259
|
Purpose: apply selected `claude_mcp_fragment` resources for Claude in that project.
|
|
257
|
-
- Codex global config: `~/.codex/config.toml`
|
|
260
|
+
- Codex global config: `$CODEX_HOME/config.toml`, or `~/.codex/config.toml` when unset
|
|
258
261
|
Purpose: pre-trust managed workspaces and apply selected `codex_config_fragment` resources. Codex currently has no equivalent project-local MCP config path for global profile settings.
|
|
259
262
|
|
|
260
263
|
Two important caveats:
|
|
@@ -266,6 +269,39 @@ can affect native configuration, but OpenRig's launch flags can override those
|
|
|
266
269
|
values. Recording a config-surface `permission_policy` is not proof that its
|
|
267
270
|
rules were translated or applied. See [permission precedence and limits](getting-started.md#custom-settings-and-precedence).
|
|
268
271
|
|
|
272
|
+
### Separate Codex homes for separate installations
|
|
273
|
+
|
|
274
|
+
Set an **absolute `CODEX_HOME` in the environment that starts the daemon** when
|
|
275
|
+
you want a separate Codex configuration and state root. OpenRig uses that root
|
|
276
|
+
for its startup hook setup/removal and trust records, feature flag, workspace
|
|
277
|
+
trust and selected config fragments. Startup can write those files even when
|
|
278
|
+
the daemon has no seats.
|
|
279
|
+
|
|
280
|
+
The explicit selection also applies to future managed Codex fresh, resume and
|
|
281
|
+
fork launches, their capability/profile/configuration probes, native thread and
|
|
282
|
+
context reads, and plugin-cache discovery. Launch commands reassert it after
|
|
283
|
+
pane shell startup, so an rc file cannot silently switch that launch to another
|
|
284
|
+
Codex home. Executable and PATH selection stay the same. Existing running
|
|
285
|
+
sessions are not moved or restarted; a thread in another home is not searched
|
|
286
|
+
as a fallback for an explicitly selected home.
|
|
287
|
+
|
|
288
|
+
**With `CODEX_HOME` unset, a second install still shares `~/.codex`.** Setting only
|
|
289
|
+
`OPENRIG_HOME` separates OpenRig state, not provider configuration. The default
|
|
290
|
+
launch behavior is unchanged, including existing pane-shell overrides.
|
|
291
|
+
|
|
292
|
+
OpenRig does not copy or migrate authentication, history, rules, trust or
|
|
293
|
+
settings into the selected home. A separate file-backed home needs its intended
|
|
294
|
+
authentication provisioned if absent; OS credential stores and other config
|
|
295
|
+
layers can behave differently, so a new login is not universally required.
|
|
296
|
+
Explicit Codex auth commands resolve their **caller's** `CODEX_HOME`, otherwise
|
|
297
|
+
`$HOME/.codex`; contacting a daemon with `OPENRIG_URL` does not retarget auth
|
|
298
|
+
save/switch/registry writes to that daemon's selection. Set the intended root
|
|
299
|
+
on those commands as well.
|
|
300
|
+
|
|
301
|
+
This separates provider files, not OS users or accounts. Project-local resources
|
|
302
|
+
still use the selected project directory; shared project and system settings
|
|
303
|
+
remain shared.
|
|
304
|
+
|
|
269
305
|
### Runtime Differences
|
|
270
306
|
|
|
271
307
|
**Claude Code:**
|
|
@@ -283,6 +319,14 @@ rules were translated or applied. See [permission precedence and limits](getting
|
|
|
283
319
|
- Approval policy and sandbox access are separate controls. OpenRig's default
|
|
284
320
|
`-s workspace-write` selects the sandbox; it does not force `-a`. A member's
|
|
285
321
|
`codex_config_profile` selects native `-p`, distinct from the AgentSpec `profile`.
|
|
322
|
+
- On that plain `-s workspace-write` launch (fresh, resume, fork or restore), a
|
|
323
|
+
short-lived `codex app-server` first reads Codex's own configuration with the
|
|
324
|
+
seat's executable, home and working directory. OpenRig adds
|
|
325
|
+
`-c sandbox_workspace_write.network_access=true` only when no configuration
|
|
326
|
+
layer sets network access and no managed requirement could restrict it. A
|
|
327
|
+
timeout, error or unrecognized answer adds nothing. Named profiles and full
|
|
328
|
+
bypass are not read. The read may write Codex's own state files in
|
|
329
|
+
`CODEX_HOME`, read its login and fetch managed policy, as a Codex start does.
|
|
286
330
|
- Can self-install dependencies from instructions but timer/recurring behavior is not reliably available
|
|
287
331
|
|
|
288
332
|
When authoring startup content, note which instructions are runtime-specific. For example, an orchestrator that needs a monitoring loop should include instructions like: "If running Claude Code, use `/loop 3m` to periodically check rig health. If running Codex, check rig health at the start of each task cycle instead."
|
|
@@ -301,6 +345,41 @@ profile → uses.skills: [openrig-user]
|
|
|
301
345
|
```
|
|
302
346
|
This is the minimum effective startup. The agent knows who it is, how the team works, and how to use the rig.
|
|
303
347
|
|
|
348
|
+
For seats sharing a working directory, keep each role in its own AgentSpec startup entry:
|
|
349
|
+
|
|
350
|
+
```yaml
|
|
351
|
+
startup:
|
|
352
|
+
files:
|
|
353
|
+
- path: guidance/role.md
|
|
354
|
+
orientation: role
|
|
355
|
+
delivery_hint: send_text
|
|
356
|
+
required: true
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
`rig queue whoami --json` reports only the calling seat's explicitly marked role
|
|
360
|
+
bindings, independently of its current work. The `role.state` is `no-record`,
|
|
361
|
+
`not-declared`, `missing`, `present`, or `unknown` when identity, storage or the
|
|
362
|
+
observation is unavailable. Files retain their original `path`, `absolutePath`
|
|
363
|
+
and `ownerRoot` plus the currently resolved `resolvedPath` and
|
|
364
|
+
`resolvedOwnerRoot`. Built-in packaged paths follow the running installation;
|
|
365
|
+
existing development-checkout paths stay where they were recorded.
|
|
366
|
+
|
|
367
|
+
`recordedAt` is the startup-context record write/attempt, which happens before
|
|
368
|
+
launch succeeds. Exact resume can retain an older record. `present` means the
|
|
369
|
+
resolved file currently exists, not that its bytes still match the spec or that
|
|
370
|
+
the agent read it. Unmarked startup files and startup actions are not exposed.
|
|
371
|
+
|
|
372
|
+
Refocus includes the role path and a re-read reminder with topology or both trees,
|
|
373
|
+
even if the trace fails. Work-only mode omits it; disabling refocus still disables
|
|
374
|
+
the entire hook. Custom refocus prose keeps its existing precedence. The hook
|
|
375
|
+
reuses its work lookup, or makes one bounded lookup when the work node is explicit;
|
|
376
|
+
a failed or skipped lookup reports `unknown`.
|
|
377
|
+
|
|
378
|
+
The shipped kernel seats no longer project their role into shared guidance.
|
|
379
|
+
Existing user files and legacy role blocks are left intact; this is not a cleanup
|
|
380
|
+
of already-installed shared blocks. General user-authored guidance projection is
|
|
381
|
+
unchanged.
|
|
382
|
+
|
|
304
383
|
**Separate project context from role**
|
|
305
384
|
|
|
306
385
|
Don't put project documentation inside the role guidance. The role is about the agent's function; project context is about what the agent is working on. Use rig-level or pod-level startup files for project context.
|
|
@@ -356,7 +435,7 @@ If your rig REQUIRES a hook to function and the hook installation fails silently
|
|
|
356
435
|
When creating a new agent's startup experience:
|
|
357
436
|
|
|
358
437
|
- [ ] Write a `guidance/role.md` — who is this agent?
|
|
359
|
-
- [ ] Reference it in
|
|
438
|
+
- [ ] Reference it in `startup.files` with `orientation: role` and `delivery_hint: send_text`. Avoid projecting distinct seat roles into one shared `AGENTS.md` or `CLAUDE.md`.
|
|
360
439
|
- [ ] Write a rig `CULTURE.md` if the rig doesn't have one
|
|
361
440
|
- [ ] Choose skills from the shared pool via profile `uses`
|
|
362
441
|
- [ ] Write a `startup/context.md` if the agent needs environment grounding
|
|
@@ -12,7 +12,10 @@ comes from a web page, only when that page is the OpenRig UI or a page you allow
|
|
|
12
12
|
its own Tailscale name (for example `my-machine.your-tailnet.ts.net`, or the short `my-machine`).
|
|
13
13
|
The daemon learns its own Tailscale name automatically from Tailscale on this machine.
|
|
14
14
|
- The web UI, when it is turned on (`rig config set ui.enabled true`, then restart the daemon) and
|
|
15
|
-
opened at the daemon's own address and port.
|
|
15
|
+
opened at the daemon's own address and port. To open it at a non-loopback name or address, such
|
|
16
|
+
as its Tailscale name, also list that page's exact origin in `OPENRIG_ALLOWED_ORIGINS` (for
|
|
17
|
+
example `http://my-machine.your-tailnet.ts.net:7433`), then restart the daemon. Without it, the
|
|
18
|
+
UI's terminal is refused there, and at a non-loopback IPv6 address its API requests are too.
|
|
16
19
|
|
|
17
20
|
### When you see a refusal
|
|
18
21
|
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
# Developing OpenRig — gates and lanes
|
|
2
2
|
|
|
3
3
|
This is the contributor-facing statement of which checks BLOCK a change and which are
|
|
4
|
-
advisory.
|
|
5
|
-
|
|
4
|
+
advisory. Every pull request to `main` runs `.github/workflows/tests.yml` on a clean GitHub
|
|
5
|
+
runner: build and packaging, typecheck, the repository scripts (`npm run test:repo`), each
|
|
6
|
+
workspace's test suite (daemon, cli, tui and ui) on macOS without ambient credentials or
|
|
7
|
+
external network, and an installed-package scenario (`scripts/run-pr-scenarios.sh`). The root
|
|
8
|
+
`package.json` scripts below run the same build, typecheck, repository and test checks locally,
|
|
9
|
+
with one difference: `npm test` does not include the UI suite, which CI runs as
|
|
10
|
+
`package-tests (ui)`. Run `npm run test:ui` for it.
|
|
6
11
|
|
|
7
12
|
## Blocking gates (must pass before a candidate moves)
|
|
8
13
|
|
|
@@ -10,23 +15,26 @@ the gate, and the release checklists invoke it.
|
|
|
10
15
|
|---|---|---|
|
|
11
16
|
| Typecheck | `npm run lint` | daemon + **ui** + cli + tui tsconfigs — UI typecheck STAYS blocking |
|
|
12
17
|
| Build | `npm run build` | all workspaces — the UI dist ships in the package, so its build STAYS blocking |
|
|
13
|
-
| Repo scripts | `npm run test:repo` | script self-tests, docs guard, skill mirror check |
|
|
18
|
+
| Repo scripts | `npm run test:repo` | daemon build, script self-tests, docs guard, skill mirror check, context-pack generation check |
|
|
14
19
|
| Unit tests | `npm run test:workspaces` | `packages/daemon` + `packages/cli` + `packages/tui` |
|
|
20
|
+
| UI unit tests | `npm run test:ui` | `packages/ui` vitest. NOT part of `npm test`, but every pull request runs it as `package-tests (ui)` (the `package-tests` matrix in `.github/workflows/tests.yml`) |
|
|
15
21
|
|
|
16
|
-
`npm test` runs `test:repo` and `test:workspaces`
|
|
17
|
-
|
|
22
|
+
`npm test` runs `test:repo` and `test:workspaces`; `npm run test:ui` is the separate UI
|
|
23
|
+
suite. Both sets are readable in the root `package.json` scripts.
|
|
18
24
|
|
|
19
25
|
## Advisory lane
|
|
20
26
|
|
|
21
27
|
| Lane | Command | Meaning |
|
|
22
28
|
|---|---|---|
|
|
23
|
-
|
|
|
29
|
+
| Portability report | `node scripts/portability-report.mjs` | lists added lines with machine-specific values; findings never fail it (`.github/workflows/portability-report.yml`) |
|
|
24
30
|
|
|
25
31
|
## The norm (web-UI freeze at 0.5.0)
|
|
26
32
|
|
|
27
|
-
Daemon API changes no longer require
|
|
28
|
-
under `packages/ui/src/hooks/` are no longer proactively maintained
|
|
29
|
-
failure signals a moved API contract
|
|
33
|
+
Daemon API changes no longer require browser or interaction verification of the UI, and
|
|
34
|
+
the contract mirrors under `packages/ui/src/hooks/` are no longer proactively maintained. A
|
|
35
|
+
new `test:ui` failure usually signals a moved API contract. Because pull-request CI runs the
|
|
36
|
+
UI suite as `package-tests (ui)`, the change that moves the contract has to update the affected
|
|
37
|
+
UI test or mirror to pass that check.
|
|
30
38
|
|
|
31
39
|
Browser/interaction testing of the web UI is not a contributor gate. (The packaged
|
|
32
40
|
starter-rig agent skills that exercise the UI are product content for user rigs, not
|
|
@@ -15,8 +15,13 @@ supported; Node 26 and other versions are untested.
|
|
|
15
15
|
Codex's `-s workspace-write`, with approval policy from your native configuration,
|
|
16
16
|
or Claude Code's `acceptEdits`, which still leaves commands subject to native
|
|
17
17
|
rules and prompts. Codex's sandbox normally blocks network access, including the
|
|
18
|
-
local OpenRig daemon
|
|
19
|
-
|
|
18
|
+
local OpenRig daemon, so before that plain launch OpenRig asks Codex for its own
|
|
19
|
+
configuration and adds network access inside the sandbox unless a configuration
|
|
20
|
+
layer sets `sandbox_workspace_write.network_access` or a managed requirement could
|
|
21
|
+
restrict it. To keep it off, set `network_access = false` under
|
|
22
|
+
`[sandbox_workspace_write]` in your Codex configuration. If Codex does not answer
|
|
23
|
+
within a few seconds, the seat starts without it. A command allowance does not
|
|
24
|
+
change general sandbox/network settings. The starter's `profile: default` selects OpenRig resources, not a native
|
|
20
25
|
permission profile.
|
|
21
26
|
Agent-guided setup [asks once](#have-your-agent-configure-permissions): “Allow
|
|
22
27
|
your agents to run OpenRig commands without repeated permission prompts?”
|
|
@@ -132,9 +132,13 @@ these boundaries. One occurrence and the existing owner cooldown apply to each
|
|
|
132
132
|
episode; a disposition stops repeated requests.
|
|
133
133
|
|
|
134
134
|
This bounded source covers explicitly linked project or mission work: at most 2,000 touched
|
|
135
|
-
qitems,
|
|
135
|
+
qitems, 1,000 members / 10,000 transitions per family, 200 workflow
|
|
136
136
|
receipts, 200 declared slices, and 100 proof files per selected slice. Overflow
|
|
137
|
-
refuses visibly.
|
|
137
|
+
refuses visibly. When more than 200 families (roots) were touched, it evaluates the
|
|
138
|
+
200 with the most transitions in the window, then by lineage ID, and reports the
|
|
139
|
+
result as partial coverage with the total and omitted counts. Omitted families
|
|
140
|
+
were not evaluated, so having no finding for them is not a healthy verdict.
|
|
141
|
+
Context files are bounded to 64 KiB. A lineage beginning before
|
|
138
142
|
the retained window remains indeterminate, with the missing interval named.
|
|
139
143
|
Project planning does not require a successor mission: an explicit project identity
|
|
140
144
|
resolves its current context, with mission and phase absent unless evidenced.
|
|
@@ -370,7 +374,10 @@ A consumer such as a later Herder plugin reads `GET /api/health` and
|
|
|
370
374
|
`GET /api/health/:findingId`, or the identical `rig health --json` and
|
|
371
375
|
`rig health explain <finding-id> --json` records. The record schema is
|
|
372
376
|
`openrig.health/v0alpha1`; list metadata is `openrig.health-list/v0alpha1`.
|
|
373
|
-
|
|
377
|
+
For a source that bounds its input, list metadata also carries `coverage`
|
|
378
|
+
(`source`, `total`, `evaluated`, `omitted`, `limit`, `order`, `partial`), and
|
|
379
|
+
`rig health policy` reports the scheduled evaluation's coverage under
|
|
380
|
+
`engine.lastEvaluation.coverage`. Preserve ID, status, policy version, time window, freshness, evidence and
|
|
374
381
|
threshold together. There is no health score or implicit remediation authority.
|
|
375
382
|
The default list excludes cleared records; explicit cleared queries and exact
|
|
376
383
|
ID reads retain them while the source can still project them. A recurrence after
|
|
@@ -78,12 +78,17 @@ involved before proposing changes.
|
|
|
78
78
|
Compare the harness version and what you actually observe before attributing a failure to one of these. Check the
|
|
79
79
|
issue's current status; a similar symptom alone is not a diagnosis.
|
|
80
80
|
|
|
81
|
-
- Claude seats reported as needing attention after a restore: [#86](https://github.com/mvschwarz/openrig/issues/86)
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
- Codex prompt variants not recognised as
|
|
81
|
+
- Claude seats reported as needing attention after a restore: [#86](https://github.com/mvschwarz/openrig/issues/86),
|
|
82
|
+
[#273](https://github.com/mvschwarz/openrig/issues/273).
|
|
83
|
+
- Claude usage limits may not be detected: [#99](https://github.com/mvschwarz/openrig/issues/99).
|
|
84
|
+
- Codex prompt variants not recognised as idle: [#79](https://github.com/mvschwarz/openrig/issues/79).
|
|
85
85
|
- Codex asks about hook trust at first launch: [#17](https://github.com/mvschwarz/openrig/issues/17), not reproduced
|
|
86
86
|
by the team.
|
|
87
|
+
- A Codex seat on the default `workspace-write` sandbox starts without network access, so it can't reach the local
|
|
88
|
+
daemon, when its Codex configuration sets network access off, a managed requirement could restrict it, or Codex
|
|
89
|
+
doesn't answer OpenRig's configuration read in time: [#275](https://github.com/mvschwarz/openrig/issues/275).
|
|
90
|
+
- Stopping the daemon can report a timeout while closing connections:
|
|
91
|
+
[#166](https://github.com/mvschwarz/openrig/issues/166).
|
|
87
92
|
|
|
88
93
|
For everything else, search [open issues](https://github.com/mvschwarz/openrig/issues).
|
|
89
94
|
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Host load and transcript capture
|
|
2
|
+
|
|
3
|
+
Use `rig ps --resources` to inspect the serving host, or add `--host <id>`
|
|
4
|
+
for one registered HTTP/SSH host. `--json` returns the same measurements for
|
|
5
|
+
operators and monitoring tools. This view is host-scoped; rig/node filters and
|
|
6
|
+
multi-host fan-out do not apply. Ordinary `rig ps` output is unchanged.
|
|
7
|
+
|
|
8
|
+
The view reports available CPU count, host load averages (1/5/15 minutes),
|
|
9
|
+
load divided by CPU count, running seats, and transcript capture attempts,
|
|
10
|
+
failures, UTF8 bytes and elapsed capture time for currently rotating seats.
|
|
11
|
+
Load is not CPU utilization; capture elapsed time includes waiting for tmux,
|
|
12
|
+
and is not daemon CPU time. Load averages are unavailable on Windows, rather
|
|
13
|
+
than reported as zero. Counters reset when a rotation is restarted/stopped or
|
|
14
|
+
the daemon restarts, so they are observations rather than a durable billing log.
|
|
15
|
+
When no seat is capturing, the active interval, idle ceiling and line count are
|
|
16
|
+
unavailable (`null` in JSON), not zero.
|
|
17
|
+
|
|
18
|
+
## Reduce idle capture cost
|
|
19
|
+
|
|
20
|
+
Transcript rotation still captures the bounded trailing buffer. When successive
|
|
21
|
+
captures are unchanged and tmux exposes an unchanged current-window activity
|
|
22
|
+
hint, capture backs off exponentially to a derived ceiling. With the default
|
|
23
|
+
2-second active interval and 1-second settings timer, the effective ceiling is
|
|
24
|
+
3 seconds: the 10-second freshness window minus the 1-second activity-hint
|
|
25
|
+
deadline, 5-second capture-result deadline and 1-second timer spacing. The
|
|
26
|
+
ceiling is capped at 6 seconds but never below the configured active interval.
|
|
27
|
+
This scheduling budget is not a CPU or child-process lifetime bound; the result
|
|
28
|
+
deadline does not cancel an unfinished capture. One shared tmux
|
|
29
|
+
activity read wakes idle rotations; a changed hint restores the active cadence.
|
|
30
|
+
Missing/failed hints retain the configured full-capture cadence. A hint read
|
|
31
|
+
that takes longer than one second becomes unknown without starting additional
|
|
32
|
+
metadata probes while its underlying call is still pending. Periodic full
|
|
33
|
+
capture reconciles output even when a hint fails to change (tmux timestamps have
|
|
34
|
+
one-second resolution). Longer configured active intervals retain that interval
|
|
35
|
+
instead of silently increasing capture frequency.
|
|
36
|
+
|
|
37
|
+
This does not change provider readiness, delivery guards, seat activity or queue
|
|
38
|
+
state. Capture activity is not proof an agent is healthy or finished. As before,
|
|
39
|
+
transcripts are bounded trailing snapshots, not lossless terminal archives: an
|
|
40
|
+
output burst larger than retained tmux scrollback or the configured line limit
|
|
41
|
+
can exceed the saved trail. Interactive terminal streaming is unchanged.
|
|
42
|
+
|
|
43
|
+
## Change capture settings without restarting
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
rig config set transcripts.poll_interval_seconds 3
|
|
47
|
+
rig config set transcripts.lines 2000
|
|
48
|
+
rig ps --resources
|
|
49
|
+
rig config reset transcripts.poll_interval_seconds
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Running rotations reread shared settings at most once per second and adopt the
|
|
53
|
+
next valid policy without starting overlapping captures. Intervals accept whole
|
|
54
|
+
seconds from 1 to 3600; trailing lines accept integers from 1 to 1000000. The
|
|
55
|
+
existing environment variables take precedence over file settings. Malformed
|
|
56
|
+
intermediate JSON retains the last usable policy, is shown in the resource view,
|
|
57
|
+
and is retried; normal config
|
|
58
|
+
writes reject invalid values. Changing `transcripts.enabled` or
|
|
59
|
+
`transcripts.path` still requires a daemon restart. This feature does not impose
|
|
60
|
+
CPU quotas or allocate build slots.
|
|
@@ -104,3 +104,14 @@ runtime reads for compatibility. Treat the two-home state as an explicit
|
|
|
104
104
|
limitation: use the live spec-library commands to determine where a spec is
|
|
105
105
|
served from, and do not infer convergence merely because the canonical
|
|
106
106
|
directory exists.
|
|
107
|
+
|
|
108
|
+
Config updates publish a complete replacement file atomically where directory
|
|
109
|
+
permissions and the filesystem allow it. On POSIX systems, replacement preserves
|
|
110
|
+
the existing owner, group, and read/write/execute permission bits. If creating or
|
|
111
|
+
preparing the replacement, or renaming it, fails with `EACCES`, `EPERM`, or `EBUSY`,
|
|
112
|
+
the stores write the writable target in place, preserving compatibility with
|
|
113
|
+
unwritable directories and single-file bind mounts. This fallback is not atomic
|
|
114
|
+
and retains the previous partial-write risk. Read-only config files are refused.
|
|
115
|
+
Other errors, including `ENOSPC`, leave the original file intact on the atomic
|
|
116
|
+
path. Atomic replacement does not carry extended ACLs or other inode metadata;
|
|
117
|
+
a hard-linked second name continues to refer to the previous file.
|
|
@@ -247,7 +247,7 @@ directory's `CLAUDE.md`, including blocks written by other rigs.
|
|
|
247
247
|
|
|
248
248
|
| Field | Type | Required | Default | Description |
|
|
249
249
|
|-------|------|----------|---------|-------------|
|
|
250
|
-
| `id` | string | yes | — | Pod identifier. Must not contain dots
|
|
250
|
+
| `id` | string | yes | — | Pod identifier. Must not contain dots or `@`. Must be unique within the rig. Used as the first segment of session names and logical IDs. |
|
|
251
251
|
| `label` | string | yes | — | Human-readable pod name. Shown in UI explorer, graph groupings, and detail surfaces. |
|
|
252
252
|
| `summary` | string | no | — | Pod description. |
|
|
253
253
|
| `continuity_policy` | ContinuityPolicy | no | — | Pod-level continuity/restore policy. Controls compaction recovery, artifact management, and peer-driven restoration. |
|
|
@@ -258,6 +258,7 @@ directory's `CLAUDE.md`, including blocks written by other rigs.
|
|
|
258
258
|
### Pod ID Rules
|
|
259
259
|
|
|
260
260
|
- Must not contain dots (`.`)
|
|
261
|
+
- Must not contain `@`, which separates the pod/member portion from the rig name in session addresses
|
|
261
262
|
- Must be unique across all pods in the rig
|
|
262
263
|
- Becomes the first segment of the qualified logical ID: `{podId}.{memberId}`
|
|
263
264
|
- Becomes the first segment of the canonical session name: `{podId}-{memberId}@{rigName}`
|
|
@@ -268,17 +269,35 @@ directory's `CLAUDE.md`, including blocks written by other rigs.
|
|
|
268
269
|
|
|
269
270
|
| Field | Type | Required | Default | Description |
|
|
270
271
|
|-------|------|----------|---------|-------------|
|
|
271
|
-
| `id` | string | yes | — | Member identifier. Must not contain dots
|
|
272
|
+
| `id` | string | yes | — | Member identifier. Must not contain dots or `@`. Must be unique within the pod. |
|
|
272
273
|
| `agent_ref` | string | yes | — | Reference to an AgentSpec. Must start with `local:` (relative) or `path:` (absolute). Exception: `builtin:terminal` for infrastructure nodes. |
|
|
273
274
|
| `profile` | string | yes | — | Profile name from the referenced AgentSpec. Use `default` for the default profile. Exception: `none` for terminal nodes. |
|
|
274
275
|
| `codex_config_profile` | string | no | — | Codex-only native profile passed as `-p <name>`; letters, numbers, `_`, `.`, `-`. Separate from the AgentSpec `profile`. With the normal launch mode, this replaces OpenRig's explicit workspace-write sandbox flag. A full-bypass policy instead emits danger-full-access and omits this profile argument. |
|
|
275
|
-
| `runtime` | string | yes | — | Agent runtime. Current supported values: `claude-code`, `codex`, `terminal`. |
|
|
276
|
+
| `runtime` | string | yes | — | Agent runtime. Current supported values: `claude-code`, `codex`, `pi`, `omp`, `terminal`, `stub`. `stub` is a deterministic test harness, not an agent: a Node runner in the seat's tmux pane goes through the normal launch, skill projection, startup-file and readiness path, follows `<cwd>/.openrig/stub/script.json` when present, and calls no model. See "What a stub can and cannot prove" in `docs/as-built/test-layers.md`. |
|
|
276
277
|
| `cwd` | string | yes | — | Working directory for the agent. Resolved relative to the rig root (the directory containing the rig spec). Use `"."` for the rig root itself. Can be overridden at launch time with `rig up --cwd`. |
|
|
277
278
|
| `label` | string | no | — | Human-readable member name. Shown in UI when present. |
|
|
278
279
|
| `model` | string | no | — | Model override. Runtime-specific (e.g., `claude-opus-4-6` for Claude Code). |
|
|
279
280
|
| `restore_policy` | string | no | `resume_if_possible` | Restore behavior. One of: `resume_if_possible`, `relaunch_fresh`, `checkpoint_only`. |
|
|
280
281
|
| `startup` | StartupBlock | no | — | Member-level startup files and actions. Applied only to this member. |
|
|
281
282
|
|
|
283
|
+
### Pi (`runtime: pi`)
|
|
284
|
+
|
|
285
|
+
`runtime: pi` launches the Pi coding agent (`pi --mode rpc`) through OpenRig's RPC runner.
|
|
286
|
+
|
|
287
|
+
- **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`.
|
|
288
|
+
- **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`.
|
|
289
|
+
- **Credentials:** The Pi process receives only `PATH`, `HOME`, `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 `KIMI_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>` or `kimi-coding/<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.
|
|
290
|
+
|
|
291
|
+
### Oh My Pi (`runtime: omp`)
|
|
292
|
+
|
|
293
|
+
`runtime: omp` launches Oh My Pi through OpenRig's RPC runner. It is separate from `runtime: pi`; OMP does not use Pi's `--name` or `--approve` flags.
|
|
294
|
+
|
|
295
|
+
- **State:** Each seat uses `$OPENRIG_HOME/state/omp/<seat>/agent` and `sessions/` instead of your default `~/.omp` profile, and runs with that seat directory as `HOME`. OpenRig does not copy OMP credentials. The runner finds the real `omp` binary before switching `HOME`, so a version-manager shim such as mise on the daemon's `PATH` still works.
|
|
296
|
+
- **Credentials:** Provision each seat separately, or put the provider's key variable in `recovery.provider_auth_env_allowlist` (for example `ANTHROPIC_API_KEY` or `MISTRAL_API_KEY`). The allowlist accepts the key variable of every provider in OpenRig's OMP provider map, from `anthropic` through `litellm`. A seat receives a key only when its `model` is written as `provider/id`, such as `anthropic/claude-sonnet-4-5`. Short names such as `opus` pass no key. OMP also reads the launch directory's `.env`, so use a trusted working directory.
|
|
297
|
+
- **Approval posture:** The default floor is `--approval-mode always-ask`. Because the runner is headless, OMP approval requests are cancelled and the seat stays in needing-attention after the turn ends, until the next agent run starts. A `full_bypass` permission policy selects `--approval-mode yolo`.
|
|
298
|
+
- **Model errors:** A rejected prompt, a provider or authentication error during a turn, or exhausted automatic retries is printed in the pane and keeps the seat in needing-attention until the next agent run starts.
|
|
299
|
+
- **Restore:** OMP creates its session file after the first persisted turn. A new seat with no persisted turn has no resume token; restoring it requires `rig up --existing <rig> --fresh <seat>`. After that file exists, OpenRig restores that exact session file. If a full rig restore leaves an OMP seat in `attention_required` or `failed`, `rig seat clear-attention` cannot yet reconcile it to `operator_recovered`, even with `--reason`, because restore reconciliation only verifies Claude Code and Codex processes ([#41](https://github.com/mvschwarz/openrig/issues/41)). Relaunch that seat with `rig up --existing <rig> --fresh <seat>`, or restore it manually.
|
|
300
|
+
|
|
282
301
|
### Terminal Nodes
|
|
283
302
|
|
|
284
303
|
Terminal nodes are infrastructure processes (servers, log tails, build watchers) that are not agent runtimes. They require an exact triple:
|
|
@@ -309,6 +328,9 @@ The canonical session name is derived from the pod ID, member ID, and rig name:
|
|
|
309
328
|
|
|
310
329
|
Example: pod `dev`, member `impl`, rig `my-team` → session `dev-impl@my-team`
|
|
311
330
|
|
|
331
|
+
Pod and member IDs cannot contain `@` because the first `@` separates their portion
|
|
332
|
+
of the session address from the rig name. Rig names may still contain `@`.
|
|
333
|
+
|
|
312
334
|
This is human-authored (you choose the pod/member IDs) and system-validated (the system enforces the format).
|
|
313
335
|
|
|
314
336
|
---
|
|
@@ -369,6 +391,7 @@ Startup blocks can appear at three levels: rig, pod, and member. They are merged
|
|
|
369
391
|
| Field | Type | Required | Default | Description |
|
|
370
392
|
|-------|------|----------|---------|-------------|
|
|
371
393
|
| `path` | string | yes | — | Relative path to the file. Must be a safe relative path. |
|
|
394
|
+
| `orientation` | string | no | — | Set to `role` to identify a per-seat role file for `rig queue whoami --json` and refocus. Does not change delivery or replay startup. |
|
|
372
395
|
| `delivery_hint` | string | no | `auto` | How the file is delivered. One of: `auto`, `guidance_merge`, `skill_install`, `send_text`. |
|
|
373
396
|
| `required` | boolean | no | `true` | Whether startup fails if this file cannot be delivered. |
|
|
374
397
|
| `applies_on` | string[] | no | `[fresh_start, restore]` | When this file is delivered. Subset of: `fresh_start`, `restore`. |
|
|
@@ -454,7 +477,8 @@ Each target must define exactly one of `service`, `url`, or `tcp`:
|
|
|
454
477
|
|
|
455
478
|
```yaml
|
|
456
479
|
wait_for:
|
|
457
|
-
# HTTP probe —
|
|
480
|
+
# HTTP probe — any 2xx or 3xx response passes the HTTP wait target; redirects are not followed.
|
|
481
|
+
# This proves the server answered, not application readiness.
|
|
458
482
|
- url: http://127.0.0.1:8200/v1/sys/health
|
|
459
483
|
|
|
460
484
|
# TCP probe — connects to host:port
|
|
@@ -536,7 +560,10 @@ continuity_policy:
|
|
|
536
560
|
|
|
537
561
|
## Validation Rules Summary
|
|
538
562
|
|
|
539
|
-
|
|
563
|
+
Schema validation checks the structural rules below. Pod and member IDs containing
|
|
564
|
+
`@` are additionally rejected during preflight and member creation or launch; a
|
|
565
|
+
spec can pass `rig spec validate` and then fail at preflight or import. Run
|
|
566
|
+
`rig spec preflight` before creation or import.
|
|
540
567
|
|
|
541
568
|
1. `version` and `name` are required non-empty strings.
|
|
542
569
|
2. `pods` must be a non-empty array.
|
|
@@ -100,9 +100,12 @@ Each slice directory carries:
|
|
|
100
100
|
approval starts here.
|
|
101
101
|
- **`## Proof contract`** — a checkbox list of promised deliverables (see
|
|
102
102
|
§3). The UI's DELIVERED section pairs each item with its proof.
|
|
103
|
-
- **`PROGRESS.md`** — the slice's
|
|
104
|
-
|
|
105
|
-
|
|
103
|
+
- **`PROGRESS.md`** — the slice's current delivery state and retained outcome
|
|
104
|
+
log. Record material changes with links to proof; historical checkboxes are
|
|
105
|
+
testimony, not current acceptance authority. For a selected proof policy,
|
|
106
|
+
`rig proof show <slice>` derives current readiness from the proof contract
|
|
107
|
+
and attributed judgments. In-process steps stay in the working agent's
|
|
108
|
+
own todo tool.
|
|
106
109
|
- **`PROOF.md`** — the retained proof summary, explicitly paired to the
|
|
107
110
|
`SPEC.md` proof contract.
|
|
108
111
|
- **`proof/`** — the proof-artifact directory. Curated canonical evidence
|
|
@@ -76,6 +76,12 @@ So after installing, compare the granted scopes Slack shows for the app with all
|
|
|
76
76
|
The app subscribes to messages in public channels it is a member of (`message.channels`) and to
|
|
77
77
|
mentions of the app (`app_mention`). It does not request direct-message or private-channel access.
|
|
78
78
|
|
|
79
|
+
The manifest also turns on **Interactivity**, so the human can answer a decision's structured
|
|
80
|
+
questions by clicking a button (`rig queue create --human-questions-file`). In Socket Mode the
|
|
81
|
+
clicks arrive over the same socket, so no request URL is needed. An app created from an older
|
|
82
|
+
manifest has Interactivity off: turn it on under **Interactivity & Shortcuts**, or the buttons
|
|
83
|
+
will do nothing. A typed reply in the thread still answers the decision either way.
|
|
84
|
+
|
|
79
85
|
## What the connector does with the tokens
|
|
80
86
|
|
|
81
87
|
The tokens stay in the env file you created. The connector reads them from that file and uses them
|
|
@@ -79,6 +79,30 @@ never silently clipped. Shorten the brief or related detail as directed. Inspect
|
|
|
79
79
|
the failed row, then deliberately cancel/replace the authored request if its
|
|
80
80
|
content needs correction; a timeout alone is never a reason to replace it.
|
|
81
81
|
|
|
82
|
+
A follow-up **update** about earlier work ("the change you approved is merged")
|
|
83
|
+
can post into that item's thread with `--reply-to <earlier-qitem-id>`. It is
|
|
84
|
+
accepted only with `--human-intent update`. Name the item whose thread the
|
|
85
|
+
human saw, such as the parked row, and create the update on the same host as
|
|
86
|
+
that item. Send the update from the seat that owns that thread: the seat that
|
|
87
|
+
parked the row, or the author of the earlier item. A human reply in a thread
|
|
88
|
+
reaches its owning seat, so an update from any other seat posts as a new
|
|
89
|
+
message. It also posts as a new message, rather than being refused, if the
|
|
90
|
+
earlier thread is missing or closed, or while the earlier item still waits on
|
|
91
|
+
the human (a pending human decision, or a row parked on the human), since a
|
|
92
|
+
reply in that thread would answer the decision. In every such case the
|
|
93
|
+
`--verify` result says `threaded: false` with the reason.
|
|
94
|
+
|
|
95
|
+
A **decision** with a few clear choices can carry `--human-questions-file <path>`:
|
|
96
|
+
a JSON array of 1–4 questions, each
|
|
97
|
+
`{"id", "question", "options": [{"id", "label", "recommended"?}]}` with 2–4
|
|
98
|
+
options (labels up to 75 characters, at most one recommended). Slack shows each
|
|
99
|
+
question as a row of buttons. Each click records that answer on the item, and
|
|
100
|
+
the decision resolves once every question has one. You then receive one reply
|
|
101
|
+
row listing the answers, and the item's `humanAnswers` holds the option ids. The
|
|
102
|
+
human may instead type a reply in the thread; that resolves the decision as
|
|
103
|
+
usual, so read the reply rather than assuming an option was picked. Keep the
|
|
104
|
+
brief complete: the questions add buttons, they do not replace the explanation.
|
|
105
|
+
|
|
82
106
|
If an existing agent-owned row must wait for a **decision**, block it on the **new live qitem ID**
|
|
83
107
|
(`rig queue block <work-id> --on <human-qitem-id> ...`), not on the human address.
|
|
84
108
|
Completion of the human qitem resumes its dependants. Blocking on the human as
|
|
@@ -120,6 +120,12 @@ and a useful report to the OpenRig team if you are still stuck. If `rig` won't r
|
|
|
120
120
|
`daemon/docs/reference/help.md` inside the installed `@openrig/cli` package, or https://www.openrig.dev/help/agents
|
|
121
121
|
(the same text).
|
|
122
122
|
|
|
123
|
+
## Developing OpenRig itself
|
|
124
|
+
|
|
125
|
+
If you're changing OpenRig's own source in a clone of the openrig repository, use that repository's
|
|
126
|
+
`developing-openrig` skill (in the checkout's `.claude/skills/` or `.agents/skills/`). It maps the architecture, the
|
|
127
|
+
areas where a small change has a large effect, and which tests to run before a pull request.
|
|
128
|
+
|
|
123
129
|
## Need more than what ships here?
|
|
124
130
|
|
|
125
131
|
This index covers the **shipped** surface. Your project, rig or machine may add its own skills and routers. Check the
|
package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: topology-mutation-and-seat-management
|
|
3
|
-
description: Use when changing a rig while it is alive — `rig expand` / `rig shrink` / `rig launch` / `rig remove` / `rig discover` / `rig bind` / `rig adopt` / `rig attach`. Covers the 4 failure modes (newly created seat lacks queue/startup/role; edges and permissions not updated; adopt/bind succeeds at tmux but not OpenRig identity; shrink/remove leaves stale topology references) and the rule that mutation must work while the rig is active, not just in clean fixtures.
|
|
3
|
+
description: Use when changing a rig while it is alive — `rig grow` / `rig expand` / `rig shrink` / `rig launch` / `rig remove` / `rig discover` / `rig bind` / `rig adopt` / `rig attach`. Covers the 4 failure modes (newly created seat lacks queue/startup/role; edges and permissions not updated; adopt/bind succeeds at tmux but not OpenRig identity; shrink/remove leaves stale topology references) and the rule that mutation must work while the rig is active, not just in clean fixtures.
|
|
4
4
|
metadata:
|
|
5
5
|
cli_surfaces_referenced:
|
|
6
6
|
- adopt
|
|
@@ -8,6 +8,7 @@ metadata:
|
|
|
8
8
|
- bind
|
|
9
9
|
- discover
|
|
10
10
|
- expand
|
|
11
|
+
- grow
|
|
11
12
|
- launch
|
|
12
13
|
- ps
|
|
13
14
|
- release
|
|
@@ -43,13 +44,32 @@ static launch scripts.
|
|
|
43
44
|
|
|
44
45
|
## Use this when
|
|
45
46
|
|
|
46
|
-
- Adding
|
|
47
|
+
- Adding seats to a running rig (`rig grow <rig-id> <member...>` for the simple case, a fragment with `rig expand` or `rig add` otherwise; see below)
|
|
47
48
|
- Removing capacity (`rig shrink` / `rig remove`)
|
|
48
49
|
- Launching/relaunching a node in a running rig (`rig launch`)
|
|
49
50
|
- Binding a discovered session into an existing logical node (`rig bind`)
|
|
50
51
|
- Adopting a topology + binding live sessions (`rig adopt`)
|
|
51
52
|
- Attaching a shell or agent into a rig node (`rig attach --self`)
|
|
52
53
|
|
|
54
|
+
## Adding seats: `rig grow` first, a fragment when you need more
|
|
55
|
+
|
|
56
|
+
`rig grow <rig-id> <member...>` adds one or more seats to a running rig without
|
|
57
|
+
writing YAML. Each seat gets the default agent spec and its `default` profile.
|
|
58
|
+
Check `rig grow --help` on your installed version; at the time of writing:
|
|
59
|
+
|
|
60
|
+
- `--pod <pod>`: the target pod; inferred when the rig has one pod
|
|
61
|
+
- `--new-pod <pod>`: create a new pod for the seats (not together with `--pod`)
|
|
62
|
+
- `--runtime <runtime>`: one runtime for every named seat (default `claude-code`)
|
|
63
|
+
- `--cwd <path>`: one working directory for every named seat (default: the current directory)
|
|
64
|
+
- `--json`: output for agents
|
|
65
|
+
|
|
66
|
+
Write a fragment instead when a seat needs something `rig grow` does not set: an
|
|
67
|
+
explicit model, a permission policy, a different agent spec or role profile, a
|
|
68
|
+
per-seat runtime or working directory, or startup files. Use
|
|
69
|
+
`rig expand <rig-id> <pod-fragment-path>` to add a pod, or
|
|
70
|
+
`rig add <rig-id> <pod-namespace> <member-fragment-path>` to add one member to an
|
|
71
|
+
existing pod.
|
|
72
|
+
|
|
53
73
|
## Don't use this when
|
|
54
74
|
|
|
55
75
|
- The rig is being created fresh from scratch — use `rig up` (lifecycle, not mutation)
|
|
@@ -89,6 +109,7 @@ adding or removing a seat from replacing its occupant; use
|
|
|
89
109
|
|
|
90
110
|
Per `cli-reference.md` v0.2.0:
|
|
91
111
|
|
|
112
|
+
- `rig grow <rig-id> <member...> [--pod <pod> | --new-pod <pod>] [--runtime <runtime>] [--cwd <path>]` (added after v0.2.0; check `rig grow --help`)
|
|
92
113
|
- `rig expand <rig-id> <pod-fragment-path>` (with optional `session_source`)
|
|
93
114
|
- `rig shrink <rigId> <podRef>`
|
|
94
115
|
- `rig launch <rigId> <nodeRef>`
|
|
@@ -114,7 +135,7 @@ unfinished proof obligation is implied by loading this skill.
|
|
|
114
135
|
|
|
115
136
|
## See also
|
|
116
137
|
|
|
117
|
-
- `openrig-user` skill — CLI surface for `rig expand / shrink / launch / remove / bind / adopt / attach`
|
|
138
|
+
- `openrig-user` skill — CLI surface for `rig grow / expand / shrink / launch / remove / bind / adopt / attach`
|
|
118
139
|
- `seat-scaling-and-specialization` skill — when to add specialized capacity vs generic
|
|
119
140
|
- `seat-continuity-and-handover` skill — replacing an occupant on a stable seat (different shape than topology mutation)
|
|
120
141
|
- `cross-host-rig-commands` skill — cross-host topology mutation (deferred)
|
|
@@ -12,21 +12,15 @@ profiles:
|
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
14
|
skills: [openrig-architect, requirements-writer]
|
|
15
|
-
guidance: [
|
|
15
|
+
guidance: []
|
|
16
16
|
subagents: []
|
|
17
17
|
plugins: [shared:openrig-core]
|
|
18
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config, shared:claude-activity-hooks]
|
|
19
19
|
|
|
20
|
-
resources:
|
|
21
|
-
guidance:
|
|
22
|
-
- id: role
|
|
23
|
-
path: guidance/role.md
|
|
24
|
-
target: CLAUDE.md
|
|
25
|
-
merge: managed_block
|
|
26
|
-
|
|
27
20
|
startup:
|
|
28
21
|
files:
|
|
29
22
|
- path: guidance/role.md
|
|
23
|
+
orientation: role
|
|
30
24
|
delivery_hint: send_text
|
|
31
25
|
required: true
|
|
32
26
|
- path: startup/context.md
|