@openrig/cli 0.4.4 → 0.4.6
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/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +6 -8
- package/daemon/assets/plugins/openrig-core/skills/openrig-cmux/SKILL.md +86 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-herdr/SKILL.md +158 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +744 -96
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +12 -8
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts +32 -0
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-resume.js +125 -0
- package/daemon/dist/adapters/pi-resume.js.map +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.d.ts +88 -0
- package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.js +153 -0
- package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -0
- package/daemon/dist/adapters/pi-runner.d.ts +99 -0
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runner.js +519 -0
- package/daemon/dist/adapters/pi-runner.js.map +1 -0
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts +61 -0
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runtime-adapter.js +356 -0
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -0
- package/daemon/dist/adapters/tmux.d.ts +22 -1
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +40 -1
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/builtins/workflow-specs/branched-remediation.yaml +31 -0
- package/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +152 -0
- package/daemon/dist/builtins/workflow-specs/gated-release.yaml +26 -0
- package/daemon/dist/builtins/workflow-specs/linear-build.yaml +21 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts +20 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts.map +1 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.js +24 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.js.map +1 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts +22 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts.map +1 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.js +26 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.js.map +1 -0
- package/daemon/dist/db/migrations/051_workflow_resume.d.ts +22 -0
- package/daemon/dist/db/migrations/051_workflow_resume.d.ts.map +1 -0
- package/daemon/dist/db/migrations/051_workflow_resume.js +27 -0
- package/daemon/dist/db/migrations/051_workflow_resume.js.map +1 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts +26 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts.map +1 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js +30 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js.map +1 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts +48 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts.map +1 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.js +53 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.js.map +1 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts +34 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts.map +1 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.js +49 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.js.map +1 -0
- package/daemon/dist/domain/claim-service.d.ts +11 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +3 -1
- package/daemon/dist/domain/claim-service.js.map +1 -1
- 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/hosts/hosts-registry-reader.d.ts +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.js +19 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts +11 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.js +54 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.js.map +1 -0
- package/daemon/dist/domain/hosts/read-through.d.ts +28 -0
- package/daemon/dist/domain/hosts/read-through.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/read-through.js +139 -0
- package/daemon/dist/domain/hosts/read-through.js.map +1 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +21 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.js +49 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +18 -0
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +206 -95
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +11 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +10 -0
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts +7 -0
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.js +93 -13
- package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +37 -26
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +105 -0
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +193 -4
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-retention.d.ts +130 -0
- package/daemon/dist/domain/queue-retention.d.ts.map +1 -0
- package/daemon/dist/domain/queue-retention.js +224 -0
- package/daemon/dist/domain/queue-retention.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +5 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +29 -2
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/resume-token-capture.d.ts +13 -0
- package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-capture.js +14 -1
- 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 +58 -10
- package/daemon/dist/domain/resume-token-validation.js.map +1 -1
- package/daemon/dist/domain/review/compose.d.ts +50 -1
- package/daemon/dist/domain/review/compose.d.ts.map +1 -1
- package/daemon/dist/domain/review/compose.js +92 -3
- package/daemon/dist/domain/review/compose.js.map +1 -1
- package/daemon/dist/domain/review/fleet-compose.d.ts +52 -0
- package/daemon/dist/domain/review/fleet-compose.d.ts.map +1 -0
- package/daemon/dist/domain/review/fleet-compose.js +294 -0
- package/daemon/dist/domain/review/fleet-compose.js.map +1 -0
- package/daemon/dist/domain/review/gather.d.ts +16 -1
- package/daemon/dist/domain/review/gather.d.ts.map +1 -1
- package/daemon/dist/domain/review/gather.js +177 -41
- package/daemon/dist/domain/review/gather.js.map +1 -1
- package/daemon/dist/domain/review/types.d.ts +104 -1
- package/daemon/dist/domain/review/types.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.js +3 -0
- package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +7 -6
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +33 -11
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +3 -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 +11 -0
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +6 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +26 -1
- 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 +20 -1
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-verifier.d.ts +7 -1
- package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-verifier.js +39 -1
- package/daemon/dist/domain/runtime-verifier.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +9 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +2 -0
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-store.d.ts +7 -0
- package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-store.js +27 -0
- package/daemon/dist/domain/seat-identity-store.js.map +1 -1
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +6 -4
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/session-name.d.ts +22 -0
- package/daemon/dist/domain/session-name.d.ts.map +1 -1
- package/daemon/dist/domain/session-name.js +29 -0
- package/daemon/dist/domain/session-name.js.map +1 -1
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-detail-projector.js +4 -5
- package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +18 -2
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js +23 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
- package/daemon/dist/domain/startup-proof.d.ts +10 -6
- package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
- package/daemon/dist/domain/startup-proof.js +35 -7
- package/daemon/dist/domain/startup-proof.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +16 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +13 -0
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +27 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js +67 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -0
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +77 -0
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/herdr-adapter.js +266 -0
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -0
- package/daemon/dist/domain/terminal/herdr-transport.d.ts +50 -0
- package/daemon/dist/domain/terminal/herdr-transport.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/herdr-transport.js +145 -0
- package/daemon/dist/domain/terminal/herdr-transport.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts +88 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-provider.js +17 -0
- package/daemon/dist/domain/terminal/terminal-provider.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts +60 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-service.js +174 -0
- package/daemon/dist/domain/terminal/terminal-service.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-views-store.d.ts +77 -0
- package/daemon/dist/domain/terminal/terminal-views-store.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-views-store.js +146 -0
- package/daemon/dist/domain/terminal/terminal-views-store.js.map +1 -0
- package/daemon/dist/domain/terminal/view-composer.d.ts +42 -0
- package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/view-composer.js +137 -0
- package/daemon/dist/domain/terminal/view-composer.js.map +1 -0
- package/daemon/dist/domain/tmux-option-defaults.d.ts +89 -0
- package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -0
- package/daemon/dist/domain/tmux-option-defaults.js +132 -0
- package/daemon/dist/domain/tmux-option-defaults.js.map +1 -0
- package/daemon/dist/domain/types.d.ts +34 -1
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-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 +92 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts.map +1 -1
- package/daemon/dist/domain/workflow/slice-workflow-projection.js +6 -2
- package/daemon/dist/domain/workflow/slice-workflow-projection.js.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.d.ts +28 -0
- package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-boot-sweep.js +102 -0
- package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -0
- package/daemon/dist/domain/workflow-deadline.d.ts +74 -0
- package/daemon/dist/domain/workflow-deadline.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-deadline.js +165 -0
- package/daemon/dist/domain/workflow-deadline.js.map +1 -0
- package/daemon/dist/domain/workflow-exception-escalation.d.ts +33 -0
- package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception-escalation.js +104 -0
- package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -0
- package/daemon/dist/domain/workflow-exception-router.d.ts +33 -0
- package/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception-router.js +96 -0
- package/daemon/dist/domain/workflow-exception-router.js.map +1 -0
- package/daemon/dist/domain/workflow-exception.d.ts +90 -0
- package/daemon/dist/domain/workflow-exception.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception.js +122 -0
- package/daemon/dist/domain/workflow-exception.js.map +1 -0
- package/daemon/dist/domain/workflow-frontier-guard.d.ts +24 -0
- package/daemon/dist/domain/workflow-frontier-guard.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-frontier-guard.js +30 -0
- package/daemon/dist/domain/workflow-frontier-guard.js.map +1 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts +28 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-instance-store.js +66 -10
- package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
- package/daemon/dist/domain/workflow-keepalive-arming.d.ts +35 -0
- package/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-keepalive-arming.js +87 -0
- package/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -0
- package/daemon/dist/domain/workflow-projector.d.ts +117 -2
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-projector.js +672 -41
- package/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-role-context.d.ts +57 -0
- package/daemon/dist/domain/workflow-role-context.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-role-context.js +120 -0
- package/daemon/dist/domain/workflow-role-context.js.map +1 -0
- package/daemon/dist/domain/workflow-role-resolver.d.ts +65 -0
- package/daemon/dist/domain/workflow-role-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-role-resolver.js +108 -0
- package/daemon/dist/domain/workflow-role-resolver.js.map +1 -0
- package/daemon/dist/domain/workflow-runtime.d.ts +157 -1
- package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-runtime.js +718 -11
- package/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts +26 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.js +327 -13
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
- package/daemon/dist/domain/workflow-types.d.ts +143 -8
- package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-types.js +14 -1
- package/daemon/dist/domain/workflow-types.js.map +1 -1
- package/daemon/dist/domain/workflow-validator.d.ts +11 -1
- package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-validator.js +246 -1
- package/daemon/dist/domain/workflow-validator.js.map +1 -1
- package/daemon/dist/index.d.ts +17 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +44 -0
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/activity.js +22 -0
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/hosts.d.ts +5 -0
- package/daemon/dist/routes/hosts.d.ts.map +1 -0
- package/daemon/dist/routes/hosts.js +346 -0
- package/daemon/dist/routes/hosts.js.map +1 -0
- package/daemon/dist/routes/queue.d.ts +2 -7
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +264 -9
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/review.d.ts.map +1 -1
- package/daemon/dist/routes/review.js +26 -0
- package/daemon/dist/routes/review.js.map +1 -1
- package/daemon/dist/routes/seat.js +13 -0
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/terminal.d.ts +11 -0
- package/daemon/dist/routes/terminal.d.ts.map +1 -0
- package/daemon/dist/routes/terminal.js +104 -0
- package/daemon/dist/routes/terminal.js.map +1 -0
- package/daemon/dist/routes/workflow.d.ts.map +1 -1
- package/daemon/dist/routes/workflow.js +102 -10
- package/daemon/dist/routes/workflow.js.map +1 -1
- package/daemon/dist/server.d.ts +5 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +22 -0
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +221 -12
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +29 -0
- package/daemon/specs/agents/factory-rsi/dogfood/guidance/role.md +37 -0
- package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +29 -0
- package/daemon/specs/agents/factory-rsi/release-manager/guidance/role.md +40 -0
- package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +6 -8
- package/daemon/specs/agents/shared/skills/core/openrig-cmux/SKILL.md +86 -0
- package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +158 -0
- package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +6 -6
- package/daemon/specs/rigs/launch/factory-rsi/CULTURE.md +47 -0
- package/daemon/specs/rigs/launch/factory-rsi/rig.yaml +115 -0
- package/dist/build-info.js +3 -3
- package/dist/commands/broadcast.d.ts +6 -1
- package/dist/commands/broadcast.d.ts.map +1 -1
- package/dist/commands/broadcast.js +101 -15
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +99 -8
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +4 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +5 -0
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/host.d.ts +14 -0
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +338 -14
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +5 -0
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +10 -4
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +36 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +73 -7
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/restore-packet.d.ts.map +1 -1
- package/dist/commands/restore-packet.js +13 -2
- package/dist/commands/restore-packet.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +114 -9
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/terminal.d.ts +6 -0
- package/dist/commands/terminal.d.ts.map +1 -0
- package/dist/commands/terminal.js +116 -0
- package/dist/commands/terminal.js.map +1 -0
- package/dist/commands/transcript.d.ts +6 -1
- package/dist/commands/transcript.d.ts.map +1 -1
- package/dist/commands/transcript.js +113 -30
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +9 -0
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +11 -0
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/workflow-errors.d.ts +23 -0
- package/dist/commands/workflow-errors.d.ts.map +1 -0
- package/dist/commands/workflow-errors.js +100 -0
- package/dist/commands/workflow-errors.js.map +1 -0
- package/dist/commands/workflow-follow.d.ts +71 -0
- package/dist/commands/workflow-follow.d.ts.map +1 -0
- package/dist/commands/workflow-follow.js +259 -0
- package/dist/commands/workflow-follow.js.map +1 -0
- package/dist/commands/workflow-render.d.ts +114 -0
- package/dist/commands/workflow-render.d.ts.map +1 -0
- package/dist/commands/workflow-render.js +223 -0
- package/dist/commands/workflow-render.js.map +1 -0
- package/dist/commands/workflow.d.ts +1 -0
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +278 -14
- package/dist/commands/workflow.js.map +1 -1
- package/dist/config-store.d.ts +15 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +103 -0
- package/dist/config-store.js.map +1 -1
- package/dist/cross-host-cli-helpers.d.ts +13 -0
- package/dist/cross-host-cli-helpers.d.ts.map +1 -1
- package/dist/cross-host-cli-helpers.js +27 -0
- package/dist/cross-host-cli-helpers.js.map +1 -1
- package/dist/cross-host-target.d.ts +49 -0
- package/dist/cross-host-target.d.ts.map +1 -0
- package/dist/cross-host-target.js +35 -0
- package/dist/cross-host-target.js.map +1 -0
- package/dist/host-registry.d.ts +8 -0
- package/dist/host-registry.d.ts.map +1 -1
- package/dist/host-registry.js +32 -0
- package/dist/host-registry.js.map +1 -1
- package/dist/host-selection.d.ts +13 -0
- package/dist/host-selection.d.ts.map +1 -0
- package/dist/host-selection.js +54 -0
- package/dist/host-selection.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/remote-host-ops.d.ts +1 -0
- package/dist/remote-host-ops.d.ts.map +1 -1
- package/dist/remote-host-ops.js +11 -4
- package/dist/remote-host-ops.js.map +1 -1
- package/dist/session-name.d.ts +23 -0
- package/dist/session-name.d.ts.map +1 -0
- package/dist/session-name.js +61 -0
- package/dist/session-name.js.map +1 -0
- package/package.json +1 -1
- package/ui/dist/assets/index-CFqxa0zW.css +32 -0
- package/ui/dist/assets/index-zrFqS7gL.js +623 -0
- package/ui/dist/index.html +2 -2
- package/ui/dist/assets/index-D69ZhNIr.js +0 -598
- package/ui/dist/assets/index-DJYun-8d.css +0 -32
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openrig-herdr
|
|
3
|
+
description: >
|
|
4
|
+
Use when opening OpenRig fleet terminals as a herdr wall — turning a rig, pod, mission, slice, or
|
|
5
|
+
saved view into live interactive agent tiles via `rig terminal`, watching another rig read-only,
|
|
6
|
+
or driving herdr on an agent's request ("open all my rigs + a mission as views"). Covers the
|
|
7
|
+
`rig terminal open|views|status` verbs, the honest-partial/degrade reading of the result, the
|
|
8
|
+
read-only-by-construction rail for cross-rig views, scroll/copy out of the box, and the
|
|
9
|
+
same-size-only duplicate-pane limit. herdr is the default, proof-gated provider.
|
|
10
|
+
metadata:
|
|
11
|
+
openrig:
|
|
12
|
+
stage: candidate
|
|
13
|
+
distribution_scope: product-bound
|
|
14
|
+
source_evidence: |
|
|
15
|
+
Empirical herdr 0.7.1 hands-on findings + the ratified implementation PRD. Authored
|
|
16
|
+
clean-room (patterns only, no herdr source text; AGPL arm's-length).
|
|
17
|
+
transfer_test: pending
|
|
18
|
+
sibling_skills:
|
|
19
|
+
- openrig-cmux
|
|
20
|
+
- openrig-user
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# openrig-herdr
|
|
24
|
+
|
|
25
|
+
OpenRig decides **which** agents make up a view (a rig, a pod, a mission, a slice, or a saved
|
|
26
|
+
group); **herdr** renders the pixels. A view opens as live, interactive terminal tiles — each tile
|
|
27
|
+
is a nested `tmux attach` to a daemon-owned agent session, so you get the real session, not a
|
|
28
|
+
snapshot. OpenRig owns the semantics; herdr owns the surface. You drive it entirely through the
|
|
29
|
+
`rig terminal` CLI, which rides the installed herdr binary at arm's length — never link, embed, or
|
|
30
|
+
plugin it.
|
|
31
|
+
|
|
32
|
+
## The whole surface — three verbs
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
rig terminal open <view> [--provider herdr|cmux] [--json] # herdr is the default provider
|
|
36
|
+
rig terminal views [--json] # list openable views (saved + derived)
|
|
37
|
+
rig terminal status [--provider] [--json] # provider liveness / health
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`<view>` resolves, in order, to one of:
|
|
41
|
+
- a **rig name** — every live agent in that rig, auto-laid-out;
|
|
42
|
+
- **`pod:<rig>/<podNamespace>`** — every live agent in one pod of a rig (the rig's inventory filtered by pod);
|
|
43
|
+
- **`mission:<id>`** — the agents working that mission (derived live from topology);
|
|
44
|
+
- **`slice:<id>`** — the agents working that slice (derived live);
|
|
45
|
+
- a **saved-view name** — a user-defined group (see Saved views).
|
|
46
|
+
|
|
47
|
+
## Compose a view from a sentence
|
|
48
|
+
|
|
49
|
+
An agent asked "open all my rigs plus a mission as views" runs one `open` per target:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
rig terminal open acme-web # a whole rig, live agents as tiles
|
|
53
|
+
rig terminal open mission:site-relaunch # exactly the agents working the mission
|
|
54
|
+
rig terminal open slice:02-search-filters # the agents working one slice
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
No hand-listing of seats: the mission/slice membership is derived from live topology at open time.
|
|
58
|
+
|
|
59
|
+
## Read the result honestly — partial and degrade
|
|
60
|
+
|
|
61
|
+
The result is a partition — every seat lands in exactly one bucket, each **named**:
|
|
62
|
+
|
|
63
|
+
- **opened** — the live agents now showing as tiles.
|
|
64
|
+
- **absent** — seats in the view that aren't currently live: **named and skipped, never silently
|
|
65
|
+
dropped.** A view that opens *some* of its seats is a success (the partial is disclosed) and exits
|
|
66
|
+
**0**. Only a view where **no** pane opens exits **non-zero**.
|
|
67
|
+
- **degraded** — an agent that structurally cannot tile, named **with the reason**. The v1 case:
|
|
68
|
+
an agent on a host registered over HTTP has no ssh path, so its tile can't be composed — it reads
|
|
69
|
+
as **"host `<id>` is http-registered; tiles need ssh"** and is skipped, never dropped. (ssh-reachable
|
|
70
|
+
hosts tile via an ssh-wrapped attach; full http-host tiling is deferred to the cross-host transport
|
|
71
|
+
seam.)
|
|
72
|
+
|
|
73
|
+
Read `--json` to branch on the partition programmatically; the exit code alone tells you opened-something
|
|
74
|
+
(0) vs opened-nothing (non-zero).
|
|
75
|
+
|
|
76
|
+
## Read-only — who's interactive, who's watch-only
|
|
77
|
+
|
|
78
|
+
Read-only is composed into the pane at open time — a read-only tile is a `tmux attach -r`, the client
|
|
79
|
+
reports `readonly=1`, and it **physically cannot send input**. The current policy, by view kind:
|
|
80
|
+
|
|
81
|
+
- **A rig view or a `pod:` view is interactive** — you asked for that rig (or pod) directly, so you
|
|
82
|
+
can drive its agents.
|
|
83
|
+
- **`mission:` and `slice:` views are read-only by construction** — these derived views cut across
|
|
84
|
+
rigs; you watch and scroll, you don't keystroke into them.
|
|
85
|
+
- **A saved view is per-member** — each member carries its own `readOnly` (omit = interactive;
|
|
86
|
+
`true` = `attach -r`).
|
|
87
|
+
|
|
88
|
+
So you don't have to remember to be careful: the view kind (and, for a saved view, the per-member
|
|
89
|
+
flag) sets it at open time.
|
|
90
|
+
|
|
91
|
+
## Safety rails (hard — the fleet-safety rail)
|
|
92
|
+
|
|
93
|
+
- A tile is a **view** (a nested `tmux attach`) of a daemon-owned session. **Never** move, join, kill,
|
|
94
|
+
or re-parent a daemon-owned pane. Closing a tile detaches one tmux client — the daemon's session is
|
|
95
|
+
untouched and its addressing (send/capture/nudge) is unaffected.
|
|
96
|
+
- Host-local read-only viewing mutates nothing. Anything that would change a **live** daemon session's
|
|
97
|
+
shared state (e.g. flipping a tmux option on a running seat) is a config/design change — prove it in
|
|
98
|
+
an isolated environment, never live-flip in production.
|
|
99
|
+
|
|
100
|
+
## Scroll + copy work out of the box
|
|
101
|
+
|
|
102
|
+
On a freshly-launched agent tile the mouse wheel scrolls the pane's history and a drag-select copies
|
|
103
|
+
to your **system** clipboard — with no tmux commands typed. This rides the daemon's terminal defaults
|
|
104
|
+
(a per-session scroll option set at launch, plus the daemon tmux server's clipboard defaults). Honest
|
|
105
|
+
timing: agents that were already running before this shipped pick up wheel-scroll at their **next
|
|
106
|
+
natural relaunch** (the scroll default is per-session and running seats are never retro-flipped);
|
|
107
|
+
system-clipboard copy works immediately (it's server-wide).
|
|
108
|
+
|
|
109
|
+
## Limits — state them, don't paper over them
|
|
110
|
+
|
|
111
|
+
- **Tile chrome v1 = a plain label** (agent + slice). Rich per-tile status is roadmap.
|
|
112
|
+
- **Duplicate / multi-view membership** (the same agent live in two views at once) works — put the
|
|
113
|
+
duplicates in **same-size panes**. Different-sized duplicate panes have an inherent tmux
|
|
114
|
+
multi-client resize mismatch (tmux clamps to the smallest client); it is **documented, not fixed** —
|
|
115
|
+
don't expect a setting to remove it.
|
|
116
|
+
- **Inner tmux status bar** is hidden by default (herdr provides the chrome); one config key
|
|
117
|
+
(`terminal.status_bar`) flips it back on for raw-tmux / no-provider surfaces, and the flip applies
|
|
118
|
+
to **future launches only**.
|
|
119
|
+
|
|
120
|
+
## Saved views — the library (`terminal-views.yaml`)
|
|
121
|
+
|
|
122
|
+
In v1 you **create** a saved view by **hand-authoring** `terminal-views.yaml` — there is no save/write
|
|
123
|
+
verb (`open` / `views` / `status` are the whole surface; a `rig terminal save <id>` verb is a named
|
|
124
|
+
stretch/follow-up). You **reopen** it like any other view: `rig terminal open <id>`.
|
|
125
|
+
|
|
126
|
+
The file lives at the OpenRig home root (resolved via `getDefaultOpenRigPath()`), is written
|
|
127
|
+
atomically (tmp + rename), and is byte-stable. **Only hand-authored saved views live here — derived
|
|
128
|
+
views (a rig, `pod:<rig>/<pod>`, `mission:<id>`, `slice:<id>`) are computed live and never written to
|
|
129
|
+
this file.**
|
|
130
|
+
|
|
131
|
+
Schema — use these field names **exactly**, in this order; **omit** optional fields when absent
|
|
132
|
+
(never write `null`):
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
version: 1
|
|
136
|
+
views:
|
|
137
|
+
- id: my-view-id # required — the id `rig terminal open <id>` takes
|
|
138
|
+
name: Human Name # required
|
|
139
|
+
members:
|
|
140
|
+
- seat: pod-member@rig # required — the canonical session name
|
|
141
|
+
label: agent . slice # optional — pane label
|
|
142
|
+
host: some-host-id # optional — STRUCTURED host id (NEVER a `member@rig@host` string);
|
|
143
|
+
# omit for local. ssh-registered hosts tile;
|
|
144
|
+
# http-registered hosts honest-degrade (named + skipped, with reason)
|
|
145
|
+
tmuxSession: sessname # optional — defaults to `seat`
|
|
146
|
+
readOnly: true # optional — omit = interactive; true = `tmux attach -r`
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
An agent composing a saved view on request **writes this YAML** and then opens the id:
|
|
150
|
+
`rig terminal open my-view-id` (add `--provider cmux` for cmux). The library is provider-agnostic —
|
|
151
|
+
the same saved view opens in herdr or cmux.
|
|
152
|
+
|
|
153
|
+
## AGPL / clean-room
|
|
154
|
+
|
|
155
|
+
Driving herdr through the `rig terminal` CLI (which talks to the installed herdr binary over its
|
|
156
|
+
CLI/socket) is arm's-length and fine. Do **not** link herdr's source, embed it in-process, or ship a
|
|
157
|
+
herdr plugin — a plugin needs legal review. This skill and its docs are clean-room: patterns only,
|
|
158
|
+
never herdr source text.
|
|
@@ -28,7 +28,7 @@ the receipt and move on.
|
|
|
28
28
|
Example:
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
rig send
|
|
31
|
+
rig send reviewer@acme-web "Heads up — filing the per-commit handoff on the search-filters slice at the current tip." --verify
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
### `rig queue create --source <X> --destination <Y> --tags <...> --body "<...>"` — durable work item
|
|
@@ -47,9 +47,9 @@ Example:
|
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
49
|
rig queue create \
|
|
50
|
-
--source
|
|
51
|
-
--destination
|
|
52
|
-
--tags "mission:
|
|
50
|
+
--source builder@acme-web \
|
|
51
|
+
--destination reviewer@acme-web \
|
|
52
|
+
--tags "mission:site-relaunch,slice:02-search-filters,gate:guard,handoff:per-commit,checkpoint:bug-1" \
|
|
53
53
|
--body "$(cat /tmp/per-commit-body.txt)"
|
|
54
54
|
```
|
|
55
55
|
|
|
@@ -64,8 +64,8 @@ Example:
|
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
66
|
rig queue handoff qitem-20260601012431-d78aa805 \
|
|
67
|
-
--to
|
|
68
|
-
--tags "mission:
|
|
67
|
+
--to qa@acme-web \
|
|
68
|
+
--tags "mission:site-relaunch,slice:02-search-filters,gate:qa,handoff:adversarial-dogfood"
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
### §1b doctrine — turn ends by passing the ball
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# factory-rsi — the single-rig RSI factory MVP
|
|
2
|
+
|
|
3
|
+
This rig IS a recursive-self-improvement loop. One workflow (`factory-rsi`)
|
|
4
|
+
moves one slice through the inner loop **plan → implement → check → review →
|
|
5
|
+
release**. Dogfood is decoupled from that gated loop: it continuously uses the
|
|
6
|
+
**shipped** product out-of-band and feeds its findings into the **next** plan
|
|
7
|
+
cycle. That feedback edge is the whole point — and it needs no human in the loop.
|
|
8
|
+
|
|
9
|
+
## How the loop runs
|
|
10
|
+
|
|
11
|
+
- The **engine routes the inner loop**, not the orchestrator. A failing check or
|
|
12
|
+
review routes back to build for bounded remediation; a clean review proceeds
|
|
13
|
+
to release prep. Nobody hand-relays a packet around the loop.
|
|
14
|
+
- **Dogfood is out-of-band.** It runs continuously against the SHIPPED product —
|
|
15
|
+
not a second QA on the pre-release build artifact — and records findings that
|
|
16
|
+
become the next plan's input. The RSI recursion stays ungated: dogfood findings
|
|
17
|
+
feed the next plan with no human gate (a human MAY steer via the roadmap but is
|
|
18
|
+
never required; there is no loop-stop in the MVP).
|
|
19
|
+
- **Findings are recorded state, not memory.** The next plan builds from the
|
|
20
|
+
recorded dogfood findings — never a seat's chat history.
|
|
21
|
+
- **Exceptions go orchestrator-first** (the WF-5 dial); the human knows at
|
|
22
|
+
altitude. A `max_hops` trip is an exception, and a resume grants exactly one
|
|
23
|
+
more bounded window — the loop never runs away.
|
|
24
|
+
- **Publishing is a human act.** The release seat PREPARES notes/docs/PR and
|
|
25
|
+
holds the ship decision at a human gate. No seat pushes, tags, or publishes.
|
|
26
|
+
|
|
27
|
+
## The seats
|
|
28
|
+
|
|
29
|
+
| Seat | Runtime | Does |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| `plan-planner` | claude-code | turns the corpus / previous findings into ONE buildable slice spec |
|
|
32
|
+
| `build-implementer` | claude-code | builds the slice, produces proof |
|
|
33
|
+
| `check-qa` | codex | checks the artifact; a failing check loops back to build |
|
|
34
|
+
| `review-reviewer` | codex | reviews (cross-runtime vs the builder) |
|
|
35
|
+
| `dogfood-tester` | codex | continuously USES the shipped product out-of-band; records findings that feed the next plan |
|
|
36
|
+
| `release-manager` | claude-code | prepares the release, holds the human gate |
|
|
37
|
+
| `orch-lead` | claude-code | the exception dial target — exceptions only |
|
|
38
|
+
|
|
39
|
+
Seats inherit their runtime's default model (no per-seat model pin): plan,
|
|
40
|
+
build, release, and orchestration run on claude-code; check, review, and dogfood
|
|
41
|
+
run on codex for cross-runtime diversity against the builder.
|
|
42
|
+
|
|
43
|
+
## Deployment
|
|
44
|
+
|
|
45
|
+
As a shipped starter this rig is workspace-agnostic — point
|
|
46
|
+
`rig up factory-rsi --cwd <repo>` at whatever real repository the loop should
|
|
47
|
+
improve, and the planner's product-intent corpus is that repo's real specs.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
version: "0.2"
|
|
2
|
+
name: factory-rsi
|
|
3
|
+
culture_file: CULTURE.md
|
|
4
|
+
summary: >
|
|
5
|
+
The single-rig RSI factory MVP (OPR.0.4.6.FAC2): ONE rig whose seats map 1:1
|
|
6
|
+
to the `factory-rsi` workflow — the inner loop plans, builds, checks, and
|
|
7
|
+
reviews one slice, then prepares its release. Dogfood is decoupled: it
|
|
8
|
+
continuously uses the SHIPPED product out-of-band and feeds findings back into
|
|
9
|
+
the next plan — the recursive-self-improvement edge, with no human required in
|
|
10
|
+
the loop. Run it with `rig up factory-rsi`, then instantiate the `factory-rsi`
|
|
11
|
+
workflow and watch the loop close. Seats inherit their runtime's default
|
|
12
|
+
model; qa, review, and dogfood run on the alternate runtime for cross-runtime
|
|
13
|
+
diversity against the builder.
|
|
14
|
+
|
|
15
|
+
# Seven pods, one member each, so every canonical session name is
|
|
16
|
+
# `<pod>-<member>@factory-rsi` and matches the workflow's preferred_targets 1:1.
|
|
17
|
+
pods:
|
|
18
|
+
- id: plan
|
|
19
|
+
label: Planning
|
|
20
|
+
members:
|
|
21
|
+
- id: planner
|
|
22
|
+
agent_ref: "local:../../../agents/conveyor/planner"
|
|
23
|
+
runtime: claude-code
|
|
24
|
+
profile: default
|
|
25
|
+
cwd: "."
|
|
26
|
+
edges: []
|
|
27
|
+
|
|
28
|
+
- id: build
|
|
29
|
+
label: Build
|
|
30
|
+
members:
|
|
31
|
+
- id: implementer
|
|
32
|
+
agent_ref: "local:../../../agents/development/implementer"
|
|
33
|
+
runtime: claude-code
|
|
34
|
+
profile: default
|
|
35
|
+
cwd: "."
|
|
36
|
+
edges: []
|
|
37
|
+
|
|
38
|
+
- id: check
|
|
39
|
+
label: Check
|
|
40
|
+
members:
|
|
41
|
+
- id: qa
|
|
42
|
+
agent_ref: "local:../../../agents/development/qa"
|
|
43
|
+
runtime: codex
|
|
44
|
+
profile: default
|
|
45
|
+
cwd: "."
|
|
46
|
+
edges: []
|
|
47
|
+
|
|
48
|
+
- id: review
|
|
49
|
+
label: Review
|
|
50
|
+
members:
|
|
51
|
+
- id: reviewer
|
|
52
|
+
agent_ref: "local:../../../agents/review/independent-reviewer"
|
|
53
|
+
runtime: codex
|
|
54
|
+
profile: default
|
|
55
|
+
cwd: "."
|
|
56
|
+
edges: []
|
|
57
|
+
|
|
58
|
+
- id: dogfood
|
|
59
|
+
label: Dogfood
|
|
60
|
+
members:
|
|
61
|
+
- id: tester
|
|
62
|
+
agent_ref: "local:../../../agents/factory-rsi/dogfood"
|
|
63
|
+
runtime: codex
|
|
64
|
+
profile: default
|
|
65
|
+
cwd: "."
|
|
66
|
+
edges: []
|
|
67
|
+
|
|
68
|
+
- id: release
|
|
69
|
+
label: Release
|
|
70
|
+
members:
|
|
71
|
+
- id: manager
|
|
72
|
+
agent_ref: "local:../../../agents/factory-rsi/release-manager"
|
|
73
|
+
runtime: claude-code
|
|
74
|
+
profile: default
|
|
75
|
+
cwd: "."
|
|
76
|
+
edges: []
|
|
77
|
+
|
|
78
|
+
- id: orch
|
|
79
|
+
label: Orchestration
|
|
80
|
+
members:
|
|
81
|
+
- id: lead
|
|
82
|
+
agent_ref: "local:../../../agents/orchestration/orchestrator"
|
|
83
|
+
runtime: claude-code
|
|
84
|
+
profile: default
|
|
85
|
+
cwd: "."
|
|
86
|
+
edges: []
|
|
87
|
+
|
|
88
|
+
# The orchestrator delegates across the pipeline; review and check can observe
|
|
89
|
+
# the build. Workflow ROUTING is the `factory-rsi` spec's job (the engine
|
|
90
|
+
# routes the loop-close); these edges are topology hints, not the routing.
|
|
91
|
+
edges:
|
|
92
|
+
- kind: delegates_to
|
|
93
|
+
from: orch.lead
|
|
94
|
+
to: plan.planner
|
|
95
|
+
- kind: delegates_to
|
|
96
|
+
from: orch.lead
|
|
97
|
+
to: build.implementer
|
|
98
|
+
- kind: delegates_to
|
|
99
|
+
from: orch.lead
|
|
100
|
+
to: check.qa
|
|
101
|
+
- kind: delegates_to
|
|
102
|
+
from: orch.lead
|
|
103
|
+
to: review.reviewer
|
|
104
|
+
- kind: delegates_to
|
|
105
|
+
from: orch.lead
|
|
106
|
+
to: dogfood.tester
|
|
107
|
+
- kind: delegates_to
|
|
108
|
+
from: orch.lead
|
|
109
|
+
to: release.manager
|
|
110
|
+
- kind: can_observe
|
|
111
|
+
from: check.qa
|
|
112
|
+
to: build.implementer
|
|
113
|
+
- kind: can_observe
|
|
114
|
+
from: review.reviewer
|
|
115
|
+
to: build.implementer
|
package/dist/build-info.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// GENERATED by scripts/build-package.sh — the packaged build-identity stamp.
|
|
2
2
|
export const BUILD_INFO = {
|
|
3
|
-
semver: "0.4.
|
|
4
|
-
commit: "
|
|
3
|
+
semver: "0.4.6",
|
|
4
|
+
commit: "8250d702a27aa24bb9acf0b4bef12f58fd83df12",
|
|
5
5
|
dirty: false,
|
|
6
|
-
builtAt: "2026-07-
|
|
6
|
+
builtAt: "2026-07-09T22:59:04Z",
|
|
7
7
|
};
|
|
8
8
|
export function stampFields(info = BUILD_INFO) {
|
|
9
9
|
if (!info.commit) return {};
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import type { StatusDeps } from "./status.js";
|
|
3
|
-
|
|
3
|
+
import { loadHostRegistry } from "../host-registry.js";
|
|
4
|
+
export interface BroadcastDeps extends StatusDeps {
|
|
5
|
+
/** Test seam: inject a registry loader so no real ~/.openrig is touched. */
|
|
6
|
+
hostRegistryLoader?: () => ReturnType<typeof loadHostRegistry>;
|
|
7
|
+
}
|
|
8
|
+
export declare function broadcastCommand(depsOverride?: BroadcastDeps): Command;
|
|
4
9
|
//# sourceMappingURL=broadcast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/commands/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/commands/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAkC,MAAM,qBAAqB,CAAC;AAYvF,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,MAAM,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;CAChE;AAED,wBAAgB,gBAAgB,CAAC,YAAY,CAAC,EAAE,aAAa,GAAG,OAAO,CAiFtE"}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
+
import { resolveEffectiveHost } from "../host-selection.js";
|
|
2
3
|
import { DaemonClient } from "../client.js";
|
|
3
4
|
import { getDaemonStatus, getDaemonUrl } from "../daemon-lifecycle.js";
|
|
4
5
|
import { realDeps } from "./daemon.js";
|
|
6
|
+
import { loadHostRegistry, resolveHost, hostDisplayTarget } from "../host-registry.js";
|
|
7
|
+
import { emitCrossHostError, emitRemoteHttpFailure } from "../cross-host-cli-helpers.js";
|
|
8
|
+
import { runRemoteHttpOp } from "../remote-host-ops.js";
|
|
9
|
+
/**
|
|
10
|
+
* OPR.0.4.6.MH4 C3 — the cross-host broadcast deadline, named at the call
|
|
11
|
+
* site (arch delivery-lane note (a)): the remote route responds only after
|
|
12
|
+
* the ORIGIN daemon's per-target fan-out loop completes, so a many-seat rig
|
|
13
|
+
* needs more than the 5s read-class default.
|
|
14
|
+
*/
|
|
15
|
+
const BROADCAST_REMOTE_TIMEOUT_MS = 30_000;
|
|
5
16
|
export function broadcastCommand(depsOverride) {
|
|
6
17
|
const cmd = new Command("broadcast").description("Send a message to multiple agent sessions");
|
|
7
18
|
const getDeps = () => depsOverride ?? {
|
|
@@ -13,6 +24,7 @@ export function broadcastCommand(depsOverride) {
|
|
|
13
24
|
.option("--rig <name>", "Broadcast to all sessions in a rig")
|
|
14
25
|
.option("--pod <name>", "Broadcast to all sessions in a pod")
|
|
15
26
|
.option("--force", "Send even if targets appear mid-task")
|
|
27
|
+
.option("--host <id>", "Broadcast on a remote host declared in ~/.openrig/hosts.yaml (http hosts only — CLI-direct to the remote daemon's fan-out)")
|
|
16
28
|
.option("--json", "JSON output for agents")
|
|
17
29
|
.addHelpText("after", `
|
|
18
30
|
Examples:
|
|
@@ -20,11 +32,32 @@ Examples:
|
|
|
20
32
|
rig broadcast --pod dev "New task spec at docs/planning/next-task.md"
|
|
21
33
|
rig broadcast "System maintenance in 5 minutes."
|
|
22
34
|
rig broadcast --rig my-rig "message" --json
|
|
35
|
+
rig broadcast --host vps-b --rig remote-rig "coordinate the remote factory"
|
|
23
36
|
|
|
24
37
|
Without --rig or --pod, broadcasts to ALL running tmux sessions plus any attached external_cli nodes across all rigs.
|
|
25
|
-
Unsupported external_cli targets are returned as explicit per-target failures in the result
|
|
38
|
+
Unsupported external_cli targets are returned as explicit per-target failures in the result.
|
|
39
|
+
|
|
40
|
+
--host broadcasts on a remote host declared in ~/.openrig/hosts.yaml,
|
|
41
|
+
CLI-direct against that daemon's shipped broadcast fan-out (http-registered
|
|
42
|
+
hosts, e.g. pair-registered; an ssh-registered host fails with the structured
|
|
43
|
+
transport-requirement error). The REMOTE daemon resolves --rig/--pod on ITS
|
|
44
|
+
topology and its per-target results print verbatim — a partial fan-out exits
|
|
45
|
+
non-zero exactly as a local one does. The positional is message text (never
|
|
46
|
+
parsed as a target), so broadcast takes --host or the persisted host
|
|
47
|
+
selection, not the agent@rig@host sugar.`)
|
|
26
48
|
.action(async (text, opts) => {
|
|
49
|
+
// OPR.0.4.6.MH4 C3 — explicit --host > persisted selection. Broadcast
|
|
50
|
+
// has NO session-target operand (the positional is message text, which
|
|
51
|
+
// must never be sugar-parsed), so the §4 sugar does not apply here.
|
|
52
|
+
opts.host = resolveEffectiveHost(opts.host);
|
|
27
53
|
const deps = getDeps();
|
|
54
|
+
// --- Cross-host path (CLI-direct POST to the remote daemon's shipped
|
|
55
|
+
// /api/transport/broadcast; its own fan-out engine resolves the
|
|
56
|
+
// TargetSpec on ITS topology; daemon untouched). ---
|
|
57
|
+
if (opts.host) {
|
|
58
|
+
await runCrossHostBroadcast(opts.host, text, opts, deps);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
28
61
|
const status = await getDaemonStatus(deps.lifecycleDeps);
|
|
29
62
|
if (status.state !== "running" || status.healthy === false) {
|
|
30
63
|
console.error("Daemon not running. Start it with: rig daemon start");
|
|
@@ -51,21 +84,74 @@ Unsupported external_cli targets are returned as explicit per-target failures in
|
|
|
51
84
|
process.exitCode = 1;
|
|
52
85
|
return;
|
|
53
86
|
}
|
|
54
|
-
|
|
55
|
-
const results = data["results"] ?? [];
|
|
56
|
-
for (const r of results) {
|
|
57
|
-
if (r.ok) {
|
|
58
|
-
console.log(`${r.sessionName}: sent`);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
console.log(`${r.sessionName}: FAILED — ${r.error ?? "unknown error"}`);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
console.log(`${data["sent"]}/${data["total"]} delivered`);
|
|
65
|
-
if (data["failed"] > 0 || results.some((r) => !r.ok)) {
|
|
66
|
-
process.exitCode = 1;
|
|
67
|
-
}
|
|
87
|
+
renderBroadcastResults(res.data);
|
|
68
88
|
});
|
|
69
89
|
return cmd;
|
|
70
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* OPR.0.4.6.MH4 C3 — cross-host broadcast over http, CLI-DIRECT to the
|
|
93
|
+
* remote daemon's shipped POST /api/transport/broadcast (zero daemon-side
|
|
94
|
+
* changes). The body is the LOCAL shape verbatim ({text, force, rig?,
|
|
95
|
+
* pod?}); the ORIGIN daemon's own fan-out engine resolves the TargetSpec on
|
|
96
|
+
* ITS topology and returns per-target results, printed VERBATIM — per-target
|
|
97
|
+
* honesty is passthrough, never summarized; a partial fan-out exits non-zero
|
|
98
|
+
* exactly as the local path does. Deadline: BROADCAST_REMOTE_TIMEOUT_MS
|
|
99
|
+
* (named — a full fan-out outlives the read-class default).
|
|
100
|
+
*/
|
|
101
|
+
async function runCrossHostBroadcast(hostId, text, opts, deps) {
|
|
102
|
+
const loader = deps.hostRegistryLoader ?? loadHostRegistry;
|
|
103
|
+
const registry = loader();
|
|
104
|
+
if (!registry.ok) {
|
|
105
|
+
emitCrossHostError(hostId, "registry-load-failed", registry.error, opts.json);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const resolved = resolveHost(registry.registry, hostId);
|
|
109
|
+
if (!resolved.ok) {
|
|
110
|
+
emitCrossHostError(hostId, "unknown-host", resolved.error, opts.json);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const host = resolved.host;
|
|
114
|
+
const body = { text, force: opts.force };
|
|
115
|
+
if (opts.rig)
|
|
116
|
+
body.rig = opts.rig;
|
|
117
|
+
if (opts.pod)
|
|
118
|
+
body.pod = opts.pod;
|
|
119
|
+
const result = await runRemoteHttpOp(hostId, "POST", "/api/transport/broadcast", body, deps, {
|
|
120
|
+
timeoutMs: BROADCAST_REMOTE_TIMEOUT_MS,
|
|
121
|
+
});
|
|
122
|
+
if (opts.json) {
|
|
123
|
+
console.log(JSON.stringify({
|
|
124
|
+
cross_host: { host: host.id, target: hostDisplayTarget(host), transport: "http" },
|
|
125
|
+
result,
|
|
126
|
+
}));
|
|
127
|
+
const results = result.data?.["results"] ?? [];
|
|
128
|
+
if (!result.ok || results.some((r) => !r.ok))
|
|
129
|
+
process.exitCode = 1;
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (!result.ok) {
|
|
133
|
+
emitRemoteHttpFailure(host.id, hostDisplayTarget(host), result, false);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
console.log(`[via host=${host.id} (${hostDisplayTarget(host)})]`);
|
|
137
|
+
renderBroadcastResults((result.data ?? {}));
|
|
138
|
+
}
|
|
139
|
+
/** One renderer, two callers — the remote route returns the same shape the
|
|
140
|
+
* local route does, so per-target honesty prints identically. A partial
|
|
141
|
+
* fan-out sets a non-zero exit either way. */
|
|
142
|
+
function renderBroadcastResults(data) {
|
|
143
|
+
const results = data["results"] ?? [];
|
|
144
|
+
for (const r of results) {
|
|
145
|
+
if (r.ok) {
|
|
146
|
+
console.log(`${r.sessionName}: sent`);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
console.log(`${r.sessionName}: FAILED — ${r.error ?? "unknown error"}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
console.log(`${data["sent"]}/${data["total"]} delivered`);
|
|
153
|
+
if (data["failed"] > 0 || results.some((r) => !r.ok)) {
|
|
154
|
+
process.exitCode = 1;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
71
157
|
//# sourceMappingURL=broadcast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/commands/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/commands/broadcast.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAsD,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EAAE,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAK9F,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,kBAAkB,CAAC,EAAE,MAAM,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC/D,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAC/C,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,CAAC,EAAE,uBAAuB,KAC3B,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;CAC7C;AAED,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,WAAW,GAAG,OAAO,CAsHlE"}
|