@openrig/cli 0.6.12 → 0.6.14
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 +69 -14
- package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/README.md +9 -2
- package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +25 -9
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +7 -4
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +5 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +11 -3
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +73 -48
- package/daemon/assets/skills/rigs/SKILL.md +8 -4
- package/daemon/context-packs/help/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +76 -16
- package/daemon/context-packs/reference/getting-started.md +135 -28
- package/daemon/context-packs/reference/manifest.yaml +1 -1
- package/daemon/context-packs/reference/rig-spec.md +5 -5
- package/daemon/context-packs/reference/whats-new.md +65 -167
- package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
- package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
- package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +5 -0
- 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 +11 -3
- 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/refocusing/scripts/trace-to-root.py +73 -48
- 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 +9 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +110 -52
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +47 -6
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-resume.js +4 -1
- package/daemon/dist/adapters/pi-resume.js.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.d.ts +9 -0
- package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.js +16 -0
- package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
- package/daemon/dist/adapters/pi-runner.d.ts +5 -2
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner.js +72 -15
- 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 +2 -0
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/stub-compaction.d.ts +1 -0
- package/daemon/dist/adapters/stub-compaction.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-compaction.js +2 -0
- package/daemon/dist/adapters/stub-compaction.js.map +1 -1
- package/daemon/dist/adapters/stub-refocus.d.ts +6 -0
- package/daemon/dist/adapters/stub-refocus.d.ts.map +1 -0
- package/daemon/dist/adapters/stub-refocus.js +22 -0
- package/daemon/dist/adapters/stub-refocus.js.map +1 -0
- package/daemon/dist/adapters/stub-runner.d.ts +6 -0
- package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runner.js +18 -1
- package/daemon/dist/adapters/stub-runner.js.map +1 -1
- package/daemon/dist/adapters/stub-script.d.ts +2 -2
- package/daemon/dist/adapters/stub-script.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-script.js +2 -2
- package/daemon/dist/adapters/stub-script.js.map +1 -1
- package/daemon/dist/adapters/tmux.js +1 -1
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +2 -0
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/117_provider_account_readings.d.ts +3 -0
- package/daemon/dist/db/migrations/117_provider_account_readings.d.ts.map +1 -0
- package/daemon/dist/db/migrations/117_provider_account_readings.js +32 -0
- package/daemon/dist/db/migrations/117_provider_account_readings.js.map +1 -0
- package/daemon/dist/domain/claim-service.d.ts +9 -18
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +83 -0
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/claude-activity-hooks.d.ts +6 -0
- package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
- package/daemon/dist/domain/claude-activity-hooks.js +19 -1
- package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +2 -2
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +20 -14
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/claude-core-plugin-env.d.ts +2 -0
- package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -1
- package/daemon/dist/domain/claude-core-plugin-env.js +6 -2
- package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.d.ts +5 -0
- package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.js +48 -7
- package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
- package/daemon/dist/domain/claude-mcp-menu.d.ts +5 -0
- package/daemon/dist/domain/claude-mcp-menu.d.ts.map +1 -0
- package/daemon/dist/domain/claude-mcp-menu.js +25 -0
- package/daemon/dist/domain/claude-mcp-menu.js.map +1 -0
- package/daemon/dist/domain/fresh-occupant-relation.d.ts +7 -0
- package/daemon/dist/domain/fresh-occupant-relation.d.ts.map +1 -1
- package/daemon/dist/domain/fresh-occupant-relation.js +45 -0
- package/daemon/dist/domain/fresh-occupant-relation.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts +14 -2
- package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/channel-recovery.js +128 -89
- package/daemon/dist/domain/gateway/slack/channel-recovery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +4 -0
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +5 -3
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/recovery-budget.d.ts +24 -0
- package/daemon/dist/domain/gateway/slack/recovery-budget.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/recovery-budget.js +18 -0
- package/daemon/dist/domain/gateway/slack/recovery-budget.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/slack-recovery.d.ts +104 -0
- package/daemon/dist/domain/gateway/slack/slack-recovery.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/slack-recovery.js +236 -0
- package/daemon/dist/domain/gateway/slack/slack-recovery.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +29 -6
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.d.ts +34 -0
- package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.js +67 -0
- package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-recovery.d.ts +37 -0
- package/daemon/dist/domain/gateway/slack/thread-recovery.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/thread-recovery.js +173 -0
- package/daemon/dist/domain/gateway/slack/thread-recovery.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +8 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js +11 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +6 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.js +4 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
- package/daemon/dist/domain/model-divergence/current-model-reader.d.ts +74 -0
- package/daemon/dist/domain/model-divergence/current-model-reader.d.ts.map +1 -0
- package/daemon/dist/domain/model-divergence/current-model-reader.js +246 -0
- package/daemon/dist/domain/model-divergence/current-model-reader.js.map +1 -0
- package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +18 -0
- package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/effective-model-readers.js +24 -8
- package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -1
- package/daemon/dist/domain/native-process-lineage.d.ts +8 -1
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
- package/daemon/dist/domain/native-process-lineage.js +40 -26
- package/daemon/dist/domain/native-process-lineage.js.map +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +34 -8
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +1 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +84 -18
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/process-census.d.ts +1 -1
- package/daemon/dist/domain/process-census.d.ts.map +1 -1
- package/daemon/dist/domain/process-table.d.ts +26 -0
- package/daemon/dist/domain/process-table.d.ts.map +1 -0
- package/daemon/dist/domain/process-table.js +185 -0
- package/daemon/dist/domain/process-table.js.map +1 -0
- package/daemon/dist/domain/profile-resolver.d.ts +8 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +11 -0
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/projection-planner.js +1 -1
- package/daemon/dist/domain/projection-planner.js.map +1 -1
- package/daemon/dist/domain/provider/claude-usage-windows.d.ts +3 -1
- package/daemon/dist/domain/provider/claude-usage-windows.d.ts.map +1 -1
- package/daemon/dist/domain/provider/claude-usage-windows.js +48 -3
- package/daemon/dist/domain/provider/claude-usage-windows.js.map +1 -1
- package/daemon/dist/domain/provider/codex-usage-reader.d.ts +4 -1
- package/daemon/dist/domain/provider/codex-usage-reader.d.ts.map +1 -1
- package/daemon/dist/domain/provider/codex-usage-reader.js +3 -0
- package/daemon/dist/domain/provider/codex-usage-reader.js.map +1 -1
- package/daemon/dist/domain/provider/codex-usage-windows.d.ts +3 -1
- package/daemon/dist/domain/provider/codex-usage-windows.d.ts.map +1 -1
- package/daemon/dist/domain/provider/codex-usage-windows.js +1 -0
- package/daemon/dist/domain/provider/codex-usage-windows.js.map +1 -1
- package/daemon/dist/domain/provider/provider-account-readings.d.ts +42 -0
- package/daemon/dist/domain/provider/provider-account-readings.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-account-readings.js +132 -0
- package/daemon/dist/domain/provider/provider-account-readings.js.map +1 -0
- package/daemon/dist/domain/provider/provider-types.d.ts +29 -0
- package/daemon/dist/domain/provider/provider-types.d.ts.map +1 -1
- package/daemon/dist/domain/provider/usage-across-hosts.d.ts.map +1 -1
- package/daemon/dist/domain/provider/usage-across-hosts.js +6 -0
- package/daemon/dist/domain/provider/usage-across-hosts.js.map +1 -1
- package/daemon/dist/domain/provider/usage-windows.d.ts +25 -0
- package/daemon/dist/domain/provider/usage-windows.d.ts.map +1 -1
- package/daemon/dist/domain/provider/usage-windows.js +100 -4
- package/daemon/dist/domain/provider/usage-windows.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +23 -0
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +59 -1
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +47 -4
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/daemon/dist/domain/restore-check-service.d.ts +10 -0
- package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
- package/daemon/dist/domain/restore-check-service.js +73 -10
- package/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/daemon/dist/domain/restore-guidance.d.ts +6 -0
- package/daemon/dist/domain/restore-guidance.d.ts.map +1 -1
- package/daemon/dist/domain/restore-guidance.js +21 -5
- package/daemon/dist/domain/restore-guidance.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +1 -1
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +6 -29
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +3 -0
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +6 -0
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +4 -2
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +4 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +12 -2
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +11 -0
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +13 -0
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.js +15 -1
- package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-cwd-preparation.d.ts +22 -0
- package/daemon/dist/domain/seat-cwd-preparation.d.ts.map +1 -0
- package/daemon/dist/domain/seat-cwd-preparation.js +107 -0
- package/daemon/dist/domain/seat-cwd-preparation.js.map +1 -0
- package/daemon/dist/domain/seat-effort.d.ts +4 -3
- package/daemon/dist/domain/seat-effort.d.ts.map +1 -1
- package/daemon/dist/domain/seat-effort.js +21 -3
- package/daemon/dist/domain/seat-effort.js.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +36 -2
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.js +206 -15
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/seat-restart-in-place.d.ts +14 -0
- package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -1
- package/daemon/dist/domain/seat-restart-in-place.js +59 -3
- package/daemon/dist/domain/seat-restart-in-place.js.map +1 -1
- package/daemon/dist/domain/seat-status-service.d.ts +2 -0
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +1 -0
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.d.ts +7 -1
- package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.js +9 -3
- package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
- package/daemon/dist/domain/session-name.d.ts +8 -0
- package/daemon/dist/domain/session-name.d.ts.map +1 -1
- package/daemon/dist/domain/session-name.js +12 -0
- package/daemon/dist/domain/session-name.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +78 -3
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +306 -15
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +1 -1
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/topology-converge.d.ts +1 -0
- package/daemon/dist/domain/topology-converge.d.ts.map +1 -1
- package/daemon/dist/domain/topology-converge.js +1 -0
- package/daemon/dist/domain/topology-converge.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +14 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +4 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/wake-resolve-service.d.ts +1 -0
- package/daemon/dist/domain/wake-resolve-service.d.ts.map +1 -1
- package/daemon/dist/domain/wake-resolve-service.js +10 -0
- package/daemon/dist/domain/wake-resolve-service.js.map +1 -1
- package/daemon/dist/domain/wake-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/wake-resolver.js +7 -0
- package/daemon/dist/domain/wake-resolver.js.map +1 -1
- package/daemon/dist/domain/watchdog-delivery.d.ts +29 -0
- package/daemon/dist/domain/watchdog-delivery.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-delivery.js +113 -0
- package/daemon/dist/domain/watchdog-delivery.js.map +1 -0
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +60 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +154 -28
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-scheduler.js +6 -1
- package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
- package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-instance-store.js +6 -2
- package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
- package/daemon/dist/routes/attention.d.ts.map +1 -1
- package/daemon/dist/routes/attention.js +41 -1
- package/daemon/dist/routes/attention.js.map +1 -1
- package/daemon/dist/routes/compaction.js +1 -1
- package/daemon/dist/routes/compaction.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +3 -1
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/restore-check.d.ts.map +1 -1
- package/daemon/dist/routes/restore-check.js +19 -1
- package/daemon/dist/routes/restore-check.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +15 -2
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/daemon/dist/routes/sessions.js +42 -1
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/transport.d.ts.map +1 -1
- package/daemon/dist/routes/transport.js +13 -2
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/server.d.ts +1 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +7 -4
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +41 -118
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +1 -1
- package/daemon/docs/reference/agent-startup-guide.md +84 -0
- package/daemon/docs/reference/getting-started.md +135 -28
- package/daemon/docs/reference/publishing-a-rig-bundle.md +5 -2
- package/daemon/docs/reference/quickstart.md +187 -0
- package/daemon/docs/reference/refocus-channel.md +11 -1
- package/daemon/docs/reference/rig-spec.md +5 -5
- package/daemon/docs/reference/rosters.md +29 -2
- package/daemon/docs/reference/slack-app-setup.md +47 -17
- package/daemon/docs/reference/whats-new.md +65 -167
- package/daemon/specs/agents/apps/vault-specialist/agent.yaml +1 -0
- package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -0
- package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -0
- package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -0
- package/daemon/specs/agents/conveyor/reviewer/agent.yaml +1 -0
- package/daemon/specs/agents/design/product-designer/agent.yaml +1 -0
- package/daemon/specs/agents/development/implementer/agent.yaml +1 -0
- package/daemon/specs/agents/development/qa/agent.yaml +1 -0
- package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +1 -0
- package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +1 -0
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -0
- package/daemon/specs/agents/product-management/pm/agent.yaml +1 -0
- package/daemon/specs/agents/research/analyst/agent.yaml +1 -0
- package/daemon/specs/agents/research/synthesizer/agent.yaml +1 -0
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -0
- package/dist/build-info.js +3 -3
- package/dist/client.d.ts +7 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +28 -0
- package/dist/client.js.map +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +13 -3
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +14 -0
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/chatroom.d.ts.map +1 -1
- package/dist/commands/chatroom.js +1 -0
- package/dist/commands/chatroom.js.map +1 -1
- package/dist/commands/compact.d.ts.map +1 -1
- package/dist/commands/compact.js +5 -4
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +4 -2
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +47 -23
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/grow.d.ts.map +1 -1
- package/dist/commands/grow.js +24 -7
- package/dist/commands/grow.js.map +1 -1
- package/dist/commands/provider.d.ts.map +1 -1
- package/dist/commands/provider.js +43 -7
- package/dist/commands/provider.js.map +1 -1
- package/dist/commands/ps.d.ts +2 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +12 -1
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/reconcile-session.d.ts.map +1 -1
- package/dist/commands/reconcile-session.js +25 -4
- package/dist/commands/reconcile-session.js.map +1 -1
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +20 -1
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/roster.d.ts +2 -1
- package/dist/commands/roster.d.ts.map +1 -1
- package/dist/commands/roster.js +10 -5
- package/dist/commands/roster.js.map +1 -1
- package/dist/commands/scope.js +1 -1
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +75 -8
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +14 -1
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/ui.d.ts.map +1 -1
- package/dist/commands/ui.js +8 -1
- package/dist/commands/ui.js.map +1 -1
- package/dist/commands/usage.d.ts.map +1 -1
- package/dist/commands/usage.js +4 -3
- package/dist/commands/usage.js.map +1 -1
- package/dist/config-store.d.ts +2 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +5 -0
- package/dist/config-store.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +11 -3
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/front-door.d.ts.map +1 -1
- package/dist/front-door.js +3 -1
- package/dist/front-door.js.map +1 -1
- package/dist/lib/model-observation.d.ts +13 -0
- package/dist/lib/model-observation.d.ts.map +1 -0
- package/dist/lib/model-observation.js +25 -0
- package/dist/lib/model-observation.js.map +1 -0
- package/dist/local-daemon-owner.d.ts +28 -0
- package/dist/local-daemon-owner.d.ts.map +1 -0
- package/dist/local-daemon-owner.js +98 -0
- package/dist/local-daemon-owner.js.map +1 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +1 -0
- package/dist/mcp-server.js.map +1 -1
- package/package.json +1 -1
- package/tui/dist/attention/attention-model.js +6 -5
- package/tui/dist/attention/attention-model.js.map +1 -1
- package/tui/dist/attention/source-continuity.d.ts.map +1 -1
- package/tui/dist/attention/source-continuity.js +2 -0
- package/tui/dist/attention/source-continuity.js.map +1 -1
- package/tui/dist/terminals/open-window.d.ts +11 -1
- package/tui/dist/terminals/open-window.d.ts.map +1 -1
- package/tui/dist/terminals/open-window.js +47 -2
- package/tui/dist/terminals/open-window.js.map +1 -1
- package/tui/dist/usage/usage-model.d.ts +2 -0
- package/tui/dist/usage/usage-model.d.ts.map +1 -1
- package/tui/dist/usage/usage-model.js +38 -3
- package/tui/dist/usage/usage-model.js.map +1 -1
- package/ui/dist/assets/{index-Cfbtfd9G.js → index-CVgod3Pm.js} +1 -1
- package/ui/dist/index.html +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-transport.d.ts","sourceRoot":"","sources":["../../src/domain/session-transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-transport.d.ts","sourceRoot":"","sources":["../../src/domain/session-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { currentClaudeMcpMenu } from "./claude-mcp-menu.js";
|
|
1
2
|
import stringWidth from "string-width";
|
|
2
3
|
import { CODEX_TURN_STATUS_PATTERN } from "./codex-pane-patterns.js";
|
|
3
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -8,6 +9,7 @@ import { OutboxHandler } from "./outbox-handler.js";
|
|
|
8
9
|
import { DraftAwareDelivery } from "./draft-aware-delivery.js";
|
|
9
10
|
import { claudeResumeRotation } from "./session-registry.js";
|
|
10
11
|
import { latestHookPermissionPending, latestHookWaitsOnPerson } from "./agent-activity-store.js";
|
|
12
|
+
import { DeliveryGuardError } from "./seat-delivery-guard.js";
|
|
11
13
|
import { wrapPaneEnvelope, appendDeliveredSegment } from "../lib/pane-envelope.js";
|
|
12
14
|
import { SeatIdentityStore } from "./seat-identity-store.js";
|
|
13
15
|
import { isShellForeground } from "./shell-classifier.js";
|
|
@@ -490,14 +492,17 @@ export function classifyPaneActivity(paneContent, options = {}) {
|
|
|
490
492
|
: null;
|
|
491
493
|
const claudeComposer = findClaudeComposer(paneContent, options);
|
|
492
494
|
const oldQuestionEnd = promptScanLines.lastIndexOf(CLAUDE_QUESTION_FOOTER);
|
|
495
|
+
const permissionPromptEvidence = findPatternEvidence(promptScanLines, PERMISSION_PROMPT_PATTERNS);
|
|
493
496
|
// A complete later empty composer with a recognized Claude bar makes the preceding question history.
|
|
494
497
|
// Keep draft handling and selectors without this dialog boundary unchanged.
|
|
495
498
|
const selectionLines = claudeComposer?.framed &&
|
|
496
499
|
CLAUDE_ANCHORED_MODE_FOOTER.test(claudeComposer.bar) &&
|
|
497
500
|
IDLE_PROMPT_PATTERNS.some(pattern => pattern.test(claudeComposer.text)) &&
|
|
498
501
|
oldQuestionEnd >= 0 && oldQuestionEnd < promptScanLines.length - 1
|
|
499
|
-
? promptScanLines.slice(oldQuestionEnd + 1)
|
|
500
|
-
|
|
502
|
+
? promptScanLines.slice(oldQuestionEnd + 1)
|
|
503
|
+
: options.runtime === "codex" && !permissionPromptEvidence
|
|
504
|
+
? codexCurrentSelectionLines(paneContent) ?? promptScanLines : promptScanLines;
|
|
505
|
+
const selectionPromptEvidence = currentClaudeMcpMenu(paneContent) ?? findCurrentClaudeQuestion(paneContent) ??
|
|
501
506
|
findPatternEvidence(selectionLines, [COMPOSER_SELECTION_SCAN_PATTERN]);
|
|
502
507
|
if (selectionPromptEvidence) {
|
|
503
508
|
return {
|
|
@@ -509,7 +514,6 @@ export function classifyPaneActivity(paneContent, options = {}) {
|
|
|
509
514
|
// OPR.0.4.1.10 (FR-1c): a permission/confirmation question is attention even when its selector is
|
|
510
515
|
// not in view — checked before the idle short-circuits so a permission block above an idle-looking
|
|
511
516
|
// footer never reads as idle (which would let a default send land on it).
|
|
512
|
-
const permissionPromptEvidence = findPatternEvidence(promptScanLines, PERMISSION_PROMPT_PATTERNS);
|
|
513
517
|
if (permissionPromptEvidence) {
|
|
514
518
|
return {
|
|
515
519
|
state: "attention",
|
|
@@ -1173,6 +1177,21 @@ function codexTurnStatusAt(box) {
|
|
|
1173
1177
|
return i;
|
|
1174
1178
|
return -1;
|
|
1175
1179
|
}
|
|
1180
|
+
/** Codex 0.160.0's parent bottom-pane renderer replaces the normal composer for a modal; inline choices and
|
|
1181
|
+
* previews follow the running status. Only scope generic selector history at this adjacent normal-frame slot.
|
|
1182
|
+
* A draft, queued input, different visible version, missing footer or intervening content keeps the full scan.
|
|
1183
|
+
* Source: openai/codex a956835d, tui/src/bottom_pane/mod.rs:2164-2310. Permission detectors keep their own scan. */
|
|
1184
|
+
function codexCurrentSelectionLines(pane) {
|
|
1185
|
+
if (readInputBox(pane, "codex", "") !== "empty")
|
|
1186
|
+
return null;
|
|
1187
|
+
const box = codexInputBox(pane);
|
|
1188
|
+
let status = box.inputAt - 1;
|
|
1189
|
+
while (status >= 0 && !box.lines[status].trim())
|
|
1190
|
+
status--;
|
|
1191
|
+
if (status < 0 || !CODEX_TURN_STATUS_PATTERN.test(box.lines[status]))
|
|
1192
|
+
return null;
|
|
1193
|
+
return trimPaneLines(box.lines.slice(status).join("\n"));
|
|
1194
|
+
}
|
|
1176
1195
|
/** Whether a Claude Code frame shows a running turn: `esc to interrupt` in the footer under its input box, or a
|
|
1177
1196
|
* live status row above the box (timer-less rows included): in the two rows above the box's opening rule, where
|
|
1178
1197
|
* Claude Code 2.1.296 draws its status row over a one-row margin whatever the box's height, or as
|
|
@@ -1468,6 +1487,15 @@ export function readInputBox(pane, runtime, text, beforeEnter) {
|
|
|
1468
1487
|
// composerRegion's body has every space removed (the startup guard's matcher, unchanged); identity reads the rows.
|
|
1469
1488
|
return boxHoldsText(stripBoxGlyph(pane.split("\n").slice(markerLine - 1, closingRuleLine - 1)), text);
|
|
1470
1489
|
}
|
|
1490
|
+
const CALLER_CANCELLED = "caller_cancelled";
|
|
1491
|
+
/** The caller's cancellation signal, or none for sends no caller owns (queue wakes, committed outbox deliveries). */
|
|
1492
|
+
function callerSignal(opts) {
|
|
1493
|
+
return opts?.queueWake || opts?.committedOutboxIds ? undefined : opts?.signal;
|
|
1494
|
+
}
|
|
1495
|
+
function callerCancelled(sessionName) {
|
|
1496
|
+
return { ok: false, sessionName, sent: false, inputPhase: "not_reached", reason: CALLER_CANCELLED,
|
|
1497
|
+
error: `The request was cancelled before any input started. Nothing was typed into '${sessionName}', and nothing will be.` };
|
|
1498
|
+
}
|
|
1471
1499
|
/** The evidence of a verified send whose path does not read the input box (an audited prompt answer). */
|
|
1472
1500
|
const INPUT_BOX_UNCHECKED = { seat: "unchecked", before: "unchecked", after: "unchecked", sameProcess: false };
|
|
1473
1501
|
export class SessionTransport {
|
|
@@ -1802,6 +1830,9 @@ export class SessionTransport {
|
|
|
1802
1830
|
async send(sessionName, text, opts) {
|
|
1803
1831
|
const guard = this.tmuxAdapter.deliveryGuard;
|
|
1804
1832
|
if (!guard) {
|
|
1833
|
+
// No guard, so no recorded delivery to read back: a caller already gone ends the send here.
|
|
1834
|
+
if (callerSignal(opts)?.aborted)
|
|
1835
|
+
return callerCancelled(sessionName);
|
|
1805
1836
|
const result = await this.sendUnguarded(sessionName, text, opts);
|
|
1806
1837
|
if (result.ok && result.sent !== false) {
|
|
1807
1838
|
await this.reconcileStartupReadiness(sessionName).catch(() => { });
|
|
@@ -1839,6 +1870,10 @@ export class SessionTransport {
|
|
|
1839
1870
|
return retainedResult();
|
|
1840
1871
|
}
|
|
1841
1872
|
}
|
|
1873
|
+
// A recorded delivery has answered with its own outcome above; with nothing recorded, a caller already gone
|
|
1874
|
+
// ends the send here.
|
|
1875
|
+
if (callerSignal(opts)?.aborted)
|
|
1876
|
+
return callerCancelled(sessionName);
|
|
1842
1877
|
// #1084 — the idle wait must not occupy the seat's serial lease: a long
|
|
1843
1878
|
// --wait-for-idle inside guard.operation holds up other sends and queue
|
|
1844
1879
|
// creates to this seat for the whole wait. The lease-free wait, main's
|
|
@@ -1878,7 +1913,14 @@ export class SessionTransport {
|
|
|
1878
1913
|
}
|
|
1879
1914
|
const result = await guard.operation(sessionName, async () => {
|
|
1880
1915
|
if (this.guardedDelivery && !sendOpts?.submitOnly && guard.needsInputCheck(sessionName)) {
|
|
1881
|
-
|
|
1916
|
+
// Up to its durable record a draft-aware send is still the caller's: one that went away while this send
|
|
1917
|
+
// waited for the lease ends here, unless a record for this delivery already exists. DraftAwareDelivery.send
|
|
1918
|
+
// commits that record synchronously before its first await, so no cancellation lands between this check
|
|
1919
|
+
// and the commit; after the commit a caller going away doesn't cancel it.
|
|
1920
|
+
if (callerSignal(sendOpts)?.aborted && !this.guardedDelivery.existing(sessionName, text, sendOpts ?? {}, ids)) {
|
|
1921
|
+
return callerCancelled(sessionName);
|
|
1922
|
+
}
|
|
1923
|
+
return this.guardedDelivery.send(sessionName, text, { ...sendOpts, signal: undefined }, ids);
|
|
1882
1924
|
}
|
|
1883
1925
|
const prior = this.guardedDelivery?.existing(sessionName, text, sendOpts ?? {}, ids);
|
|
1884
1926
|
return prior ?? this.sendUnguarded(sessionName, text, sendOpts);
|
|
@@ -1888,6 +1930,9 @@ export class SessionTransport {
|
|
|
1888
1930
|
return prior;
|
|
1889
1931
|
if (opts?.submitOnly)
|
|
1890
1932
|
return { ok: false, sessionName, sent: false, reason: "typing_guard_enabled", error: "Typing guard prevents submit-only; no Enter was sent." };
|
|
1933
|
+
// Nothing is retained yet: a caller that went away while this send waited for the lease ends it here.
|
|
1934
|
+
if (callerSignal(opts)?.aborted)
|
|
1935
|
+
return callerCancelled(sessionName);
|
|
1891
1936
|
this.db.transaction(() => {
|
|
1892
1937
|
for (const id of ids) {
|
|
1893
1938
|
const prior = opts?.committedOutboxIds ? outbox.getById(id) : null;
|
|
@@ -2050,6 +2095,7 @@ export class SessionTransport {
|
|
|
2050
2095
|
timeoutMs,
|
|
2051
2096
|
binding: { sessionName, nodeId: meta.nodeId, occupant: meta.occupant, pane: meta.pane },
|
|
2052
2097
|
readinessFromPaneOnly: opts.readinessFromPaneOnly === true,
|
|
2098
|
+
signal: callerSignal(opts), cancelledBy: "caller",
|
|
2053
2099
|
});
|
|
2054
2100
|
if (!preWait.ok) {
|
|
2055
2101
|
return { ok: false, failure: {
|
|
@@ -2261,13 +2307,33 @@ export class SessionTransport {
|
|
|
2261
2307
|
};
|
|
2262
2308
|
}
|
|
2263
2309
|
this.tmuxAdapter.deliveryGuard?.expectStagedInput(sessionName, expected);
|
|
2310
|
+
// This Enter is the request's first input, so a caller that has gone ends it here, before any key, as for a paste.
|
|
2311
|
+
const cancel = callerSignal(opts);
|
|
2312
|
+
if (cancel?.aborted)
|
|
2313
|
+
return callerCancelled(sessionName);
|
|
2264
2314
|
const targetFailure = await checkClaudeTarget();
|
|
2265
2315
|
if (targetFailure)
|
|
2266
2316
|
return targetFailure;
|
|
2267
2317
|
const copyModeFailure = await leavePaneMode("Nothing was submitted.");
|
|
2268
2318
|
if (copyModeFailure)
|
|
2269
2319
|
return copyModeFailure;
|
|
2270
|
-
|
|
2320
|
+
if (cancel?.aborted)
|
|
2321
|
+
return callerCancelled(sessionName);
|
|
2322
|
+
// The last check runs in the adapter, immediately before the key (after its guard checks).
|
|
2323
|
+
const beforeKey = cancel ? () => { if (cancel.aborted)
|
|
2324
|
+
throw new DeliveryGuardError(CALLER_CANCELLED, "caller cancelled before the key"); } : undefined;
|
|
2325
|
+
let submitResult;
|
|
2326
|
+
try {
|
|
2327
|
+
submitResult = await this.runStage("session_transport.submit", () => beforeKey ? this.tmuxAdapter.sendKeys(sessionName, ["Enter"], beforeKey) : this.tmuxAdapter.sendKeys(sessionName, ["Enter"]), (result) => result.ok ? "ok" : "failed");
|
|
2328
|
+
}
|
|
2329
|
+
catch (error) {
|
|
2330
|
+
// Unguarded, the adapter's pre-key check throws instead of returning a result; no key was sent.
|
|
2331
|
+
if (error instanceof DeliveryGuardError && error.code === CALLER_CANCELLED && cancel?.aborted)
|
|
2332
|
+
return callerCancelled(sessionName);
|
|
2333
|
+
throw error;
|
|
2334
|
+
}
|
|
2335
|
+
if (!submitResult.ok && submitResult.code === CALLER_CANCELLED && cancel?.aborted)
|
|
2336
|
+
return callerCancelled(sessionName);
|
|
2271
2337
|
if (!submitResult.ok) {
|
|
2272
2338
|
return { ok: false, sessionName, reason: "submit_failed", outcome: "failed", error: `submitOnly: Enter did not land on '${sessionName}': ${submitResult.message}` };
|
|
2273
2339
|
}
|
|
@@ -2288,6 +2354,7 @@ export class SessionTransport {
|
|
|
2288
2354
|
timeoutMs: waitForIdleMs,
|
|
2289
2355
|
binding: observed?.binding,
|
|
2290
2356
|
readinessFromPaneOnly: opts?.readinessFromPaneOnly === true,
|
|
2357
|
+
signal: callerSignal(opts), cancelledBy: "caller",
|
|
2291
2358
|
});
|
|
2292
2359
|
waitEvidence = {
|
|
2293
2360
|
activity: waitResult.activity,
|
|
@@ -2346,6 +2413,7 @@ export class SessionTransport {
|
|
|
2346
2413
|
timeoutLabelMs: waitForIdleMs,
|
|
2347
2414
|
binding: observed?.binding,
|
|
2348
2415
|
readinessFromPaneOnly: opts.readinessFromPaneOnly === true,
|
|
2416
|
+
signal: callerSignal(opts), cancelledBy: "caller",
|
|
2349
2417
|
});
|
|
2350
2418
|
waitEvidence = {
|
|
2351
2419
|
activity: rewait.activity,
|
|
@@ -2513,6 +2581,9 @@ export class SessionTransport {
|
|
|
2513
2581
|
if (opts?.stampISO) {
|
|
2514
2582
|
text = appendDeliveredSegment(text, this.now().getTime() - Date.parse(opts.stampISO));
|
|
2515
2583
|
}
|
|
2584
|
+
// A caller that went away while this send waited: nothing has been written, so nothing ever is.
|
|
2585
|
+
if (callerSignal(opts)?.aborted)
|
|
2586
|
+
return observe({ ...callerCancelled(sessionName), ...(waitMode ? waitEvidence : {}) });
|
|
2516
2587
|
// Recheck the selected recipient after readiness/capture awaits, at the input boundary.
|
|
2517
2588
|
const targetFailure = await checkClaudeTarget();
|
|
2518
2589
|
if (targetFailure)
|
|
@@ -2523,6 +2594,13 @@ export class SessionTransport {
|
|
|
2523
2594
|
// 3. Deliver ordinary messages as paste, audited prompt answers as key input.
|
|
2524
2595
|
if (observed)
|
|
2525
2596
|
observed.sentHash = hashSentText(text);
|
|
2597
|
+
// The caller's cancellation is checked once more at the adapter's last step before the paste (after its buffer
|
|
2598
|
+
// setup). A refusal there is proven pre-input and returns caller_cancelled; Enter below never checks it.
|
|
2599
|
+
const cancel = callerSignal(opts);
|
|
2600
|
+
if (cancel?.aborted)
|
|
2601
|
+
return observe({ ...callerCancelled(sessionName), ...(waitMode ? waitEvidence : {}) });
|
|
2602
|
+
const beforePaste = cancel ? () => { opts?.beforeWrite?.(); if (cancel.aborted)
|
|
2603
|
+
throw new DeliveryGuardError(CALLER_CANCELLED, "caller cancelled before the paste"); } : opts?.beforeWrite;
|
|
2526
2604
|
// Set once the text write has been handed to the adapter: from then on a throw is not "nothing sent".
|
|
2527
2605
|
let writeIssued = false;
|
|
2528
2606
|
const tagIssued = (error) => {
|
|
@@ -2534,9 +2612,12 @@ export class SessionTransport {
|
|
|
2534
2612
|
opts?.beforeWrite?.();
|
|
2535
2613
|
writeIssued = true;
|
|
2536
2614
|
if (promptOverride)
|
|
2537
|
-
return this.tmuxAdapter.sendText(sessionName, text,
|
|
2538
|
-
return
|
|
2615
|
+
return this.tmuxAdapter.sendText(sessionName, text, beforePaste, { bracketed: false });
|
|
2616
|
+
return beforePaste ? this.tmuxAdapter.sendText(sessionName, text, beforePaste) : this.tmuxAdapter.sendText(sessionName, text);
|
|
2539
2617
|
}, (result) => result.ok ? "ok" : "failed").catch(tagIssued);
|
|
2618
|
+
if (!textResult.ok && textResult.code === CALLER_CANCELLED && cancel?.aborted) {
|
|
2619
|
+
return observe({ ...callerCancelled(sessionName), ...(waitMode ? waitEvidence : {}) });
|
|
2620
|
+
}
|
|
2540
2621
|
if (!textResult.ok) {
|
|
2541
2622
|
// A draft refusal is the guard holding the write before any input; it is not an attempted write.
|
|
2542
2623
|
const policyRefusal = typeof textResult.code === "string" && textResult.code.startsWith("draft_");
|
|
@@ -2741,12 +2822,15 @@ export class SessionTransport {
|
|
|
2741
2822
|
activity, waitedMs: input.timeoutMs, attempts,
|
|
2742
2823
|
};
|
|
2743
2824
|
};
|
|
2825
|
+
const cancelReason = input.cancelledBy === "caller" ? CALLER_CANCELLED : "preparation_cancelled";
|
|
2744
2826
|
const cancelled = () => ({
|
|
2745
2827
|
ok: false,
|
|
2746
|
-
reason:
|
|
2747
|
-
error:
|
|
2828
|
+
reason: cancelReason,
|
|
2829
|
+
error: input.cancelledBy === "caller"
|
|
2830
|
+
? "The request was cancelled while it waited for the seat to be idle. No text was sent, and none will be."
|
|
2831
|
+
: "Managed preparation ended; no compact authorized.",
|
|
2748
2832
|
activity: last ?? {
|
|
2749
|
-
state: "unknown", reason:
|
|
2833
|
+
state: "unknown", reason: cancelReason, evidenceSource: "pane_heuristic",
|
|
2750
2834
|
sampledAt: this.now().toISOString(), evidence: null,
|
|
2751
2835
|
},
|
|
2752
2836
|
waitedMs: Math.max(0, Math.min(input.timeoutMs, input.timeoutMs - (deadline - Date.now()))),
|
|
@@ -2758,7 +2842,9 @@ export class SessionTransport {
|
|
|
2758
2842
|
if (attempts > 0 && Date.now() > deadline)
|
|
2759
2843
|
return expire();
|
|
2760
2844
|
attempts++;
|
|
2761
|
-
|
|
2845
|
+
// A caller's cancellation also ends a pending observation (the abandoned read is ignored, never delivered on).
|
|
2846
|
+
// Managed preparation's wait keeps its own behaviour: it doesn't race the read against its signal.
|
|
2847
|
+
const activity = await this.observeReadinessWithin(input, deadline - Date.now(), input.cancelledBy === "caller" ? input.signal : undefined);
|
|
2762
2848
|
if (input.signal?.aborted)
|
|
2763
2849
|
return cancelled();
|
|
2764
2850
|
if (activity === null || Date.now() > deadline)
|
|
@@ -2784,21 +2870,28 @@ export class SessionTransport {
|
|
|
2784
2870
|
await this.sleep(Math.min(this.waitForIdlePollMs, remainingMs));
|
|
2785
2871
|
}
|
|
2786
2872
|
}
|
|
2787
|
-
/** One readiness observation, raced against the time left before the wait's deadline
|
|
2788
|
-
* when the deadline wins; the abandoned observation is ignored,
|
|
2789
|
-
|
|
2873
|
+
/** One readiness observation, raced against the time left before the wait's deadline and, when given, the
|
|
2874
|
+
* caller's cancellation. Null when the deadline or the cancellation wins; the abandoned observation is ignored,
|
|
2875
|
+
* never delivered on. */
|
|
2876
|
+
async observeReadinessWithin(input, remainingMs, cancel) {
|
|
2877
|
+
if (cancel?.aborted)
|
|
2878
|
+
return null;
|
|
2790
2879
|
const observation = this.classifySendReadiness(input);
|
|
2791
2880
|
observation.catch(() => undefined);
|
|
2792
2881
|
let timer;
|
|
2882
|
+
let onAbort;
|
|
2793
2883
|
try {
|
|
2794
2884
|
return await Promise.race([
|
|
2795
2885
|
observation,
|
|
2796
2886
|
new Promise((resolve) => { timer = setTimeout(() => resolve(null), Math.max(0, remainingMs)); }),
|
|
2887
|
+
...(cancel ? [new Promise((resolve) => { onAbort = () => resolve(null); cancel.addEventListener("abort", onAbort, { once: true }); })] : []),
|
|
2797
2888
|
]);
|
|
2798
2889
|
}
|
|
2799
2890
|
finally {
|
|
2800
2891
|
if (timer !== undefined)
|
|
2801
2892
|
clearTimeout(timer);
|
|
2893
|
+
if (cancel && onAbort)
|
|
2894
|
+
cancel.removeEventListener("abort", onAbort);
|
|
2802
2895
|
}
|
|
2803
2896
|
}
|
|
2804
2897
|
async claudeDeliveryObservation(sessionName, pane, resumeToken, rotation = null) {
|
|
@@ -3098,6 +3191,9 @@ export class SessionTransport {
|
|
|
3098
3191
|
return { ok: false, reason: "audit_persist_failed" };
|
|
3099
3192
|
}
|
|
3100
3193
|
}
|
|
3194
|
+
/** `inputBox`: also describe a Claude Code or Codex seat's live input box (three more tmux reads), for callers that
|
|
3195
|
+
* use it: the capture route asks when its request does (`rig capture`, the MCP tool). `inputBoxBudget` is the time
|
|
3196
|
+
* those reads may still take, shared across a fan-out; a single capture gets its own CAPTURE_INPUT_BOX_DEADLINE_MS. */
|
|
3101
3197
|
async capture(sessionName, opts) {
|
|
3102
3198
|
const sessionMeta = this.getSessionMeta(sessionName);
|
|
3103
3199
|
if (sessionMeta.attachmentType === "external_cli") {
|
|
@@ -3151,7 +3247,47 @@ export class SessionTransport {
|
|
|
3151
3247
|
};
|
|
3152
3248
|
}
|
|
3153
3249
|
await this.reconcileStartupReadiness(sessionName).catch(() => { });
|
|
3154
|
-
|
|
3250
|
+
const runtime = sessionMeta.runtime;
|
|
3251
|
+
const inputBox = opts?.inputBox && (runtime === "claude-code" || runtime === "codex")
|
|
3252
|
+
? await this.captureInputBox(sessionName, runtime, opts.inputBoxBudget ?? { remainingMs: CAPTURE_INPUT_BOX_DEADLINE_MS })
|
|
3253
|
+
: undefined;
|
|
3254
|
+
return { ok: true, sessionName, content, lines, ...(inputBox ? { inputBox } : {}) };
|
|
3255
|
+
}
|
|
3256
|
+
/** The input box, or unknown when its reads don't finish within the budget's remaining time (or none is left): the
|
|
3257
|
+
* pane text is already in hand, so a slow read never holds the capture. The time spent comes off the budget. A read
|
|
3258
|
+
* still pending then settles on its own, unused. */
|
|
3259
|
+
async captureInputBox(sessionName, runtime, budget) {
|
|
3260
|
+
if (budget.remainingMs <= 0)
|
|
3261
|
+
return annotateInputBox(null, null, runtime, { budgetSpent: true });
|
|
3262
|
+
const started = this.now().getTime();
|
|
3263
|
+
let timer;
|
|
3264
|
+
const late = new Promise((resolve) => {
|
|
3265
|
+
timer = setTimeout(() => resolve(annotateInputBox(null, null, runtime, { timedOut: true })), budget.remainingMs);
|
|
3266
|
+
});
|
|
3267
|
+
try {
|
|
3268
|
+
return await Promise.race([this.readInputBoxAnnotation(sessionName, runtime), late]);
|
|
3269
|
+
}
|
|
3270
|
+
finally {
|
|
3271
|
+
clearTimeout(timer);
|
|
3272
|
+
budget.remainingMs -= this.now().getTime() - started;
|
|
3273
|
+
}
|
|
3274
|
+
}
|
|
3275
|
+
/** One styled read of the visible screen with the cursor read before and after it: a cursor that moved, or a pane
|
|
3276
|
+
* that resized, in between is reported as moved; when only one read succeeds, its reading is passed on as seen once.
|
|
3277
|
+
* Never throws. */
|
|
3278
|
+
async readInputBoxAnnotation(sessionName, runtime) {
|
|
3279
|
+
try {
|
|
3280
|
+
const before = await this.tmuxAdapter.getPaneCursorPosition(sessionName);
|
|
3281
|
+
const screen = await this.tmuxAdapter.capturePaneContent(sessionName, 0, { escapeSequences: true });
|
|
3282
|
+
const after = await this.tmuxAdapter.getPaneCursorPosition(sessionName);
|
|
3283
|
+
const steady = before && after && before.x === after.x && before.y === after.y
|
|
3284
|
+
&& before.width === after.width && before.height === after.height ? after : null;
|
|
3285
|
+
const cursorSeenOnce = (before === null) !== (after === null) ? before ?? after : null;
|
|
3286
|
+
return annotateInputBox(screen, steady, runtime, { cursorMoved: before !== null && after !== null && steady === null, cursorSeenOnce });
|
|
3287
|
+
}
|
|
3288
|
+
catch {
|
|
3289
|
+
return annotateInputBox(null, null, runtime);
|
|
3290
|
+
}
|
|
3155
3291
|
}
|
|
3156
3292
|
async broadcast(target, text, opts) {
|
|
3157
3293
|
const resolved = await this.resolveSessions(target);
|
|
@@ -3340,4 +3476,159 @@ export class SessionTransport {
|
|
|
3340
3476
|
return false;
|
|
3341
3477
|
}
|
|
3342
3478
|
}
|
|
3479
|
+
const INPUT_CONTINUATION_COLUMN = 2; // Claude Code and Codex indent an input's later rows by two cells
|
|
3480
|
+
// How long a capture's input-box reads may take in all before the box reports unknown: one seat's three reads, or a
|
|
3481
|
+
// whole fan-out's (the send path's INPUT_BOX_READ_DEADLINE_MS bounds one read each).
|
|
3482
|
+
export const CAPTURE_INPUT_BOX_DEADLINE_MS = 1_000;
|
|
3483
|
+
// Claude Code's input frame rule, as findClaudeComposer and the composer-boundary reader match it (a label may sit in it).
|
|
3484
|
+
const CLAUDE_FRAME_RULE = /^─{3,}(?: .+ ─+)?$/;
|
|
3485
|
+
/** The input box's rows on the screen: Claude Code's prompt row inside its frame (the opening rule directly above it,
|
|
3486
|
+
* through the row before the closing rule), or Codex's box as codexInputBox reads it. A committed prompt row in the
|
|
3487
|
+
* transcript, or a prompt-looking line in output, has no opening rule above it. Null when no input box is recognized
|
|
3488
|
+
* (a selector, a menu instead of a box, busy output with no box, another layout). */
|
|
3489
|
+
function inputBoxRows(lines, runtime) {
|
|
3490
|
+
if (runtime === "codex") {
|
|
3491
|
+
const box = codexInputBox(lines.join("\n"));
|
|
3492
|
+
if (!box)
|
|
3493
|
+
return null;
|
|
3494
|
+
return { first: box.inputAt, last: box.inputAt + Math.max(box.rows.length, 1) - 1, empty: box.text === "" };
|
|
3495
|
+
}
|
|
3496
|
+
const promptClass = composerPromptClassForRuntime("claude-code");
|
|
3497
|
+
const first = findComposerInputLineIndex(lines, promptClass);
|
|
3498
|
+
if (first < 1 || composerNumberedChoicePattern(promptClass).test(lines[first].trimStart()))
|
|
3499
|
+
return null;
|
|
3500
|
+
// A rule at the prompt's own indent: an input's later rows are indented, so a rule typed inside it never closes it.
|
|
3501
|
+
const indent = /^[ \t]*/.exec(lines[first])[0];
|
|
3502
|
+
const frame = (line) => line.startsWith(indent) && CLAUDE_FRAME_RULE.test(line.slice(indent.length).trimEnd());
|
|
3503
|
+
if (!frame(lines[first - 1]))
|
|
3504
|
+
return null;
|
|
3505
|
+
let close = first + 1;
|
|
3506
|
+
while (close < lines.length && !frame(lines[close]))
|
|
3507
|
+
close++;
|
|
3508
|
+
return close < lines.length ? { first, last: close - 1 } : null;
|
|
3509
|
+
}
|
|
3510
|
+
export function annotateInputBox(styledScreen, cursor, runtime, opts = {}) {
|
|
3511
|
+
const harness = runtime === "codex" ? "Codex" : "Claude Code";
|
|
3512
|
+
const result = (status, confidence, hint, input = null, suggestion = null, evidence = []) => ({ status, confidence, cursor, input, suggestion, evidence, hint });
|
|
3513
|
+
const budget = `${CAPTURE_INPUT_BOX_DEADLINE_MS / 1000} s`;
|
|
3514
|
+
if (opts.timedOut) {
|
|
3515
|
+
return result("unknown", "unknown", `The input box's reads didn't finish within this capture's ${budget} budget, so it wasn't checked.`, null, null, ["input box reads timed out"]);
|
|
3516
|
+
}
|
|
3517
|
+
if (opts.budgetSpent) {
|
|
3518
|
+
return result("unknown", "unknown", `The input box wasn't read: this capture's ${budget} budget for input-box reads was spent on earlier seats.`, null, null, ["input box budget spent"]);
|
|
3519
|
+
}
|
|
3520
|
+
if (!styledScreen?.trim())
|
|
3521
|
+
return result("unknown", "unknown", "The screen couldn't be read, so the input box wasn't checked.");
|
|
3522
|
+
const cells = styledLines(styledScreen);
|
|
3523
|
+
const lines = cells.map((row) => row.map((cell) => cell.ch).join(""));
|
|
3524
|
+
const box = inputBoxRows(lines, runtime);
|
|
3525
|
+
if (!box)
|
|
3526
|
+
return result("no-input-box", "unknown", `No ${harness} input box was recognized on the screen.`);
|
|
3527
|
+
// Each box row's text cells with their screen columns. The first row's text starts after the prompt glyph and its
|
|
3528
|
+
// space, a later row's after its two-cell indent.
|
|
3529
|
+
const rows = [];
|
|
3530
|
+
for (let row = box.first; row <= box.last; row++) {
|
|
3531
|
+
let col = 0;
|
|
3532
|
+
const placed = (cells[row] ?? []).map((cell) => { const at = col; col += stringWidth(cell.ch); return { ...cell, col: at }; });
|
|
3533
|
+
const glyphAt = row === box.first ? placed.findIndex((cell) => cell.ch === "❯" || cell.ch === "›") : -1;
|
|
3534
|
+
const startCol = row === box.first ? (glyphAt >= 0 ? placed[glyphAt].col + 2 : INPUT_CONTINUATION_COLUMN) : INPUT_CONTINUATION_COLUMN;
|
|
3535
|
+
let text = placed.filter((cell) => cell.col >= startCol);
|
|
3536
|
+
while (text.length && !text[text.length - 1].ch.trim())
|
|
3537
|
+
text = text.slice(0, -1);
|
|
3538
|
+
rows.push({ row, cells: text });
|
|
3539
|
+
}
|
|
3540
|
+
const startCol = rows[0].cells[0]?.col ?? (lines[box.first].search(/[❯›]/) + 2);
|
|
3541
|
+
const spanOf = (from, to) => ({
|
|
3542
|
+
startRow: from.row, startCol: from.col, endRow: to.row, endCol: to.col,
|
|
3543
|
+
text: rows.filter((r) => r.row >= from.row && r.row <= to.row)
|
|
3544
|
+
.map((r) => r.cells.filter((cell) => (r.row > from.row || cell.col >= from.col) && (r.row < to.row || cell.col < to.col)).map((cell) => cell.ch).join(""))
|
|
3545
|
+
.join("\n"),
|
|
3546
|
+
});
|
|
3547
|
+
const textRows = rows.filter((r) => r.cells.length > 0);
|
|
3548
|
+
const outsideBox = (at) => at.y < box.first || at.y > box.last;
|
|
3549
|
+
// A cursor seen outside the box by the one read that worked still contradicts the box being the live one.
|
|
3550
|
+
const seenOutside = cursor === null && !opts.cursorMoved && opts.cursorSeenOnce != null && outsideBox(opts.cursorSeenOnce);
|
|
3551
|
+
const seenOutsideEvidence = "cursor outside the input box (the other cursor read failed)";
|
|
3552
|
+
if (box.empty || textRows.length === 0) {
|
|
3553
|
+
// Only a steady cursor in the box shows it's the live one: an empty frame drawn in output has the cursor below it, a
|
|
3554
|
+
// moved cursor means the box may have changed, and a missing cursor shows nothing either way.
|
|
3555
|
+
if (cursor !== null && !outsideBox(cursor))
|
|
3556
|
+
return result("empty", "high", "The input box is empty.", null, null, ["no text in the input box"]);
|
|
3557
|
+
if (cursor !== null || seenOutside) {
|
|
3558
|
+
return result("unknown", "unknown", `An empty ${harness} input box was recognized, but the cursor is outside it, so it may not be the live box.`, null, null, ["no text in the input box", cursor !== null ? "cursor outside the input box" : seenOutsideEvidence]);
|
|
3559
|
+
}
|
|
3560
|
+
if (opts.cursorMoved) {
|
|
3561
|
+
return result("unknown", "unknown", `The ${harness} input box read empty, but the cursor moved during the capture, so it may have changed.`, null, null, ["no text in the input box", "cursor moved during the capture"]);
|
|
3562
|
+
}
|
|
3563
|
+
return result("unknown", "unknown", `An empty ${harness} input box was recognized, but the cursor couldn't be read, so it may not be the live box.`, null, null, ["no text in the input box", "cursor unavailable"]);
|
|
3564
|
+
}
|
|
3565
|
+
const lastRow = textRows[textRows.length - 1];
|
|
3566
|
+
const lastCell = lastRow.cells[lastRow.cells.length - 1];
|
|
3567
|
+
const end = { row: lastRow.row, col: lastCell.col + stringWidth(lastCell.ch) };
|
|
3568
|
+
const input = spanOf({ row: box.first, col: startCol }, end);
|
|
3569
|
+
const quote = (text) => {
|
|
3570
|
+
const flat = text.replace(/\s*\n\s*/g, " ").trim();
|
|
3571
|
+
return `"${flat.length > 60 ? `${flat.slice(0, 57)}...` : flat}"`;
|
|
3572
|
+
};
|
|
3573
|
+
const styled = /\x1b\[/.test(styledScreen);
|
|
3574
|
+
const textCells = rows.flatMap((r) => r.cells.filter((cell) => cell.ch.trim()).map((cell) => ({ ...cell, row: r.row })));
|
|
3575
|
+
const allFaint = styled && textCells.every((cell) => cell.faint);
|
|
3576
|
+
const noneFaint = styled && textCells.every((cell) => !cell.faint);
|
|
3577
|
+
// Claude Code's `Try "…"` words are a person's possible words too, so they count only where there's no styling to go
|
|
3578
|
+
// on, and at most as a possible (medium) suggestion. With styling, the faint text decides.
|
|
3579
|
+
const tryShape = runtime === "claude-code" && CLAUDE_TRY_SUGGESTION.test(input.text.replace(/\s+/g, ""));
|
|
3580
|
+
const trySuggestion = tryShape && !styled;
|
|
3581
|
+
const evidence = [];
|
|
3582
|
+
if (tryShape)
|
|
3583
|
+
evidence.push("Claude Code's Try \"...\" words");
|
|
3584
|
+
evidence.push(!styled ? "no styling in the capture" : allFaint ? "text drawn faint" : noneFaint ? "text not faint" : "part of the text drawn faint");
|
|
3585
|
+
const inBox = cursor !== null && cursor.y >= box.first && cursor.y <= box.last;
|
|
3586
|
+
const atStart = inBox && cursor.y === box.first && cursor.x === startCol;
|
|
3587
|
+
const atEnd = inBox && cursor.y === end.row && cursor.x === end.col;
|
|
3588
|
+
if (cursor === null)
|
|
3589
|
+
evidence.unshift(opts.cursorMoved ? "cursor moved during the capture" : seenOutside ? seenOutsideEvidence : "cursor unavailable");
|
|
3590
|
+
else
|
|
3591
|
+
evidence.unshift(!inBox ? "cursor outside the input box" : atStart ? "cursor at the input's start" : atEnd ? "cursor after the text" : "cursor inside the text");
|
|
3592
|
+
const why = evidence.join("; ");
|
|
3593
|
+
const likelySuggestion = (confidence) => result("likely-suggestion", confidence, confidence === "high"
|
|
3594
|
+
? `The input box shows ${quote(input.text)}, likely a ${harness} suggestion (${why}), not something the person typed: it isn't their intent, a draft or a staged command.`
|
|
3595
|
+
: `The input box shows ${quote(input.text)}, possibly a ${harness} suggestion (${why}; medium confidence): don't take it as the person's intent, and don't assume it isn't their draft.`, input, input, evidence);
|
|
3596
|
+
const typed = (confidence) => result("typed", confidence, `The input box holds ${quote(input.text)}, likely typed by the person and not yet sent (${why}).`, input, null, evidence);
|
|
3597
|
+
const unknown = () => result("unknown", "unknown", `The input box shows ${quote(input.text)}; whether the person typed it or it's a ${harness} suggestion is unknown (${why}).`, input, null, evidence);
|
|
3598
|
+
// A moved cursor or one seen outside the box contradicts any reading; only an unavailable cursor leaves the styling or
|
|
3599
|
+
// the Try words to go on, at medium confidence.
|
|
3600
|
+
if (cursor === null || !inBox) {
|
|
3601
|
+
if (cursor === null && !opts.cursorMoved && !seenOutside && (allFaint || trySuggestion))
|
|
3602
|
+
return likelySuggestion("medium");
|
|
3603
|
+
return unknown();
|
|
3604
|
+
}
|
|
3605
|
+
if (atStart) {
|
|
3606
|
+
if (allFaint)
|
|
3607
|
+
return likelySuggestion("high");
|
|
3608
|
+
if (!styled)
|
|
3609
|
+
return likelySuggestion("medium");
|
|
3610
|
+
// Claude Code draws its suggestion faint (Codex draws its placeholder faint too); unfaint text with the cursor at its
|
|
3611
|
+
// start may be a draft the person moved the cursor back through, in either harness.
|
|
3612
|
+
return unknown();
|
|
3613
|
+
}
|
|
3614
|
+
if (atEnd) {
|
|
3615
|
+
if (noneFaint)
|
|
3616
|
+
return typed("high");
|
|
3617
|
+
if (!styled)
|
|
3618
|
+
return typed("medium");
|
|
3619
|
+
return unknown();
|
|
3620
|
+
}
|
|
3621
|
+
// The cursor is inside the text: the person moved it, or typed a prefix and the harness suggests the rest after it.
|
|
3622
|
+
const split = textCells.findIndex((cell) => cell.row > cursor.y || (cell.row === cursor.y && cell.col >= cursor.x));
|
|
3623
|
+
const before = split < 0 ? textCells : textCells.slice(0, split);
|
|
3624
|
+
const after = split < 0 ? [] : textCells.slice(split);
|
|
3625
|
+
if (styled && before.length > 0 && after.length > 0 && before.every((cell) => !cell.faint) && after.every((cell) => cell.faint)) {
|
|
3626
|
+
const suggestion = spanOf({ row: cursor.y, col: cursor.x }, end);
|
|
3627
|
+
const typedPart = spanOf({ row: box.first, col: startCol }, { row: cursor.y, col: cursor.x });
|
|
3628
|
+
return result("typed-with-suggestion", "high", `The input box holds ${quote(typedPart.text)}, likely typed by the person, then ${quote(suggestion.text)}, likely a ${harness} suggestion after the cursor (${why}; the text after the cursor is faint): the suggestion isn't their intent.`, input, suggestion, [...evidence, "the text after the cursor is faint"]);
|
|
3629
|
+
}
|
|
3630
|
+
if (noneFaint)
|
|
3631
|
+
return typed("medium");
|
|
3632
|
+
return unknown();
|
|
3633
|
+
}
|
|
3343
3634
|
//# sourceMappingURL=session-transport.js.map
|