@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
|
@@ -11,7 +11,9 @@ import { DraftAwareDelivery } from "./draft-aware-delivery.js";
|
|
|
11
11
|
import { claudeResumeRotation } from "./session-registry.js";
|
|
12
12
|
import { latestHookPermissionPending, latestHookWaitsOnPerson } from "./agent-activity-store.js";
|
|
13
13
|
import { DeliveryGuardError } from "./seat-delivery-guard.js";
|
|
14
|
+
import { withUrgentLine } from "./urgent-line.js";
|
|
14
15
|
import { wrapPaneEnvelope, appendDeliveredSegment } from "../lib/pane-envelope.js";
|
|
16
|
+
import { isBoundTerminalSeat } from "./terminal-seat.js";
|
|
15
17
|
import { SeatIdentityStore } from "./seat-identity-store.js";
|
|
16
18
|
import { isShellForeground } from "./shell-classifier.js";
|
|
17
19
|
import { observeClaudeDelivery, verifyCodexPaneProcess } from "./native-process-lineage.js";
|
|
@@ -135,6 +137,10 @@ const CLAUDE_STATUS_WARNINGS = [
|
|
|
135
137
|
/^✘ Auto-update failed: no write permission to npm prefix · Run claude doctor$/,
|
|
136
138
|
/^tmux focus-events off · add 'set -g focus-events on' to ~\/\.tmux\.conf and re…$/,
|
|
137
139
|
/^You've used (?:\d|[1-9]\d)% of your weekly limit · resets \d{1,2}(?::\d{2})?(?:am|pm) \(UTC\)$/,
|
|
140
|
+
// #1641: Claude 2.1.293's update banner, whatever installer it names.
|
|
141
|
+
/^Update available! Run: \S.*$/,
|
|
142
|
+
// The context hint, as Claude prints it; reported as the last line below the mode bar on one seat.
|
|
143
|
+
/^new task\? \/clear to save \d+(?:\.\d+)?k tokens$/,
|
|
138
144
|
];
|
|
139
145
|
// Current Claude status rows need not end in "thinking)" or show "esc to interrupt".
|
|
140
146
|
// Completed summaries such as "✻ Crunched for 2s" lack the live ellipsis/timer shape.
|
|
@@ -206,7 +212,7 @@ function findClaudeComposer(paneContent, options = {}) {
|
|
|
206
212
|
}
|
|
207
213
|
return { text: prompt.slice(indent.length), bar: lines[bar].trim(), framed, hasWarnings: bar < lines.length - 1, supportedWarningFooter, modeFooter, headSeen, liveStatus };
|
|
208
214
|
}
|
|
209
|
-
const unknown = () => ({ state: "unknown", rows: [], columns: 0, cursorAtEnd: false, collapsedPaste: null });
|
|
215
|
+
const unknown = (unknownReason, cursor) => ({ state: "unknown", rows: [], columns: 0, cursorAtEnd: false, collapsedPaste: null, unknownReason, ...(cursor ? { cursor } : {}) });
|
|
210
216
|
const rule = (line) => /^[─━═-]{6,}(?: .+ [─━═-]+)?$/.test(line.trim());
|
|
211
217
|
const codexFooter = (line) => isComposerFooter(line)
|
|
212
218
|
|| /(?:\b\d+% context left\b|\bContext \[)/.test(line);
|
|
@@ -251,17 +257,19 @@ function styledTextLines(screen) {
|
|
|
251
257
|
*/
|
|
252
258
|
export function inspectComposerInput(snapshot, runtime = null, owned) {
|
|
253
259
|
const promptClass = composerPromptClassForRuntime(runtime);
|
|
254
|
-
if (!snapshot
|
|
255
|
-
return unknown();
|
|
260
|
+
if (!snapshot)
|
|
261
|
+
return unknown("capture_unavailable");
|
|
262
|
+
if (snapshot.inMode)
|
|
263
|
+
return unknown("pane_in_mode", snapshot.cursor);
|
|
256
264
|
const { x, y, width, height } = snapshot.cursor;
|
|
257
265
|
if (![x, y, width, height].every(Number.isInteger) || x < 0 || y < 0 || x >= width || y >= height || width < 3 || height < 1)
|
|
258
|
-
return unknown();
|
|
266
|
+
return unknown("invalid_cursor", snapshot.cursor);
|
|
259
267
|
const styled = styledTextLines(snapshot.screen);
|
|
260
268
|
const lines = styled.map(line => line.text);
|
|
261
269
|
if (lines.at(-1) === "")
|
|
262
270
|
lines.pop();
|
|
263
271
|
if (lines.length > height || !lines[y])
|
|
264
|
-
return unknown();
|
|
272
|
+
return unknown("incomplete_frame", snapshot.cursor);
|
|
265
273
|
const footerAt = findClaudeFooterIndex(lines);
|
|
266
274
|
const footer = lines[footerAt]?.trim() ?? "";
|
|
267
275
|
let claudeEnd = footerAt - 1;
|
|
@@ -313,6 +321,7 @@ export function inspectComposerInput(snapshot, runtime = null, owned) {
|
|
|
313
321
|
// A literal placeholder or text before a moved cursor remains authored input.
|
|
314
322
|
const cursorRow = y - start;
|
|
315
323
|
let ghost;
|
|
324
|
+
let suggestionRows = [];
|
|
316
325
|
const currentRow = rows[cursorRow];
|
|
317
326
|
let cursorOffset = x === prefix ? 0 : -1;
|
|
318
327
|
let offset = 0;
|
|
@@ -327,6 +336,7 @@ export function inspectComposerInput(snapshot, runtime = null, owned) {
|
|
|
327
336
|
faint: styled[y + i].faintCells.slice(prefix + (i === 0 ? cursorOffset : 0), prefix + row.length),
|
|
328
337
|
}));
|
|
329
338
|
if (suffix.some(row => row.text.length > 0) && suffix.every(row => row.faint.every(Boolean))) {
|
|
339
|
+
suggestionRows = suffix.map(row => row.text);
|
|
330
340
|
ghost = { line: y, offset: prefix + cursorOffset, continuationRows: rows.length - cursorRow - 1 };
|
|
331
341
|
rows.splice(cursorRow + 1);
|
|
332
342
|
rows[cursorRow] = currentRow.slice(0, cursorOffset);
|
|
@@ -348,7 +358,7 @@ export function inspectComposerInput(snapshot, runtime = null, owned) {
|
|
|
348
358
|
const cursorAtEnd = y === start + last && x === prefix + stringWidth(visible[last] ?? "");
|
|
349
359
|
const label = visible.length === 1 && COMPOSER_COLLAPSED_PASTE_PATTERN.test(visible[0]) ? visible[0] : null;
|
|
350
360
|
const frame = JSON.stringify([prompt.glyph, prefix, width, footer]);
|
|
351
|
-
const input = { state: empty ? "empty" : "text", rows: visible, columns: width - prefix, cursorAtEnd, collapsedPaste: label, frame,
|
|
361
|
+
const input = { state: empty ? "empty" : "text", cursor: { ...snapshot.cursor }, suggestionRows, rows: visible, columns: width - prefix, cursorAtEnd, collapsedPaste: label, frame,
|
|
352
362
|
...(ghost ? { ghost } : {}) };
|
|
353
363
|
// A numbered body is allowed only as this operation's exact text in its
|
|
354
364
|
// previously empty composer. A newly observed menu gains no such authority.
|
|
@@ -361,7 +371,7 @@ export function inspectComposerInput(snapshot, runtime = null, owned) {
|
|
|
361
371
|
}
|
|
362
372
|
candidates.push(input);
|
|
363
373
|
}
|
|
364
|
-
return candidates.length === 1 ? candidates[0] : unknown();
|
|
374
|
+
return candidates.length === 1 ? candidates[0] : unknown(candidates.length ? "ambiguous_composer" : "unrecognized_composer", snapshot.cursor);
|
|
365
375
|
}
|
|
366
376
|
function findPromptDraftBeforeFooter(paneContent) {
|
|
367
377
|
const rawLines = paneContent.split("\n").map((line) => line.trimEnd());
|
|
@@ -503,8 +513,19 @@ export function classifyPaneActivity(paneContent, options = {}) {
|
|
|
503
513
|
? promptScanLines.slice(oldQuestionEnd + 1)
|
|
504
514
|
: options.runtime === "codex" && !permissionPromptEvidence
|
|
505
515
|
? codexCurrentSelectionLines(paneContent) ?? promptScanLines : promptScanLines;
|
|
516
|
+
const currentComposer = options.currentClaudeDialogueOnly && options.runtime === "claude-code"
|
|
517
|
+
? composerRegion(paneContent, "claude-code")
|
|
518
|
+
: null;
|
|
519
|
+
const currentComposerText = currentComposer?.body ?? (currentComposer?.markerLine !== null && currentComposer?.markerLine !== undefined
|
|
520
|
+
&& currentComposer.closingRuleLine !== null && currentComposer.closingRuleLine !== undefined
|
|
521
|
+
? paneContent.split(/\r?\n/).slice(currentComposer.markerLine - 1, currentComposer.closingRuleLine - 1).join("\n")
|
|
522
|
+
: null);
|
|
523
|
+
const currentComposerSelection = currentComposerText
|
|
524
|
+
? findPatternEvidence(currentComposerText.split("\n").map(line => line.trimStart()), [COMPOSER_SELECTION_SCAN_PATTERN])
|
|
525
|
+
: null;
|
|
506
526
|
const selectionPromptEvidence = currentClaudeMcpMenu(paneContent) ?? findCurrentClaudeQuestion(paneContent) ??
|
|
507
|
-
|
|
527
|
+
currentComposerSelection ?? (options.currentClaudeDialogueOnly ? null
|
|
528
|
+
: findPatternEvidence(selectionLines, [COMPOSER_SELECTION_SCAN_PATTERN]));
|
|
508
529
|
if (selectionPromptEvidence) {
|
|
509
530
|
return {
|
|
510
531
|
state: "attention",
|
|
@@ -716,7 +737,10 @@ export async function probeSessionActivity(input) {
|
|
|
716
737
|
const snapshot = input.composerSnapshot ? await input.composerSnapshot().catch(() => null) : null;
|
|
717
738
|
const paneContent = snapshot?.screen ?? await capture();
|
|
718
739
|
const capturedAt = new Date().toISOString();
|
|
719
|
-
const classifyOptions = {
|
|
740
|
+
const classifyOptions = {
|
|
741
|
+
timerlessStatusIsLive: input.timerlessStatusIsLive === true,
|
|
742
|
+
currentClaudeDialogueOnly: input.currentClaudeDialogueOnly === true,
|
|
743
|
+
};
|
|
720
744
|
let classification = communityHarnessPaneActivity(classifyPaneActivity(paneContent ?? "", { ...classifyOptions,
|
|
721
745
|
composerSnapshot: snapshot ?? undefined, runtime }), input.communityHarness);
|
|
722
746
|
// Claude renders its prompt suggestion faint, which the plain capture loses. When a Claude pane reads
|
|
@@ -1500,8 +1524,6 @@ function callerCancelled(sessionName) {
|
|
|
1500
1524
|
return { ok: false, sessionName, sent: false, inputPhase: "not_reached", reason: CALLER_CANCELLED,
|
|
1501
1525
|
error: `The request was cancelled before any input started. Nothing was typed into '${sessionName}', and nothing will be.` };
|
|
1502
1526
|
}
|
|
1503
|
-
/** The evidence of a verified send whose path does not read the input box (an audited prompt answer). */
|
|
1504
|
-
const INPUT_BOX_UNCHECKED = { seat: "unchecked", before: "unchecked", after: "unchecked", sameProcess: false };
|
|
1505
1527
|
export class SessionTransport {
|
|
1506
1528
|
db;
|
|
1507
1529
|
guardedDelivery;
|
|
@@ -1818,11 +1840,14 @@ export class SessionTransport {
|
|
|
1818
1840
|
}
|
|
1819
1841
|
deliveryTarget(sessionName) { return this.tmuxAdapter.deliveryGuard?.maybeTarget(sessionName) ?? null; }
|
|
1820
1842
|
get deliveryGuard() { return this.tmuxAdapter.deliveryGuard; }
|
|
1821
|
-
|
|
1843
|
+
/** With an input, whether the seat's level would hold that input; without one, whether its mode holds everything. */
|
|
1844
|
+
retentionTarget(sessionName, input) {
|
|
1822
1845
|
const guard = this.tmuxAdapter.deliveryGuard;
|
|
1823
1846
|
const target = guard?.maybeTarget(sessionName);
|
|
1824
1847
|
if (!guard || !target)
|
|
1825
1848
|
return null;
|
|
1849
|
+
if (input)
|
|
1850
|
+
return guard.holdsInput(target.nodeId, input) ? target : null;
|
|
1826
1851
|
const pref = guard.preference(target.nodeId);
|
|
1827
1852
|
return pref.desired || pref.effective ? target : null;
|
|
1828
1853
|
}
|
|
@@ -1847,6 +1872,16 @@ export class SessionTransport {
|
|
|
1847
1872
|
* send, add a notice saying so. The notice is context beside the send's own result, which it never changes.
|
|
1848
1873
|
*/
|
|
1849
1874
|
async send(sessionName, text, opts) {
|
|
1875
|
+
// A terminal seat's shell would run the envelope lines as commands. Swap before the guard,
|
|
1876
|
+
// whose outbox body, hash and delivery-ID identity all key on the text actually typed.
|
|
1877
|
+
// Without the envelope there's no Sent: line, so stampISO is dropped too: the delivered-latency
|
|
1878
|
+
// segment must never edit a line of the exact text.
|
|
1879
|
+
if (opts?.exactText !== undefined && !opts.dangerouslyInteract) {
|
|
1880
|
+
const { exactText, ...rest } = opts;
|
|
1881
|
+
if (!isBoundTerminalSeat(this.db, sessionName))
|
|
1882
|
+
return this.send(sessionName, text, rest);
|
|
1883
|
+
return { ...(await this.send(sessionName, exactText, { ...rest, stampISO: undefined, typedExactly: true })), envelopeOmitted: true };
|
|
1884
|
+
}
|
|
1850
1885
|
const observe = () => { try {
|
|
1851
1886
|
return this.compactionObserver?.(sessionName) ?? null;
|
|
1852
1887
|
}
|
|
@@ -1863,7 +1898,20 @@ export class SessionTransport {
|
|
|
1863
1898
|
notice: `${sessionName} was ${seen.detail} (${when}, as OpenRig's managed compaction recorded it). This doesn't mean the restore has finished; if this message matters, check the reply and follow up.` } };
|
|
1864
1899
|
}
|
|
1865
1900
|
async sendWithoutCompactionNotice(sessionName, text, opts) {
|
|
1901
|
+
if (!opts?.urgent)
|
|
1902
|
+
return this.sendClassified(sessionName, text, opts);
|
|
1903
|
+
// Shown on delivery, and kept with a held message: who marked it urgent.
|
|
1904
|
+
console.info(`[transport] urgent send to ${sessionName}, marked by ${opts.urgent.by}`);
|
|
1905
|
+
// An explicit prompt answer is typed as keys, and a submit-only retry types no text at all: the label's letters would
|
|
1906
|
+
// act as keystrokes (a menu shortcut, say). A terminal seat's exact text would run the label as a command. Their bytes
|
|
1907
|
+
// stay exactly as given; the mark stays in the result and the log.
|
|
1908
|
+
const rawKeys = opts.dangerouslyInteract === true || opts.submitOnly === true || opts.typedExactly === true;
|
|
1909
|
+
const result = await this.sendClassified(sessionName, rawKeys ? text : withUrgentLine(text, opts.urgent.by), opts);
|
|
1910
|
+
return { ...result, urgent: opts.urgent };
|
|
1911
|
+
}
|
|
1912
|
+
async sendClassified(sessionName, text, opts) {
|
|
1866
1913
|
const guard = this.tmuxAdapter.deliveryGuard;
|
|
1914
|
+
const admission = { source: opts?.openrigNotice ? "openrig" : "agent", urgent: !!opts?.urgent, override: opts?.dangerouslyInteract === true };
|
|
1867
1915
|
if (!guard) {
|
|
1868
1916
|
// No guard, so no recorded delivery to read back: a caller already gone ends the send here.
|
|
1869
1917
|
if (callerSignal(opts)?.aborted)
|
|
@@ -1875,7 +1923,9 @@ export class SessionTransport {
|
|
|
1875
1923
|
return result;
|
|
1876
1924
|
}
|
|
1877
1925
|
const outbox = new OutboxHandler(this.db);
|
|
1878
|
-
|
|
1926
|
+
let ids = opts?.committedOutboxIds ?? [opts?.deliveryId ?? `guard-send-${randomUUID()}`];
|
|
1927
|
+
// A combined wake's members are re-checked under the lease, against the configuration that decides this send.
|
|
1928
|
+
const recheck = (held) => opts?.recheckMembers?.((input) => guard.holdsInput(guard.target(sessionName).nodeId, input), held) ?? null;
|
|
1879
1929
|
const retainedResult = (reason = "typing_guard_enabled") => ({ ok: true, sessionName, outcome: "retained", sent: false, verified: false,
|
|
1880
1930
|
outboxIds: ids, reason, warning: `Retained, not delivered. Inspect with rig seat held-messages ${sessionName}; changing protection does not replay held messages.` });
|
|
1881
1931
|
try {
|
|
@@ -1930,18 +1980,24 @@ export class SessionTransport {
|
|
|
1930
1980
|
}
|
|
1931
1981
|
}
|
|
1932
1982
|
const result = await guard.operation(sessionName, async () => {
|
|
1933
|
-
|
|
1934
|
-
|
|
1983
|
+
const members = recheck(false);
|
|
1984
|
+
const memberText = members?.text ?? text;
|
|
1985
|
+
const memberOpts = members ? { ...sendOpts, committedOutboxIds: members.outboxIds } : sendOpts;
|
|
1986
|
+
if (this.guardedDelivery && !memberOpts?.submitOnly && !memberOpts?.dangerouslyInteract && guard.needsInputCheck(sessionName)) {
|
|
1987
|
+
if (callerSignal(memberOpts)?.aborted)
|
|
1935
1988
|
return callerCancelled(sessionName);
|
|
1936
|
-
return this.guardedDelivery.send(sessionName,
|
|
1989
|
+
return this.guardedDelivery.send(sessionName, memberText, memberOpts ?? {}, memberOpts?.committedOutboxIds ?? [`guard-send-${randomUUID()}`]);
|
|
1937
1990
|
}
|
|
1938
|
-
return this.sendUnguarded(sessionName,
|
|
1991
|
+
return this.sendUnguarded(sessionName, memberText, memberOpts);
|
|
1939
1992
|
}, async (target) => {
|
|
1940
1993
|
if (opts?.submitOnly)
|
|
1941
1994
|
return { ok: false, sessionName, sent: false, reason: "typing_guard_enabled", error: "Typing guard prevents submit-only; no Enter was sent." };
|
|
1942
1995
|
// Nothing is retained yet: a caller that went away while this send waited for the lease ends it here.
|
|
1943
1996
|
if (callerSignal(opts)?.aborted)
|
|
1944
1997
|
return callerCancelled(sessionName);
|
|
1998
|
+
const members = recheck(true);
|
|
1999
|
+
if (members)
|
|
2000
|
+
ids = members.outboxIds;
|
|
1945
2001
|
this.db.transaction(() => {
|
|
1946
2002
|
for (const id of ids) {
|
|
1947
2003
|
const prior = opts?.committedOutboxIds ? outbox.getById(id) : null;
|
|
@@ -1949,7 +2005,7 @@ export class SessionTransport {
|
|
|
1949
2005
|
throw new Error("Committed wake target/ID mismatch");
|
|
1950
2006
|
outbox.retain(prior ? { ...prior, outboxId: id, tags: prior.tags ?? undefined, auditPointer: prior.auditPointer ?? undefined } : {
|
|
1951
2007
|
outboxId: id, senderSession: opts?.actorSession ?? "unknown", destinationSession: sessionName, body: text, auditPointer: opts?.auditPointer,
|
|
1952
|
-
identityProvenance: opts?.identityProvenance,
|
|
2008
|
+
identityProvenance: opts?.identityProvenance, ...(opts?.urgent ? { urgency: "urgent" } : {}),
|
|
1953
2009
|
}, target, !!opts?.committedOutboxIds);
|
|
1954
2010
|
}
|
|
1955
2011
|
})();
|
|
@@ -1969,7 +2025,7 @@ export class SessionTransport {
|
|
|
1969
2025
|
});
|
|
1970
2026
|
}
|
|
1971
2027
|
return retainedResult();
|
|
1972
|
-
});
|
|
2028
|
+
}, admission);
|
|
1973
2029
|
if (result.ok && result.sent !== false) {
|
|
1974
2030
|
await this.reconcileStartupReadiness(sessionName).catch(() => { });
|
|
1975
2031
|
}
|
|
@@ -2104,6 +2160,7 @@ export class SessionTransport {
|
|
|
2104
2160
|
attachmentType: meta.attachmentType,
|
|
2105
2161
|
timeoutMs,
|
|
2106
2162
|
binding: { sessionName, nodeId: meta.nodeId, occupant: meta.occupant, pane: meta.pane },
|
|
2163
|
+
privateInput: opts.dangerouslyInteract === true,
|
|
2107
2164
|
readinessFromPaneOnly: opts.readinessFromPaneOnly === true,
|
|
2108
2165
|
signal: callerSignal(opts), cancelledBy: "caller",
|
|
2109
2166
|
});
|
|
@@ -2173,14 +2230,18 @@ export class SessionTransport {
|
|
|
2173
2230
|
error: `'${sessionName}' is in a tmux mode (such as copy mode) and could not leave it, so Enter would not reach the agent. ${outcome}` };
|
|
2174
2231
|
};
|
|
2175
2232
|
// S01/S02 P2 observation context, frozen at attempt entry before any await.
|
|
2176
|
-
const observed = this.captureObserver ? {
|
|
2233
|
+
const observed = this.captureObserver && !opts?.dangerouslyInteract ? {
|
|
2177
2234
|
attemptId: randomUUID(),
|
|
2178
2235
|
binding: Object.freeze({ sessionName, nodeId: sessionMeta.nodeId, occupant: sessionMeta.occupant, pane: sessionMeta.pane }),
|
|
2179
2236
|
pre: (opts?.verify ? { state: "not_reached" } : { state: "not_requested" }),
|
|
2180
2237
|
post: (opts?.verify ? { state: "not_reached" } : { state: "not_requested" }),
|
|
2181
2238
|
sentHash: null,
|
|
2182
2239
|
} : null;
|
|
2240
|
+
let existingInput;
|
|
2241
|
+
let overrideBeforePaste;
|
|
2183
2242
|
const observe = (result) => {
|
|
2243
|
+
if (existingInput)
|
|
2244
|
+
result = { ...result, existingInput };
|
|
2184
2245
|
if (result.ok && runtimeAdvisory)
|
|
2185
2246
|
result = { ...result, warning: [runtimeAdvisory, result.warning].filter(Boolean).join(" ") };
|
|
2186
2247
|
if (observed && this.captureObserver) {
|
|
@@ -2364,6 +2425,7 @@ export class SessionTransport {
|
|
|
2364
2425
|
attachmentType: sessionMeta.attachmentType,
|
|
2365
2426
|
timeoutMs: waitForIdleMs,
|
|
2366
2427
|
binding: observed?.binding,
|
|
2428
|
+
privateInput: opts?.dangerouslyInteract === true,
|
|
2367
2429
|
readinessFromPaneOnly: opts?.readinessFromPaneOnly === true,
|
|
2368
2430
|
signal: callerSignal(opts), cancelledBy: "caller",
|
|
2369
2431
|
});
|
|
@@ -2422,6 +2484,7 @@ export class SessionTransport {
|
|
|
2422
2484
|
// Message-only: the re-wait runs on the leftover budget, but the
|
|
2423
2485
|
// timeout names the configured --wait-for-idle value.
|
|
2424
2486
|
timeoutLabelMs: waitForIdleMs,
|
|
2487
|
+
privateInput: opts.dangerouslyInteract === true,
|
|
2425
2488
|
binding: observed?.binding,
|
|
2426
2489
|
readinessFromPaneOnly: opts.readinessFromPaneOnly === true,
|
|
2427
2490
|
signal: callerSignal(opts), cancelledBy: "caller",
|
|
@@ -2450,7 +2513,7 @@ export class SessionTransport {
|
|
|
2450
2513
|
attachmentType: sessionMeta.attachmentType,
|
|
2451
2514
|
binding: observed?.binding,
|
|
2452
2515
|
readinessFromPaneOnly: opts.readinessFromPaneOnly === true,
|
|
2453
|
-
});
|
|
2516
|
+
}, opts.dangerouslyInteract === true);
|
|
2454
2517
|
if (recheck.state !== "idle") {
|
|
2455
2518
|
const late = recheck.state === "needs_input"
|
|
2456
2519
|
? {
|
|
@@ -2497,14 +2560,15 @@ export class SessionTransport {
|
|
|
2497
2560
|
// the positive-picker guard (FR-4 — the footgun separation). The advisory is carried on the
|
|
2498
2561
|
// success result via `warning` so the honest telemetry is surfaced.
|
|
2499
2562
|
let sendAdvisory;
|
|
2500
|
-
|
|
2501
|
-
|
|
2563
|
+
// Broadcast can carry wait + override: after waiting, it still uses the same deliberate-input boundary.
|
|
2564
|
+
const promptOverride = Boolean(opts?.dangerouslyInteract);
|
|
2565
|
+
if (waitForIdleMs === undefined || promptOverride) {
|
|
2502
2566
|
const readiness = await this.classifySendReadiness({
|
|
2503
2567
|
sessionName,
|
|
2504
2568
|
runtime,
|
|
2505
2569
|
attachmentType: sessionMeta.attachmentType,
|
|
2506
2570
|
binding: observed?.binding,
|
|
2507
|
-
});
|
|
2571
|
+
}, opts?.dangerouslyInteract === true);
|
|
2508
2572
|
// Explicit interaction selects key input even when readiness cannot recognize the prompt.
|
|
2509
2573
|
// Only bypassing a positive picker requires a successful audit; other states already sent.
|
|
2510
2574
|
if (opts?.dangerouslyInteract) {
|
|
@@ -2516,12 +2580,34 @@ export class SessionTransport {
|
|
|
2516
2580
|
error: "--dangerously-interact requires --reason explaining why the prompt is being driven. No text was sent.",
|
|
2517
2581
|
};
|
|
2518
2582
|
}
|
|
2519
|
-
const
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2583
|
+
const auditInput = { sessionName, readiness, actorSession: opts.actorSession ?? null, overrideReason: opts.reason ?? null };
|
|
2584
|
+
const target = this.tmuxAdapter.deliveryGuard?.maybeTarget(sessionName);
|
|
2585
|
+
// Native menus retain their audited key-driving path. Otherwise inspect under the same lease,
|
|
2586
|
+
// after buffer preparation, immediately before the adapter's final identity check and paste.
|
|
2587
|
+
if (target && readiness.state !== "needs_input") {
|
|
2588
|
+
overrideBeforePaste = async () => {
|
|
2589
|
+
const unchecked = opts.typeWithoutChecking === true;
|
|
2590
|
+
const snapshot = unchecked ? null : await this.readWithinDeadline("session_transport.override_input", () => this.tmuxAdapter.captureComposerSnapshot(target.pane ?? sessionName));
|
|
2591
|
+
const input = unchecked ? null : inspectComposerInput(snapshot, runtime);
|
|
2592
|
+
const classification = unchecked ? "not_checked" : input.state === "unknown" ? "unreadable"
|
|
2593
|
+
: input.state === "text" ? "typed_or_pasted" : input.ghost ? "suggestion_only" : "empty";
|
|
2594
|
+
existingInput = { target, classification, rows: input?.rows ?? [], suggestionRows: input?.suggestionRows ?? [],
|
|
2595
|
+
cursor: input?.cursor ?? null, fullContentsVisible: !!input && input.state !== "unknown" && !input.collapsedPaste,
|
|
2596
|
+
...(input?.unknownReason ? { reason: input.unknownReason } : {}), cleared: false };
|
|
2597
|
+
const stopped = classification === "typed_or_pasted" || classification === "unreadable";
|
|
2598
|
+
const audit = this.recordPromptOverride({ ...auditInput, input: { classification, visibleRows: existingInput.rows.length,
|
|
2599
|
+
suggestionRows: existingInput.suggestionRows.length, choice: unchecked ? "type_without_checking" : "inspect",
|
|
2600
|
+
outcome: stopped ? "stopped" : "proceed", clearAttempted: false } });
|
|
2601
|
+
if (!audit.ok)
|
|
2602
|
+
sendAdvisory = `prompt-override: audit unavailable (${audit.reason}).`;
|
|
2603
|
+
if (stopped)
|
|
2604
|
+
throw new DeliveryGuardError(classification === "unreadable" ? "override_input_unknown" : "override_input_present", classification === "unreadable" ? "Input could not be read. Nothing was typed. Inspect the native terminal, deliberately clear its prompt with native/tmux controls, then retry; or explicitly choose --type-without-checking (does not clear)."
|
|
2605
|
+
: "Existing typed or pasted input (author unknown). Nothing was typed. Inspect the shown input, deliberately clear the prompt with native/tmux controls, then retry. Manual clearing is outside OpenRig's lease and observation checks and is not recorded.");
|
|
2606
|
+
if (unchecked)
|
|
2607
|
+
sendAdvisory = [sendAdvisory, "Input was not checked or cleared; this send may join or submit existing text."].filter(Boolean).join(" ");
|
|
2608
|
+
};
|
|
2609
|
+
}
|
|
2610
|
+
const audit = overrideBeforePaste ? { ok: true } : this.recordPromptOverride(auditInput);
|
|
2525
2611
|
if (!audit.ok && readiness.state === "needs_input") {
|
|
2526
2612
|
return {
|
|
2527
2613
|
ok: false,
|
|
@@ -2623,7 +2709,7 @@ export class SessionTransport {
|
|
|
2623
2709
|
opts?.beforeWrite?.();
|
|
2624
2710
|
writeIssued = true;
|
|
2625
2711
|
if (promptOverride)
|
|
2626
|
-
return this.tmuxAdapter.sendText(sessionName, text, beforePaste, { bracketed: false });
|
|
2712
|
+
return this.tmuxAdapter.sendText(sessionName, text, beforePaste, { bracketed: false, beforePaste: overrideBeforePaste });
|
|
2627
2713
|
return beforePaste ? this.tmuxAdapter.sendText(sessionName, text, beforePaste) : this.tmuxAdapter.sendText(sessionName, text);
|
|
2628
2714
|
}, (result) => result.ok ? "ok" : "failed").catch(tagIssued);
|
|
2629
2715
|
if (!textResult.ok && textResult.code === CALLER_CANCELLED && cancel?.aborted) {
|
|
@@ -2631,13 +2717,15 @@ export class SessionTransport {
|
|
|
2631
2717
|
}
|
|
2632
2718
|
if (!textResult.ok) {
|
|
2633
2719
|
// A draft refusal is the guard holding the write before any input; it is not an attempted write.
|
|
2634
|
-
const policyRefusal = typeof textResult.code === "string" && (textResult.code.startsWith("draft_") || textResult.code === "managed_compaction_pending");
|
|
2720
|
+
const policyRefusal = typeof textResult.code === "string" && (textResult.code.startsWith("draft_") || textResult.code.startsWith("override_input_") || textResult.code === "managed_compaction_pending");
|
|
2635
2721
|
return observe({
|
|
2636
2722
|
ok: false,
|
|
2637
2723
|
sessionName,
|
|
2638
2724
|
reason: policyRefusal ? textResult.code : "send_failed",
|
|
2639
2725
|
outcome: "failed",
|
|
2640
|
-
|
|
2726
|
+
// The adapter's draft checks run before the paste (only file/buffer preparation precedes them), and its
|
|
2727
|
+
// after-paste observation cannot fail the write, so a draft_* receipt proves the target input was never reached.
|
|
2728
|
+
inputPhase: policyRefusal ? "not_reached" : "attempted",
|
|
2641
2729
|
error: `Failed to send text to '${sessionName}': ${textResult.message}`,
|
|
2642
2730
|
...(waitMode || policyRefusal ? { sent: false, ...waitEvidence } : {}),
|
|
2643
2731
|
});
|
|
@@ -2673,7 +2761,6 @@ export class SessionTransport {
|
|
|
2673
2761
|
return observe(changedRecipient(true));
|
|
2674
2762
|
if (!promptAnswerStaged(pane, text, runtime)) {
|
|
2675
2763
|
return observe({ ok: true, sessionName, sent: true, verified: false, outcome: "rendered-unconfirmed", promptInteraction: "unverified",
|
|
2676
|
-
...(inputBoxRuntime ? { inputBox: INPUT_BOX_UNCHECKED } : {}),
|
|
2677
2764
|
warning: [sendAdvisory, "prompt-override: answer sent as unbracketed input; submission unverified. No trailing Enter: the complete answer is not visibly staged (it may have been consumed, the prompt changed, or observation is unavailable)."].filter(Boolean).join(" ") });
|
|
2678
2765
|
}
|
|
2679
2766
|
sendAdvisory = [sendAdvisory, "prompt-override: answer sent as unbracketed input; Enter submitted the complete still-staged answer."].filter(Boolean).join(" ");
|
|
@@ -2688,7 +2775,9 @@ export class SessionTransport {
|
|
|
2688
2775
|
reason: policyRefusal ? submitResult.code : "submit_failed",
|
|
2689
2776
|
outcome: "failed",
|
|
2690
2777
|
inputPhase: "written",
|
|
2691
|
-
error:
|
|
2778
|
+
error: policyRefusal
|
|
2779
|
+
? `Text was pasted into '${sessionName}', but Enter was not sent: ${submitResult.message} Inspect the current input before submitting it.`
|
|
2780
|
+
: `Text is in '${sessionName}', but the Enter reported a failure, so the submission outcome is unconfirmed. The agent may need manual attention.`,
|
|
2692
2781
|
...(waitMode || policyRefusal ? { sent: true, ...waitEvidence } : {}),
|
|
2693
2782
|
});
|
|
2694
2783
|
}
|
|
@@ -2727,26 +2816,23 @@ export class SessionTransport {
|
|
|
2727
2816
|
const count = envelope ? (pane, expected) => countEnvelopeOccurrences(pane, expected, promptClass) : countOccurrences;
|
|
2728
2817
|
const preCount = count(transcript(preVerifyContent), snippet);
|
|
2729
2818
|
const postCount = count(transcript(content), snippet);
|
|
2730
|
-
// An audited prompt answer reads no box (no extra read is added for it), so it
|
|
2731
|
-
//
|
|
2819
|
+
// An audited prompt answer reads no box (no extra read is added for it), so it reads unconfirmed; it never
|
|
2820
|
+
// falls back to the count below.
|
|
2732
2821
|
const inputBox = boxBefore && inputBoxRuntime
|
|
2733
2822
|
? await this.inputBoxEvidence(sessionName, sessionMeta, boxBefore, readInputBox(content, inputBoxRuntime, text, boxBefore.pane))
|
|
2734
|
-
:
|
|
2823
|
+
: undefined;
|
|
2735
2824
|
// With the setting on, only a seat proven idle before the paste and input-box evidence verify: exact before
|
|
2736
2825
|
// Enter, empty after, same process. A not-idle or unknown seat always reads unconfirmed.
|
|
2737
2826
|
const verified = inputBoxRuntime
|
|
2738
2827
|
? inputBox?.seat === "idle" && inputBox.before === "exact" && inputBox.after === "empty" && inputBox.sameProcess
|
|
2739
2828
|
: postCount > preCount;
|
|
2740
|
-
return observe({ ok: true, sessionName, ...interaction, verified, outcome: verified ? "delivered" : "rendered-unconfirmed", ...(
|
|
2829
|
+
return observe({ ok: true, sessionName, ...interaction, verified, outcome: verified ? "delivered" : "rendered-unconfirmed", ...(sendAdvisory ? { warning: sendAdvisory } : {}), ...(waitMode ? { sent: true, ...waitEvidence } : {}) });
|
|
2741
2830
|
}
|
|
2742
2831
|
catch {
|
|
2743
2832
|
if (observed && observed.post.state === "not_reached") {
|
|
2744
2833
|
observed.post = { state: "unavailable", cause: "capture_error", capturedAt: this.now().toISOString(), captureSeq };
|
|
2745
2834
|
}
|
|
2746
|
-
|
|
2747
|
-
? { seat: boxBefore.seat, before: boxBefore.reading, after: "unavailable", sameProcess: false }
|
|
2748
|
-
: inputBoxRuntime && promptOverride ? INPUT_BOX_UNCHECKED : undefined;
|
|
2749
|
-
return observe({ ok: true, sessionName, ...interaction, verified: false, outcome: "rendered-unconfirmed", ...(inputBox ? { inputBox } : {}), ...(sendAdvisory ? { warning: sendAdvisory } : {}), ...(waitMode ? { sent: true, ...waitEvidence } : {}) });
|
|
2835
|
+
return observe({ ok: true, sessionName, ...interaction, verified: false, outcome: "rendered-unconfirmed", ...(sendAdvisory ? { warning: sendAdvisory } : {}), ...(waitMode ? { sent: true, ...waitEvidence } : {}) });
|
|
2750
2836
|
}
|
|
2751
2837
|
}
|
|
2752
2838
|
return observe({ ok: true, sessionName, ...interaction, ...(sendAdvisory ? { warning: sendAdvisory } : {}), ...(waitMode ? { sent: true, ...waitEvidence } : {}) });
|
|
@@ -2887,7 +2973,7 @@ export class SessionTransport {
|
|
|
2887
2973
|
async observeReadinessWithin(input, remainingMs, cancel) {
|
|
2888
2974
|
if (cancel?.aborted)
|
|
2889
2975
|
return null;
|
|
2890
|
-
const observation = this.classifySendReadiness(input);
|
|
2976
|
+
const observation = this.classifySendReadiness(input, input.privateInput);
|
|
2891
2977
|
observation.catch(() => undefined);
|
|
2892
2978
|
let timer;
|
|
2893
2979
|
let onAbort;
|
|
@@ -2956,7 +3042,7 @@ export class SessionTransport {
|
|
|
2956
3042
|
}
|
|
2957
3043
|
return paneCommand.replace(/^-/, "");
|
|
2958
3044
|
}
|
|
2959
|
-
async classifySendReadiness(input) {
|
|
3045
|
+
async classifySendReadiness(input, privateInput = false) {
|
|
2960
3046
|
const now = this.now();
|
|
2961
3047
|
const composerSnapshot = this.tmuxAdapter.deliveryGuard?.needsInputCheck(input.sessionName)
|
|
2962
3048
|
? () => this.tmuxAdapter.captureComposerSnapshot(input.binding?.pane ?? input.sessionName) : undefined;
|
|
@@ -2989,6 +3075,21 @@ export class SessionTransport {
|
|
|
2989
3075
|
hookActivity.reason !== "permission_prompt_cleared") {
|
|
2990
3076
|
// Fresh hook (within the 15s send window): authoritative for any state.
|
|
2991
3077
|
if (this.hookFreshForSend(hookActivity, now)) {
|
|
3078
|
+
if (hookActivity.state === "running" && input.runtime === "claude-code") {
|
|
3079
|
+
const paneVeto = await probeSessionActivity({
|
|
3080
|
+
composerSnapshot,
|
|
3081
|
+
currentClaudeDialogueOnly: true,
|
|
3082
|
+
sessionName: input.sessionName,
|
|
3083
|
+
runtime: input.runtime,
|
|
3084
|
+
attachmentType: input.attachmentType,
|
|
3085
|
+
tmuxAdapter: this.tmuxAdapter,
|
|
3086
|
+
now,
|
|
3087
|
+
captureObserver: privateInput ? undefined : this.captureObserver,
|
|
3088
|
+
binding: input.binding,
|
|
3089
|
+
});
|
|
3090
|
+
if (paneVeto.state === "needs_input")
|
|
3091
|
+
return paneVeto;
|
|
3092
|
+
}
|
|
2992
3093
|
return hookActivity;
|
|
2993
3094
|
}
|
|
2994
3095
|
// OPR.0.4.3.28 Part A — a stale-but-latest `idle` hook (older than the 15s
|
|
@@ -3012,7 +3113,7 @@ export class SessionTransport {
|
|
|
3012
3113
|
attachmentType: input.attachmentType,
|
|
3013
3114
|
tmuxAdapter: this.tmuxAdapter,
|
|
3014
3115
|
now,
|
|
3015
|
-
captureObserver: this.captureObserver,
|
|
3116
|
+
captureObserver: privateInput ? undefined : this.captureObserver,
|
|
3016
3117
|
binding: input.binding,
|
|
3017
3118
|
});
|
|
3018
3119
|
if (paneVeto.state === "needs_input") {
|
|
@@ -3028,7 +3129,7 @@ export class SessionTransport {
|
|
|
3028
3129
|
attachmentType: input.attachmentType,
|
|
3029
3130
|
tmuxAdapter: this.tmuxAdapter,
|
|
3030
3131
|
now,
|
|
3031
|
-
captureObserver: this.captureObserver,
|
|
3132
|
+
captureObserver: privateInput ? undefined : this.captureObserver,
|
|
3032
3133
|
binding: input.binding,
|
|
3033
3134
|
// Pane-only readiness must not send into a status row whose timer hasn't appeared yet.
|
|
3034
3135
|
timerlessStatusIsLive: input.readinessFromPaneOnly === true,
|
|
@@ -3195,6 +3296,7 @@ export class SessionTransport {
|
|
|
3195
3296
|
detectedReason: input.readiness.reason,
|
|
3196
3297
|
evidenceSource: input.readiness.evidenceSource,
|
|
3197
3298
|
overrideReason: input.overrideReason,
|
|
3299
|
+
...(input.input ? { input: input.input } : {}),
|
|
3198
3300
|
});
|
|
3199
3301
|
return { ok: true };
|
|
3200
3302
|
}
|
|
@@ -3341,6 +3443,7 @@ export class SessionTransport {
|
|
|
3341
3443
|
// (h) thread the resolved stampISO so send()'s delivered-latency calc measures from the SAME
|
|
3342
3444
|
// compose stamp the envelope carries (opts may not have carried one; the local stampISO is truth).
|
|
3343
3445
|
const result = await this.send(session.sessionName, perRecipientText, { ...opts, stampISO,
|
|
3446
|
+
exactText: opts?.envelopeSender ? text : undefined,
|
|
3344
3447
|
deliveryId: opts?.deliveryId ? `${opts.deliveryId}:${session.sessionName}` : undefined });
|
|
3345
3448
|
results.push(result);
|
|
3346
3449
|
}
|