@openrig/cli 0.7.0 → 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 +9 -8
- 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/hooks/claude.json +11 -11
- package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +9 -8
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus-health.cjs +2 -2
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +9 -6
- 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 +13 -8
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +19 -4
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +167 -46
- package/daemon/assets/skills/rigs/SKILL.md +2 -1
- 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 +206 -28
- package/daemon/context-packs/reference/getting-started.md +65 -6
- package/daemon/context-packs/reference/manifest.yaml +1 -1
- package/daemon/context-packs/reference/rig-spec.md +82 -2
- package/daemon/context-packs/reference/whats-new.md +162 -113
- package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
- package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/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 +19 -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/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/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 +13 -8
- 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 +167 -46
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-public/manifest.yaml +1 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +94 -26
- 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-runtime-adapter.d.ts +10 -4
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +231 -41
- 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/pi-runner.d.ts +11 -0
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner.js +59 -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/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 +15 -4
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +68 -26
- 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 +16 -0
- package/daemon/dist/db/all-migrations.js.map +1 -1
- 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 +3 -0
- package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
- package/daemon/dist/domain/active-occupant.js +6 -2
- package/daemon/dist/domain/active-occupant.js.map +1 -1
- package/daemon/dist/domain/activity-taxonomy.d.ts +3 -0
- package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
- package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
- package/daemon/dist/domain/agent-activity-store.d.ts +6 -2
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
- package/daemon/dist/domain/agent-activity-store.js +13 -4
- package/daemon/dist/domain/agent-activity-store.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/bootstrap-orchestrator.d.ts +3 -0
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +20 -6
- 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 +19 -1
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +67 -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 +24 -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 +109 -7
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +447 -52
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/claude-core-plugin-env.d.ts +4 -1
- package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -1
- package/daemon/dist/domain/claude-core-plugin-env.js +23 -12
- 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-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/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.map +1 -1
- package/daemon/dist/domain/context-monitor.js +2 -1
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/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/draft-aware-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/draft-aware-delivery.js +1 -1
- 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 +7 -6
- package/daemon/dist/domain/execution-view.js.map +1 -1
- 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/gateway/delivery-rules-engine.d.ts +3 -0
- package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/delivery-rules-engine.js +1 -1
- package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.d.ts +32 -0
- package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.js +71 -4
- package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +52 -4
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.js +9 -2
- package/daemon/dist/domain/gateway/slack/message.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 +1 -3
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +22 -22
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +4 -7
- 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/hot-potato-enforcer.d.ts +1 -1
- package/daemon/dist/domain/human-questions.d.ts +2 -0
- 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.d.ts +5 -1
- package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
- package/daemon/dist/domain/kernel-boot.js +34 -4
- 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-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 +60 -2
- 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 +119 -45
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +9 -3
- 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/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/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/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 +2 -0
- package/daemon/dist/domain/policies/mode-scheduled-end.d.ts.map +1 -1
- package/daemon/dist/domain/policies/mode-scheduled-end.js +5 -1
- package/daemon/dist/domain/policies/mode-scheduled-end.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/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 +14 -2
- 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/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-owner.d.ts +6 -3
- package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
- package/daemon/dist/domain/queue-owner.js +10 -5
- 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-repository.d.ts +54 -21
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +257 -97
- 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 +2 -0
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +37 -3
- package/daemon/dist/domain/queue-stuck-sweep.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.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +18 -6
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- 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.map +1 -1
- package/daemon/dist/domain/rehydrate-eligibility.js +2 -3
- 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 +13 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +151 -26
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts +7 -2
- package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +28 -7
- 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/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-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 +10 -2
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +14 -0
- 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 +78 -8
- 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 +30 -2
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +262 -47
- 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 +3 -0
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +67 -3
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +20 -1
- 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 +4 -2
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +13 -5
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts +19 -0
- package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.js +60 -6
- 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 +66 -11
- package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +8 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +74 -4
- package/daemon/dist/domain/seat-handover-service.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 +29 -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 +1 -1
- package/daemon/dist/domain/seat-launch-environment.js.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +79 -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-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/session-registry.d.ts +4 -0
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js +13 -0
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +52 -21
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +150 -47
- 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 +17 -2
- package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/skill-discovery.js +44 -5
- package/daemon/dist/domain/skill-discovery.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +26 -2
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +226 -14
- package/daemon/dist/domain/startup-orchestrator.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 +6 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +5 -2
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +2 -0
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.js +104 -1
- 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 +58 -2
- 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.js +2 -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 +73 -1
- 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.js +1 -1
- package/daemon/dist/domain/watchdog-delivery.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 +63 -7
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.js +190 -21
- package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +23 -0
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +46 -13
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-exception-escalation.js +7 -3
- 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 +16 -7
- package/daemon/dist/domain/workflow-projector.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 +30 -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.map +1 -1
- package/daemon/dist/routes/activity.js +3 -0
- 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 +10 -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 +31 -10
- package/daemon/dist/routes/compaction.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/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 -0
- 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 +52 -3
- 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 +75 -10
- 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 +38 -12
- 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 +19 -3
- 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 +54 -1
- 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/transport.d.ts.map +1 -1
- package/daemon/dist/routes/transport.js +24 -2
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/routes/up.js +5 -0
- 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 +54 -21
- 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 +27 -2
- 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 +65 -6
- package/daemon/docs/reference/operation-correlation.md +9 -0
- package/daemon/docs/reference/project-workspace.md +6 -0
- package/daemon/docs/reference/quickstart.md +1 -1
- package/daemon/docs/reference/refocus-channel.md +6 -4
- package/daemon/docs/reference/rig-spec.md +82 -2
- package/daemon/docs/reference/seat-delivery.md +73 -2
- package/daemon/docs/reference/slack-app-setup.md +3 -1
- 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 +162 -113
- package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +0 -3
- package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +19 -4
- package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +3 -0
- package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +2 -2
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +36 -10
- 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/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/attach.js +1 -1
- 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/compact-plan.d.ts +2 -0
- package/dist/commands/compact-plan.d.ts.map +1 -1
- package/dist/commands/compact-plan.js +38 -3
- package/dist/commands/compact-plan.js.map +1 -1
- package/dist/commands/compact.js +1 -1
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +7 -1
- package/dist/commands/config.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/export.d.ts +1 -0
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +51 -0
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/fork.d.ts.map +1 -1
- package/dist/commands/fork.js +19 -2
- package/dist/commands/fork.js.map +1 -1
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +2 -1
- 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/launch.js +1 -1
- 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/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 +101 -0
- package/dist/commands/provider.js.map +1 -1
- package/dist/commands/ps.d.ts +12 -1
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +50 -47
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +4 -2
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +24 -15
- 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/seat.d.ts +2 -0
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +124 -6
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +62 -55
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts +24 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +160 -7
- package/dist/commands/setup.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/start.d.ts.map +1 -1
- package/dist/commands/start.js +18 -25
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +4 -1
- 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/up.d.ts.map +1 -1
- package/dist/commands/up.js +75 -30
- package/dist/commands/up.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/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 +15 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +86 -4
- package/dist/config-store.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +4 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +73 -21
- package/dist/daemon-lifecycle.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/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.map +1 -1
- package/dist/host-bindings.js +16 -9
- 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/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 +1112 -436
- package/dist/mcp-server.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 +2 -0
- package/tui/dist/config/config-model.js.map +1 -1
- package/tui/dist/daemon-client.d.ts +18 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +4 -0
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +9 -6
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/main.js +15 -1
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +10 -3
- 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 +25 -0
- package/tui/dist/types.d.ts.map +1 -1
- package/ui/dist/assets/{index-CVgod3Pm.js → index-Blg-p32B.js} +92 -92
- package/ui/dist/index.html +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { codexEnvelopeArgs } from "../domain/codex-rebuild-permissions.js";
|
|
1
2
|
import { operationalLaunchArg } from "./kernel-authority.js";
|
|
2
3
|
import nodePath from "node:path";
|
|
3
4
|
import fs from "node:fs";
|
|
@@ -5,6 +6,7 @@ import { createHash } from "node:crypto";
|
|
|
5
6
|
import { execFile } from "node:child_process";
|
|
6
7
|
import { createRequire } from "node:module";
|
|
7
8
|
import os from "node:os";
|
|
9
|
+
import { isDeepStrictEqual } from "node:util";
|
|
8
10
|
import { parse as parseToml } from "smol-toml";
|
|
9
11
|
import { codexPostureArg } from "./yolo-mode.js";
|
|
10
12
|
import { resolveConcreteHint } from "../domain/runtime-adapter.js";
|
|
@@ -14,7 +16,7 @@ import { assessNativeResumeProbe, buildCodexResumeCore, hasCodexUpdateHeader } f
|
|
|
14
16
|
import { unknownDaemonSupportMessage } from "../domain/codex-daemon-support.js";
|
|
15
17
|
import { CODEX_NETWORK_DEFAULT_OVERRIDE, codexNetworkDefaultArg } from "../domain/codex-network-default.js";
|
|
16
18
|
import { resolveCodexGitAddDirs } from "../domain/codex-git-add-dirs.js";
|
|
17
|
-
import { mergeManagedBlock } from "../domain/managed-blocks.js";
|
|
19
|
+
import { isPerSeatRoleGuidance, mergeManagedBlock, perSeatRoleSkipWarning } from "../domain/managed-blocks.js";
|
|
18
20
|
import { excludeNewGeneratedFiles } from "../domain/generated-file-hygiene.js";
|
|
19
21
|
import { codexQueueStateRoot, codexTeamWorkspaceArg } from "../domain/codex-team-workspace.js";
|
|
20
22
|
import { shellQuote } from "./shell-quote.js";
|
|
@@ -32,6 +34,8 @@ const defaultCodexCli = (args, env) => new Promise((resolve) => {
|
|
|
32
34
|
// Codex's hook trust recipe (the key and hash Codex records for a trusted hook), kept in one script.
|
|
33
35
|
const codexHookTrust = createRequire(import.meta.url)("../../assets/plugins/openrig-core/hooks/scripts/codex-hook-trust.cjs");
|
|
34
36
|
import { listNativeProcesses, observeCodexPaneProcess, observeCodexForkProcess, verifyPaneIdleShell } from "../domain/native-process-lineage.js";
|
|
37
|
+
import { recordSeatSkillWrite, seatPluginSkillsLossNote, seatProjectionComplete, seatSkillWriteRefusal } from "../domain/seat-skill-storage.js";
|
|
38
|
+
import { codexPluginContentHash, planOwnedCodexContentApproval, recordOwnedCodexApproval } from "../domain/codex-owned-plugin-trust.js";
|
|
35
39
|
// The managed resume check's poll window: a quick phase, then an extended one for a slow boot.
|
|
36
40
|
const RESUME_QUICK_ATTEMPTS = 6;
|
|
37
41
|
const RESUME_EXTENDED_ATTEMPTS = 24;
|
|
@@ -88,6 +92,7 @@ export class CodexRuntimeAdapter {
|
|
|
88
92
|
// so each of those runs its whole setup under this one lock, one after another.
|
|
89
93
|
configLock = Promise.resolve();
|
|
90
94
|
codexSystemConfigDir;
|
|
95
|
+
/** Build the Codex launch adapter with injectable filesystem, process, and CLI seams for isolated checks. */
|
|
91
96
|
constructor(deps) {
|
|
92
97
|
this.resolveCorePluginDir = deps.resolveCorePluginDir;
|
|
93
98
|
this.resolveCorePluginSelected = deps.resolveCorePluginSelected;
|
|
@@ -183,9 +188,9 @@ export class CodexRuntimeAdapter {
|
|
|
183
188
|
}
|
|
184
189
|
/**
|
|
185
190
|
* Install the vendored openrig-core plugin into Codex through Codex's own commands, so a seat that selected it gets its
|
|
186
|
-
* refocus and skills, trusting
|
|
191
|
+
* refocus and skills, trusting exact shipped hooks on first install and renewing proven owned content approvals. It runs only when the person's config
|
|
187
192
|
* doesn't disable the plugin (codexCorePluginEnablement), and only when the installed version differs from the vendored
|
|
188
|
-
* one. Codex owns its plugin cache;
|
|
193
|
+
* one. Codex owns its plugin cache; its immutable legacy trust baseline is never rewritten.
|
|
189
194
|
*/
|
|
190
195
|
async ensureCodexCorePlugin() {
|
|
191
196
|
const report = (outcome, reason) => {
|
|
@@ -228,8 +233,17 @@ export class CodexRuntimeAdapter {
|
|
|
228
233
|
});
|
|
229
234
|
if (!matchesShipped(pluginDir))
|
|
230
235
|
return report("skipped", "vendored hook files differ from this daemon's shipped plugin; existing choices are left alone");
|
|
236
|
+
// Installation retains the hook-file predicate; any approval requires the complete shipped tree.
|
|
237
|
+
const matchesShippedTree = (dir) => {
|
|
238
|
+
try {
|
|
239
|
+
return codexPluginContentHash(dir, true) === codexPluginContentHash(shipped, true);
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
};
|
|
231
245
|
const codexHome = nodePath.dirname(this.resolveCodexConfigPath());
|
|
232
|
-
const
|
|
246
|
+
const readLayers = () => codexReadableConfigLayers(codexHome, this.codexSystemConfigDir).map((layer) => {
|
|
233
247
|
if (!this.fs.exists(layer.path))
|
|
234
248
|
return { ...layer, state: "absent" };
|
|
235
249
|
try {
|
|
@@ -239,6 +253,7 @@ export class CodexRuntimeAdapter {
|
|
|
239
253
|
return { ...layer, state: "unreadable", reason: error.message };
|
|
240
254
|
}
|
|
241
255
|
});
|
|
256
|
+
const layers = readLayers();
|
|
242
257
|
const enablement = codexCorePluginEnablement(layers);
|
|
243
258
|
if (enablement.decision !== "allow")
|
|
244
259
|
return report("skipped", enablement.reason);
|
|
@@ -263,11 +278,44 @@ export class CodexRuntimeAdapter {
|
|
|
263
278
|
const cachedDir = nodePath.join(cacheRoot, version);
|
|
264
279
|
const cached = this.fs.exists(cachedDir);
|
|
265
280
|
// Codex's "continue without trusting" choice writes no state. An existing install/configuration may therefore be a
|
|
266
|
-
// decline even with no hooks.state entry.
|
|
267
|
-
//
|
|
281
|
+
// decline even with no hooks.state entry. Absent grants still stay under native review. A proven owned grant may
|
|
282
|
+
// renew its content approval; an unrecorded skip of that exact owned upgrade cannot be distinguished from pending approval.
|
|
268
283
|
const firstInstall = !this.fs.exists(cacheRoot) && !layers.some(layer => layer.state === "read"
|
|
269
284
|
&& Object.hasOwn((parseToml(layer.content).plugins ?? {}), CODEX_CORE_PLUGIN_KEY));
|
|
285
|
+
const renewContentApproval = (freshGrant = false) => {
|
|
286
|
+
const configPath = this.resolveCodexConfigPath();
|
|
287
|
+
const currentLayers = readLayers();
|
|
288
|
+
if (codexCorePluginEnablement(currentLayers).decision !== "allow")
|
|
289
|
+
return;
|
|
290
|
+
const before = this.fs.readFile(configPath);
|
|
291
|
+
const currentSource = recordedMarketplaceSource(before);
|
|
292
|
+
if (currentSource == null || canonical(currentSource) !== canonical(pluginsDir) || !userLayerEnablesCorePlugin(before))
|
|
293
|
+
return;
|
|
294
|
+
let content = before;
|
|
295
|
+
const planned = planOwnedCodexContentApproval({ configPath, content, layers: currentLayers, shipped, installed: cachedDir, freshGrant });
|
|
296
|
+
if (!planned)
|
|
297
|
+
return;
|
|
298
|
+
for (const [key, hash] of Object.entries(planned.hashes))
|
|
299
|
+
content = upsertCodexHookTrust(content, key, hash, "trusted_content_hash");
|
|
300
|
+
// The line writer must not alter examples in strings or duplicate quoted keys.
|
|
301
|
+
try {
|
|
302
|
+
const expected = parseToml(before);
|
|
303
|
+
for (const [key, hash] of Object.entries(planned.hashes))
|
|
304
|
+
expected.hooks.state[key].trusted_content_hash = hash;
|
|
305
|
+
if (!isDeepStrictEqual(parseToml(content), expected))
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
catch {
|
|
309
|
+
return;
|
|
310
|
+
} // Leave native review and owner bytes intact for unsupported TOML spellings.
|
|
311
|
+
if (this.fs.readFile(configPath) !== before)
|
|
312
|
+
return; // A concurrent native choice wins.
|
|
313
|
+
if (content !== before)
|
|
314
|
+
this.fs.writeFile(configPath, content);
|
|
315
|
+
recordOwnedCodexApproval(configPath, planned.approval);
|
|
316
|
+
};
|
|
270
317
|
if (cached && recorded !== undefined && userLayerEnablesCorePlugin(userConfig)) {
|
|
318
|
+
renewContentApproval();
|
|
271
319
|
return report("current", `${CODEX_CORE_PLUGIN_KEY} ${version} is installed and registered`);
|
|
272
320
|
}
|
|
273
321
|
const manifestPath = nodePath.join(pluginsDir, CODEX_MARKETPLACE_MANIFEST_PATH);
|
|
@@ -285,9 +333,11 @@ export class CodexRuntimeAdapter {
|
|
|
285
333
|
const installed = await this.runCodexCli(["plugin", "add", CODEX_CORE_PLUGIN_KEY], env);
|
|
286
334
|
if (installed.status !== 0)
|
|
287
335
|
return report("skipped", `codex plugin add failed: ${(installed.stderr || installed.stdout).trim() || `exit ${installed.status}`}`);
|
|
288
|
-
//
|
|
289
|
-
//
|
|
290
|
-
|
|
336
|
+
// First install grants declarations; Codex0.164 also requires full-bundle content approval. Existing declaration
|
|
337
|
+
// choices are never rewritten. No cache files or native baseline files are rewritten here.
|
|
338
|
+
let freshGrants = 0;
|
|
339
|
+
const grantLayers = readLayers();
|
|
340
|
+
if (firstInstall && codexCorePluginEnablement(grantLayers).decision === "allow" && matchesShippedTree(cachedDir)) {
|
|
291
341
|
let content = this.fs.readFile(this.resolveCodexConfigPath());
|
|
292
342
|
const hookManifest = JSON.parse(fs.readFileSync(nodePath.join(shipped, "hooks/codex.json"), "utf8"));
|
|
293
343
|
for (const [event, groups] of Object.entries(hookManifest.hooks)) {
|
|
@@ -303,13 +353,15 @@ export class CodexRuntimeAdapter {
|
|
|
303
353
|
const value = doc;
|
|
304
354
|
return Object.hasOwn(value.hooks?.state ?? {}, key) || Object.values(doc).some(hasChoice);
|
|
305
355
|
};
|
|
306
|
-
if (!hasChoice(parseToml(content)) && !
|
|
356
|
+
if (!hasChoice(parseToml(content)) && !grantLayers.some(layer => layer.state === "read" && hasChoice(parseToml(layer.content)))) {
|
|
307
357
|
content = upsertCodexHookTrust(content, key, hash);
|
|
358
|
+
freshGrants++;
|
|
308
359
|
}
|
|
309
360
|
}));
|
|
310
361
|
}
|
|
311
362
|
this.fs.writeFile(this.resolveCodexConfigPath(), content);
|
|
312
363
|
}
|
|
364
|
+
renewContentApproval(freshGrants === 6);
|
|
313
365
|
return report("installed", `${CODEX_CORE_PLUGIN_KEY} ${version} through Codex's own install (${enablement.reason})`);
|
|
314
366
|
}
|
|
315
367
|
/**
|
|
@@ -452,7 +504,7 @@ export class CodexRuntimeAdapter {
|
|
|
452
504
|
}
|
|
453
505
|
async listInstalled(binding) {
|
|
454
506
|
const results = [];
|
|
455
|
-
const skillsDir = nodePath.join(binding.cwd, ".agents", "skills");
|
|
507
|
+
const skillsDir = binding.seatSkillsRoot ?? nodePath.join(binding.cwd, ".agents", "skills");
|
|
456
508
|
if (this.fs.exists(skillsDir) && this.fs.listFiles) {
|
|
457
509
|
for (const file of this.fs.listFiles(skillsDir)) {
|
|
458
510
|
results.push({ effectiveId: file, category: "skill", installedPath: nodePath.join(skillsDir, file) });
|
|
@@ -471,7 +523,7 @@ export class CodexRuntimeAdapter {
|
|
|
471
523
|
continue;
|
|
472
524
|
}
|
|
473
525
|
try {
|
|
474
|
-
const didProject = this.projectEntry(entry, binding.cwd, warnings);
|
|
526
|
+
const didProject = this.projectEntry(entry, binding.cwd, warnings, binding.seatSkillsRoot, binding.seatSkillsRefused);
|
|
475
527
|
if (didProject) {
|
|
476
528
|
projected.push(entry.effectiveId);
|
|
477
529
|
}
|
|
@@ -498,7 +550,7 @@ export class CodexRuntimeAdapter {
|
|
|
498
550
|
for (const file of files) {
|
|
499
551
|
try {
|
|
500
552
|
const content = this.fs.readFile(file.absolutePath);
|
|
501
|
-
const hint = file.deliveryHint === "auto" ? this.detectDeliveryHint(file.path, content) : file.deliveryHint;
|
|
553
|
+
const hint = file.deliveryHint === "auto" ? this.detectDeliveryHint(file.path, content, file.orientation) : file.deliveryHint;
|
|
502
554
|
switch (hint) {
|
|
503
555
|
case "guidance_merge": {
|
|
504
556
|
const targetPath = nodePath.join(binding.cwd, "AGENTS.md");
|
|
@@ -508,9 +560,18 @@ export class CodexRuntimeAdapter {
|
|
|
508
560
|
break;
|
|
509
561
|
}
|
|
510
562
|
case "skill_install": {
|
|
511
|
-
const targetDir = nodePath.join(binding.cwd, ".agents", "skills", nodePath.basename(nodePath.dirname(file.absolutePath)));
|
|
563
|
+
const targetDir = nodePath.join(binding.seatSkillsRoot ?? nodePath.join(binding.cwd, ".agents", "skills"), nodePath.basename(nodePath.dirname(file.absolutePath)));
|
|
564
|
+
const skillTarget = nodePath.join(targetDir, nodePath.basename(file.path));
|
|
565
|
+
// OPR.0.7.0.13: never write through a link out of the seat's storage.
|
|
566
|
+
const refusal = binding.seatSkillsRoot ? binding.seatSkillsRefused ?? seatSkillWriteRefusal(binding.seatSkillsRoot, skillTarget) : undefined;
|
|
567
|
+
if (refusal) {
|
|
568
|
+
warnings.push(`skill_install: ${refusal}`);
|
|
569
|
+
continue;
|
|
570
|
+
}
|
|
512
571
|
this.fs.mkdirp(targetDir);
|
|
513
|
-
this.fs.writeFile(
|
|
572
|
+
this.fs.writeFile(skillTarget, content);
|
|
573
|
+
if (binding.seatSkillsRoot)
|
|
574
|
+
recordSeatSkillWrite(binding.seatSkillsRoot, skillTarget, file.absolutePath, content);
|
|
514
575
|
break;
|
|
515
576
|
}
|
|
516
577
|
case "send_text": {
|
|
@@ -548,7 +609,7 @@ export class CodexRuntimeAdapter {
|
|
|
548
609
|
const prepared = await this.prepareLaunch(binding, opts.name, undefined, { installCorePlugin: !opts.resumeToken });
|
|
549
610
|
if (!prepared.ok)
|
|
550
611
|
return prepared;
|
|
551
|
-
const { modelArg, effortArg, appliedLaunch, postureArg, queueStateDirArg, daemonArg, networkArg } = prepared;
|
|
612
|
+
const { modelArg, effortArg, appliedLaunch, postureArg, queueStateDirArg, daemonArg, networkArg, suppressAutoAddDirs } = prepared;
|
|
552
613
|
// Fork branch: `codex fork <parent_thread_id>`. Captures the NEW thread id
|
|
553
614
|
// post-fork. Parent thread id is NOT persisted onto the new seat record
|
|
554
615
|
// (identity-honesty bedrock).
|
|
@@ -602,9 +663,9 @@ export class CodexRuntimeAdapter {
|
|
|
602
663
|
// -s danger-full-access (overrides even a named profile); otherwise the named profile, or
|
|
603
664
|
// OpenRig's explicit -s workspace-write floor flag.
|
|
604
665
|
// Issue #121: only the fresh launch adds git metadata dirs; resume and fork never did.
|
|
605
|
-
const gitDirArg = opts.resumeToken
|
|
666
|
+
const gitDirArg = opts.resumeToken || binding.codexRebuildPermissions
|
|
606
667
|
? ""
|
|
607
|
-
: (await this.resolveGitAddDirs(binding.cwd)).map((dir) => ` --add-dir ${shellQuote(dir)}`).join("");
|
|
668
|
+
: suppressAutoAddDirs ? "" : (await this.resolveGitAddDirs(binding.cwd)).map((dir) => ` --add-dir ${shellQuote(dir)}`).join("");
|
|
608
669
|
const cmd = opts.resumeToken
|
|
609
670
|
// 0.5.2-07 A2-3: the pod-aware RESUME path threads the SPEC model too (reverted before — the
|
|
610
671
|
// grounding map assumed codex parity with the claude adapter, but only fresh emitted -m).
|
|
@@ -683,13 +744,19 @@ export class CodexRuntimeAdapter {
|
|
|
683
744
|
const effortArg = effort ? ` -c ${shellQuote(`model_reasoning_effort="${effort}"`)}` : "";
|
|
684
745
|
const profile = binding.codexConfigProfile?.trim();
|
|
685
746
|
const profileArg = profile ? ` -p ${shellQuote(profile)}` : "";
|
|
686
|
-
const posture =
|
|
687
|
-
|
|
747
|
+
const posture = binding.codexRebuildPermissions
|
|
748
|
+
? profileArg + codexEnvelopeArgs(binding.codexRebuildPermissions)
|
|
749
|
+
: codexPostureArg(profileArg, process.env, binding.launchPosture);
|
|
750
|
+
const appliedLaunch = binding.codexRebuildPermissions
|
|
751
|
+
? { runtime: "codex", axis: "sandbox", state: "observed", value: binding.codexRebuildPermissions.sandboxPolicy.type,
|
|
752
|
+
reason: "emitted_launch_arguments", ...(binding.codexRebuildPermissions.approvalPolicy === "never" ? { approvalPolicy: "never" } : {}) }
|
|
753
|
+
: observeCodexSandbox(posture);
|
|
688
754
|
const postureArg = posture + operationalLaunchArg(this.runtime, binding);
|
|
689
755
|
if (running) {
|
|
690
756
|
// The running Codex already loaded its profile; drift in -p is the caller's to compare.
|
|
691
757
|
return { ok: true, model, modelArg, effort, effortArg, profile, appliedLaunch, postureArg,
|
|
692
758
|
queueStateDirArg: running.addDirs.map((dir) => ` --add-dir ${shellQuote(dir)}`).join(""),
|
|
759
|
+
suppressAutoAddDirs: false,
|
|
693
760
|
daemonOptOut: running.daemonOptOut, daemonArg: running.daemonOptOut ? " --no-daemon" : "",
|
|
694
761
|
networkArg: running.networkOverride ? ` -c ${shellQuote(CODEX_NETWORK_DEFAULT_OVERRIDE)}` : "" };
|
|
695
762
|
}
|
|
@@ -706,10 +773,15 @@ export class CodexRuntimeAdapter {
|
|
|
706
773
|
};
|
|
707
774
|
}
|
|
708
775
|
}
|
|
709
|
-
|
|
776
|
+
// Codex rejects writable --add-dir roots under a read-only sandbox. Only
|
|
777
|
+
// suppress OpenRig's generated roots when later project layers cannot make it writable.
|
|
778
|
+
const suppressAutoAddDirs = Boolean(!binding.codexRebuildPermissions && profile
|
|
779
|
+
&& posture === profileArg && this.profileRemainsReadOnly(profile, binding.cwd));
|
|
780
|
+
const teamWorkspaceArg = !binding.codexRebuildPermissions && binding.teamPermissionDefault && !profile
|
|
710
781
|
&& appliedLaunch.state === "observed" && appliedLaunch.value === "workspace-write"
|
|
711
782
|
? codexTeamWorkspaceArg(this.prepareTeamWorkspace, name) : "";
|
|
712
|
-
const queueStateDirArg =
|
|
783
|
+
const queueStateDirArg = binding.codexRebuildPermissions || suppressAutoAddDirs
|
|
784
|
+
? "" : teamWorkspaceArg || this.buildQueueStateAddDirArg(name);
|
|
713
785
|
// #69: one daemon-support decision for this launch, for the Codex the seat pane runs
|
|
714
786
|
// (its cwd, the launch PATH), applied to fresh, fork and resume.
|
|
715
787
|
const daemonSupport = this.detectDaemonSupport ? await this.detectDaemonSupport(binding.cwd) : undefined;
|
|
@@ -719,10 +791,11 @@ export class CodexRuntimeAdapter {
|
|
|
719
791
|
const daemonOptOut = daemonSupport?.kind === "supported";
|
|
720
792
|
const daemonArg = daemonOptOut ? " --no-daemon" : "";
|
|
721
793
|
// #275: on the plain floor, network access unless Codex reports an opt-out or policy.
|
|
722
|
-
const networkArg =
|
|
794
|
+
const networkArg = binding.codexRebuildPermissions ? ""
|
|
795
|
+
: await codexNetworkDefaultArg(this.readNetworkDefault, appliedLaunch, binding.cwd, name);
|
|
723
796
|
// The launch facts keep the probed daemon choice, so a printed recovery command can repeat it; no probe, no fact.
|
|
724
797
|
const launchFacts = daemonSupport ? { ...appliedLaunch, daemonOptOut } : appliedLaunch;
|
|
725
|
-
return { ok: true, model, modelArg, effort, effortArg, profile, appliedLaunch: launchFacts, postureArg, queueStateDirArg, daemonOptOut, daemonArg, networkArg };
|
|
798
|
+
return { ok: true, model, modelArg, effort, effortArg, profile, appliedLaunch: launchFacts, postureArg, queueStateDirArg, suppressAutoAddDirs, daemonOptOut, daemonArg, networkArg };
|
|
726
799
|
}
|
|
727
800
|
resumeCore(prepared, resumeToken, binding) {
|
|
728
801
|
const { profile, queueStateDirArg, model, postureArg, networkArg, daemonOptOut, effort } = prepared;
|
|
@@ -739,6 +812,81 @@ export class CodexRuntimeAdapter {
|
|
|
739
812
|
const root = codexQueueStateRoot(sessionName, sharedDocsRoot);
|
|
740
813
|
return root ? ` --add-dir ${shellQuote(root)}` : "";
|
|
741
814
|
}
|
|
815
|
+
/**
|
|
816
|
+
* Return true only when visible config proves a read-only profile within Codex's default project root.
|
|
817
|
+
* Unknown markers or unreadable layers retain the generated roots for native launch handling.
|
|
818
|
+
*/
|
|
819
|
+
profileRemainsReadOnly(profile, cwd) {
|
|
820
|
+
const root = this.codexHome ?? nodePath.join(this.fs.homedir ?? os.homedir(), ".codex");
|
|
821
|
+
const path = nodePath.join(root, `${profile}.config.toml`);
|
|
822
|
+
const userPath = nodePath.join(root, "config.toml");
|
|
823
|
+
if (!this.fs.exists(path))
|
|
824
|
+
return false;
|
|
825
|
+
try {
|
|
826
|
+
const value = parseToml(this.fs.readFile(path));
|
|
827
|
+
if (value.sandbox_mode !== "read-only" || value.default_permissions !== undefined || !nodePath.isAbsolute(cwd))
|
|
828
|
+
return false;
|
|
829
|
+
// A custom marker set may change the project boundary; leave the prior
|
|
830
|
+
// generated roots in place unless this default-marker scan proves it.
|
|
831
|
+
if (value.project_root_markers !== undefined)
|
|
832
|
+
return false;
|
|
833
|
+
// Codex merges fixed system/user/legacy-managed layers before choosing
|
|
834
|
+
// project markers. Any visible override or unreadable layer keeps roots.
|
|
835
|
+
for (const fixedPath of [
|
|
836
|
+
nodePath.join(this.codexSystemConfigDir, "config.toml"),
|
|
837
|
+
userPath,
|
|
838
|
+
nodePath.join(this.codexSystemConfigDir, "managed_config.toml"),
|
|
839
|
+
]) {
|
|
840
|
+
if (!this.fs.exists(fixedPath))
|
|
841
|
+
continue;
|
|
842
|
+
const fixed = parseToml(this.fs.readFile(fixedPath));
|
|
843
|
+
if (fixed.default_permissions !== undefined || fixed.project_root_markers !== undefined)
|
|
844
|
+
return false;
|
|
845
|
+
}
|
|
846
|
+
// Codex's default root is the nearest .git file or a .git directory
|
|
847
|
+
// containing HEAD. When none exists, Codex uses cwd itself.
|
|
848
|
+
let projectRoot = nodePath.normalize(cwd);
|
|
849
|
+
for (let dir = projectRoot;;) {
|
|
850
|
+
const marker = nodePath.join(dir, ".git");
|
|
851
|
+
if (this.fs.exists(marker)) {
|
|
852
|
+
if (!this.fs.statMode)
|
|
853
|
+
return false;
|
|
854
|
+
const kind = this.fs.statMode(marker) & fs.constants.S_IFMT;
|
|
855
|
+
// statMode may expose permission bits alone; that cannot prove a file.
|
|
856
|
+
if (kind !== fs.constants.S_IFREG && kind !== fs.constants.S_IFDIR)
|
|
857
|
+
return false;
|
|
858
|
+
if (kind === fs.constants.S_IFREG || this.fs.exists(nodePath.join(marker, "HEAD"))) {
|
|
859
|
+
projectRoot = dir;
|
|
860
|
+
break;
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
const parent = nodePath.dirname(dir);
|
|
864
|
+
if (parent === dir)
|
|
865
|
+
break;
|
|
866
|
+
dir = parent;
|
|
867
|
+
}
|
|
868
|
+
// Trust can exclude a closer project file, leaving a writable ancestor active.
|
|
869
|
+
// Keep roots if any visible applicable ancestor could make the launch writable.
|
|
870
|
+
for (let dir = nodePath.normalize(cwd);;) {
|
|
871
|
+
const projectPath = nodePath.join(dir, ".codex", "config.toml");
|
|
872
|
+
// At the home ancestor this is the user config, which loaded before the profile.
|
|
873
|
+
if (projectPath !== userPath && this.fs.exists(projectPath)) {
|
|
874
|
+
const project = parseToml(this.fs.readFile(projectPath));
|
|
875
|
+
if (project.default_permissions !== undefined)
|
|
876
|
+
return false;
|
|
877
|
+
if (project.sandbox_mode !== undefined && project.sandbox_mode !== "read-only")
|
|
878
|
+
return false;
|
|
879
|
+
}
|
|
880
|
+
if (dir === projectRoot)
|
|
881
|
+
return true;
|
|
882
|
+
dir = nodePath.dirname(dir);
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
catch {
|
|
886
|
+
// Preflight owns profile errors; unreadable user or project state keeps prior roots.
|
|
887
|
+
return false;
|
|
888
|
+
}
|
|
889
|
+
}
|
|
742
890
|
async captureProbeScreen(target) {
|
|
743
891
|
// Current readiness belongs to the rendered screen. Scrollback may retain
|
|
744
892
|
// dismissed prompts, loading headers, or refusals from earlier attempts.
|
|
@@ -865,14 +1013,14 @@ export class CodexRuntimeAdapter {
|
|
|
865
1013
|
ensureManagedBootstrap(binding) {
|
|
866
1014
|
this.provisionWorkspaceTrust(binding.cwd ?? null);
|
|
867
1015
|
}
|
|
868
|
-
projectEntry(entry, cwd, warnings) {
|
|
1016
|
+
projectEntry(entry, cwd, warnings, seatSkillsRoot, seatSkillsRefused) {
|
|
869
1017
|
if (entry.category === "runtime_resource" && this.applyRuntimeResource(entry)) {
|
|
870
1018
|
return true;
|
|
871
1019
|
}
|
|
872
1020
|
if (entry.category === "guidance" && entry.mergeStrategy === "managed_block") {
|
|
873
1021
|
const targetPath = nodePath.join(cwd, "AGENTS.md");
|
|
874
1022
|
const content = this.fs.readFile(entry.absolutePath);
|
|
875
|
-
return this.mergeGuidance(targetPath, entry.effectiveId, content, warnings);
|
|
1023
|
+
return this.mergeGuidance(targetPath, entry.effectiveId, content, warnings, entry.absolutePath);
|
|
876
1024
|
}
|
|
877
1025
|
// HG-1.3 plugin runtime applicability filter (per DESIGN.md §5.1):
|
|
878
1026
|
// - explicit pluginType="claude" → skip Codex projection
|
|
@@ -881,9 +1029,23 @@ export class CodexRuntimeAdapter {
|
|
|
881
1029
|
if (entry.category === "plugin" && !this.pluginAppliesToCodex(entry)) {
|
|
882
1030
|
return false;
|
|
883
1031
|
}
|
|
884
|
-
const targetDir = this.resolveTargetDir(entry, cwd);
|
|
1032
|
+
const targetDir = this.resolveTargetDir(entry, cwd, seatSkillsRoot);
|
|
885
1033
|
if (!targetDir)
|
|
886
1034
|
return true;
|
|
1035
|
+
// OPR.0.7.0.13: never write through a link out of the seat's storage.
|
|
1036
|
+
// A refused seat storage refuses every skill meant for it, named; otherwise each destination is checked.
|
|
1037
|
+
const refusal = seatSkillsRoot && entry.category === "skill"
|
|
1038
|
+
? seatSkillsRefused ?? seatSkillWriteRefusal(seatSkillsRoot, nodePath.join(targetDir, "SKILL.md")) : undefined;
|
|
1039
|
+
if (refusal) {
|
|
1040
|
+
warnings.push(`${entry.effectiveId}: ${refusal}`);
|
|
1041
|
+
return false;
|
|
1042
|
+
}
|
|
1043
|
+
// OPR.0.7.0.13: destinations refused below (a link on the way); an entry with any is reported incomplete, not projected.
|
|
1044
|
+
const notProjected = [];
|
|
1045
|
+
// OPR.0.7.0.13: a skill written to the seat's own storage is recorded, so cleanup and restore know it as OpenRig's.
|
|
1046
|
+
const record = seatSkillsRoot && entry.category === "skill"
|
|
1047
|
+
? (dest, src, content) => recordSeatSkillWrite(seatSkillsRoot, dest, src, content)
|
|
1048
|
+
: () => { };
|
|
887
1049
|
this.fs.mkdirp(targetDir);
|
|
888
1050
|
let isDir = false;
|
|
889
1051
|
if (this.fs.listFiles) {
|
|
@@ -899,10 +1061,26 @@ export class CodexRuntimeAdapter {
|
|
|
899
1061
|
const createdFiles = [];
|
|
900
1062
|
try {
|
|
901
1063
|
if (isDir && this.fs.listFiles) {
|
|
1064
|
+
let skippedPluginSkills = 0;
|
|
902
1065
|
for (const file of this.fs.listFiles(entry.absolutePath)) {
|
|
1066
|
+
// OPR.0.7.0.13: a seat with its own storage gets a selected plugin's bundled skills there, through its loadout, so
|
|
1067
|
+
// the project's copy of the plugin leaves its skills out; its manifest, hooks and settings are copied as before.
|
|
1068
|
+
if (seatSkillsRoot && entry.category === "plugin" && file.split(/[\\/]/)[0] === "skills") {
|
|
1069
|
+
skippedPluginSkills++;
|
|
1070
|
+
continue;
|
|
1071
|
+
}
|
|
903
1072
|
const src = nodePath.join(entry.absolutePath, file);
|
|
904
1073
|
const dest = nodePath.join(targetDir, file);
|
|
1074
|
+
// OPR.0.7.0.13: each destination in a seat's storage is checked before it's recorded, written or re-moded, so a
|
|
1075
|
+
// helper folder or file found to be a link is not written through (the identical-content, mode-only branch included).
|
|
1076
|
+
const refusedDest = seatSkillsRoot && entry.category === "skill" ? seatSkillWriteRefusal(seatSkillsRoot, dest) : undefined;
|
|
1077
|
+
if (refusedDest) {
|
|
1078
|
+
warnings.push(`${entry.effectiveId}: ${refusedDest}`);
|
|
1079
|
+
notProjected.push(dest);
|
|
1080
|
+
continue;
|
|
1081
|
+
}
|
|
905
1082
|
const content = this.fs.readFile(src);
|
|
1083
|
+
record(dest, src, content);
|
|
906
1084
|
// Reconcile mode even when the content write is skipped: a byte-identical dest
|
|
907
1085
|
// projected earlier may still carry the wrong (default) mode.
|
|
908
1086
|
if (this.fs.exists(dest) && hashContent(content) === hashContent(this.fs.readFile(dest))) {
|
|
@@ -916,10 +1094,19 @@ export class CodexRuntimeAdapter {
|
|
|
916
1094
|
createdFiles.push(dest);
|
|
917
1095
|
this.preserveMode(src, dest);
|
|
918
1096
|
}
|
|
1097
|
+
const pluginLoss = seatSkillsRefused ? seatPluginSkillsLossNote(entry.effectiveId, skippedPluginSkills, seatSkillsRefused) : undefined;
|
|
1098
|
+
if (pluginLoss)
|
|
1099
|
+
warnings.push(pluginLoss);
|
|
919
1100
|
}
|
|
920
1101
|
else {
|
|
921
|
-
const content = this.fs.readFile(entry.absolutePath);
|
|
922
1102
|
const destFile = nodePath.join(targetDir, nodePath.basename(entry.absolutePath));
|
|
1103
|
+
const refusedFile = seatSkillsRoot && entry.category === "skill" ? seatSkillWriteRefusal(seatSkillsRoot, destFile) : undefined;
|
|
1104
|
+
if (refusedFile) {
|
|
1105
|
+
warnings.push(`${entry.effectiveId}: ${refusedFile}`);
|
|
1106
|
+
return false;
|
|
1107
|
+
}
|
|
1108
|
+
const content = this.fs.readFile(entry.absolutePath);
|
|
1109
|
+
record(destFile, entry.absolutePath, content);
|
|
923
1110
|
if (this.fs.exists(destFile) && hashContent(content) === hashContent(this.fs.readFile(destFile))) {
|
|
924
1111
|
this.preserveMode(entry.absolutePath, destFile);
|
|
925
1112
|
return true;
|
|
@@ -935,7 +1122,7 @@ export class CodexRuntimeAdapter {
|
|
|
935
1122
|
if (entry.category === "plugin")
|
|
936
1123
|
warnings.push(...excludeNewGeneratedFiles(cwd, createdFiles));
|
|
937
1124
|
}
|
|
938
|
-
return
|
|
1125
|
+
return seatProjectionComplete(entry.effectiveId, notProjected, warnings);
|
|
939
1126
|
}
|
|
940
1127
|
/**
|
|
941
1128
|
* Reapply the source file's permission bits to the projected dest. Plain
|
|
@@ -960,9 +1147,9 @@ export class CodexRuntimeAdapter {
|
|
|
960
1147
|
// auto: detect via .codex-plugin/plugin.json presence in the source tree
|
|
961
1148
|
return this.fs.exists(nodePath.join(entry.absolutePath, ".codex-plugin", "plugin.json"));
|
|
962
1149
|
}
|
|
963
|
-
resolveTargetDir(entry, cwd) {
|
|
1150
|
+
resolveTargetDir(entry, cwd, seatSkillsRoot) {
|
|
964
1151
|
switch (entry.category) {
|
|
965
|
-
case "skill": return nodePath.join(cwd, ".agents", "skills", entry.effectiveId);
|
|
1152
|
+
case "skill": return nodePath.join(seatSkillsRoot ?? nodePath.join(cwd, ".agents", "skills"), entry.effectiveId);
|
|
966
1153
|
case "guidance": return null; // handled via merge
|
|
967
1154
|
case "subagent": return nodePath.join(cwd, ".agents"); // .agents/{id}.yaml per preserved contract
|
|
968
1155
|
case "plugin": return nodePath.join(cwd, ".codex", "plugins", entry.effectiveId);
|
|
@@ -995,14 +1182,17 @@ export class CodexRuntimeAdapter {
|
|
|
995
1182
|
* propagate the skip signal so ProjectionResult and StartupDeliveryResult
|
|
996
1183
|
* report honest counts.
|
|
997
1184
|
*/
|
|
998
|
-
mergeGuidance(targetPath, blockId, content, warnings) {
|
|
1185
|
+
mergeGuidance(targetPath, blockId, content, warnings, sourcePath) {
|
|
999
1186
|
// Mirrors Claude Code adapter: the `rig-role` managed block collides across
|
|
1000
1187
|
// pod-mates because the regenerator pairs (target-file × spec) without
|
|
1001
1188
|
// seat correlation. Per-seat role content is delivered through `send_text`
|
|
1002
1189
|
// startup instead. Refuse the merge loudly; silent skip would mask the
|
|
1003
1190
|
// collision. See ADR-0006.
|
|
1004
|
-
if (blockId
|
|
1005
|
-
console.log(`[openrig] skip: effectiveId is
|
|
1191
|
+
if (isPerSeatRoleGuidance(blockId, sourcePath)) {
|
|
1192
|
+
console.log(`[openrig] skip: effectiveId is ${blockId}, a seat's own role; per-seat delivery via send_text path required (target=${targetPath})`);
|
|
1193
|
+
const warning = perSeatRoleSkipWarning(blockId, targetPath);
|
|
1194
|
+
if (warning)
|
|
1195
|
+
warnings.push(warning);
|
|
1006
1196
|
return false;
|
|
1007
1197
|
}
|
|
1008
1198
|
mergeManagedBlock(this.fs, targetPath, blockId, content, {
|
|
@@ -1011,8 +1201,8 @@ export class CodexRuntimeAdapter {
|
|
|
1011
1201
|
});
|
|
1012
1202
|
return true;
|
|
1013
1203
|
}
|
|
1014
|
-
detectDeliveryHint(path, content) {
|
|
1015
|
-
return resolveConcreteHint(path, content);
|
|
1204
|
+
detectDeliveryHint(path, content, orientation) {
|
|
1205
|
+
return resolveConcreteHint(path, content, orientation);
|
|
1016
1206
|
}
|
|
1017
1207
|
provisionWorkspaceTrust(cwd) {
|
|
1018
1208
|
if (!cwd)
|
|
@@ -1484,11 +1674,11 @@ export function computeCodexHookTrust(event, input) {
|
|
|
1484
1674
|
* `[hooks.state."<key>"] trusted_hash = "<hash>"` record. Mirrors upsertCodexProjectTrust:
|
|
1485
1675
|
* find/create the exact table header, splice ONLY its `trusted_hash` line, leave every other
|
|
1486
1676
|
* `[hooks.state]` / `[projects]` entry and the managed hook block byte-identical. Same key+hash
|
|
1487
|
-
* ⇒ no-op. Only called for our authored inline or
|
|
1677
|
+
* ⇒ no-op. Only called for our authored inline or verified owned plugin keys (never blanket trust).
|
|
1488
1678
|
*/
|
|
1489
|
-
export function upsertCodexHookTrust(content, key, hash) {
|
|
1679
|
+
export function upsertCodexHookTrust(content, key, hash, field = "trusted_hash") {
|
|
1490
1680
|
const header = `[hooks.state.${JSON.stringify(key)}]`;
|
|
1491
|
-
const trustLine =
|
|
1681
|
+
const trustLine = `${field} = ${JSON.stringify(hash)}`;
|
|
1492
1682
|
const lines = content.length > 0 ? content.split("\n") : [];
|
|
1493
1683
|
const headerIndex = lines.findIndex((line) => line.trim() === header);
|
|
1494
1684
|
if (headerIndex === -1) {
|
|
@@ -1503,14 +1693,14 @@ export function upsertCodexHookTrust(content, key, hash) {
|
|
|
1503
1693
|
break;
|
|
1504
1694
|
}
|
|
1505
1695
|
}
|
|
1506
|
-
const hashIndex = lines.findIndex((line, index) => index > headerIndex && index < nextSectionIndex && line.trim().startsWith(
|
|
1696
|
+
const hashIndex = lines.findIndex((line, index) => index > headerIndex && index < nextSectionIndex && line.trim().startsWith(field));
|
|
1507
1697
|
if (hashIndex >= 0) {
|
|
1508
1698
|
lines[hashIndex] = trustLine;
|
|
1509
1699
|
}
|
|
1510
1700
|
else {
|
|
1511
1701
|
lines.splice(headerIndex + 1, 0, trustLine);
|
|
1512
1702
|
}
|
|
1513
|
-
return `${lines.join("\n").replace(/\n*$/, "\n")}`;
|
|
1703
|
+
return field === "trusted_content_hash" ? lines.join("\n") : `${lines.join("\n").replace(/\n*$/, "\n")}`;
|
|
1514
1704
|
}
|
|
1515
1705
|
export function isCodex013xOrLater(version) {
|
|
1516
1706
|
const match = /^(\d+)\.(\d+)/.exec(version);
|