@openrig/cli 0.6.14 → 0.7.1
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 +14 -12
- package/daemon/assets/claude-statusline-context.cjs +13 -3
- package/daemon/assets/guidance/openrig-seat-skills.md +1 -0
- package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/README.md +11 -4
- package/daemon/assets/plugins/openrig-core/hooks/claude.json +11 -11
- package/daemon/assets/plugins/openrig-core/hooks/codex.json +6 -6
- package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +22 -9
- package/daemon/assets/plugins/openrig-core/hooks/scripts/codex-hook-trust.cjs +49 -0
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus-health.cjs +2 -2
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +35 -11
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -2
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +1 -1
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +16 -10
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +43 -4
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +192 -61
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +10 -4
- package/daemon/assets/skills/rigs/SKILL.md +26 -6
- 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 +209 -33
- package/daemon/context-packs/reference/getting-started.md +148 -23
- package/daemon/context-packs/reference/manifest.yaml +1 -1
- package/daemon/context-packs/reference/rig-spec.md +83 -3
- package/daemon/context-packs/reference/whats-new.md +173 -69
- package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
- package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +9 -2
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +1 -1
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +43 -4
- 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/SKILL.md +3 -0
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +2 -2
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +2 -2
- package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +11 -5
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +16 -10
- 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 +192 -61
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/development-team/SKILL.md +2 -0
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +3 -1
- package/daemon/context-packs/skills/pods/development-team/references/refactoring.md +11 -0
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/SKILL.md +46 -96
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +17 -80
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +5 -3
- package/daemon/context-packs/skills/process/verification-before-completion/references/performance-claims.md +12 -0
- package/daemon/context-packs/skills/queue-handoff/SKILL.md +10 -4
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-public/manifest.yaml +1 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts +6 -2
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +127 -32
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- 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 +10 -3
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +2 -7
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +75 -3
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +592 -91
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts +21 -2
- package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/community-harness-runtime-adapter.js +90 -8
- package/daemon/dist/adapters/community-harness-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.d.ts +16 -0
- package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.js +52 -9
- package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
- package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
- package/daemon/dist/adapters/kernel-authority.js +9 -5
- package/daemon/dist/adapters/kernel-authority.js.map +1 -1
- package/daemon/dist/adapters/pi-runner.d.ts +13 -0
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner.js +64 -16
- package/daemon/dist/adapters/pi-runner.js.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.js +9 -6
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/runtime-probe-exec.d.ts +11 -0
- package/daemon/dist/adapters/runtime-probe-exec.d.ts.map +1 -0
- package/daemon/dist/adapters/runtime-probe-exec.js +25 -0
- package/daemon/dist/adapters/runtime-probe-exec.js.map +1 -0
- package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runner.js +2 -0
- package/daemon/dist/adapters/stub-runner.js.map +1 -1
- package/daemon/dist/adapters/stub-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runtime-adapter.js +9 -5
- package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +36 -5
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +162 -33
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/attention-surface.d.ts +14 -0
- package/daemon/dist/attention-surface.d.ts.map +1 -1
- package/daemon/dist/attention-surface.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/daemon-db-path.d.ts +6 -0
- package/daemon/dist/daemon-db-path.d.ts.map +1 -1
- package/daemon/dist/daemon-db-path.js +65 -1
- package/daemon/dist/daemon-db-path.js.map +1 -1
- package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
- package/daemon/dist/daemon-shutdown.js +4 -2
- package/daemon/dist/daemon-shutdown.js.map +1 -1
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +28 -0
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts +3 -0
- package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts.map +1 -0
- package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js +8 -0
- package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js.map +1 -0
- package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts +3 -0
- package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts.map +1 -0
- package/daemon/dist/db/migrations/118_human_quiet_windows.js +30 -0
- package/daemon/dist/db/migrations/118_human_quiet_windows.js.map +1 -0
- package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts +3 -0
- package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts.map +1 -0
- package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js +7 -0
- package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js.map +1 -0
- package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts +13 -0
- package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts.map +1 -0
- package/daemon/dist/db/migrations/121_rig_startup_layers.js +17 -0
- package/daemon/dist/db/migrations/121_rig_startup_layers.js.map +1 -0
- package/daemon/dist/db/migrations/122_human_operating_modes.d.ts +3 -0
- package/daemon/dist/db/migrations/122_human_operating_modes.d.ts.map +1 -0
- package/daemon/dist/db/migrations/122_human_operating_modes.js +55 -0
- package/daemon/dist/db/migrations/122_human_operating_modes.js.map +1 -0
- package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts +3 -0
- package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts.map +1 -0
- package/daemon/dist/db/migrations/123_queue_delegated_decision.js +10 -0
- package/daemon/dist/db/migrations/123_queue_delegated_decision.js.map +1 -0
- package/daemon/dist/db/migrations/124_context_usage_watchdog_units.d.ts +4 -0
- package/daemon/dist/db/migrations/124_context_usage_watchdog_units.d.ts.map +1 -0
- package/daemon/dist/db/migrations/124_context_usage_watchdog_units.js +9 -0
- package/daemon/dist/db/migrations/124_context_usage_watchdog_units.js.map +1 -0
- package/daemon/dist/db/migrations/125_node_advisor.d.ts +3 -0
- package/daemon/dist/db/migrations/125_node_advisor.d.ts.map +1 -0
- package/daemon/dist/db/migrations/125_node_advisor.js +8 -0
- package/daemon/dist/db/migrations/125_node_advisor.js.map +1 -0
- package/daemon/dist/db/migrations/127_operation_correlation.d.ts +3 -0
- package/daemon/dist/db/migrations/127_operation_correlation.d.ts.map +1 -0
- package/daemon/dist/db/migrations/127_operation_correlation.js +10 -0
- package/daemon/dist/db/migrations/127_operation_correlation.js.map +1 -0
- package/daemon/dist/db/migrations/128_terminal_policy.d.ts +3 -0
- package/daemon/dist/db/migrations/128_terminal_policy.d.ts.map +1 -0
- package/daemon/dist/db/migrations/128_terminal_policy.js +37 -0
- package/daemon/dist/db/migrations/128_terminal_policy.js.map +1 -0
- package/daemon/dist/db/migrations/129_stream_dispositions.d.ts +10 -0
- package/daemon/dist/db/migrations/129_stream_dispositions.d.ts.map +1 -0
- package/daemon/dist/db/migrations/129_stream_dispositions.js +35 -0
- package/daemon/dist/db/migrations/129_stream_dispositions.js.map +1 -0
- package/daemon/dist/db/migrations/130_stream_subscriptions.d.ts +11 -0
- package/daemon/dist/db/migrations/130_stream_subscriptions.d.ts.map +1 -0
- package/daemon/dist/db/migrations/130_stream_subscriptions.js +33 -0
- package/daemon/dist/db/migrations/130_stream_subscriptions.js.map +1 -0
- package/daemon/dist/db/migrations/131_stream_retention_floor.d.ts +8 -0
- package/daemon/dist/db/migrations/131_stream_retention_floor.d.ts.map +1 -0
- package/daemon/dist/db/migrations/131_stream_retention_floor.js +20 -0
- package/daemon/dist/db/migrations/131_stream_retention_floor.js.map +1 -0
- package/daemon/dist/db/migrations/135_seat_identity_process_evidence.d.ts +3 -0
- package/daemon/dist/db/migrations/135_seat_identity_process_evidence.d.ts.map +1 -0
- package/daemon/dist/db/migrations/135_seat_identity_process_evidence.js +16 -0
- package/daemon/dist/db/migrations/135_seat_identity_process_evidence.js.map +1 -0
- package/daemon/dist/domain/active-occupant.d.ts +8 -3
- package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
- package/daemon/dist/domain/active-occupant.js +8 -4
- package/daemon/dist/domain/active-occupant.js.map +1 -1
- package/daemon/dist/domain/activity-taxonomy.d.ts +19 -1
- package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
- package/daemon/dist/domain/activity-taxonomy.js +21 -0
- package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
- package/daemon/dist/domain/agent-activity-store.d.ts +24 -0
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
- package/daemon/dist/domain/agent-activity-store.js +50 -5
- package/daemon/dist/domain/agent-activity-store.js.map +1 -1
- package/daemon/dist/domain/agent-images/evidence-guard.js +3 -3
- package/daemon/dist/domain/agent-images/evidence-guard.js.map +1 -1
- package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/agent-images/resume-token-discovery.js +2 -10
- package/daemon/dist/domain/agent-images/resume-token-discovery.js.map +1 -1
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +14 -2
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/ask-service.d.ts +1 -0
- package/daemon/dist/domain/ask-service.d.ts.map +1 -1
- package/daemon/dist/domain/ask-service.js +7 -1
- package/daemon/dist/domain/ask-service.js.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts +5 -0
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +25 -12
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/daemon/dist/domain/builtin-startup-files.d.ts.map +1 -1
- package/daemon/dist/domain/builtin-startup-files.js +2 -0
- package/daemon/dist/domain/builtin-startup-files.js.map +1 -1
- package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-behaviour.js +28 -1
- package/daemon/dist/domain/bundle-behaviour.js.map +1 -1
- package/daemon/dist/domain/claim-service.d.ts +20 -2
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +74 -19
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/classification-attempts.d.ts +4 -1
- package/daemon/dist/domain/classification-attempts.d.ts.map +1 -1
- package/daemon/dist/domain/classification-attempts.js +10 -1
- package/daemon/dist/domain/classification-attempts.js.map +1 -1
- package/daemon/dist/domain/classification-sources.d.ts +38 -0
- package/daemon/dist/domain/classification-sources.d.ts.map +1 -1
- package/daemon/dist/domain/classification-sources.js +26 -1
- package/daemon/dist/domain/classification-sources.js.map +1 -1
- package/daemon/dist/domain/claude-activity-hooks.d.ts +2 -2
- package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
- package/daemon/dist/domain/claude-activity-hooks.js +8 -7
- package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +126 -11
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +527 -68
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/claude-core-plugin-env.d.ts +14 -0
- package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -1
- package/daemon/dist/domain/claude-core-plugin-env.js +37 -11
- package/daemon/dist/domain/claude-core-plugin-env.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 +33 -15
- package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
- package/daemon/dist/domain/codex-core-plugin-install.d.ts +41 -0
- package/daemon/dist/domain/codex-core-plugin-install.d.ts.map +1 -0
- package/daemon/dist/domain/codex-core-plugin-install.js +126 -0
- package/daemon/dist/domain/codex-core-plugin-install.js.map +1 -0
- package/daemon/dist/domain/codex-owned-plugin-trust.d.ts +26 -0
- package/daemon/dist/domain/codex-owned-plugin-trust.d.ts.map +1 -0
- package/daemon/dist/domain/codex-owned-plugin-trust.js +187 -0
- package/daemon/dist/domain/codex-owned-plugin-trust.js.map +1 -0
- package/daemon/dist/domain/codex-rebuild-permissions.d.ts +54 -0
- package/daemon/dist/domain/codex-rebuild-permissions.d.ts.map +1 -0
- package/daemon/dist/domain/codex-rebuild-permissions.js +134 -0
- package/daemon/dist/domain/codex-rebuild-permissions.js.map +1 -0
- package/daemon/dist/domain/codex-thread-id.d.ts +23 -1
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +58 -17
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/community-harness-launch-result.d.ts +33 -0
- package/daemon/dist/domain/community-harness-launch-result.d.ts.map +1 -0
- package/daemon/dist/domain/community-harness-launch-result.js +93 -0
- package/daemon/dist/domain/community-harness-launch-result.js.map +1 -0
- package/daemon/dist/domain/community-harness-presets.d.ts +27 -2
- package/daemon/dist/domain/community-harness-presets.d.ts.map +1 -1
- package/daemon/dist/domain/community-harness-presets.js +49 -5
- package/daemon/dist/domain/community-harness-presets.js.map +1 -1
- package/daemon/dist/domain/composer-prompts.d.ts +5 -2
- package/daemon/dist/domain/composer-prompts.d.ts.map +1 -1
- package/daemon/dist/domain/composer-prompts.js +2 -2
- package/daemon/dist/domain/composer-prompts.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts +13 -5
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +49 -14
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-usage-store.js +3 -0
- package/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/daemon/dist/domain/continuity-policy-materializer.d.ts +1 -0
- package/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -1
- package/daemon/dist/domain/continuity-policy-materializer.js +2 -0
- package/daemon/dist/domain/continuity-policy-materializer.js.map +1 -1
- package/daemon/dist/domain/current-work.d.ts +18 -0
- package/daemon/dist/domain/current-work.d.ts.map +1 -1
- package/daemon/dist/domain/current-work.js +17 -3
- package/daemon/dist/domain/current-work.js.map +1 -1
- package/daemon/dist/domain/draft-aware-delivery.d.ts +7 -7
- package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/draft-aware-delivery.js +61 -82
- package/daemon/dist/domain/draft-aware-delivery.js.map +1 -1
- package/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/daemon/dist/domain/execution-view.js +9 -7
- package/daemon/dist/domain/execution-view.js.map +1 -1
- package/daemon/dist/domain/existing-rig-restore.d.ts +110 -0
- package/daemon/dist/domain/existing-rig-restore.d.ts.map +1 -0
- package/daemon/dist/domain/existing-rig-restore.js +254 -0
- package/daemon/dist/domain/existing-rig-restore.js.map +1 -0
- package/daemon/dist/domain/footprint-choice.d.ts +41 -0
- package/daemon/dist/domain/footprint-choice.d.ts.map +1 -0
- package/daemon/dist/domain/footprint-choice.js +42 -0
- package/daemon/dist/domain/footprint-choice.js.map +1 -0
- package/daemon/dist/domain/fresh-occupant-relation.d.ts.map +1 -1
- package/daemon/dist/domain/fresh-occupant-relation.js +9 -2
- package/daemon/dist/domain/fresh-occupant-relation.js.map +1 -1
- package/daemon/dist/domain/gateway/channel-operations.d.ts +3 -4
- package/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/channel-operations.js.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.d.ts +0 -5
- package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.js +3 -46
- package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
- package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +14 -1
- package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/delivery-rules-engine.js +13 -3
- package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -1
- package/daemon/dist/domain/gateway/dispatch-buffer.d.ts +4 -0
- package/daemon/dist/domain/gateway/dispatch-buffer.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/dispatch-buffer.js +18 -0
- package/daemon/dist/domain/gateway/dispatch-buffer.js.map +1 -1
- package/daemon/dist/domain/gateway/human-mode-account.d.ts +61 -0
- package/daemon/dist/domain/gateway/human-mode-account.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/human-mode-account.js +112 -0
- package/daemon/dist/domain/gateway/human-mode-account.js.map +1 -0
- package/daemon/dist/domain/gateway/human-operating-modes.d.ts +171 -0
- package/daemon/dist/domain/gateway/human-operating-modes.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/human-operating-modes.js +422 -0
- package/daemon/dist/domain/gateway/human-operating-modes.js.map +1 -0
- package/daemon/dist/domain/gateway/human-quiet-windows.d.ts +121 -0
- package/daemon/dist/domain/gateway/human-quiet-windows.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/human-quiet-windows.js +217 -0
- package/daemon/dist/domain/gateway/human-quiet-windows.js.map +1 -0
- package/daemon/dist/domain/gateway/human-registry.d.ts +55 -2
- package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.js +137 -8
- package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.js +9 -0
- package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +10 -2
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +76 -6
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.d.ts +4 -0
- package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.js +13 -2
- package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +9 -3
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.js +40 -6
- package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts +7 -0
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.js +14 -2
- package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +17 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +143 -56
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +3 -2
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +266 -51
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/generated-file-hygiene.js +1 -1
- package/daemon/dist/domain/generated-file-hygiene.js.map +1 -1
- package/daemon/dist/domain/graph-projection.d.ts +3 -0
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/graph-projection.js +2 -0
- package/daemon/dist/domain/graph-projection.js.map +1 -1
- package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
- package/daemon/dist/domain/health-diagnosis.js +14 -6
- package/daemon/dist/domain/health-diagnosis.js.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.d.ts +4 -0
- package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.js +34 -4
- package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +3 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.js +9 -9
- package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
- package/daemon/dist/domain/hosts/learned-host-bindings.d.ts +28 -0
- package/daemon/dist/domain/hosts/learned-host-bindings.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/learned-host-bindings.js +77 -0
- package/daemon/dist/domain/hosts/learned-host-bindings.js.map +1 -0
- package/daemon/dist/domain/hot-potato-enforcer.d.ts +7 -5
- package/daemon/dist/domain/hot-potato-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/hot-potato-enforcer.js +19 -10
- package/daemon/dist/domain/hot-potato-enforcer.js.map +1 -1
- package/daemon/dist/domain/human-questions.d.ts +10 -1
- package/daemon/dist/domain/human-questions.d.ts.map +1 -1
- package/daemon/dist/domain/human-questions.js +5 -0
- package/daemon/dist/domain/human-questions.js.map +1 -1
- package/daemon/dist/domain/kernel-boot-tracker.d.ts +17 -1
- package/daemon/dist/domain/kernel-boot-tracker.d.ts.map +1 -1
- package/daemon/dist/domain/kernel-boot-tracker.js +44 -3
- package/daemon/dist/domain/kernel-boot-tracker.js.map +1 -1
- package/daemon/dist/domain/kernel-boot.d.ts +26 -1
- package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
- package/daemon/dist/domain/kernel-boot.js +91 -6
- package/daemon/dist/domain/kernel-boot.js.map +1 -1
- package/daemon/dist/domain/managed-blocks.d.ts +32 -1
- package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
- package/daemon/dist/domain/managed-blocks.js +109 -11
- package/daemon/dist/domain/managed-blocks.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.js +3 -0
- package/daemon/dist/domain/mission-control/mission-control-action-log.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +21 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js +110 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +2 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.js +8 -3
- package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
- package/daemon/dist/domain/model-divergence/current-model-reader.d.ts +2 -0
- package/daemon/dist/domain/model-divergence/current-model-reader.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/current-model-reader.js +7 -0
- package/daemon/dist/domain/model-divergence/current-model-reader.js.map +1 -1
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +10 -1
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +24 -5
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
- package/daemon/dist/domain/native-process-lineage.d.ts +3 -0
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
- package/daemon/dist/domain/native-process-lineage.js +103 -17
- package/daemon/dist/domain/native-process-lineage.js.map +1 -1
- package/daemon/dist/domain/native-resume-probe-evidence.d.ts +19 -0
- package/daemon/dist/domain/native-resume-probe-evidence.d.ts.map +1 -0
- package/daemon/dist/domain/native-resume-probe-evidence.js +37 -0
- package/daemon/dist/domain/native-resume-probe-evidence.js.map +1 -0
- package/daemon/dist/domain/native-resume-probe.d.ts +7 -0
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +12 -9
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +49 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +145 -57
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +5 -3
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +36 -26
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/occupant-invalidator.d.ts +16 -4
- package/daemon/dist/domain/occupant-invalidator.d.ts.map +1 -1
- package/daemon/dist/domain/occupant-invalidator.js +25 -5
- package/daemon/dist/domain/occupant-invalidator.js.map +1 -1
- package/daemon/dist/domain/operation-correlation.d.ts +78 -0
- package/daemon/dist/domain/operation-correlation.d.ts.map +1 -0
- package/daemon/dist/domain/operation-correlation.js +54 -0
- package/daemon/dist/domain/operation-correlation.js.map +1 -0
- package/daemon/dist/domain/outbox-handler.d.ts +3 -5
- package/daemon/dist/domain/outbox-handler.d.ts.map +1 -1
- package/daemon/dist/domain/outbox-handler.js +9 -19
- package/daemon/dist/domain/outbox-handler.js.map +1 -1
- package/daemon/dist/domain/park-wake-text.d.ts +11 -0
- package/daemon/dist/domain/park-wake-text.d.ts.map +1 -0
- package/daemon/dist/domain/park-wake-text.js +26 -0
- package/daemon/dist/domain/park-wake-text.js.map +1 -0
- package/daemon/dist/domain/permission-account.d.ts +28 -0
- package/daemon/dist/domain/permission-account.d.ts.map +1 -0
- package/daemon/dist/domain/permission-account.js +102 -0
- package/daemon/dist/domain/permission-account.js.map +1 -0
- package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
- package/daemon/dist/domain/permission-drift.js +11 -7
- package/daemon/dist/domain/permission-drift.js.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.d.ts +4 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +29 -6
- package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.d.ts +1 -0
- package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.js +25 -0
- package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts +7 -0
- package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -1
- package/daemon/dist/domain/policies/artifact-pool-helpers.js +8 -4
- package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -1
- package/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -1
- package/daemon/dist/domain/policies/context-usage-threshold.js +109 -21
- package/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -1
- package/daemon/dist/domain/policies/delivery-digest-flush.d.ts +1 -0
- package/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -1
- package/daemon/dist/domain/policies/delivery-digest-flush.js +25 -4
- package/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -1
- package/daemon/dist/domain/policies/edge-artifact-required.d.ts +6 -1
- package/daemon/dist/domain/policies/edge-artifact-required.d.ts.map +1 -1
- package/daemon/dist/domain/policies/edge-artifact-required.js +18 -13
- package/daemon/dist/domain/policies/edge-artifact-required.js.map +1 -1
- package/daemon/dist/domain/policies/mode-scheduled-end.d.ts +39 -0
- package/daemon/dist/domain/policies/mode-scheduled-end.d.ts.map +1 -0
- package/daemon/dist/domain/policies/mode-scheduled-end.js +165 -0
- package/daemon/dist/domain/policies/mode-scheduled-end.js.map +1 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +11 -7
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
- package/daemon/dist/domain/policies/parked-owner-consumer.js +82 -113
- package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
- package/daemon/dist/domain/policies/periodic-reminder.d.ts +10 -0
- package/daemon/dist/domain/policies/periodic-reminder.d.ts.map +1 -1
- package/daemon/dist/domain/policies/periodic-reminder.js +11 -6
- package/daemon/dist/domain/policies/periodic-reminder.js.map +1 -1
- package/daemon/dist/domain/policies/quiet-release.d.ts +109 -0
- package/daemon/dist/domain/policies/quiet-release.d.ts.map +1 -0
- package/daemon/dist/domain/policies/quiet-release.js +213 -0
- package/daemon/dist/domain/policies/quiet-release.js.map +1 -0
- package/daemon/dist/domain/policies/types.d.ts +25 -0
- package/daemon/dist/domain/policies/types.d.ts.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts +6 -1
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.js +11 -5
- package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
- package/daemon/dist/domain/profile-resolution-worker.d.ts +7 -0
- package/daemon/dist/domain/profile-resolution-worker.d.ts.map +1 -0
- package/daemon/dist/domain/profile-resolution-worker.js +83 -0
- package/daemon/dist/domain/profile-resolution-worker.js.map +1 -0
- package/daemon/dist/domain/profile-resolver.d.ts +6 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +20 -3
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/project-classifier.d.ts +7 -0
- package/daemon/dist/domain/project-classifier.d.ts.map +1 -1
- package/daemon/dist/domain/project-classifier.js +26 -0
- package/daemon/dist/domain/project-classifier.js.map +1 -1
- package/daemon/dist/domain/proof/source-watch.js +2 -2
- package/daemon/dist/domain/proof/source-watch.js.map +1 -1
- package/daemon/dist/domain/provider/subscription-move-report.d.ts +86 -0
- package/daemon/dist/domain/provider/subscription-move-report.d.ts.map +1 -0
- package/daemon/dist/domain/provider/subscription-move-report.js +227 -0
- package/daemon/dist/domain/provider/subscription-move-report.js.map +1 -0
- package/daemon/dist/domain/ps-projection.d.ts +6 -35
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +14 -55
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-destination-check.d.ts +6 -0
- package/daemon/dist/domain/queue-destination-check.d.ts.map +1 -0
- package/daemon/dist/domain/queue-destination-check.js +35 -0
- package/daemon/dist/domain/queue-destination-check.js.map +1 -0
- package/daemon/dist/domain/queue-owner.d.ts +6 -3
- package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
- package/daemon/dist/domain/queue-owner.js +12 -6
- package/daemon/dist/domain/queue-owner.js.map +1 -1
- package/daemon/dist/domain/queue-pickup.d.ts +5 -2
- package/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
- package/daemon/dist/domain/queue-pickup.js +19 -2
- package/daemon/dist/domain/queue-pickup.js.map +1 -1
- package/daemon/dist/domain/queue-recovery.d.ts +1 -1
- package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
- package/daemon/dist/domain/queue-recovery.js +3 -2
- package/daemon/dist/domain/queue-recovery.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +146 -72
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +505 -169
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-retention.d.ts +18 -0
- package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
- package/daemon/dist/domain/queue-retention.js +74 -0
- package/daemon/dist/domain/queue-retention.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts +15 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +132 -16
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/daemon/dist/domain/queue-transition-log.d.ts +5 -0
- package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
- package/daemon/dist/domain/queue-transition-log.js +25 -8
- package/daemon/dist/domain/queue-transition-log.js.map +1 -1
- package/daemon/dist/domain/queue-wait-backoff.d.ts +3 -0
- package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wait-backoff.js +9 -0
- package/daemon/dist/domain/queue-wait-backoff.js.map +1 -1
- package/daemon/dist/domain/queue-waiting.d.ts +2 -0
- package/daemon/dist/domain/queue-waiting.d.ts.map +1 -1
- package/daemon/dist/domain/queue-waiting.js.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.d.ts +2 -0
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +112 -17
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/daemon/dist/domain/quiet-hold-custody.d.ts +24 -0
- package/daemon/dist/domain/quiet-hold-custody.d.ts.map +1 -0
- package/daemon/dist/domain/quiet-hold-custody.js +85 -0
- package/daemon/dist/domain/quiet-hold-custody.js.map +1 -0
- package/daemon/dist/domain/reconciler.d.ts +23 -0
- package/daemon/dist/domain/reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/reconciler.js +44 -1
- package/daemon/dist/domain/reconciler.js.map +1 -1
- package/daemon/dist/domain/rehydrate-eligibility.d.ts +12 -1
- package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
- package/daemon/dist/domain/rehydrate-eligibility.js +47 -10
- package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
- package/daemon/dist/domain/restore-guidance.d.ts +7 -0
- package/daemon/dist/domain/restore-guidance.d.ts.map +1 -1
- package/daemon/dist/domain/restore-guidance.js +20 -8
- package/daemon/dist/domain/restore-guidance.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +24 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +295 -41
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts +10 -3
- package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +56 -18
- package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/daemon/dist/domain/restore-policy.d.ts +4 -0
- package/daemon/dist/domain/restore-policy.d.ts.map +1 -1
- package/daemon/dist/domain/restore-policy.js +11 -0
- package/daemon/dist/domain/restore-policy.js.map +1 -1
- package/daemon/dist/domain/review/gather.d.ts.map +1 -1
- package/daemon/dist/domain/review/gather.js +8 -5
- package/daemon/dist/domain/review/gather.js.map +1 -1
- package/daemon/dist/domain/rig-edge-ops.d.ts +58 -0
- package/daemon/dist/domain/rig-edge-ops.d.ts.map +1 -0
- package/daemon/dist/domain/rig-edge-ops.js +113 -0
- package/daemon/dist/domain/rig-edge-ops.js.map +1 -0
- package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
- package/daemon/dist/domain/rig-mode/operating-posture.js +3 -1
- package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
- package/daemon/dist/domain/rig-name-override.d.ts +14 -0
- package/daemon/dist/domain/rig-name-override.d.ts.map +1 -0
- package/daemon/dist/domain/rig-name-override.js +38 -0
- package/daemon/dist/domain/rig-name-override.js.map +1 -0
- package/daemon/dist/domain/rig-repository.d.ts +19 -1
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +41 -3
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rig-status-compose.d.ts +1 -1
- package/daemon/dist/domain/rig-status-compose.d.ts.map +1 -1
- package/daemon/dist/domain/rig-status-compose.js +3 -1
- package/daemon/dist/domain/rig-status-compose.js.map +1 -1
- package/daemon/dist/domain/rig-teardown.d.ts +19 -0
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +109 -12
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +10 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts +3 -0
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +22 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +39 -2
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +319 -73
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +15 -2
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts +8 -0
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +97 -3
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +47 -3
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js +5 -1
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/scope/scope-view-projection.d.ts +6 -0
- package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-view-projection.js +26 -10
- package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts +22 -5
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +137 -62
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts +27 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.js +63 -7
- package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-delivery-guard.d.ts +20 -1
- package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
- package/daemon/dist/domain/seat-delivery-guard.js +87 -16
- package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +10 -2
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +100 -4
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.js +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-identity-store.d.ts +11 -1
- package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-store.js +32 -4
- package/daemon/dist/domain/seat-identity-store.js.map +1 -1
- package/daemon/dist/domain/seat-launch-additions.d.ts +115 -0
- package/daemon/dist/domain/seat-launch-additions.d.ts.map +1 -0
- package/daemon/dist/domain/seat-launch-additions.js +439 -0
- package/daemon/dist/domain/seat-launch-additions.js.map +1 -0
- package/daemon/dist/domain/seat-launch-environment.d.ts +1 -1
- package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -1
- package/daemon/dist/domain/seat-launch-environment.js +18 -2
- package/daemon/dist/domain/seat-launch-environment.js.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +83 -4
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.js +202 -12
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/seat-restart-in-place.d.ts +33 -14
- package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -1
- package/daemon/dist/domain/seat-restart-in-place.js +102 -30
- package/daemon/dist/domain/seat-restart-in-place.js.map +1 -1
- package/daemon/dist/domain/seat-skill-apply.d.ts +139 -0
- package/daemon/dist/domain/seat-skill-apply.d.ts.map +1 -0
- package/daemon/dist/domain/seat-skill-apply.js +221 -0
- package/daemon/dist/domain/seat-skill-apply.js.map +1 -0
- package/daemon/dist/domain/seat-skill-storage.d.ts +295 -0
- package/daemon/dist/domain/seat-skill-storage.d.ts.map +1 -0
- package/daemon/dist/domain/seat-skill-storage.js +850 -0
- package/daemon/dist/domain/seat-skill-storage.js.map +1 -0
- package/daemon/dist/domain/seat-status-service.d.ts +9 -0
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +15 -3
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/self-attach-service.d.ts +3 -2
- package/daemon/dist/domain/self-attach-service.d.ts.map +1 -1
- package/daemon/dist/domain/self-attach-service.js +18 -1
- package/daemon/dist/domain/self-attach-service.js.map +1 -1
- package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
- package/daemon/dist/domain/services-readiness.js +14 -3
- package/daemon/dist/domain/services-readiness.js.map +1 -1
- package/daemon/dist/domain/session-registry.d.ts +49 -0
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js +137 -0
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +76 -27
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +202 -82
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/skill-catalog.d.ts +16 -0
- package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
- package/daemon/dist/domain/skill-catalog.js +15 -6
- package/daemon/dist/domain/skill-catalog.js.map +1 -1
- package/daemon/dist/domain/skill-discovery.d.ts +24 -3
- package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/skill-discovery.js +85 -12
- package/daemon/dist/domain/skill-discovery.js.map +1 -1
- package/daemon/dist/domain/snapshot-repository.d.ts +1 -0
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-repository.js +23 -10
- package/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +47 -5
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +291 -29
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/startup-submission-evidence.d.ts +4 -11
- package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
- package/daemon/dist/domain/startup-submission-evidence.js +11 -17
- package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
- package/daemon/dist/domain/stream-dispositions.d.ts +51 -0
- package/daemon/dist/domain/stream-dispositions.d.ts.map +1 -0
- package/daemon/dist/domain/stream-dispositions.js +112 -0
- package/daemon/dist/domain/stream-dispositions.js.map +1 -0
- package/daemon/dist/domain/stream-store.d.ts +22 -0
- package/daemon/dist/domain/stream-store.d.ts.map +1 -1
- package/daemon/dist/domain/stream-store.js +49 -6
- package/daemon/dist/domain/stream-store.js.map +1 -1
- package/daemon/dist/domain/stream-subscriptions.d.ts +94 -0
- package/daemon/dist/domain/stream-subscriptions.d.ts.map +1 -0
- package/daemon/dist/domain/stream-subscriptions.js +160 -0
- package/daemon/dist/domain/stream-subscriptions.js.map +1 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts +8 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +6 -1
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +3 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.js +125 -4
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
- package/daemon/dist/domain/terminal/herdr-sessions.d.ts +9 -0
- package/daemon/dist/domain/terminal/herdr-sessions.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/herdr-sessions.js +23 -0
- package/daemon/dist/domain/terminal/herdr-sessions.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts +4 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.d.ts +12 -3
- package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.js +42 -17
- package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.js +1 -0
- package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
- package/daemon/dist/domain/terminal-policy.d.ts +80 -0
- package/daemon/dist/domain/terminal-policy.d.ts.map +1 -0
- package/daemon/dist/domain/terminal-policy.js +117 -0
- package/daemon/dist/domain/terminal-policy.js.map +1 -0
- package/daemon/dist/domain/terminal-seat.d.ts +9 -0
- package/daemon/dist/domain/terminal-seat.d.ts.map +1 -0
- package/daemon/dist/domain/terminal-seat.js +37 -0
- package/daemon/dist/domain/terminal-seat.js.map +1 -0
- package/daemon/dist/domain/topology-converge.d.ts +25 -2
- package/daemon/dist/domain/topology-converge.d.ts.map +1 -1
- package/daemon/dist/domain/topology-converge.js +14 -1
- package/daemon/dist/domain/topology-converge.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +73 -6
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/urgent-line.d.ts +4 -0
- package/daemon/dist/domain/urgent-line.d.ts.map +1 -0
- package/daemon/dist/domain/urgent-line.js +7 -0
- package/daemon/dist/domain/urgent-line.js.map +1 -0
- package/daemon/dist/domain/usage-series.d.ts.map +1 -1
- package/daemon/dist/domain/usage-series.js +6 -2
- package/daemon/dist/domain/usage-series.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-browser.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-browser.js +4 -2
- package/daemon/dist/domain/user-settings/settings-browser.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +3 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +106 -8
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/view-projector.d.ts.map +1 -1
- package/daemon/dist/domain/view-projector.js +2 -1
- package/daemon/dist/domain/view-projector.js.map +1 -1
- package/daemon/dist/domain/watchdog-delivery.d.ts +3 -23
- package/daemon/dist/domain/watchdog-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-delivery.js +12 -89
- package/daemon/dist/domain/watchdog-delivery.js.map +1 -1
- package/daemon/dist/domain/watchdog-history-log.d.ts +5 -2
- package/daemon/dist/domain/watchdog-history-log.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-history-log.js.map +1 -1
- package/daemon/dist/domain/watchdog-job-update.d.ts +21 -0
- package/daemon/dist/domain/watchdog-job-update.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-job-update.js +143 -0
- package/daemon/dist/domain/watchdog-job-update.js.map +1 -0
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts +65 -9
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.js +194 -21
- package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +39 -24
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +89 -55
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/daemon/dist/domain/whoami-service.d.ts +2 -0
- package/daemon/dist/domain/whoami-service.d.ts.map +1 -1
- package/daemon/dist/domain/whoami-service.js +23 -6
- package/daemon/dist/domain/whoami-service.js.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.d.ts +2 -1
- package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.js +11 -5
- package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
- package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-exception-escalation.js +9 -4
- package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
- package/daemon/dist/domain/workflow-projector.d.ts +5 -2
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-projector.js +21 -9
- package/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-role-context.js +2 -2
- package/daemon/dist/domain/workflow-role-context.js.map +1 -1
- package/daemon/dist/domain/workflow-runtime.d.ts +8 -2
- package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-runtime.js +32 -7
- package/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/daemon/dist/domain/workspace/project-read.d.ts +2 -0
- package/daemon/dist/domain/workspace/project-read.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/project-read.js +10 -1
- package/daemon/dist/domain/workspace/project-read.js.map +1 -1
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +2 -0
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/router-line-surface.d.ts +2 -0
- package/daemon/dist/router-line-surface.d.ts.map +1 -0
- package/daemon/dist/router-line-surface.js +3 -0
- package/daemon/dist/router-line-surface.js.map +1 -0
- package/daemon/dist/routes/activity.d.ts +13 -1
- package/daemon/dist/routes/activity.d.ts.map +1 -1
- package/daemon/dist/routes/activity.js +70 -2
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/agent-images.d.ts.map +1 -1
- package/daemon/dist/routes/agent-images.js +12 -2
- package/daemon/dist/routes/agent-images.js.map +1 -1
- package/daemon/dist/routes/attention.d.ts.map +1 -1
- package/daemon/dist/routes/attention.js +30 -3
- package/daemon/dist/routes/attention.js.map +1 -1
- package/daemon/dist/routes/bootstrap-failure-response.js +2 -2
- package/daemon/dist/routes/bootstrap-failure-response.js.map +1 -1
- package/daemon/dist/routes/bundles.js +1 -1
- package/daemon/dist/routes/bundles.js.map +1 -1
- package/daemon/dist/routes/compaction.d.ts.map +1 -1
- package/daemon/dist/routes/compaction.js +38 -12
- package/daemon/dist/routes/compaction.js.map +1 -1
- package/daemon/dist/routes/discovery.js +3 -0
- package/daemon/dist/routes/discovery.js.map +1 -1
- package/daemon/dist/routes/down.js +9 -1
- package/daemon/dist/routes/down.js.map +1 -1
- package/daemon/dist/routes/gateway.d.ts +2 -0
- package/daemon/dist/routes/gateway.d.ts.map +1 -1
- package/daemon/dist/routes/gateway.js +181 -1
- package/daemon/dist/routes/gateway.js.map +1 -1
- package/daemon/dist/routes/hosts.d.ts.map +1 -1
- package/daemon/dist/routes/hosts.js +2 -0
- package/daemon/dist/routes/hosts.js.map +1 -1
- package/daemon/dist/routes/kernel-status.js +6 -1
- package/daemon/dist/routes/kernel-status.js.map +1 -1
- package/daemon/dist/routes/mission-control.d.ts.map +1 -1
- package/daemon/dist/routes/mission-control.js +5 -1
- package/daemon/dist/routes/mission-control.js.map +1 -1
- package/daemon/dist/routes/projects.d.ts.map +1 -1
- package/daemon/dist/routes/projects.js +59 -12
- package/daemon/dist/routes/projects.js.map +1 -1
- package/daemon/dist/routes/proof.js +2 -2
- package/daemon/dist/routes/proof.js.map +1 -1
- package/daemon/dist/routes/provider.d.ts.map +1 -1
- package/daemon/dist/routes/provider.js +87 -73
- package/daemon/dist/routes/provider.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +125 -16
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +104 -20
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/rigspec.d.ts.map +1 -1
- package/daemon/dist/routes/rigspec.js +40 -15
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/scopes.d.ts.map +1 -1
- package/daemon/dist/routes/scopes.js +30 -7
- package/daemon/dist/routes/scopes.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +21 -5
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.js +5 -0
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/skills.d.ts.map +1 -1
- package/daemon/dist/routes/skills.js +55 -2
- package/daemon/dist/routes/skills.js.map +1 -1
- package/daemon/dist/routes/stream.d.ts.map +1 -1
- package/daemon/dist/routes/stream.js +62 -13
- package/daemon/dist/routes/stream.js.map +1 -1
- package/daemon/dist/routes/terminal.d.ts.map +1 -1
- package/daemon/dist/routes/terminal.js +20 -11
- package/daemon/dist/routes/terminal.js.map +1 -1
- package/daemon/dist/routes/transcripts.d.ts.map +1 -1
- package/daemon/dist/routes/transcripts.js +7 -3
- package/daemon/dist/routes/transcripts.js.map +1 -1
- package/daemon/dist/routes/transport.d.ts.map +1 -1
- package/daemon/dist/routes/transport.js +25 -3
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/routes/up.js +41 -52
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/watchdog.d.ts +1 -0
- package/daemon/dist/routes/watchdog.d.ts.map +1 -1
- package/daemon/dist/routes/watchdog.js +52 -3
- package/daemon/dist/routes/watchdog.js.map +1 -1
- package/daemon/dist/routes/workflow.d.ts.map +1 -1
- package/daemon/dist/routes/workflow.js +24 -13
- package/daemon/dist/routes/workflow.js.map +1 -1
- package/daemon/dist/server.d.ts +2 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +4 -1
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/skill-loadout-surface.d.ts +2 -0
- package/daemon/dist/skill-loadout-surface.d.ts.map +1 -1
- package/daemon/dist/skill-loadout-surface.js +2 -0
- package/daemon/dist/skill-loadout-surface.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +156 -81
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js +9 -2
- package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
- package/daemon/docs/reference/a2a-agents.md +343 -0
- package/daemon/docs/reference/acp-agents.md +77 -0
- package/daemon/docs/reference/agent-spec.md +7 -5
- package/daemon/docs/reference/agent-startup-guide.md +46 -0
- package/daemon/docs/reference/agent-state-taxonomy.md +43 -3
- package/daemon/docs/reference/checked-seat-stop.md +11 -0
- package/daemon/docs/reference/community-harness-examples/cursor/cursor.yaml +13 -0
- package/daemon/docs/reference/community-harness-examples/cursor/openrig-cursor-launch +61 -0
- package/daemon/docs/reference/community-harness-examples/hermes/config.yaml.example +18 -0
- package/daemon/docs/reference/community-harness-examples/hermes/hermes.yaml +12 -0
- package/daemon/docs/reference/community-harness-examples/hermes/openrig-hermes-launch +34 -0
- package/daemon/docs/reference/community-harness-examples/openclaw/openclaw.yaml +13 -0
- package/daemon/docs/reference/community-harness-examples/openclaw/openrig-openclaw-launch +38 -0
- package/daemon/docs/reference/community-harness-presets.md +179 -0
- package/daemon/docs/reference/getting-started.md +148 -23
- package/daemon/docs/reference/operation-correlation.md +9 -0
- package/daemon/docs/reference/project-workspace.md +6 -0
- package/daemon/docs/reference/quickstart.md +33 -20
- package/daemon/docs/reference/refocus-channel.md +11 -3
- package/daemon/docs/reference/rig-spec.md +83 -3
- package/daemon/docs/reference/seat-delivery.md +130 -20
- package/daemon/docs/reference/slack-app-setup.md +52 -3
- package/daemon/docs/reference/stream-classifier-worker.md +28 -0
- package/daemon/docs/reference/telemetry.md +3 -0
- package/daemon/docs/reference/terminal-sessions.md +90 -0
- package/daemon/docs/reference/topology-naming.md +1 -1
- package/daemon/docs/reference/whats-new.md +173 -69
- package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +0 -3
- package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +43 -4
- package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +3 -0
- package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +2 -2
- package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +2 -2
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +11 -5
- package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +2 -0
- package/daemon/specs/agents/shared/skills/pods/development-team/references/refactoring.md +11 -0
- package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +46 -96
- package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +17 -80
- package/daemon/specs/agents/shared/skills/process/verification-before-completion/references/performance-claims.md +12 -0
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +129 -24
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +11 -0
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +3 -1
- package/daemon/specs/rigs/launch/secrets-manager/secrets-manager.compose.yaml +1 -1
- package/dist/acp/connector.d.ts +72 -0
- package/dist/acp/connector.d.ts.map +1 -0
- package/dist/acp/connector.js +218 -0
- package/dist/acp/connector.js.map +1 -0
- package/dist/acp/json-rpc-stdio.d.ts +53 -0
- package/dist/acp/json-rpc-stdio.d.ts.map +1 -0
- package/dist/acp/json-rpc-stdio.js +141 -0
- package/dist/acp/json-rpc-stdio.js.map +1 -0
- package/dist/acp/run-processes.d.ts +10 -0
- package/dist/acp/run-processes.d.ts.map +1 -0
- package/dist/acp/run-processes.js +33 -0
- package/dist/acp/run-processes.js.map +1 -0
- package/dist/build-info.js +3 -3
- package/dist/cli-error.d.ts +4 -0
- package/dist/cli-error.d.ts.map +1 -1
- package/dist/cli-error.js +6 -0
- package/dist/cli-error.js.map +1 -1
- package/dist/client.d.ts +7 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +14 -7
- package/dist/client.js.map +1 -1
- package/dist/commands/acp.d.ts +11 -0
- package/dist/commands/acp.d.ts.map +1 -0
- package/dist/commands/acp.js +198 -0
- package/dist/commands/acp.js.map +1 -0
- package/dist/commands/agent-image.d.ts.map +1 -1
- package/dist/commands/agent-image.js +15 -7
- package/dist/commands/agent-image.js.map +1 -1
- package/dist/commands/archive.d.ts.map +1 -1
- package/dist/commands/archive.js +17 -3
- package/dist/commands/archive.js.map +1 -1
- package/dist/commands/attach.d.ts.map +1 -1
- package/dist/commands/attach.js +7 -5
- package/dist/commands/attach.js.map +1 -1
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +39 -10
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/broadcast.js +2 -0
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/community-harness.d.ts.map +1 -1
- package/dist/commands/community-harness.js +2 -1
- package/dist/commands/community-harness.js.map +1 -1
- package/dist/commands/compact-plan.d.ts +2 -0
- package/dist/commands/compact-plan.d.ts.map +1 -1
- package/dist/commands/compact-plan.js +40 -4
- package/dist/commands/compact-plan.js.map +1 -1
- package/dist/commands/compact.d.ts.map +1 -1
- package/dist/commands/compact.js +11 -4
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +17 -3
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +16 -9
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/create.js +2 -2
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +2 -0
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/down.d.ts +5 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +87 -3
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/edge.d.ts +4 -0
- package/dist/commands/edge.d.ts.map +1 -0
- package/dist/commands/edge.js +135 -0
- package/dist/commands/edge.js.map +1 -0
- package/dist/commands/expand.d.ts.map +1 -1
- package/dist/commands/expand.js +16 -2
- package/dist/commands/expand.js.map +1 -1
- package/dist/commands/export.d.ts +1 -0
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +60 -2
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/fork.d.ts.map +1 -1
- package/dist/commands/fork.js +22 -3
- package/dist/commands/fork.js.map +1 -1
- package/dist/commands/gateway.d.ts +39 -0
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +311 -3
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/grow.js +2 -2
- package/dist/commands/grow.js.map +1 -1
- package/dist/commands/health.js +3 -2
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/host.d.ts +1 -1
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +2 -2
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +10 -3
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +113 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/plugin.d.ts.map +1 -1
- package/dist/commands/plugin.js +2 -1
- package/dist/commands/plugin.js.map +1 -1
- package/dist/commands/project-worker.d.ts +25 -1
- package/dist/commands/project-worker.d.ts.map +1 -1
- package/dist/commands/project-worker.js +9 -7
- package/dist/commands/project-worker.js.map +1 -1
- package/dist/commands/project.d.ts +2 -0
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +64 -1
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/provider.d.ts.map +1 -1
- package/dist/commands/provider.js +72 -44
- package/dist/commands/provider.js.map +1 -1
- package/dist/commands/ps.d.ts +16 -1
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +145 -52
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +7 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +97 -13
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/reconcile-session.d.ts.map +1 -1
- package/dist/commands/reconcile-session.js +6 -0
- package/dist/commands/reconcile-session.js.map +1 -1
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +16 -2
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/restore-check.d.ts.map +1 -1
- package/dist/commands/restore-check.js +2 -1
- package/dist/commands/restore-check.js.map +1 -1
- package/dist/commands/restore-packet.d.ts.map +1 -1
- package/dist/commands/restore-packet.js +2 -1
- package/dist/commands/restore-packet.js.map +1 -1
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +23 -6
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +5 -2
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/seat.d.ts +2 -0
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +124 -10
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +87 -56
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts +27 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +189 -16
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/shrink.d.ts.map +1 -1
- package/dist/commands/shrink.js +16 -2
- package/dist/commands/shrink.js.map +1 -1
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +116 -3
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +11 -24
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/snapshot.d.ts.map +1 -1
- package/dist/commands/snapshot.js +36 -10
- package/dist/commands/snapshot.js.map +1 -1
- package/dist/commands/specs.d.ts.map +1 -1
- package/dist/commands/specs.js +11 -5
- package/dist/commands/specs.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +54 -35
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +8 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stream-outcome.d.ts +157 -0
- package/dist/commands/stream-outcome.d.ts.map +1 -0
- package/dist/commands/stream-outcome.js +81 -0
- package/dist/commands/stream-outcome.js.map +1 -0
- package/dist/commands/stream.d.ts.map +1 -1
- package/dist/commands/stream.js +64 -2
- package/dist/commands/stream.js.map +1 -1
- package/dist/commands/terminal.d.ts +1 -0
- package/dist/commands/terminal.d.ts.map +1 -1
- package/dist/commands/terminal.js +35 -6
- package/dist/commands/terminal.js.map +1 -1
- package/dist/commands/topology-default-agent.d.ts +2 -2
- package/dist/commands/topology-default-agent.d.ts.map +1 -1
- package/dist/commands/topology-default-agent.js +5 -3
- package/dist/commands/topology-default-agent.js.map +1 -1
- package/dist/commands/transcript.d.ts.map +1 -1
- package/dist/commands/transcript.js +12 -7
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/unarchive.d.ts.map +1 -1
- package/dist/commands/unarchive.js +16 -2
- package/dist/commands/unarchive.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +106 -35
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +2 -1
- package/dist/commands/walk.js.map +1 -1
- package/dist/commands/watchdog.d.ts.map +1 -1
- package/dist/commands/watchdog.js +80 -5
- package/dist/commands/watchdog.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +3 -0
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/workflow-errors.js +1 -1
- package/dist/commands/workflow-errors.js.map +1 -1
- package/dist/commands/workflow-render.js +4 -4
- package/dist/commands/workflow-render.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +34 -15
- package/dist/commands/workflow.js.map +1 -1
- package/dist/config-store.d.ts +18 -2
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +120 -11
- package/dist/config-store.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +13 -4
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +100 -30
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/daemon-reachability.d.ts +13 -0
- package/dist/daemon-reachability.d.ts.map +1 -1
- package/dist/daemon-reachability.js +28 -0
- package/dist/daemon-reachability.js.map +1 -1
- package/dist/decisions/decisions.d.ts +203 -0
- package/dist/decisions/decisions.d.ts.map +1 -0
- package/dist/decisions/decisions.js +374 -0
- package/dist/decisions/decisions.js.map +1 -0
- package/dist/decisions/stream-consumer.d.ts +255 -0
- package/dist/decisions/stream-consumer.d.ts.map +1 -0
- package/dist/decisions/stream-consumer.js +282 -0
- package/dist/decisions/stream-consumer.js.map +1 -0
- package/dist/decisions/templates.d.ts +8 -0
- package/dist/decisions/templates.d.ts.map +1 -0
- package/dist/decisions/templates.js +34 -0
- package/dist/decisions/templates.js.map +1 -0
- package/dist/fetch-with-timeout.d.ts.map +1 -1
- package/dist/fetch-with-timeout.js +19 -16
- package/dist/fetch-with-timeout.js.map +1 -1
- package/dist/fresh-seat-command.d.ts +18 -0
- package/dist/fresh-seat-command.d.ts.map +1 -0
- package/dist/fresh-seat-command.js +36 -0
- package/dist/fresh-seat-command.js.map +1 -0
- package/dist/front-door.d.ts +4 -0
- package/dist/front-door.d.ts.map +1 -1
- package/dist/front-door.js +8 -4
- package/dist/front-door.js.map +1 -1
- package/dist/host-bindings.d.ts +6 -0
- package/dist/host-bindings.d.ts.map +1 -1
- package/dist/host-bindings.js +23 -13
- package/dist/host-bindings.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lazy-program.d.ts.map +1 -1
- package/dist/lazy-program.js +2 -0
- package/dist/lazy-program.js.map +1 -1
- package/dist/lib/bundle-check.d.ts.map +1 -1
- package/dist/lib/bundle-check.js +13 -5
- package/dist/lib/bundle-check.js.map +1 -1
- package/dist/lib/run-on-host.d.ts +29 -0
- package/dist/lib/run-on-host.d.ts.map +1 -0
- package/dist/lib/run-on-host.js +69 -0
- package/dist/lib/run-on-host.js.map +1 -0
- package/dist/lib/seat-activity.d.ts +17 -0
- package/dist/lib/seat-activity.d.ts.map +1 -0
- package/dist/lib/seat-activity.js +29 -0
- package/dist/lib/seat-activity.js.map +1 -0
- package/dist/local-daemon-owner.d.ts +4 -0
- package/dist/local-daemon-owner.d.ts.map +1 -1
- package/dist/local-daemon-owner.js +1 -1
- package/dist/local-daemon-owner.js.map +1 -1
- package/dist/mcp-http.d.ts +42 -0
- package/dist/mcp-http.d.ts.map +1 -0
- package/dist/mcp-http.js +232 -0
- package/dist/mcp-http.js.map +1 -0
- package/dist/mcp-server.d.ts +30 -2
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +1126 -407
- package/dist/mcp-server.js.map +1 -1
- package/dist/rig-handle.d.ts +18 -1
- package/dist/rig-handle.d.ts.map +1 -1
- package/dist/rig-handle.js +19 -2
- package/dist/rig-handle.js.map +1 -1
- package/dist/seat-launch-additions-lines.d.ts +11 -0
- package/dist/seat-launch-additions-lines.d.ts.map +1 -0
- package/dist/seat-launch-additions-lines.js +14 -0
- package/dist/seat-launch-additions-lines.js.map +1 -0
- package/dist/terminal-window.d.ts +1 -1
- package/dist/terminal-window.d.ts.map +1 -1
- package/dist/terminal-window.js +50 -22
- package/dist/terminal-window.js.map +1 -1
- package/package.json +1 -1
- package/tui/dist/attention/attention-model.d.ts +3 -1
- package/tui/dist/attention/attention-model.d.ts.map +1 -1
- package/tui/dist/attention/attention-model.js +68 -1
- package/tui/dist/attention/attention-model.js.map +1 -1
- package/tui/dist/commands/registry.d.ts.map +1 -1
- package/tui/dist/commands/registry.js +2 -0
- package/tui/dist/commands/registry.js.map +1 -1
- package/tui/dist/config/config-model.d.ts.map +1 -1
- package/tui/dist/config/config-model.js +3 -1
- package/tui/dist/config/config-model.js.map +1 -1
- package/tui/dist/connections/connections-model.d.ts +0 -5
- package/tui/dist/connections/connections-model.d.ts.map +1 -1
- package/tui/dist/connections/connections-model.js +1 -1
- package/tui/dist/connections/connections-model.js.map +1 -1
- package/tui/dist/daemon-client.d.ts +20 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +27 -0
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +22 -7
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/live.d.ts +10 -1
- package/tui/dist/live.d.ts.map +1 -1
- package/tui/dist/live.js +56 -7
- package/tui/dist/live.js.map +1 -1
- package/tui/dist/main.js +50 -3
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +121 -10
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/topology/fixture.js +1 -1
- package/tui/dist/topology/fixture.js.map +1 -1
- package/tui/dist/topology/glyphs.js +1 -1
- package/tui/dist/topology/glyphs.js.map +1 -1
- package/tui/dist/topology/graph-types.d.ts +1 -0
- package/tui/dist/topology/graph-types.d.ts.map +1 -1
- package/tui/dist/types.d.ts +78 -0
- package/tui/dist/types.d.ts.map +1 -1
- package/tui/dist/version-skew.d.ts +24 -0
- package/tui/dist/version-skew.d.ts.map +1 -0
- package/tui/dist/version-skew.js +37 -0
- package/tui/dist/version-skew.js.map +1 -0
- package/ui/dist/assets/{index-CVgod3Pm.js → index-Blg-p32B.js} +92 -92
- package/ui/dist/index.html +1 -1
- package/daemon/dist/domain/provider/subscription-moves.d.ts +0 -77
- package/daemon/dist/domain/provider/subscription-moves.d.ts.map +0 -1
- package/daemon/dist/domain/provider/subscription-moves.js +0 -140
- package/daemon/dist/domain/provider/subscription-moves.js.map +0 -1
|
@@ -81,6 +81,7 @@ export class RigInstantiator {
|
|
|
81
81
|
const txn = this.db.transaction(() => {
|
|
82
82
|
const rig = this.rigRepo.createRig(spec.name);
|
|
83
83
|
rigId = rig.id;
|
|
84
|
+
opts?.recordCreated?.(rig.id);
|
|
84
85
|
if (opts?.nonInterruptive !== undefined)
|
|
85
86
|
this.rigRepo.setRigNonInterruptive(rig.id, opts.nonInterruptive);
|
|
86
87
|
for (const specNode of spec.nodes) {
|
|
@@ -89,6 +90,7 @@ export class RigInstantiator {
|
|
|
89
90
|
runtime: specNode.runtime,
|
|
90
91
|
model: specNode.model,
|
|
91
92
|
effort: specNode.effort,
|
|
93
|
+
advisor: specNode.advisor,
|
|
92
94
|
cwd: specNode.cwd,
|
|
93
95
|
surfaceHint: specNode.surfaceHint,
|
|
94
96
|
workspace: specNode.workspace,
|
|
@@ -96,6 +98,7 @@ export class RigInstantiator {
|
|
|
96
98
|
packageRefs: specNode.packageRefs,
|
|
97
99
|
});
|
|
98
100
|
nodeIdMap[specNode.id] = node.id;
|
|
101
|
+
opts?.recordCreated?.(rig.id, node.id);
|
|
99
102
|
}
|
|
100
103
|
for (const specEdge of spec.edges) {
|
|
101
104
|
this.rigRepo.addEdge(rig.id, nodeIdMap[specEdge.from], nodeIdMap[specEdge.to], specEdge.kind);
|
|
@@ -115,7 +118,7 @@ export class RigInstantiator {
|
|
|
115
118
|
const launchedSessionNames = [];
|
|
116
119
|
const instantiateWarnings = [];
|
|
117
120
|
for (const logicalId of launchOrder) {
|
|
118
|
-
const result = await this.nodeLauncher.launchNode(rigId, logicalId);
|
|
121
|
+
const result = await this.nodeLauncher.launchNode(rigId, logicalId, opts?.env ? { env: opts.env } : undefined);
|
|
119
122
|
if (result.ok) {
|
|
120
123
|
nodeResults.push({ logicalId, status: "launched" });
|
|
121
124
|
launchedSessionNames.push(result.sessionName);
|
|
@@ -263,13 +266,30 @@ import { RigSpecCodec as PodRigSpecCodec } from "./rigspec-codec.js";
|
|
|
263
266
|
import { RigSpecSchema as PodRigSpecSchema, VALID_EDGE_KINDS } from "./rigspec-schema.js";
|
|
264
267
|
import { rigPreflight, preflightValidatedSpec } from "./rigspec-preflight.js";
|
|
265
268
|
import { resolveAgentRef } from "./agent-resolver.js";
|
|
266
|
-
import { resolveNodeConfig, selectedPluginPaths } from "./profile-resolver.js";
|
|
269
|
+
import { resolveAdvisorModel, resolveNodeConfig, selectedPluginPaths } from "./profile-resolver.js";
|
|
267
270
|
import { resolveStartup } from "./startup-resolver.js";
|
|
271
|
+
import { isCommunityHarnessRuntime } from "./built-in-runtimes.js";
|
|
268
272
|
import { planProjection, claudeConflictTargetPath, projectionConflictWarnings, filterProtectedProjections } from "./projection-planner.js";
|
|
269
273
|
import { ProjectionManifestStore } from "./projection-manifest-store.js";
|
|
270
274
|
import { resolveConcreteHint } from "./runtime-adapter.js";
|
|
271
275
|
import { installTopologyDefaults } from "./topology-defaults-installer.js";
|
|
272
276
|
import { isKeptPluginSkill } from "./skill-catalog.js";
|
|
277
|
+
import { claudeSeatSkillsNote, ensureSeatSkillPlugin, seatCatalogKeptNote, migrateLegacyProjectSkills, refusedSeatSkillsRootForNode, seatSkillLocation, seatSkillPaths, seatSkillPathsForNode, seatSkillPluginDirForNode, writeSeatSkillCatalog } from "./seat-skill-storage.js";
|
|
278
|
+
import { carrySeatLaunchAdditions, prepareSeatLaunchAdditions } from "./seat-launch-additions.js";
|
|
279
|
+
/** OPR.0.7.0.13: the constant seat-skills pointer, merged into the project's managed guidance for a Codex seat. It
|
|
280
|
+
* names no seat, path or skill, so pod-mates share one identical block, and it tells a non-OpenRig agent it doesn't
|
|
281
|
+
* apply. Each seat reads its own list with `rig skill loadout --seat self`. */
|
|
282
|
+
function seatSkillsPointerStartupFile() {
|
|
283
|
+
const assetsRoot = nodePath.resolve(import.meta.dirname, "../../assets");
|
|
284
|
+
return {
|
|
285
|
+
path: "openrig-seat-skills.md",
|
|
286
|
+
absolutePath: nodePath.join(assetsRoot, "guidance/openrig-seat-skills.md"),
|
|
287
|
+
ownerRoot: assetsRoot,
|
|
288
|
+
deliveryHint: "guidance_merge",
|
|
289
|
+
required: false,
|
|
290
|
+
appliesOn: ["fresh_start", "restore"],
|
|
291
|
+
};
|
|
292
|
+
}
|
|
273
293
|
function defaultCultureStartupFile() {
|
|
274
294
|
const assetsRoot = nodePath.resolve(import.meta.dirname, "../../assets");
|
|
275
295
|
return {
|
|
@@ -414,6 +434,14 @@ export class PodRigInstantiator {
|
|
|
414
434
|
if (!preflight.ready) {
|
|
415
435
|
return { ok: false, code: "preflight_failed", errors: preflight.errors, warnings: preflight.warnings };
|
|
416
436
|
}
|
|
437
|
+
// A pod added to a running rig inherits the rig's layers; stop before it exists if a required one is gone,
|
|
438
|
+
// when at least one added member reads startup files.
|
|
439
|
+
if (opts?.targetRigId && targetRig && rigSpec.pods.some((pod) => pod.members.some((m) => this.runtimeTakesStartupFiles(m.runtime)))) {
|
|
440
|
+
const missingInherited = this.inheritedStartupFileErrors(opts.targetRigId, targetRig.rig.name);
|
|
441
|
+
if (missingInherited.length > 0) {
|
|
442
|
+
return { ok: false, code: "preflight_failed", errors: missingInherited, warnings: preflight.warnings };
|
|
443
|
+
}
|
|
444
|
+
}
|
|
417
445
|
return this.materializeValidatedSpec(rigSpec, rigRoot, preflight.warnings, opts);
|
|
418
446
|
}
|
|
419
447
|
/**
|
|
@@ -446,6 +474,7 @@ export class PodRigInstantiator {
|
|
|
446
474
|
if (!materializedRigId) {
|
|
447
475
|
const rig = this.deps.rigRepo.createRig(rigSpec.name);
|
|
448
476
|
materializedRigId = rig.id;
|
|
477
|
+
opts?.recordCreated?.(rig.id);
|
|
449
478
|
persistedEvents.push(this.deps.eventBus.persistWithinTransaction({ type: "rig.created", rigId: materializedRigId }));
|
|
450
479
|
}
|
|
451
480
|
// PL-007: persist the rig's typed workspace block when declared.
|
|
@@ -456,6 +485,9 @@ export class PodRigInstantiator {
|
|
|
456
485
|
if (rigSpec.managedBlocks?.["claude-code"]) {
|
|
457
486
|
this.deps.rigRepo.setRigClaudeManagedBlockFile(materializedRigId, rigSpec.managedBlocks["claude-code"]);
|
|
458
487
|
}
|
|
488
|
+
// The rig's culture and startup layers, for seats added later (both rig-create sites; an expansion keeps them).
|
|
489
|
+
if (!opts?.targetRigId)
|
|
490
|
+
this.persistRigStartupLayers(materializedRigId, rigSpec, rigRoot);
|
|
459
491
|
// OPR.0.4.8.3 Seam B: persist the rig-level permission_policy REF (raw, like role) —
|
|
460
492
|
// this is ONE of TWO rig-persist sites (materializeValidatedSpec + instantiate); missing
|
|
461
493
|
// either drops the rig ref on that path (map correction, independently verified).
|
|
@@ -488,7 +520,8 @@ export class PodRigInstantiator {
|
|
|
488
520
|
for (const member of pod.members) {
|
|
489
521
|
const qualifiedId = `${pod.id}.${member.id}`;
|
|
490
522
|
if (logicalIdToNodeId.has(qualifiedId)) {
|
|
491
|
-
throw { code: "materialize_conflict", message: `Logical ID '${qualifiedId}' already exists in rig '${currentRig.rig.name}'
|
|
523
|
+
throw { code: "materialize_conflict", message: `Logical ID '${qualifiedId}' already exists in rig '${currentRig.rig.name}'`,
|
|
524
|
+
...(opts?.recordCreated ? { existingNodeId: logicalIdToNodeId.get(qualifiedId) } : {}) };
|
|
492
525
|
}
|
|
493
526
|
}
|
|
494
527
|
}
|
|
@@ -524,6 +557,7 @@ export class PodRigInstantiator {
|
|
|
524
557
|
rigRoot,
|
|
525
558
|
cwdOverride: opts?.cwdOverride,
|
|
526
559
|
});
|
|
560
|
+
opts?.recordCreated?.(materializedRigId, node.id);
|
|
527
561
|
logicalIdToNodeId.set(qualifiedId, node.id);
|
|
528
562
|
// Seam B R2: restart-stable provenance persists AT MATERIALIZE (a
|
|
529
563
|
// materialized-but-never-launched seat must still restore its posture).
|
|
@@ -617,7 +651,7 @@ export class PodRigInstantiator {
|
|
|
617
651
|
if (err && typeof err === "object" && "code" in err && "message" in err) {
|
|
618
652
|
const typed = err;
|
|
619
653
|
if (typed.code === "materialize_conflict") {
|
|
620
|
-
return { ok: false, code: "materialize_conflict", message: typed.message };
|
|
654
|
+
return { ok: false, code: "materialize_conflict", message: typed.message, ...(typed.existingNodeId ? { existingNodeId: typed.existingNodeId } : {}) };
|
|
621
655
|
}
|
|
622
656
|
}
|
|
623
657
|
return { ok: false, code: "materialize_error", message: err instanceof Error ? err.message : String(err) };
|
|
@@ -652,7 +686,7 @@ export class PodRigInstantiator {
|
|
|
652
686
|
* round-trip; launchMaterialized(yaml) is the parse/validate/normalize front
|
|
653
687
|
* over it. Behaviour identical (loop body relocated verbatim).
|
|
654
688
|
*/
|
|
655
|
-
async launchValidatedSpec(rigSpec, rigRoot, targetRigId, cwdOverride) {
|
|
689
|
+
async launchValidatedSpec(rigSpec, rigRoot, targetRigId, cwdOverride, launchOpts) {
|
|
656
690
|
const launchOrder = this.computePodLaunchOrder(rigSpec);
|
|
657
691
|
const podWarnings = [];
|
|
658
692
|
const nodeResults = [];
|
|
@@ -686,6 +720,7 @@ export class PodRigInstantiator {
|
|
|
686
720
|
qualifiedId: logicalId,
|
|
687
721
|
nodeId: node.id,
|
|
688
722
|
cwdOverride,
|
|
723
|
+
...(launchOpts?.keepRecordedAdditions ? { keepRecordedAdditions: true } : {}),
|
|
689
724
|
});
|
|
690
725
|
if (launched.warnings?.length) {
|
|
691
726
|
podWarnings.push(...launched.warnings);
|
|
@@ -770,10 +805,12 @@ export class PodRigInstantiator {
|
|
|
770
805
|
// colliding logical id would be a real seat collision — reject it honestly.
|
|
771
806
|
// (validate's externalQualifiedIds only resolves edge targets; it does NOT
|
|
772
807
|
// reject a member colliding with an existing node, so this guard is load-bearing.)
|
|
773
|
-
|
|
808
|
+
const existingNode = rig.nodes.find((node) => node.logicalId === qualifiedId);
|
|
809
|
+
if (existingNode) {
|
|
774
810
|
return {
|
|
775
811
|
ok: false,
|
|
776
812
|
code: "member_conflict",
|
|
813
|
+
...(opts?.recordCreated ? { existingNodeId: existingNode.id } : {}),
|
|
777
814
|
message: `Member "${qualifiedId}" already exists in rig "${rig.rig.name}". Pick a different member id, or remove the existing seat first.`,
|
|
778
815
|
};
|
|
779
816
|
}
|
|
@@ -794,6 +831,13 @@ export class PodRigInstantiator {
|
|
|
794
831
|
if (!preflight.ready) {
|
|
795
832
|
return { ok: false, code: "preflight_failed", errors: preflight.errors, warnings: preflight.warnings };
|
|
796
833
|
}
|
|
834
|
+
// 6b. Stop before a seat exists if a required file the rig or this pod declared is gone, for a runtime that reads startup files.
|
|
835
|
+
const missingInherited = this.runtimeTakesStartupFiles(member.runtime)
|
|
836
|
+
? this.inheritedStartupFileErrors(rigId, rig.rig.name, podNamespace)
|
|
837
|
+
: [];
|
|
838
|
+
if (missingInherited.length > 0) {
|
|
839
|
+
return { ok: false, code: "preflight_failed", errors: missingInherited, warnings: preflight.warnings };
|
|
840
|
+
}
|
|
797
841
|
// 7. Validate + resolve any declared pod-local edges BEFORE creating the
|
|
798
842
|
// node, so a bad edge fails fast with no orphan seat. Two honest failure
|
|
799
843
|
// classes: (a) DECLARATION validity (non-array / empty fields / a kind
|
|
@@ -841,6 +885,7 @@ export class PodRigInstantiator {
|
|
|
841
885
|
suppressSummaryEvent: true,
|
|
842
886
|
cwdOverride: opts?.cwdOverride,
|
|
843
887
|
existingPodNamespace: podNamespace,
|
|
888
|
+
recordCreated: opts?.recordCreated,
|
|
844
889
|
});
|
|
845
890
|
if (!materialized.ok) {
|
|
846
891
|
const message = "message" in materialized
|
|
@@ -849,13 +894,17 @@ export class PodRigInstantiator {
|
|
|
849
894
|
? materialized.errors.join("; ")
|
|
850
895
|
: "member materialization failed";
|
|
851
896
|
if (materialized.code === "materialize_conflict") {
|
|
852
|
-
return { ok: false, code: "member_conflict", message };
|
|
897
|
+
return { ok: false, code: "member_conflict", message, ...(opts?.recordCreated && materialized.existingNodeId ? { existingNodeId: materialized.existingNodeId } : {}) };
|
|
853
898
|
}
|
|
854
899
|
return { ok: false, code: "materialize_error", message };
|
|
855
900
|
}
|
|
901
|
+
// A fork's launch additions go only into the seat just validated and created above (OPR.0.7.0.9).
|
|
902
|
+
const launchAdditions = opts?.launchAdditionsFrom && member.runtime === "claude-code"
|
|
903
|
+
? carrySeatLaunchAdditions(opts.launchAdditionsFrom, seatSkillPaths({ rigId, logicalId: qualifiedId, runtime: member.runtime }))
|
|
904
|
+
: undefined;
|
|
856
905
|
// 9. The shared launch effect owns startup projection + delivery +
|
|
857
906
|
// readiness + `@rigged_*` for both expansion and ordinary growth.
|
|
858
|
-
const launchOutcome = await this.launchValidatedSpec(rigSpec, rigRoot, rigId, opts?.cwdOverride);
|
|
907
|
+
const launchOutcome = await this.launchValidatedSpec(rigSpec, rigRoot, rigId, opts?.cwdOverride, launchAdditions?.kept ? { keepRecordedAdditions: true } : undefined);
|
|
859
908
|
if (!launchOutcome.ok) {
|
|
860
909
|
const message = "message" in launchOutcome
|
|
861
910
|
? launchOutcome.message
|
|
@@ -882,6 +931,7 @@ export class PodRigInstantiator {
|
|
|
882
931
|
},
|
|
883
932
|
edges: resolvedEdges,
|
|
884
933
|
warnings: [...(materialized.result.warnings ?? []), ...(launchOutcome.result.warnings ?? [])],
|
|
934
|
+
...(launchAdditions ? { launchAdditions } : {}),
|
|
885
935
|
},
|
|
886
936
|
};
|
|
887
937
|
}
|
|
@@ -939,7 +989,7 @@ export class PodRigInstantiator {
|
|
|
939
989
|
const initialRefusal = eligible();
|
|
940
990
|
if (initialRefusal)
|
|
941
991
|
return refuse(initialRefusal);
|
|
942
|
-
const retainedFields = new Set(["id", "label", "agent_ref", "profile", "runtime", "model", "effort", "cwd", "role", "codex_config_profile", "permission_policy", "restore_policy"]);
|
|
992
|
+
const retainedFields = new Set(["id", "label", "agent_ref", "profile", "runtime", "model", "effort", "advisor", "cwd", "role", "codex_config_profile", "permission_policy", "restore_policy"]);
|
|
943
993
|
if (Object.keys(memberFragment).some(key => !retainedFields.has(key)))
|
|
944
994
|
return refuse("Retry accepts only retained member fields; topology and startup overrides require a separate change.");
|
|
945
995
|
const rawSpec = { version: "0.2", name: rig.rig.name, pods: [{ id: podRow.namespace, label: podRow.label, members: [memberFragment], edges: [] }], edges: [] };
|
|
@@ -965,11 +1015,17 @@ export class PodRigInstantiator {
|
|
|
965
1015
|
if (!node.resolvedSpecHash || resolved.resolved.hash !== node.resolvedSpecHash)
|
|
966
1016
|
return refuse("Agent source hash differs from the failed first start.");
|
|
967
1017
|
const config = resolveNodeConfig({ baseSpec: resolved.resolved, importedSpecs: resolved.imports, collisions: resolved.collisions,
|
|
968
|
-
profileName: member.profile, specRoot: rigRoot, member, pod, rig:
|
|
1018
|
+
profileName: member.profile, specRoot: rigRoot, member, pod, rig: this.withRigStartupLayers(rigSpec, this.rigStartupLayers(rigSpec, rigRoot, rigId)),
|
|
1019
|
+
skillsRoot: this.resolveSkillsRoot(), ...this.systemWorldResolutionContext() });
|
|
969
1020
|
if (!config.ok)
|
|
970
1021
|
return refuse(config.errors.join("; "));
|
|
971
|
-
|
|
972
|
-
|
|
1022
|
+
// A seat whose first start failed before Advisor support recorded no Advisor, though its unchanged agent spec (the
|
|
1023
|
+
// hash above) may name one. Its retry keeps the launch it recorded: no Advisor, stored and launched alike. Any
|
|
1024
|
+
// other Advisor difference changes the launch and is refused below.
|
|
1025
|
+
const launchConfig = node.advisor == null && member.advisor === undefined && config.config.advisor != null
|
|
1026
|
+
? { ...config, config: { ...config.config, advisor: undefined } } : config;
|
|
1027
|
+
if (!same(launchConfig.config.model, node.model) || !same(launchConfig.config.effort, node.effort) || !same(launchConfig.config.advisor, node.advisor) || !same(launchConfig.config.cwd, node.cwd) || !same(launchConfig.config.restorePolicy, node.restorePolicy)) {
|
|
1028
|
+
return refuse("Resolved model, effort, advisor, cwd or restore policy differs from the failed first start.");
|
|
973
1029
|
}
|
|
974
1030
|
const preflight = await preflightValidatedSpec(rigSpec, { rigRoot, fsOps: this.deps.fsOps, skillsRoot: this.resolveSkillsRoot(),
|
|
975
1031
|
...this.systemWorldResolutionContext(), rigNameOverride: rig.rig.name, inheritedPermissionPolicy: this.inheritedPermissionPolicy(rigId), exec: this.deps.exec });
|
|
@@ -990,7 +1046,7 @@ export class PodRigInstantiator {
|
|
|
990
1046
|
if (finalRefusal)
|
|
991
1047
|
return refuse(finalRefusal);
|
|
992
1048
|
const result = await this.launchExistingAgentMember({ rigId, nodeId, qualifiedId: node.logicalId, rigSpec, rigRoot, pod, member,
|
|
993
|
-
resolveResult: resolved, configResult:
|
|
1049
|
+
resolveResult: resolved, configResult: launchConfig, keepRecordedAdditions: true });
|
|
994
1050
|
if (result.status !== "launched")
|
|
995
1051
|
return { ok: false, code: result.status, message: result.error ?? "First-start retry did not reach readiness." };
|
|
996
1052
|
return { ok: true, rigId, nodeId, logicalId: node.logicalId, status: "launched", sessionName: result.sessionName, warnings: result.warnings };
|
|
@@ -1104,7 +1160,9 @@ export class PodRigInstantiator {
|
|
|
1104
1160
|
throw new GenerationChanged(rigSpec.name);
|
|
1105
1161
|
}
|
|
1106
1162
|
}
|
|
1107
|
-
|
|
1163
|
+
const rig = this.deps.rigRepo.createRig(rigSpec.name, opts?.installRoot);
|
|
1164
|
+
opts?.recordCreated?.(rig.id);
|
|
1165
|
+
return rig;
|
|
1108
1166
|
});
|
|
1109
1167
|
const rig = create();
|
|
1110
1168
|
rigId = rig.id;
|
|
@@ -1121,6 +1179,7 @@ export class PodRigInstantiator {
|
|
|
1121
1179
|
if (rigSpec.managedBlocks?.["claude-code"]) {
|
|
1122
1180
|
this.deps.rigRepo.setRigClaudeManagedBlockFile(rigId, rigSpec.managedBlocks["claude-code"]);
|
|
1123
1181
|
}
|
|
1182
|
+
this.persistRigStartupLayers(rigId, rigSpec, rigRoot);
|
|
1124
1183
|
// OPR.0.4.8.3 Seam B: the SECOND rig-persist site (bootstrap instantiate path) —
|
|
1125
1184
|
// both sites must write or the rig ref silently drops on one instantiate path.
|
|
1126
1185
|
// Guard-F1: resolved rig attachment persists here too (declaringDir = rigRoot).
|
|
@@ -1228,7 +1287,7 @@ export class PodRigInstantiator {
|
|
|
1228
1287
|
for (const { pod, member, podId, qualifiedId } of memberEntries) {
|
|
1229
1288
|
// Terminal fast-path: skip agent resolution and profile resolution
|
|
1230
1289
|
if (member.agentRef === "builtin:terminal") {
|
|
1231
|
-
const termResult = await this.processTerminalMember(rigId, rigSpec, rigRoot, pod, member, podId, qualifiedId, nodeIdMap, launchedSessionNames, podInstantiateWarnings, opts?.cwdOverride, opts?.env);
|
|
1290
|
+
const termResult = await this.processTerminalMember(rigId, rigSpec, rigRoot, pod, member, podId, qualifiedId, nodeIdMap, launchedSessionNames, podInstantiateWarnings, opts?.cwdOverride, opts?.env, opts?.recordCreated);
|
|
1232
1291
|
nodeResults.push(termResult);
|
|
1233
1292
|
continue;
|
|
1234
1293
|
}
|
|
@@ -1275,6 +1334,7 @@ export class PodRigInstantiator {
|
|
|
1275
1334
|
runtime: member.runtime,
|
|
1276
1335
|
model: member.model ?? configResult.config.model,
|
|
1277
1336
|
effort: member.effort ?? configResult.config.effort,
|
|
1337
|
+
advisor: configResult.config.advisor,
|
|
1278
1338
|
codexConfigProfile: member.codexConfigProfile,
|
|
1279
1339
|
// OPR.0.4.8.3 Seam B: bootstrap inline addNode is the FOURTH node-creation
|
|
1280
1340
|
// site (see the role wire note above) — same member-ref persistence as
|
|
@@ -1301,6 +1361,7 @@ export class PodRigInstantiator {
|
|
|
1301
1361
|
const bootstrapAttachment = this.resolveMemberPolicyAttachment(member.permissionPolicy, rigSpec.permissionPolicy, rigRoot);
|
|
1302
1362
|
if (bootstrapAttachment)
|
|
1303
1363
|
this.persistNodePolicyProvenanceStrict(node.id, bootstrapAttachment);
|
|
1364
|
+
opts?.recordCreated?.(rigId, node.id);
|
|
1304
1365
|
return node.id;
|
|
1305
1366
|
});
|
|
1306
1367
|
let nodeId;
|
|
@@ -1336,6 +1397,7 @@ export class PodRigInstantiator {
|
|
|
1336
1397
|
nodeResults.push({
|
|
1337
1398
|
logicalId: qualifiedId,
|
|
1338
1399
|
status: launched.status,
|
|
1400
|
+
code: launched.code,
|
|
1339
1401
|
error: launched.error,
|
|
1340
1402
|
evidence: launched.evidence,
|
|
1341
1403
|
sessionName: launched.sessionName,
|
|
@@ -1420,7 +1482,10 @@ export class PodRigInstantiator {
|
|
|
1420
1482
|
else
|
|
1421
1483
|
await cleanup();
|
|
1422
1484
|
const details = nodeResults.map((n) => `${n.logicalId}: ${n.error ?? "unknown"}`).join("; ");
|
|
1423
|
-
return {
|
|
1485
|
+
return {
|
|
1486
|
+
ok: false, code: "instantiate_error",
|
|
1487
|
+
message: `all node launches/startups failed — ${details}${serviceCleanupError ? `; ${serviceCleanupError}` : ""}`,
|
|
1488
|
+
};
|
|
1424
1489
|
}
|
|
1425
1490
|
if (hasAttention && !hasLaunched) {
|
|
1426
1491
|
// All-attention_required path — rig + sessions PRESERVED; no
|
|
@@ -1453,8 +1518,9 @@ export class PodRigInstantiator {
|
|
|
1453
1518
|
message: `${attentionNodes.length} node${attentionNodes.length === 1 ? " requires" : "s require"} attention before becoming interactive. Inspect the affected sessions and reasons before choosing recovery.`,
|
|
1454
1519
|
rigId,
|
|
1455
1520
|
attentionNodes,
|
|
1456
|
-
//
|
|
1457
|
-
|
|
1521
|
+
// The seats are kept on this path, so their warnings reach the person too: a replacement's archive notice (#141)
|
|
1522
|
+
// and a one-off --env setting that stayed in a session.
|
|
1523
|
+
...(podInstantiateWarnings.length > 0 ? { warnings: podInstantiateWarnings } : {}),
|
|
1458
1524
|
};
|
|
1459
1525
|
}
|
|
1460
1526
|
// Emit rig.imported
|
|
@@ -1550,24 +1616,28 @@ export class PodRigInstantiator {
|
|
|
1550
1616
|
}
|
|
1551
1617
|
return order;
|
|
1552
1618
|
}
|
|
1553
|
-
async processTerminalMember(rigId, rigSpec, rigRoot, pod, member, podId, qualifiedId, nodeIdMap, launchedSessionNames, warnings, cwdOverride, envOverride) {
|
|
1619
|
+
async processTerminalMember(rigId, rigSpec, rigRoot, pod, member, podId, qualifiedId, nodeIdMap, launchedSessionNames, warnings, cwdOverride, envOverride, recordCreated) {
|
|
1554
1620
|
const effectiveCwd = resolveLaunchCwd(member.cwd, rigRoot, cwdOverride);
|
|
1555
1621
|
// Create node with sentinel values
|
|
1556
1622
|
let nodeId;
|
|
1557
1623
|
try {
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1624
|
+
nodeId = this.db.transaction(() => {
|
|
1625
|
+
const node = this.deps.rigRepo.addNode(rigId, qualifiedId, {
|
|
1626
|
+
runtime: member.runtime,
|
|
1627
|
+
model: member.model,
|
|
1628
|
+
effort: member.effort,
|
|
1629
|
+
advisor: member.advisor,
|
|
1630
|
+
env: member.env,
|
|
1631
|
+
cwd: effectiveCwd,
|
|
1632
|
+
restorePolicy: "checkpoint_only",
|
|
1633
|
+
podId,
|
|
1634
|
+
agentRef: member.agentRef,
|
|
1635
|
+
profile: member.profile,
|
|
1636
|
+
label: member.label,
|
|
1637
|
+
});
|
|
1638
|
+
recordCreated?.(rigId, node.id);
|
|
1639
|
+
return node.id;
|
|
1640
|
+
})();
|
|
1571
1641
|
nodeIdMap[qualifiedId] = nodeId;
|
|
1572
1642
|
}
|
|
1573
1643
|
catch (err) {
|
|
@@ -1593,6 +1663,7 @@ export class PodRigInstantiator {
|
|
|
1593
1663
|
return {
|
|
1594
1664
|
logicalId: qualifiedId,
|
|
1595
1665
|
status: launched.status,
|
|
1666
|
+
code: launched.code,
|
|
1596
1667
|
error: launched.error,
|
|
1597
1668
|
};
|
|
1598
1669
|
}
|
|
@@ -1615,11 +1686,26 @@ export class PodRigInstantiator {
|
|
|
1615
1686
|
*/
|
|
1616
1687
|
createMemberNode(input) {
|
|
1617
1688
|
const effectiveCwd = resolveLaunchCwd(input.member.cwd, input.rigRoot, input.cwdOverride);
|
|
1689
|
+
// Export and snapshot can run before launch. Resolve inherited Advisor values
|
|
1690
|
+
// during creation; launch still re-resolves the original spec for later edits.
|
|
1691
|
+
let advisor = resolveAdvisorModel(input.member.advisor);
|
|
1692
|
+
if (advisor === undefined && input.member.agentRef !== "builtin:terminal") {
|
|
1693
|
+
const resolved = resolveAgentRef(input.member.agentRef, input.rigRoot, this.deps.fsOps);
|
|
1694
|
+
if (!resolved.ok) {
|
|
1695
|
+
throw new Error(resolved.code === "validation_failed" ? resolved.errors.join("; ") : resolved.error);
|
|
1696
|
+
}
|
|
1697
|
+
const spec = resolved.resolved.spec;
|
|
1698
|
+
const profile = spec.profiles[input.member.profile];
|
|
1699
|
+
if (!profile)
|
|
1700
|
+
throw new Error(`Profile "${input.member.profile}" not found in spec "${spec.name}"`);
|
|
1701
|
+
advisor = resolveAdvisorModel(undefined, profile.preferences?.advisor, spec.defaults?.advisor);
|
|
1702
|
+
}
|
|
1618
1703
|
const node = this.deps.rigRepo.addNode(input.rigId, input.qualifiedId, {
|
|
1619
1704
|
role: input.member.role,
|
|
1620
1705
|
runtime: input.member.runtime,
|
|
1621
1706
|
model: input.member.model,
|
|
1622
1707
|
effort: input.member.effort,
|
|
1708
|
+
advisor,
|
|
1623
1709
|
codexConfigProfile: input.member.codexConfigProfile,
|
|
1624
1710
|
// OPR.0.4.8.3 Seam B: the member's OWN raw ref persists on the node (like role);
|
|
1625
1711
|
// rig-level lives on the rig row; precedence applies at RESOLUTION, not storage.
|
|
@@ -1669,6 +1755,86 @@ export class PodRigInstantiator {
|
|
|
1669
1755
|
readFile: (p) => this.deps.fsOps.readFile(p),
|
|
1670
1756
|
});
|
|
1671
1757
|
}
|
|
1758
|
+
/** Store the rig culture file and rig startup block the spec declares, with the absolute root they resolve against. */
|
|
1759
|
+
persistRigStartupLayers(rigId, rigSpec, rigRoot) {
|
|
1760
|
+
const podStartupFiles = {};
|
|
1761
|
+
for (const pod of rigSpec.pods) {
|
|
1762
|
+
if (pod.startup?.files.length)
|
|
1763
|
+
podStartupFiles[pod.id] = pod.startup.files;
|
|
1764
|
+
}
|
|
1765
|
+
const hasPodFiles = Object.keys(podStartupFiles).length > 0;
|
|
1766
|
+
if (!rigSpec.cultureFile && !rigSpec.startup && !hasPodFiles)
|
|
1767
|
+
return;
|
|
1768
|
+
this.deps.rigRepo.setRigStartupLayers(rigId, {
|
|
1769
|
+
root: nodePath.resolve(rigRoot),
|
|
1770
|
+
cultureFile: rigSpec.cultureFile,
|
|
1771
|
+
startup: rigSpec.startup,
|
|
1772
|
+
...(hasPodFiles ? { podStartupFiles } : {}),
|
|
1773
|
+
});
|
|
1774
|
+
}
|
|
1775
|
+
/** Whether a runtime reads startup files at all. A terminal seat's adapter delivers nothing, and a community harness
|
|
1776
|
+
* takes none (it only warns), so a missing file can't fail either; main adds them today and keeps doing so. */
|
|
1777
|
+
runtimeTakesStartupFiles(runtime) {
|
|
1778
|
+
return runtime !== "terminal" && !isCommunityHarnessRuntime(runtime);
|
|
1779
|
+
}
|
|
1780
|
+
/** Why an add must stop: a startup file the rig or the pod declared as required, or the rig's declared `culture_file`,
|
|
1781
|
+
* that the add would inherit but cannot read. Empty when nothing is recorded (a rig created before the record, or
|
|
1782
|
+
* one that declared nothing) or every such file reads. Optional files and files that apply only on restore are not checked. */
|
|
1783
|
+
inheritedStartupFileErrors(rigId, rigName, podId) {
|
|
1784
|
+
const layers = this.deps.rigRepo.getRigStartupLayers(rigId);
|
|
1785
|
+
if (!layers)
|
|
1786
|
+
return [];
|
|
1787
|
+
const readable = (absolutePath) => {
|
|
1788
|
+
try {
|
|
1789
|
+
this.deps.fsOps.readFile(absolutePath);
|
|
1790
|
+
return true;
|
|
1791
|
+
}
|
|
1792
|
+
catch {
|
|
1793
|
+
return false;
|
|
1794
|
+
}
|
|
1795
|
+
};
|
|
1796
|
+
const errors = [];
|
|
1797
|
+
const check = (path, owner, what) => {
|
|
1798
|
+
const absolutePath = nodePath.resolve(layers.root, path);
|
|
1799
|
+
if (!readable(absolutePath)) {
|
|
1800
|
+
errors.push(`${what} "${path}" (${absolutePath}), declared by ${owner}, is missing or unreadable.`);
|
|
1801
|
+
}
|
|
1802
|
+
};
|
|
1803
|
+
const rigOwner = `rig "${rigName}"`;
|
|
1804
|
+
if (layers.cultureFile)
|
|
1805
|
+
check(layers.cultureFile, rigOwner, "The rig's culture_file");
|
|
1806
|
+
for (const f of layers.startup?.files ?? []) {
|
|
1807
|
+
if (f.required && f.appliesOn.includes("fresh_start"))
|
|
1808
|
+
check(f.path, rigOwner, "Required startup file");
|
|
1809
|
+
}
|
|
1810
|
+
for (const f of (podId ? layers.podStartupFiles?.[podId] : undefined) ?? []) {
|
|
1811
|
+
if (f.required && f.appliesOn.includes("fresh_start"))
|
|
1812
|
+
check(f.path, `pod "${podId}" of ${rigOwner}`, "Required startup file");
|
|
1813
|
+
}
|
|
1814
|
+
if (errors.length > 0)
|
|
1815
|
+
errors.push("No seat was added. Restore the file, then run the command again.");
|
|
1816
|
+
return errors;
|
|
1817
|
+
}
|
|
1818
|
+
/** The files a seat's pod contributes: the pod's own startup when the launching spec declares it (a declared seat),
|
|
1819
|
+
* else the pod files recorded when the rig was created (a seat added to that pod), resolved against the rig's stored root. */
|
|
1820
|
+
podStartupResolvedFiles(pod, rigLayers, rigRoot) {
|
|
1821
|
+
if (pod.startup) {
|
|
1822
|
+
return pod.startup.files.map((f) => ({ ...f, absolutePath: nodePath.resolve(rigRoot, f.path), ownerRoot: rigRoot }));
|
|
1823
|
+
}
|
|
1824
|
+
return (rigLayers.podStartupFiles?.[pod.id] ?? []).map((f) => ({ ...f, absolutePath: nodePath.resolve(rigLayers.root, f.path), ownerRoot: rigLayers.root }));
|
|
1825
|
+
}
|
|
1826
|
+
/** The rig culture file and rig startup block a seat launches with, and the root they resolve against: the spec's
|
|
1827
|
+
* own when it declares them, else those stored when the rig was created. Expand, add-member and first-start retry
|
|
1828
|
+
* launch from a synthetic spec that declares neither, so an added seat gets the rig's layers as an original seat did. */
|
|
1829
|
+
rigStartupLayers(rigSpec, rigRoot, rigId) {
|
|
1830
|
+
if (rigSpec.cultureFile || rigSpec.startup)
|
|
1831
|
+
return { root: rigRoot, cultureFile: rigSpec.cultureFile, startup: rigSpec.startup };
|
|
1832
|
+
return this.deps.rigRepo.getRigStartupLayers(rigId) ?? { root: rigRoot };
|
|
1833
|
+
}
|
|
1834
|
+
/** The spec as the startup layering sees it: carrying the rig layers the seat launches with. */
|
|
1835
|
+
withRigStartupLayers(rigSpec, layers) {
|
|
1836
|
+
return { ...rigSpec, cultureFile: layers.cultureFile, startup: layers.startup };
|
|
1837
|
+
}
|
|
1672
1838
|
/** Seam B Guard-F2: the STRICT materialize/add-member persist — provenance here is
|
|
1673
1839
|
* LOAD-BEARING restart state; a real write failure must fail the surrounding
|
|
1674
1840
|
* transaction, never commit a node without it. (The repository setter itself still
|
|
@@ -1701,6 +1867,7 @@ export class PodRigInstantiator {
|
|
|
1701
1867
|
: resolveResult.error;
|
|
1702
1868
|
return { status: "failed", error: msg };
|
|
1703
1869
|
}
|
|
1870
|
+
const rigLayers = this.rigStartupLayers(input.rigSpec, input.rigRoot, input.rigId);
|
|
1704
1871
|
const configResult = input.configResult ?? resolveNodeConfig({
|
|
1705
1872
|
baseSpec: resolveResult.resolved,
|
|
1706
1873
|
importedSpecs: resolveResult.imports,
|
|
@@ -1710,7 +1877,7 @@ export class PodRigInstantiator {
|
|
|
1710
1877
|
cwdOverride: input.cwdOverride,
|
|
1711
1878
|
member: input.member,
|
|
1712
1879
|
pod: input.pod,
|
|
1713
|
-
rig: input.rigSpec,
|
|
1880
|
+
rig: this.withRigStartupLayers(input.rigSpec, rigLayers),
|
|
1714
1881
|
skillsRoot: this.resolveSkillsRoot(),
|
|
1715
1882
|
...this.systemWorldResolutionContext(),
|
|
1716
1883
|
});
|
|
@@ -1742,6 +1909,45 @@ export class PodRigInstantiator {
|
|
|
1742
1909
|
}
|
|
1743
1910
|
const canonicalSessionName = deriveCanonicalSessionName(input.pod.id, input.member.id, input.rigSpec.name);
|
|
1744
1911
|
const keptSkillWarnings = [];
|
|
1912
|
+
// OPR.0.7.0.13 — a team seat's skills go to storage OpenRig owns for this rig and logical seat, not into the
|
|
1913
|
+
// person's project: for Claude, reached through the seat's own plugin; for Codex, through the catalog its per-seat
|
|
1914
|
+
// startup text delivers. Made for every Claude and Codex seat, so profile skills land there even with no loadout.
|
|
1915
|
+
const seatRuntime = configResult.config.runtime === "claude-code" || configResult.config.runtime === "codex" ? configResult.config.runtime : undefined;
|
|
1916
|
+
const seatSkills = seatRuntime ? seatSkillPaths({ rigId: input.rigId, logicalId: input.qualifiedId, runtime: seatRuntime }) : undefined;
|
|
1917
|
+
let loadoutReceipts = 0;
|
|
1918
|
+
if (seatSkills && seatRuntime === "claude-code") {
|
|
1919
|
+
keptSkillWarnings.push(...ensureSeatSkillPlugin(seatSkills));
|
|
1920
|
+
// OPR.0.7.0.9 — the member's own agent, prompt file and plugin folders, copied into the seat's storage. Asking for
|
|
1921
|
+
// none removes an earlier request. A missing or refused source fails this seat by name; the rest still launch.
|
|
1922
|
+
const beside = (path) => nodePath.resolve(input.rigRoot, path);
|
|
1923
|
+
const prepared = input.keepRecordedAdditions ? { ok: true, notes: [] } : prepareSeatLaunchAdditions(seatSkills, {
|
|
1924
|
+
...(input.member.agentFile ? { agentFile: beside(input.member.agentFile) } : {}),
|
|
1925
|
+
...(input.member.appendSystemPromptFile ? { appendSystemPromptFile: beside(input.member.appendSystemPromptFile) } : {}),
|
|
1926
|
+
...(input.member.pluginDirs?.length ? { pluginDirs: input.member.pluginDirs.map(beside) } : {}),
|
|
1927
|
+
});
|
|
1928
|
+
// A linked seat-storage ancestor: the seat starts without its additions, each named; nothing goes through the link.
|
|
1929
|
+
// A missing or refused source still fails the seat.
|
|
1930
|
+
const linked = !prepared.ok && prepared.code === "seat_storage_refused" ? seatSkillLocation(seatSkills).refuseMutation?.() : undefined;
|
|
1931
|
+
if (!prepared.ok && !linked)
|
|
1932
|
+
return { status: "failed", error: prepared.message, sessionName: canonicalSessionName };
|
|
1933
|
+
if (linked) {
|
|
1934
|
+
const asked = [input.member.agentFile, input.member.appendSystemPromptFile, ...(input.member.pluginDirs ?? [])].filter((ref) => !!ref);
|
|
1935
|
+
for (const ref of asked)
|
|
1936
|
+
keptSkillWarnings.push(`seat_launch_addition_not_delivered: ${ref}: ${linked}; the seat starts without it`);
|
|
1937
|
+
}
|
|
1938
|
+
keptSkillWarnings.push(...(prepared.ok ? prepared.notes ?? [] : []));
|
|
1939
|
+
}
|
|
1940
|
+
if (seatSkills && seatRuntime === "codex") {
|
|
1941
|
+
// A catalog that can't be written is this seat's named result, never an error that escapes the rig's launch.
|
|
1942
|
+
try {
|
|
1943
|
+
const catalog = writeSeatSkillCatalog(seatSkills);
|
|
1944
|
+
if (catalog.kept)
|
|
1945
|
+
keptSkillWarnings.push(seatCatalogKeptNote(catalog));
|
|
1946
|
+
}
|
|
1947
|
+
catch (error) {
|
|
1948
|
+
keptSkillWarnings.push(`seat_catalog_not_written: ${seatSkills.catalogPath}: ${error.message}`);
|
|
1949
|
+
}
|
|
1950
|
+
}
|
|
1745
1951
|
if (configResult.config.skillLoadout
|
|
1746
1952
|
&& this.deps.skillReconciler
|
|
1747
1953
|
&& (configResult.config.runtime === "claude-code" || configResult.config.runtime === "codex")) {
|
|
@@ -1751,6 +1957,7 @@ export class PodRigInstantiator {
|
|
|
1751
1957
|
cwd: configResult.config.cwd,
|
|
1752
1958
|
apply: true,
|
|
1753
1959
|
topologyOwner: canonicalSessionName,
|
|
1960
|
+
...(seatSkills ? { location: seatSkillLocation(seatSkills, seatRuntime) } : {}),
|
|
1754
1961
|
});
|
|
1755
1962
|
const loadout = configResult.config.skillLoadout;
|
|
1756
1963
|
let projection = reconcile(loadout);
|
|
@@ -1763,14 +1970,28 @@ export class PodRigInstantiator {
|
|
|
1763
1970
|
projection = withoutPlugins;
|
|
1764
1971
|
}
|
|
1765
1972
|
}
|
|
1766
|
-
|
|
1973
|
+
// A seat whose storage a link refuses starts without its seat skills, and says what it lost: nothing is written
|
|
1974
|
+
// through the link and nothing falls back into the project. Any other reconciliation error still fails the seat.
|
|
1975
|
+
const refusedOnly = !projection.ok && projection.errors.every((error) => error.code === "seat_storage_refused");
|
|
1976
|
+
if (refusedOnly) {
|
|
1977
|
+
keptSkillWarnings.push(`seat_skills_not_delivered: ${loadout.entries.map((entry) => entry.id).join(", ")}: ${projection.errors.map((error) => `${error.code}: ${error.message}`).join("; ")}; the seat starts without these selected skills`);
|
|
1978
|
+
}
|
|
1979
|
+
else if (!projection.ok) {
|
|
1767
1980
|
return {
|
|
1768
1981
|
status: "failed",
|
|
1769
1982
|
error: projection.errors.map((error) => `${error.code}: ${error.message}`).join("; "),
|
|
1770
1983
|
sessionName: canonicalSessionName,
|
|
1771
1984
|
};
|
|
1772
1985
|
}
|
|
1773
|
-
|
|
1986
|
+
// OPR.0.7.0.13: copies this seat's earlier launches put in the project. They go only when the project's own
|
|
1987
|
+
// loadout record names this seat as their sole owner and they are unchanged (the reconciler's own rule for a
|
|
1988
|
+
// deselected skill); a skill the person installed for the project stays selected. While another seat still
|
|
1989
|
+
// shares those copies, nothing is removed and the note says why.
|
|
1990
|
+
if (seatSkills && seatRuntime === "claude-code" && projection.ok) {
|
|
1991
|
+
keptSkillWarnings.push(...migrateLegacyProjectSkills({ reconcile: this.deps.skillReconciler, loadout, cwd: configResult.config.cwd, owner: canonicalSessionName }));
|
|
1992
|
+
}
|
|
1993
|
+
loadoutReceipts = projection.ok ? projection.receipts.length : 0;
|
|
1994
|
+
for (const receipt of projection.ok ? projection.receipts.filter(isKeptPluginSkill) : []) {
|
|
1774
1995
|
keptSkillWarnings.push(`plugin_skill_kept: ${receipt.id}: ${receipt.detail.slice("kept: ".length)} (${receipt.target})`);
|
|
1775
1996
|
}
|
|
1776
1997
|
}
|
|
@@ -1784,7 +2005,7 @@ export class PodRigInstantiator {
|
|
|
1784
2005
|
pluginPaths: selectedPluginPaths(configResult.config.selectedResources),
|
|
1785
2006
|
});
|
|
1786
2007
|
if (!launchResult.ok) {
|
|
1787
|
-
return { status: "failed", error: launchResult.message };
|
|
2008
|
+
return { status: "failed", code: launchResult.code, error: launchResult.message };
|
|
1788
2009
|
}
|
|
1789
2010
|
try {
|
|
1790
2011
|
this.db.prepare("UPDATE sessions SET restore_policy = ? WHERE id = ?")
|
|
@@ -1800,6 +2021,13 @@ export class PodRigInstantiator {
|
|
|
1800
2021
|
// overwrite). REAL store-backed lookup on this.db (never a mock/null — the
|
|
1801
2022
|
// uninjected-service dead-invalidator class the P17 comment below records).
|
|
1802
2023
|
const projectionManifest = new ProjectionManifestStore(this.db);
|
|
2024
|
+
const claudeSeatPlugin = input.member.runtime === "claude-code" ? seatSkillPluginDirForNode(this.db, input.nodeId) : undefined;
|
|
2025
|
+
const claudeSeatSkillsRoot = claudeSeatPlugin ? nodePath.join(claudeSeatPlugin, "skills") : undefined;
|
|
2026
|
+
const codexSeatSkillsRoot = input.member.runtime === "codex" ? seatSkillPathsForNode(this.db, input.nodeId)?.skillsRoot : undefined;
|
|
2027
|
+
// Where a link refused this seat's storage, its skills are planned (and refused) there, not in the project.
|
|
2028
|
+
const refusedSeatSkillsRoot = claudeSeatSkillsRoot || codexSeatSkillsRoot ? undefined : refusedSeatSkillsRootForNode(this.db, input.nodeId)?.skillsRoot;
|
|
2029
|
+
const claudeSkillTargetRoot = input.member.runtime === "claude-code" ? claudeSeatSkillsRoot ?? refusedSeatSkillsRoot : undefined;
|
|
2030
|
+
const codexSkillTargetRoot = input.member.runtime === "codex" ? codexSeatSkillsRoot ?? refusedSeatSkillsRoot : undefined;
|
|
1803
2031
|
const planResult = planProjection({
|
|
1804
2032
|
config: configResult.config,
|
|
1805
2033
|
collisions: resolveResult.collisions,
|
|
@@ -1811,10 +2039,13 @@ export class PodRigInstantiator {
|
|
|
1811
2039
|
// the same source startNode binds for the write). An adapter that writes skills
|
|
1812
2040
|
// outside the project tree (OMP's seat agent dir) names its own skill target.
|
|
1813
2041
|
resolveTargetPath: (category, effectiveId, cwd, sourcePath) => input.member.runtime === "codex" && category === "skill"
|
|
1814
|
-
? nodePath.join(cwd, ".agents", "skills", effectiveId, "SKILL.md")
|
|
1815
|
-
:
|
|
1816
|
-
|
|
1817
|
-
|
|
2042
|
+
? nodePath.join(codexSkillTargetRoot ?? nodePath.join(cwd, ".agents", "skills"), effectiveId, "SKILL.md")
|
|
2043
|
+
// OPR.0.7.0.13: a Claude seat's skills are written to its own storage, so an edit there is what to protect.
|
|
2044
|
+
: input.member.runtime === "claude-code" && category === "skill" && claudeSkillTargetRoot
|
|
2045
|
+
? nodePath.join(claudeSkillTargetRoot, effectiveId, "SKILL.md")
|
|
2046
|
+
: category === "skill" && adapter.skillTargetPath
|
|
2047
|
+
? adapter.skillTargetPath(launchResult.binding.tmuxSession, effectiveId)
|
|
2048
|
+
: claudeConflictTargetPath(category, effectiveId, cwd, sourcePath, input.member.runtime === "claude-code" ? this.deps.rigRepo.getRigClaudeManagedBlockFile(input.rigId) ?? undefined : undefined),
|
|
1818
2049
|
lastHashLookup: (targetPath) => projectionManifest.lastHash(targetPath),
|
|
1819
2050
|
});
|
|
1820
2051
|
if (!planResult.ok) {
|
|
@@ -1828,12 +2059,31 @@ export class PodRigInstantiator {
|
|
|
1828
2059
|
if (input.member.runtime === "codex" && !input.force) {
|
|
1829
2060
|
planResult.plan.entries = planResult.plan.entries.filter(entry => entry.category !== "skill" || entry.classification !== "operator_conflict");
|
|
1830
2061
|
}
|
|
1831
|
-
const resolvedFiles = this.buildResolvedStartupFiles(resolveResult.resolved.spec, resolveResult.resolved.sourcePath, resolveResult.resolved.spec.profiles[input.member.profile],
|
|
2062
|
+
const resolvedFiles = this.buildResolvedStartupFiles(resolveResult.resolved.spec, resolveResult.resolved.sourcePath, resolveResult.resolved.spec.profiles[input.member.profile], rigLayers, input.rigRoot, input.pod, input.member);
|
|
1832
2063
|
const managedDedupedFiles = this.dedupeProjectedManagedStartupFiles(planResult.plan, resolvedFiles);
|
|
1833
2064
|
// P20 atom-4 PROTECT: hold back operator-edited skill targets (operator_conflict)
|
|
1834
2065
|
// so the adapter never overwrites an operator's edit unless an internal caller sets
|
|
1835
2066
|
// input.force. The warning names the source-edit/move-aside remedies available to users.
|
|
1836
|
-
const
|
|
2067
|
+
const protectedFiltered = filterProtectedProjections(managedDedupedFiles, planResult.plan, { force: input.force }).delivered;
|
|
2068
|
+
// OPR.0.7.0.13 (Codex C2): the seat's own catalog, through its per-seat startup text (the route role material takes,
|
|
2069
|
+
// never the shared AGENTS.md). Fresh starts and fresh-primed restores send it; native resume and in-place restart
|
|
2070
|
+
// replay nothing. The startup orchestrator rebuilds the file after this launch's projection.
|
|
2071
|
+
// OPR.0.7.0.13: the compatibility limit, named rather than silent, whichever writer puts a skill in a Claude seat's
|
|
2072
|
+
// storage (its loadout, a profile skill, a startup skill file). Nothing falls back to the project.
|
|
2073
|
+
const versionNote = claudeSeatSkillsRoot
|
|
2074
|
+
? claudeSeatSkillsNote({ loadoutReceipts, planEntries: planResult.plan.entries, startupFiles: protectedFiltered }) : undefined;
|
|
2075
|
+
if (versionNote)
|
|
2076
|
+
(launchResult.warnings ??= []).push(`${canonicalSessionName}: ${versionNote}`);
|
|
2077
|
+
// OPR.0.7.0.13 (router, R1.1): the one-line seat-skills bootstrap is part of a seat's saved startup files whenever it
|
|
2078
|
+
// has its own skill storage. Each start decides from the person's saved answer whether to deliver it (startup
|
|
2079
|
+
// orchestrator), so a later yes or no applies to restores too; a Codex seat's startup catalog below is unchanged.
|
|
2080
|
+
const bootstrapLine = seatSkills && (codexSeatSkillsRoot || claudeSeatSkillsRoot) ? [seatSkillsPointerStartupFile()] : [];
|
|
2081
|
+
const dedupedResolvedFiles = codexSeatSkillsRoot && seatSkills
|
|
2082
|
+
? [...protectedFiltered, ...bootstrapLine, {
|
|
2083
|
+
path: "openrig-seat-skills.md", absolutePath: seatSkills.catalogPath, ownerRoot: seatSkills.root,
|
|
2084
|
+
deliveryHint: "send_text", required: false, appliesOn: ["fresh_start", "restore"],
|
|
2085
|
+
}]
|
|
2086
|
+
: [...protectedFiltered, ...bootstrapLine];
|
|
1837
2087
|
const binding = {
|
|
1838
2088
|
id: launchResult.binding.id,
|
|
1839
2089
|
nodeId: input.nodeId,
|
|
@@ -1848,6 +2098,7 @@ export class PodRigInstantiator {
|
|
|
1848
2098
|
// The seat's saved effort choice wins over the authored value just written by
|
|
1849
2099
|
// updateNodeResolvedConfig; a seat without one launches with exactly that authored value.
|
|
1850
2100
|
effort: (readSeatEffort(this.deps.rigRepo.db, input.nodeId) ?? { effective: configResult.config.effort ?? null }).effective ?? undefined,
|
|
2101
|
+
advisor: configResult.config.advisor,
|
|
1851
2102
|
codexConfigProfile: input.member.codexConfigProfile,
|
|
1852
2103
|
// OPR.0.4.8.3 Seam B: resolved launch posture (member > rig > persisted > FLOOR)
|
|
1853
2104
|
// binds per-seat explicitly; adapters thread it into the yolo-mode helpers.
|
|
@@ -2046,7 +2297,7 @@ export class PodRigInstantiator {
|
|
|
2046
2297
|
const canonicalSessionName = deriveCanonicalSessionName(input.pod.id, input.member.id, input.rigSpec.name);
|
|
2047
2298
|
const launchResult = await this.deps.nodeLauncher.launchNode(input.rigId, input.qualifiedId, { sessionName: canonicalSessionName, env: input.envOverride });
|
|
2048
2299
|
if (!launchResult.ok) {
|
|
2049
|
-
return { status: "failed", error: launchResult.message };
|
|
2300
|
+
return { status: "failed", code: launchResult.code, error: launchResult.message };
|
|
2050
2301
|
}
|
|
2051
2302
|
try {
|
|
2052
2303
|
this.db.prepare("UPDATE nodes SET restore_policy = ? WHERE id = ?")
|
|
@@ -2058,16 +2309,17 @@ export class PodRigInstantiator {
|
|
|
2058
2309
|
.run("checkpoint_only", launchResult.session.id);
|
|
2059
2310
|
}
|
|
2060
2311
|
catch { /* best-effort */ }
|
|
2312
|
+
const terminalRigLayers = this.rigStartupLayers(input.rigSpec, input.rigRoot, input.rigId);
|
|
2061
2313
|
const startup = resolveStartup({
|
|
2062
2314
|
specStartup: { files: [], actions: [] },
|
|
2063
2315
|
profileStartup: undefined,
|
|
2064
|
-
rigCultureFile:
|
|
2065
|
-
rigStartup:
|
|
2316
|
+
rigCultureFile: terminalRigLayers.cultureFile,
|
|
2317
|
+
rigStartup: terminalRigLayers.startup,
|
|
2066
2318
|
podStartup: input.pod.startup,
|
|
2067
2319
|
memberStartup: input.member.startup,
|
|
2068
2320
|
operatorStartup: undefined,
|
|
2069
2321
|
});
|
|
2070
|
-
const resolvedFiles = this.buildTerminalResolvedStartupFiles(
|
|
2322
|
+
const resolvedFiles = this.buildTerminalResolvedStartupFiles(terminalRigLayers, input.rigRoot, input.pod, input.member);
|
|
2071
2323
|
const binding = {
|
|
2072
2324
|
id: launchResult.binding.id,
|
|
2073
2325
|
nodeId: input.nodeId,
|
|
@@ -2136,38 +2388,36 @@ export class PodRigInstantiator {
|
|
|
2136
2388
|
else {
|
|
2137
2389
|
this.deps.rigRepo.clearNodeEffort(nodeId);
|
|
2138
2390
|
}
|
|
2391
|
+
// Removing Advisor from the resolved spec must also remove its persisted launch flag.
|
|
2392
|
+
this.deps.rigRepo.setNodeAdvisor(nodeId, config.advisor ?? null);
|
|
2139
2393
|
}
|
|
2140
2394
|
catch {
|
|
2141
2395
|
/* best-effort */
|
|
2142
2396
|
}
|
|
2143
2397
|
}
|
|
2144
|
-
buildTerminalResolvedStartupFiles(
|
|
2398
|
+
buildTerminalResolvedStartupFiles(rigLayers, rigRoot, pod, member) {
|
|
2145
2399
|
const files = [];
|
|
2146
2400
|
// Skip layers 1-2 (agent base, profile) — terminal nodes have no agent spec
|
|
2147
2401
|
// Layer 3: OpenRig culture floor, then the rig-specific overlay.
|
|
2148
2402
|
files.push(defaultCultureStartupFile());
|
|
2149
|
-
if (
|
|
2403
|
+
if (rigLayers.cultureFile) {
|
|
2150
2404
|
files.push({
|
|
2151
|
-
path:
|
|
2152
|
-
absolutePath: nodePath.resolve(
|
|
2153
|
-
ownerRoot:
|
|
2405
|
+
path: rigLayers.cultureFile,
|
|
2406
|
+
absolutePath: nodePath.resolve(rigLayers.root, rigLayers.cultureFile),
|
|
2407
|
+
ownerRoot: rigLayers.root,
|
|
2154
2408
|
deliveryHint: "auto",
|
|
2155
2409
|
required: true,
|
|
2156
2410
|
appliesOn: ["fresh_start", "restore"],
|
|
2157
2411
|
});
|
|
2158
2412
|
}
|
|
2159
2413
|
// Layer 4: Rig startup
|
|
2160
|
-
if (
|
|
2161
|
-
for (const f of
|
|
2162
|
-
files.push({ ...f, absolutePath: nodePath.resolve(
|
|
2414
|
+
if (rigLayers.startup) {
|
|
2415
|
+
for (const f of rigLayers.startup.files) {
|
|
2416
|
+
files.push({ ...f, absolutePath: nodePath.resolve(rigLayers.root, f.path), ownerRoot: rigLayers.root });
|
|
2163
2417
|
}
|
|
2164
2418
|
}
|
|
2165
2419
|
// Layer 5: Pod startup
|
|
2166
|
-
|
|
2167
|
-
for (const f of pod.startup.files) {
|
|
2168
|
-
files.push({ ...f, absolutePath: nodePath.resolve(rigRoot, f.path), ownerRoot: rigRoot });
|
|
2169
|
-
}
|
|
2170
|
-
}
|
|
2420
|
+
files.push(...this.podStartupResolvedFiles(pod, rigLayers, rigRoot));
|
|
2171
2421
|
// Layer 6: Member startup
|
|
2172
2422
|
if (member.startup) {
|
|
2173
2423
|
for (const f of member.startup.files) {
|
|
@@ -2176,7 +2426,7 @@ export class PodRigInstantiator {
|
|
|
2176
2426
|
}
|
|
2177
2427
|
return this.resolveAutoHints(files);
|
|
2178
2428
|
}
|
|
2179
|
-
buildResolvedStartupFiles(agentSpec, agentSourcePath, profile,
|
|
2429
|
+
buildResolvedStartupFiles(agentSpec, agentSourcePath, profile, rigLayers, rigRoot, pod, member) {
|
|
2180
2430
|
const files = [];
|
|
2181
2431
|
// nodePath imported at top level (ESM)
|
|
2182
2432
|
// 1. Agent base startup
|
|
@@ -2191,28 +2441,24 @@ export class PodRigInstantiator {
|
|
|
2191
2441
|
}
|
|
2192
2442
|
// 3. OpenRig culture floor, then the rig-specific overlay.
|
|
2193
2443
|
files.push(defaultCultureStartupFile());
|
|
2194
|
-
if (
|
|
2444
|
+
if (rigLayers.cultureFile) {
|
|
2195
2445
|
files.push({
|
|
2196
|
-
path:
|
|
2197
|
-
absolutePath: nodePath.resolve(
|
|
2198
|
-
ownerRoot:
|
|
2446
|
+
path: rigLayers.cultureFile,
|
|
2447
|
+
absolutePath: nodePath.resolve(rigLayers.root, rigLayers.cultureFile),
|
|
2448
|
+
ownerRoot: rigLayers.root,
|
|
2199
2449
|
deliveryHint: "auto",
|
|
2200
2450
|
required: true,
|
|
2201
2451
|
appliesOn: ["fresh_start", "restore"],
|
|
2202
2452
|
});
|
|
2203
2453
|
}
|
|
2204
2454
|
// 4. Rig startup
|
|
2205
|
-
if (
|
|
2206
|
-
for (const f of
|
|
2207
|
-
files.push({ ...f, absolutePath: nodePath.resolve(
|
|
2455
|
+
if (rigLayers.startup) {
|
|
2456
|
+
for (const f of rigLayers.startup.files) {
|
|
2457
|
+
files.push({ ...f, absolutePath: nodePath.resolve(rigLayers.root, f.path), ownerRoot: rigLayers.root });
|
|
2208
2458
|
}
|
|
2209
2459
|
}
|
|
2210
2460
|
// 5. Pod startup
|
|
2211
|
-
|
|
2212
|
-
for (const f of pod.startup.files) {
|
|
2213
|
-
files.push({ ...f, absolutePath: nodePath.resolve(rigRoot, f.path), ownerRoot: rigRoot });
|
|
2214
|
-
}
|
|
2215
|
-
}
|
|
2461
|
+
files.push(...this.podStartupResolvedFiles(pod, rigLayers, rigRoot));
|
|
2216
2462
|
// 6. Member startup
|
|
2217
2463
|
if (member.startup) {
|
|
2218
2464
|
for (const f of member.startup.files) {
|
|
@@ -2298,7 +2544,7 @@ export class PodRigInstantiator {
|
|
|
2298
2544
|
return f;
|
|
2299
2545
|
try {
|
|
2300
2546
|
const content = this.deps.fsOps.readFile(f.absolutePath);
|
|
2301
|
-
return { ...f, deliveryHint: resolveConcreteHint(f.path, content) };
|
|
2547
|
+
return { ...f, deliveryHint: resolveConcreteHint(f.path, content, f.orientation) };
|
|
2302
2548
|
}
|
|
2303
2549
|
catch {
|
|
2304
2550
|
// If file can't be read, default to send_text (safest — delivered after harness ready)
|