@openrig/cli 0.6.9 → 0.6.10
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 +2 -2
- package/daemon/assets/onboarding/02-self-and-competent-action.md +4 -3
- 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/activity-relay.cjs +42 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +7 -1
- package/daemon/assets/skills/rigs/SKILL.md +6 -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 +35 -10
- package/daemon/context-packs/reference/getting-started.md +10 -6
- package/daemon/context-packs/reference/manifest.yaml +1 -1
- package/daemon/context-packs/reference/whats-new.md +146 -70
- 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/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/messaging-the-human/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/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 +2 -2
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
- package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-user/SKILL.md +7 -1
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-public/manifest.yaml +1 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +16 -7
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume-launch.d.ts +4 -0
- package/daemon/dist/adapters/claude-resume-launch.d.ts.map +1 -0
- package/daemon/dist/adapters/claude-resume-launch.js +13 -0
- package/daemon/dist/adapters/claude-resume-launch.js.map +1 -0
- package/daemon/dist/adapters/claude-resume.d.ts +2 -1
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +9 -4
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/tmux-server.d.ts +15 -0
- package/daemon/dist/adapters/tmux-server.d.ts.map +1 -0
- package/daemon/dist/adapters/tmux-server.js +58 -0
- package/daemon/dist/adapters/tmux-server.js.map +1 -0
- package/daemon/dist/adapters/tmux.d.ts +3 -1
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +4 -2
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +4 -0
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/099_queue_items_recovery_tags.d.ts +3 -0
- package/daemon/dist/db/migrations/099_queue_items_recovery_tags.d.ts.map +1 -0
- package/daemon/dist/db/migrations/099_queue_items_recovery_tags.js +19 -0
- package/daemon/dist/db/migrations/099_queue_items_recovery_tags.js.map +1 -0
- package/daemon/dist/db/migrations/101_claude_resume_rotation.d.ts +3 -0
- package/daemon/dist/db/migrations/101_claude_resume_rotation.d.ts.map +1 -0
- package/daemon/dist/db/migrations/101_claude_resume_rotation.js +19 -0
- package/daemon/dist/db/migrations/101_claude_resume_rotation.js.map +1 -0
- package/daemon/dist/domain/agent-activity-store.js +3 -0
- package/daemon/dist/domain/agent-activity-store.js.map +1 -1
- package/daemon/dist/domain/bootstrap-repository.js +1 -1
- package/daemon/dist/domain/bootstrap-repository.js.map +1 -1
- package/daemon/dist/domain/chat-repository.d.ts +3 -0
- package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
- package/daemon/dist/domain/chat-repository.js +15 -4
- package/daemon/dist/domain/chat-repository.js.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.d.ts +1 -1
- package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.js +3 -2
- package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
- package/daemon/dist/domain/cmux-layout-service.d.ts.map +1 -1
- package/daemon/dist/domain/cmux-layout-service.js +2 -1
- package/daemon/dist/domain/cmux-layout-service.js.map +1 -1
- package/daemon/dist/domain/codex-git-add-dirs.js +1 -1
- package/daemon/dist/domain/codex-git-add-dirs.js.map +1 -1
- package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-usage-store.js +6 -1
- package/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -1
- package/daemon/dist/domain/crash-cart-conductor.js +3 -1
- package/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
- package/daemon/dist/domain/files/file-read.d.ts.map +1 -1
- package/daemon/dist/domain/files/file-read.js +11 -3
- package/daemon/dist/domain/files/file-read.js.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.d.ts +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +21 -2
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +70 -11
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +4 -0
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +7 -4
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/history-query.d.ts.map +1 -1
- package/daemon/dist/domain/history-query.js +8 -6
- package/daemon/dist/domain/history-query.js.map +1 -1
- package/daemon/dist/domain/human-questions.d.ts +4 -1
- package/daemon/dist/domain/human-questions.d.ts.map +1 -1
- package/daemon/dist/domain/human-questions.js.map +1 -1
- package/daemon/dist/domain/install-engine.js +2 -2
- package/daemon/dist/domain/install-engine.js.map +1 -1
- package/daemon/dist/domain/native-process-lineage.d.ts +52 -4
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
- package/daemon/dist/domain/native-process-lineage.js +224 -27
- package/daemon/dist/domain/native-process-lineage.js.map +1 -1
- package/daemon/dist/domain/node-cmux-service.d.ts.map +1 -1
- package/daemon/dist/domain/node-cmux-service.js +2 -1
- package/daemon/dist/domain/node-cmux-service.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +58 -13
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/progress/progress-indexer.d.ts.map +1 -1
- package/daemon/dist/domain/progress/progress-indexer.js +19 -0
- package/daemon/dist/domain/progress/progress-indexer.js.map +1 -1
- package/daemon/dist/domain/provider/codex-limit-banner.d.ts +40 -0
- package/daemon/dist/domain/provider/codex-limit-banner.d.ts.map +1 -0
- package/daemon/dist/domain/provider/codex-limit-banner.js +121 -0
- package/daemon/dist/domain/provider/codex-limit-banner.js.map +1 -0
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +3 -2
- 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 +10 -3
- package/daemon/dist/domain/queue-recovery.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +66 -13
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +56 -40
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +5 -2
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.d.ts +17 -0
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +49 -3
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/daemon/dist/domain/restore-guidance.d.ts +39 -0
- package/daemon/dist/domain/restore-guidance.d.ts.map +1 -0
- package/daemon/dist/domain/restore-guidance.js +163 -0
- package/daemon/dist/domain/restore-guidance.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +6 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +160 -6
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +2 -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/scope/scope-view-projection.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-view-projection.js +5 -7
- package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts +5 -2
- package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.js +18 -4
- package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.js +7 -2
- package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.d.ts +2 -1
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +1 -0
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.d.ts +9 -1
- package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.js +28 -4
- 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 +2 -1
- package/daemon/dist/domain/seat-switch-client-service.js.map +1 -1
- package/daemon/dist/domain/session-registry.d.ts +46 -0
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js +86 -4
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +13 -1
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +101 -5
- package/daemon/dist/domain/session-transport.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 +37 -1
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.d.ts +5 -1
- package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.js +30 -4
- package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.d.ts +6 -0
- 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/transcript-store.js +1 -1
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +9 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js +5 -0
- 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 +9 -4
- package/daemon/dist/domain/usage-series.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +13 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/view-projector.d.ts +4 -0
- package/daemon/dist/domain/view-projector.d.ts.map +1 -1
- package/daemon/dist/domain/view-projector.js +19 -4
- package/daemon/dist/domain/view-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-runtime.d.ts +1 -1
- package/daemon/dist/routes/activity.d.ts.map +1 -1
- package/daemon/dist/routes/activity.js +33 -1
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/chat.d.ts.map +1 -1
- package/daemon/dist/routes/chat.js +6 -2
- package/daemon/dist/routes/chat.js.map +1 -1
- package/daemon/dist/routes/projects.d.ts.map +1 -1
- package/daemon/dist/routes/projects.js +5 -1
- package/daemon/dist/routes/projects.js.map +1 -1
- package/daemon/dist/routes/query-limit.d.ts +19 -0
- package/daemon/dist/routes/query-limit.d.ts.map +1 -0
- package/daemon/dist/routes/query-limit.js +24 -0
- package/daemon/dist/routes/query-limit.js.map +1 -0
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +18 -7
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rig-cmux.js +8 -10
- package/daemon/dist/routes/rig-cmux.js.map +1 -1
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +6 -4
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/stream.d.ts.map +1 -1
- package/daemon/dist/routes/stream.js +5 -1
- package/daemon/dist/routes/stream.js.map +1 -1
- package/daemon/dist/routes/up.d.ts.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.d.ts.map +1 -1
- package/daemon/dist/routes/views.js +7 -1
- package/daemon/dist/routes/views.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +19 -0
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/getting-started.md +10 -6
- package/daemon/docs/reference/slack-app-setup.md +6 -0
- package/daemon/docs/reference/whats-new.md +146 -70
- package/daemon/specs/agents/development/qa/guidance/role.md +9 -0
- package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +2 -2
- package/daemon/specs/rigs/launch/factory/CULTURE.md +13 -0
- package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +18 -5
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +20 -1
- package/daemon/specs/rigs/launch/starter/CULTURE.md +13 -0
- package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +18 -5
- package/dist/build-info.js +3 -3
- package/dist/cli-error.d.ts.map +1 -1
- package/dist/cli-error.js +2 -0
- package/dist/cli-error.js.map +1 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +55 -4
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/capture.d.ts +9 -0
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +93 -41
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +4 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +37 -3
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +1 -50
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +6 -0
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/heartbeat.js +2 -2
- package/dist/commands/heartbeat.js.map +1 -1
- package/dist/commands/ps.d.ts +3 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +8 -3
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +39 -6
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +127 -33
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +6 -0
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/setup.d.ts +6 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +100 -44
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +5 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/usage.d.ts.map +1 -1
- package/dist/commands/usage.js +10 -5
- package/dist/commands/usage.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +8 -8
- package/dist/commands/workflow.js.map +1 -1
- package/dist/config-store.d.ts +2 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +14 -0
- package/dist/config-store.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +4 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +16 -4
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/lib/scope/capability-delta.d.ts.map +1 -1
- package/dist/lib/scope/capability-delta.js +8 -0
- package/dist/lib/scope/capability-delta.js.map +1 -1
- package/dist/lib/scope/progress-edit.js +1 -1
- package/dist/lib/scope/progress-edit.js.map +1 -1
- package/dist/lib/scope/scope-fs.js +3 -3
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/rig-handle.d.ts +45 -0
- package/dist/rig-handle.d.ts.map +1 -0
- package/dist/rig-handle.js +51 -0
- package/dist/rig-handle.js.map +1 -0
- package/dist/system-preflight.d.ts +5 -0
- package/dist/system-preflight.d.ts.map +1 -1
- package/dist/system-preflight.js +8 -0
- package/dist/system-preflight.js.map +1 -1
- package/dist/terminal-window.d.ts.map +1 -1
- package/dist/terminal-window.js +3 -1
- package/dist/terminal-window.js.map +1 -1
- package/package.json +1 -1
- package/tui/dist/config/config-model.d.ts.map +1 -1
- package/tui/dist/config/config-model.js +1 -0
- package/tui/dist/config/config-model.js.map +1 -1
- package/tui/dist/daemon-client.d.ts +3 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +4 -1
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/detail.d.ts.map +1 -1
- package/tui/dist/detail.js +6 -1
- package/tui/dist/detail.js.map +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +19 -17
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/input.d.ts.map +1 -1
- package/tui/dist/input.js +15 -4
- package/tui/dist/input.js.map +1 -1
- package/tui/dist/local-reading.js +2 -2
- package/tui/dist/local-reading.js.map +1 -1
- package/tui/dist/reading.d.ts.map +1 -1
- package/tui/dist/reading.js +14 -3
- package/tui/dist/reading.js.map +1 -1
package/README.md
CHANGED
|
@@ -42,7 +42,7 @@ To install with Bun instead, run `bun add -g @openrig/cli`. OpenRig still runs o
|
|
|
42
42
|
|
|
43
43
|
npm 11 and later can skip that postinstall script and print `npm warn install-scripts` naming `@openrig/cli`. That's expected: the CLI still works, and only the Node.js and SQLite check was skipped. To run it yourself, use `node "$(npm root -g)/@openrig/cli/scripts/check-abi.mjs"`; `rig doctor` checks the Node.js version only.
|
|
44
44
|
|
|
45
|
-
Choose the working account you already have: **Claude Code, Codex, or both**. Reuse an explicit choice; no second subscription is required. `rig setup --dry-run` previews the broader setup; applying `rig setup` checks both harnesses and installs a missing one, plus Herdr unless declined with `--no-herdr`. On macOS, the installing agent offers Ghostty once. Setup leaves an existing cmux installation alone. It is optional for the [selected-provider path](docs/reference/getting-started.md#choose-your-providers).
|
|
45
|
+
Choose the working account you already have: **Claude Code, Codex, or both**. Reuse an explicit choice; no second subscription is required. `rig setup --dry-run` previews the broader setup; applying `rig setup` checks both harnesses and installs a missing one, plus Herdr unless declined with `--no-herdr`. Pass the choice with `--providers claude` or `--providers codex` so the other reads not selected instead of failed. The one-command install above doesn't know the choice, so it installs and checks both; for one provider, go step by step and run `rig setup --providers <choice>`. On macOS, the installing agent offers Ghostty once. Setup leaves an existing cmux installation alone. It is optional for the [selected-provider path](docs/reference/getting-started.md#choose-your-providers).
|
|
46
46
|
|
|
47
47
|
A team seat with no permission policy, per-seat choice or (for Codex) named profile launches with OpenRig's [team default](docs/reference/rig-spec.md#team-launch-defaults): Claude runs ordinary `rig` commands, project reads and common tests without prompting, while lifecycle commands such as `rig up` and `rig down` still ask; Codex also gets the OpenRig workspace and its pod's state directory as writable directories. Before launching, your agent recommends keeping that default, and offers to remember selected OpenRig commands in your native settings only if you want that, at personal project scope unless you explicitly choose user-wide sessions. It is not global YOLO or permission to invent work. On Yes, the agent [adds and verifies native rules](docs/reference/getting-started.md#have-your-agent-configure-permissions); No or no answer keeps the team default and leaves settings unchanged. An existing explicit choice is reused. Say “Undo the OpenRig command allowances added by this setup” to remove only its additions.
|
|
48
48
|
|
|
@@ -447,7 +447,7 @@ Before setup or managed launch, review [what OpenRig changes on your machine](#w
|
|
|
447
447
|
|
|
448
448
|
Already-running adopted sessions may need restart before they pick up newly written runtime config.
|
|
449
449
|
|
|
450
|
-
**For agents:** First ask which available provider(s) the user wants, reusing an explicit choice. Recommend the working account they already have and follow the selected-provider guide above. Offer core setup (`rig setup`) or the fuller workstation path (`rig setup --full`) only when they want those additional tools. Inspect the result with `--json` and use `rig doctor` to finish any remaining machine-specific issues.
|
|
450
|
+
**For agents:** First ask which available provider(s) the user wants, reusing an explicit choice, and pass it to setup (`rig setup --providers claude`, `codex` or `both`). Recommend the working account they already have and follow the selected-provider guide above. Offer core setup (`rig setup`) or the fuller workstation path (`rig setup --full`) only when they want those additional tools. Inspect the result with `--json` and use `rig doctor` to finish any remaining machine-specific issues. Starting OpenRig and opening its view are the last steps of installing, not extras, so do them without stopping to ask whether to go on: start the daemon if it is stopped, open the OpenRig TUI and operator for them (say so, then run `rig terminal open saved:kernel --window --json`; no commands for the person to copy), and hand the person's goal and project folder to the kernel operator ([installing-agent handoff](docs/reference/getting-started.md#installing-agent-handoff)). Installation is finished when the person is talking to the operator; don't implement the project yourself. When OpenRig itself misbehaves, read [docs/reference/help.md](docs/reference/help.md) (installed agents can run `rig context get help`; the same text is at [openrig.dev/help/agents](https://www.openrig.dev/help/agents)): it covers the next step, known problems, and how to reach the team if you're still stuck.
|
|
451
451
|
|
|
452
452
|
## Comparison with Claude Managed Agents
|
|
453
453
|
|
|
@@ -67,9 +67,10 @@ conversation. Explain the failure and help with the chosen fallback; do not atta
|
|
|
67
67
|
Over headless SSH, explain that no visible terminal opened; tell the person to open a new terminal window or
|
|
68
68
|
tab and give one complete connection and attachment command using the current Herdr endpoint, as in the guide.
|
|
69
69
|
No, SSH and headless use are valid background outcomes. If the person chooses a manual operator attachment after
|
|
70
|
-
a failure, find the `operator.agent` row with
|
|
71
|
-
`
|
|
72
|
-
|
|
70
|
+
a failure, find the `operator.agent` row with
|
|
71
|
+
`rig ps --nodes --rig kernel --json --fields logicalId,canonicalSessionName,tmuxAttachCommand`. Give `env -u TMUX` followed by
|
|
72
|
+
that row's `tmuxAttachCommand`, exactly as listed (it names the daemon's tmux server when that isn't the default
|
|
73
|
+
one), for a new terminal on the same host and user (over SSH, connect there first). Ctrl-b, then d detaches without stopping it.
|
|
73
74
|
Ask the person's goal and project folder, then hand them to the ready operator; do not implement the project yourself.
|
|
74
75
|
Find the `operator.agent` row with `rig ps --nodes --rig kernel --json` and use its `canonicalSessionName` with
|
|
75
76
|
`rig send <canonicalSessionName> 'This is the agent that installed OpenRig. The person will answer in your pane. Goal: <goal>. Project folder: <absolute path>.'`,
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
+
const crypto = require("node:crypto");
|
|
5
|
+
const fs = require("node:fs");
|
|
6
|
+
const os = require("node:os");
|
|
7
|
+
const path = require("node:path");
|
|
8
|
+
|
|
4
9
|
// OpenRig activity-relay hook script.
|
|
5
10
|
// Reads a hook event payload from stdin, normalizes it, and POSTs to the
|
|
6
11
|
// OpenRig daemon's /api/activity/hooks endpoint for real-time UI seat-status.
|
|
@@ -154,6 +159,13 @@ function buildSessionIdentityPayload(providerPayload, env = process.env, now = (
|
|
|
154
159
|
const sessionName = firstString(env.OPENRIG_SESSION_NAME, env.RIGGED_SESSION_NAME);
|
|
155
160
|
const nodeId = firstString(env.OPENRIG_NODE_ID, env.RIGGED_NODE_ID);
|
|
156
161
|
const runtime = firstString(env.OPENRIG_RUNTIME, env.RIGGED_RUNTIME);
|
|
162
|
+
const generation = firstString(env.OPENRIG_OCCUPANT_GENERATION, env.RIGGED_OCCUPANT_GENERATION);
|
|
163
|
+
// How this session began (startup, resume, clear or compact). The daemon tells a resumed
|
|
164
|
+
// conversation's new id from a /clear by it; it is absent from runtimes that do not report it.
|
|
165
|
+
const source = firstString(providerPayload.source);
|
|
166
|
+
// Set only on the command OpenRig sends to resume this seat, so the daemon can tell the process
|
|
167
|
+
// it launched from another Claude sharing the seat's environment.
|
|
168
|
+
const resumeLaunch = firstString(env.OPENRIG_RESUME_LAUNCH);
|
|
157
169
|
|
|
158
170
|
if ((!sessionName && !nodeId) || !runtime) return null;
|
|
159
171
|
|
|
@@ -162,18 +174,45 @@ function buildSessionIdentityPayload(providerPayload, env = process.env, now = (
|
|
|
162
174
|
sessionName,
|
|
163
175
|
nodeId,
|
|
164
176
|
runtime,
|
|
177
|
+
generation,
|
|
165
178
|
hookEvent,
|
|
179
|
+
source,
|
|
180
|
+
resumeLaunch,
|
|
181
|
+
// The daemon finds the Claude that ran this hook from its parent chain.
|
|
182
|
+
hookPid: process.pid,
|
|
166
183
|
sessionId,
|
|
167
184
|
occurredAt: now().toISOString(),
|
|
168
185
|
};
|
|
169
186
|
}
|
|
170
187
|
|
|
188
|
+
// #1077 — whether this is the first SessionStart of the launch OpenRig armed (OPENRIG_RESUME_LAUNCH
|
|
189
|
+
// for this occupant generation). Recorded on local disk before anything is posted, so a first hook
|
|
190
|
+
// whose post never reaches the daemon still makes every later one (an in-process /resume, a child
|
|
191
|
+
// sharing the environment) report false. Any error reports false.
|
|
192
|
+
function claimFirstLaunchHook(resumeLaunch, generation, dir = path.join(os.tmpdir(), `openrig-resume-launch-${uid()}`)) {
|
|
193
|
+
if (!resumeLaunch || !generation) return false;
|
|
194
|
+
try {
|
|
195
|
+
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
196
|
+
const key = crypto.createHash("sha256").update(`${generation}\0${resumeLaunch}`).digest("hex");
|
|
197
|
+
fs.closeSync(fs.openSync(path.join(dir, key), "wx", 0o600));
|
|
198
|
+
return true;
|
|
199
|
+
} catch {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function uid() {
|
|
205
|
+
try { return typeof process.getuid === "function" ? String(process.getuid()) : "user"; } catch { return "user"; }
|
|
206
|
+
}
|
|
207
|
+
|
|
171
208
|
async function main() {
|
|
172
209
|
const providerPayload = parseJson(await readStdin());
|
|
173
210
|
const payload = buildOpenRigPayload(providerPayload);
|
|
174
|
-
await postHookPayload(payload);
|
|
175
|
-
|
|
176
211
|
const identityPayload = buildSessionIdentityPayload(providerPayload, process.env);
|
|
212
|
+
if (identityPayload && identityPayload.resumeLaunch) {
|
|
213
|
+
identityPayload.resumeLaunchFirst = claimFirstLaunchHook(identityPayload.resumeLaunch, identityPayload.generation);
|
|
214
|
+
}
|
|
215
|
+
await postHookPayload(payload);
|
|
177
216
|
if (identityPayload) {
|
|
178
217
|
await postHookPayload(identityPayload);
|
|
179
218
|
}
|
|
@@ -185,6 +224,7 @@ if (require.main === module) {
|
|
|
185
224
|
|
|
186
225
|
module.exports = {
|
|
187
226
|
buildOpenRigPayload,
|
|
227
|
+
claimFirstLaunchHook,
|
|
188
228
|
buildSessionIdentityPayload,
|
|
189
229
|
parseJson,
|
|
190
230
|
postHookPayload,
|
|
@@ -1302,7 +1302,7 @@ Node-granular managed partial restore (v0.3.4+):
|
|
|
1302
1302
|
### Add a member to an existing pod — v0.3.3+
|
|
1303
1303
|
|
|
1304
1304
|
```bash
|
|
1305
|
-
rig add <rig
|
|
1305
|
+
rig add <rig> <pod-namespace> <member-fragment-path> [--json]
|
|
1306
1306
|
```
|
|
1307
1307
|
|
|
1308
1308
|
`rig add` is the top-level verb for the `add_member` converge op. It adds a
|
|
@@ -1310,6 +1310,12 @@ single member to an existing pod from a YAML/JSON member fragment file. The
|
|
|
1310
1310
|
daemon resolves the named pod, validates the member, runs preflight, and
|
|
1311
1311
|
launches the member in place.
|
|
1312
1312
|
|
|
1313
|
+
`<rig>` is the rig id or its exact name (the `rigName` that `rig whoami --json`
|
|
1314
|
+
reports). A name shared by more than one rig is refused before anything is
|
|
1315
|
+
added, with the matching ids listed (`rig_ambiguous` under `--json`). `rig add`
|
|
1316
|
+
always targets the local daemon: while a remote host is selected it refuses to
|
|
1317
|
+
resolve a name (`remote_host_selected`); an exact local id still works.
|
|
1318
|
+
|
|
1313
1319
|
HTTP outcomes:
|
|
1314
1320
|
- `201` — member added; per-node launch state included in the response.
|
|
1315
1321
|
- `400` — `validation_failed` or `preflight_failed` (the fragment or its launch posture is rejected before any state change).
|
|
@@ -68,9 +68,10 @@ guidance in `AGENTS.md` or `CLAUDE.md` plus the team's skills and plugins. Say s
|
|
|
68
68
|
and ends with `run:` and a command (the `error` field with `--json`). That command already names the installed
|
|
69
69
|
herdr binary and the daemon's socket, or the conversation to attach. Relay it exactly rather than composing one.
|
|
70
70
|
If a note asks you to place the view once Herdr starts, run that `rig terminal open` yourself after they start it.
|
|
71
|
-
- **If it printed no command:** find `operator.agent` in
|
|
72
|
-
`
|
|
73
|
-
`env -u TMUX
|
|
71
|
+
- **If it printed no command:** find `operator.agent` in
|
|
72
|
+
`rig ps --nodes --rig kernel --json --fields logicalId,canonicalSessionName,tmuxAttachCommand` and give
|
|
73
|
+
`env -u TMUX` followed by its `tmuxAttachCommand`, exactly as listed (never a guessed name), for the operator's
|
|
74
|
+
conversation. That command names the daemon's tmux server when it isn't the default one.
|
|
74
75
|
|
|
75
76
|
For any other failure, the table under "What can interrupt installation and the OpenRig view" in
|
|
76
77
|
`rig context get reference/getting-started.md#open-the-kernel-conversations` says why and what to do next.
|
|
@@ -80,7 +81,8 @@ guidance in `AGENTS.md` or `CLAUDE.md` plus the team's skills and plugins. Say s
|
|
|
80
81
|
`rig send <canonicalSessionName> 'This is the agent that installed OpenRig. The person will answer in your pane. Goal: <goal>. Project folder: <absolute path>. Branch: <branch>.'`
|
|
81
82
|
Or the person types the goal and folder in the operator's pane. If they give you a goal later, forward it the same
|
|
82
83
|
way. The operator helps them pick a team that fits their logins, starts it on their yes and gives the goal to the
|
|
83
|
-
team's lead.
|
|
84
|
+
team's lead. Before that yes, it says what launching into their folder changes for their own agent there; relay
|
|
85
|
+
that with the question. Show them where the operator answers, and don't build the project yourself.
|
|
84
86
|
- **Relay the operator's questions:** the operator asks in its own pane, and the person may not be looking there.
|
|
85
87
|
After each step you hand it, read its screen with `rig capture <canonicalSessionName>`. When it asks the person
|
|
86
88
|
something (start this team? which folder? which option?), ask them here in the operator's words and send their
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Agent help: the single troubleshooting and escalation guide (docs/reference/help.md).
|
|
2
2
|
name: help
|
|
3
|
-
version: "0.6.
|
|
3
|
+
version: "0.6.10"
|
|
4
4
|
taxonomy: world
|
|
5
5
|
purpose: "What an agent does when its user says OpenRig isn't working: diagnose, fix within permissions, verify, and escalate to OpenRig support."
|
|
6
6
|
files:
|
|
@@ -11,7 +11,7 @@ not know exists.** So the point of what follows is not skill. It is recognition:
|
|
|
11
11
|
lands, something rhymes, and you go check instead of building.
|
|
12
12
|
|
|
13
13
|
Eighty-seven top-level verbs ship (capability canon refreshed through
|
|
14
|
-
`capability-delta-v0.6.
|
|
14
|
+
`capability-delta-v0.6.10`). This marker describes the pack's teaching, not publication or live
|
|
15
15
|
adoption. Read this once for shape, and let it make you suspicious that a thing already exists.
|
|
16
16
|
Model-divergence proclamations are live product (trust them; pins use canonical
|
|
17
17
|
model IDs).
|
|
@@ -28,8 +28,9 @@ one command away. Your memory of the fleet is a claim about the past.
|
|
|
28
28
|
- **`rig ps`** — what rigs exist. **`rig ps --nodes -A`** — the state of every seat everywhere,
|
|
29
29
|
*including the broken ones*. **The bare form is the question you usually want:** `--active`
|
|
30
30
|
filters to running and **hides detached, exited and attention states** — which are exactly the
|
|
31
|
-
cells you were scanning for.
|
|
32
|
-
|
|
31
|
+
cells you were scanning for. A seat whose tmux session is confirmed gone reads `detached`
|
|
32
|
+
(activity reason `session_missing`), and `rig ps --nodes` says to restore or relaunch it.
|
|
33
|
+
**`rig ps --resources`** shows this host's load and transcript capture cost.
|
|
33
34
|
- **`rig ps --all-hosts --nodes -A`** — the same across every registered machine. Rollup-only
|
|
34
35
|
unless you ask for nodes.
|
|
35
36
|
- **`rig discover`** — what is running on this box that OpenRig is *not* managing.
|
|
@@ -100,7 +101,9 @@ unseen — which makes messages the one delivery channel that never gets skipped
|
|
|
100
101
|
the wording wrong on the fourth. **Blast radius is real** — on a large rig this lands in every
|
|
101
102
|
seat's turn.
|
|
102
103
|
- **`rig capture <seat>`** — read what is on their screen right now. **`--rig` / `--pod`** captures
|
|
103
|
-
every seat in one call.
|
|
104
|
+
every seat in one call. `--lines N` is the last N lines (stderr says how many earlier lines were
|
|
105
|
+
cut); `--history-plus-pane` gives the older N history lines plus the whole pane. A short capture
|
|
106
|
+
doesn't prove a seat is idle.
|
|
104
107
|
- **`rig transcript <seat>`** — what has been *said* in a seat, and **seat-scoped rather than
|
|
105
108
|
session-scoped**: one file spanning every agent generation that has occupied it, so it reaches
|
|
106
109
|
back through handovers. Capped (`transcripts.lines`, default 1000 — raise it for depth), and
|
|
@@ -131,7 +134,9 @@ unseen — which makes messages the one delivery channel that never gets skipped
|
|
|
131
134
|
window, and only then say that clicking macOS's Allow is fine. Herdr is visible only in a
|
|
132
135
|
terminal the person can see; switching the shared TUI to `:terminals` does not open one. Over
|
|
133
136
|
SSH, in CI or with no display, the command returns a definite no-window result with the reason
|
|
134
|
-
and an attach command: relay that command exactly.
|
|
137
|
+
and an attach command: relay that command exactly. When the daemon runs on a non-default tmux
|
|
138
|
+
server, attach commands carry `-L <name>` or `-S <path>`; from inside tmux run them as
|
|
139
|
+
`env -u TMUX <tmuxAttachCommand>`. Inspect the result and visible content, or
|
|
135
140
|
say what cannot be verified. On a desktop, do not finish by printing a command for the person to
|
|
136
141
|
type. Only if the window cannot open, `rig tui --shared` is the dashboard-only fallback; explain
|
|
137
142
|
the failure. `--provider herdr` or `--provider cmux` adds tiles inside a workspace that is
|
|
@@ -177,7 +182,11 @@ your context, your compaction and your replacement — and it is the only thing
|
|
|
177
182
|
|
|
178
183
|
- **`rig queue create`** — a row with an owner, a body and a transition history. Its reply, like
|
|
179
184
|
`handoff`'s, confirms the row was saved; the owner is woken after that. Before you say they were
|
|
180
|
-
told, read the row's transitions
|
|
185
|
+
told, read the row's transitions, or use `--verify`. For a seat it reports the wake's terminal
|
|
186
|
+
receipt and any claim separately: an unconfirmed receipt is not a failed handoff, and a claim is
|
|
187
|
+
pickup, not proof the body was read. For a row the seat already claimed, `outcome` can read
|
|
188
|
+
`indeterminate` while `claim` is accurate: read `claim`. It isn't a failed handoff, so don't
|
|
189
|
+
re-run the create.
|
|
181
190
|
- **`rig queue show`** — what a row *actually says*. The header is not the body.
|
|
182
191
|
- **`rig queue claim` / `unclaim`** — is this mine and running, or still pending where two agents
|
|
183
192
|
might double-work it. Put it down honestly when it is not yours.
|
|
@@ -199,6 +208,11 @@ your context, your compaction and your replacement — and it is the only thing
|
|
|
199
208
|
delivery, the row's transitions are the receipt ledger; `undelivered` does not answer whether a
|
|
200
209
|
person received the escalation. **`overdue` and `undelivered` are the two halves of "is anything
|
|
201
210
|
silently stuck", and a rig can be clean on one and rotten on the other.**
|
|
211
|
+
- **`queue.wake_human_rung`** — when a seat can't be woken, the last escalation step posts to a
|
|
212
|
+
person. `rig config set queue.wake_human_rung explicit-only` (default `always`) keeps that post
|
|
213
|
+
for rows addressed to a person (an `@external` address or a registered human); the rest stop at
|
|
214
|
+
`rig view show escalations`. A seat stuck at a prompt only a person can clear still reaches one,
|
|
215
|
+
and an unreadable human registry posts everything.
|
|
202
216
|
- **`rig queue inbox-drop` / `inbox-pending` / `inbox-absorb` / `inbox-deny`** — put something in
|
|
203
217
|
front of a seat that it can *refuse*. Mail, not assignment.
|
|
204
218
|
- **`rig queue outbox-record` / `outbox-list`** — what you dispatched, in a record that survives
|
|
@@ -343,6 +357,9 @@ not have to tear one down to change it, and you rarely have to start from nothin
|
|
|
343
357
|
by name, a bundle someone handed you, a GitHub folder link (pinned to one commit), or a stopped
|
|
344
358
|
rig. `rig up` with a pod-aware spec on a stopped team's name replaces that team (the earlier one
|
|
345
359
|
is archived), so check `rig ps --nodes` first. Launch-created `AGENTS.md` or `CLAUDE` files now show in `git status`.
|
|
360
|
+
`rig up <rig> --existing` puts back the OpenRig guidance blocks `rig down` removed before a
|
|
361
|
+
resumed seat starts. A seat still missing one makes the rig `partially_restored` (its node lists
|
|
362
|
+
`guidanceGaps`) and `rig up` exits 1.
|
|
346
363
|
- **`rig down`** — stop a rig's seats and take it out of the running set. It ends the agents'
|
|
347
364
|
sessions and any work in progress; don't run it on a live team unless the person asked. In
|
|
348
365
|
human mode it first prints one line with each agent's last known activity, or “unknown”: a
|
|
@@ -350,12 +367,15 @@ not have to tear one down to change it, and you rarely have to start from nothin
|
|
|
350
367
|
that reports errors exits 2.
|
|
351
368
|
- **`rig launch <rigId> [seat]`** — one seat is down; start just that one, without disturbing the
|
|
352
369
|
rest. It takes the rig ID from `rig ps --json`; a rig name gives `rig_not_found`. Add `--plan` to preview it first, locally or with `--host`; a plan is never sent to a
|
|
353
|
-
daemon older than 0.5.9, which would ignore it and launch.
|
|
370
|
+
daemon older than 0.5.9, which would ignore it and launch. A seat whose agent exited to a shell in
|
|
371
|
+
its kept pane reads `attention_required` (exit 1), not already running: resume it, or
|
|
372
|
+
`rig seat launch <session> --fresh --stop`.
|
|
354
373
|
- **`rig seat launch <seat> --fresh --reason <why>`** — deliberately create a blank occupant for
|
|
355
374
|
exactly one existing seat. It uses no resume, fork, rebuild, snapshot, or restore packet;
|
|
356
375
|
siblings and durable work stay put, and unmanaged ambiguity refuses.
|
|
357
376
|
- **`rig add`** / **`rig expand`** — graft one more member, or a whole new pod, onto a rig that is
|
|
358
|
-
already running. `rig
|
|
377
|
+
already running. `rig add` takes the rig's name or ID; a name two active rigs share is refused
|
|
378
|
+
with `rig_ambiguous` and the candidates. `rig grow --new-pod` and `rig expand` are one ingress; choose by input shape.
|
|
359
379
|
- **`rig remove`** / **`rig shrink`** — take a seat, or an entire pod, out of a running topology.
|
|
360
380
|
If it holds active work, pass `--fallback <live-seat>` to reroute before mutation; without a
|
|
361
381
|
valid fallback the command refuses rather than strand the rows.
|
|
@@ -774,7 +794,9 @@ your circumstances is configuration, and the ones that are not, another agent ca
|
|
|
774
794
|
- **`rig provider accounts` / `bindings` / `signals` / `switch`** — which seats are bound to which
|
|
775
795
|
accounts, what the usage signals say, and whether a seat can be moved without stranding the
|
|
776
796
|
conversation it is in the middle of. **`provider signals` reports anomalies rather than a
|
|
777
|
-
listing** — unbound seats, accounts shared across several seats.
|
|
797
|
+
listing** — unbound seats, accounts shared across several seats. A Codex seat showing its
|
|
798
|
+
usage-limit banner reads activity `unknown` with reason `usage_limit`, and `provider signals` can
|
|
799
|
+
show a provider-event signal for that seat's account that allows a switch decision.
|
|
778
800
|
- **Codex configuration fragments** — a `codex_config_fragment` must open with a table header and
|
|
779
801
|
never overrides a user-declared table; see `docs/reference/agent-spec.md`.
|
|
780
802
|
- **`rig env`** — the real services behind a rig: are they up, what are they saying, how do you
|
|
@@ -782,7 +804,8 @@ your circumstances is configuration, and the ones that are not, another agent ca
|
|
|
782
804
|
- **`rig setup`** — what OpenRig would change about this machine, shown before it touches anything.
|
|
783
805
|
It installs herdr by default on macOS and Linux (`--no-herdr` declines; if the install fails,
|
|
784
806
|
views fall back to plain tmux) and on a Mac offers Ghostty once (`--ghostty` / `--no-ghostty`).
|
|
785
|
-
It no longer installs cmux; an existing cmux still works.
|
|
807
|
+
It no longer installs cmux; an existing cmux still works. `--providers claude`, `codex` or
|
|
808
|
+
`both` sets which harnesses it installs and checks; one not chosen reads `skipped`, never failed.
|
|
786
809
|
- **`rig usage series`** — what a seat's token curve has looked like over time: climbing steadily,
|
|
787
810
|
reset, or stopped reporting entirely. The last one is a signal, not a gap.
|
|
788
811
|
- **`rig tui`** — the interactive view over rigs, pods, seats and specs. `rig` and `rig tui` open
|
|
@@ -868,6 +891,8 @@ database. It is one more set of primitives on a machine full of them.
|
|
|
868
891
|
- **"Did that actually land?"** — `rig queue show <qitemId>` gives a bounded preview,
|
|
869
892
|
original byte size and the exact expansion command. Read the complete original record with
|
|
870
893
|
`rig queue show <qitemId> --full --json`; a preview or a compact list is not the whole body.
|
|
894
|
+
Compact `rig queue list` rows carry `summary`; the fields they leave out are absent, not empty,
|
|
895
|
+
and `fieldsElided` names them.
|
|
871
896
|
Delivery status is separate from content: inspect its receipt before claiming it was consumed.
|
|
872
897
|
- **"What am I waiting on?"** — the queue row's `waiting` view derives its owner, exact blocker
|
|
873
898
|
and blocker owner, last meaningful change, activity confidence and next backstop from live
|
|
@@ -137,7 +137,9 @@ The other provider's CLI/login is optional. Herdr is installed by default unless
|
|
|
137
137
|
you decline it; cmux remains optional. Do not copy credentials
|
|
138
138
|
or start repeated sign-in attempts. Recheck the selected login after the user
|
|
139
139
|
completes it. `rig setup --dry-run` previews the broader setup; applying
|
|
140
|
-
`rig setup` checks **both** harnesses and installs a missing one with npm
|
|
140
|
+
`rig setup` checks **both** harnesses and installs a missing one with npm, unless
|
|
141
|
+
you pass the person's choice: `rig setup --providers claude` (or `codex`) leaves
|
|
142
|
+
the other out, so it reads not selected instead of failed. On
|
|
141
143
|
macOS it uses an existing Homebrew (it does not install Homebrew) to install a
|
|
142
144
|
missing tmux (elsewhere tmux is checked, not installed). Herdr installs on
|
|
143
145
|
macOS and Linux; pass `--no-herdr` to decline it. Setup also
|
|
@@ -198,7 +200,7 @@ leaves existing cmux settings alone and does not open a view during setup.
|
|
|
198
200
|
|
|
199
201
|
On a Mac, the installing agent also asks once, "Install Ghostty for the OpenRig
|
|
200
202
|
view?" On Yes it reruns setup with `--ghostty`, preserving earlier choices such
|
|
201
|
-
as `--no-herdr`. This installs the
|
|
203
|
+
as `--no-herdr` and `--providers`. This installs the
|
|
202
204
|
[documented Homebrew cask](https://ghostty.org/docs/install/binary) and checks for
|
|
203
205
|
the app. On No it uses `--no-ghostty`; Terminal.app remains available. Plain setup
|
|
204
206
|
reports this offer without installing Ghostty or waiting for input. The person
|
|
@@ -331,17 +333,19 @@ For the first desktop handoff, use `--window`. Only if the window cannot open,
|
|
|
331
333
|
For an explicitly requested manual attachment, inspect the current bindings:
|
|
332
334
|
|
|
333
335
|
```sh
|
|
334
|
-
rig ps --nodes --rig kernel --json
|
|
336
|
+
rig ps --nodes --rig kernel --json --fields logicalId,canonicalSessionName,tmuxAttachCommand
|
|
335
337
|
```
|
|
336
338
|
|
|
337
|
-
Find `logicalId: operator.agent` and
|
|
339
|
+
Find `logicalId: operator.agent` and run its `tmuxAttachCommand`, after `env -u TMUX`, in a new
|
|
338
340
|
terminal on the same host and account:
|
|
339
341
|
|
|
340
342
|
```sh
|
|
341
|
-
env -u TMUX
|
|
343
|
+
env -u TMUX <tmuxAttachCommand>
|
|
342
344
|
```
|
|
343
345
|
|
|
344
|
-
|
|
346
|
+
When the daemon was started inside tmux on a non-default socket, its sessions live on that
|
|
347
|
+
server, and `tmuxAttachCommand` names it (`tmux -L <name> …` or `tmux -S <path> …`). The installing
|
|
348
|
+
agent fills in the actual command. This optional manual route
|
|
345
349
|
is separate from the first-install desktop action above.
|
|
346
350
|
|
|
347
351
|
### Plain terminal: a new viewing session
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Reference guides the help pack links to, loaded one file or section at a time by address
|
|
2
2
|
# (rig context get reference/<file>#<section>). Each file is a symlink to docs/reference/.
|
|
3
3
|
name: reference
|
|
4
|
-
version: "0.6.
|
|
4
|
+
version: "0.6.10"
|
|
5
5
|
taxonomy: world
|
|
6
6
|
purpose: "Version-matched reference guides the help guide links to. Load a single file or section by address; don't load the whole pack."
|
|
7
7
|
files:
|