@openrig/cli 0.6.4 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +405 -0
- package/daemon/assets/onboarding/02-self-and-competent-action.md +42 -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/scripts/refocus.cjs +100 -20
- package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +41 -21
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +207 -132
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +12 -12
- package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +24 -0
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +17 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +9 -4
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +54 -23
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +1 -19
- package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +3 -0
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +56 -4
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +0 -5
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +5 -6
- package/daemon/context-packs/help/help.md +40 -10
- 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 +26 -12
- package/daemon/context-packs/reference/getting-started.md +426 -111
- package/daemon/context-packs/reference/instance-layout.md +11 -0
- package/daemon/context-packs/reference/manifest.yaml +1 -1
- package/daemon/context-packs/reference/rig-spec.md +180 -29
- 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/SKILL.md +41 -21
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +207 -132
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +5 -3
- package/daemon/context-packs/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
- package/daemon/context-packs/skills/core/agent-starters/SKILL.md +0 -6
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
- 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 +24 -0
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +5 -5
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +3 -3
- 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/SKILL.md +9 -4
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +12 -9
- 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 +29 -29
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -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/SKILL.md +0 -5
- 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/SKILL.md +24 -3
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +3 -3
- 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 +12 -12
- 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/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
- package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +2 -2
- package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +17 -0
- package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +2 -2
- package/daemon/context-packs/skills/openrig-user/SKILL.md +54 -23
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
- 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/OPENRIG.md +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/SKILL.md +0 -2
- 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/SKILL.md +1 -19
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/SKILL.md +3 -0
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +56 -4
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +0 -5
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +5 -6
- 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 +18 -4
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +179 -63
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts +7 -1
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +44 -10
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts +9 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +22 -8
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +93 -73
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.d.ts +2 -1
- package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.js +6 -3
- package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
- package/daemon/dist/adapters/daemon-url.d.ts +7 -0
- package/daemon/dist/adapters/daemon-url.d.ts.map +1 -0
- package/daemon/dist/adapters/daemon-url.js +12 -0
- package/daemon/dist/adapters/daemon-url.js.map +1 -0
- package/daemon/dist/adapters/kernel-authority.d.ts +10 -0
- package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -0
- package/daemon/dist/adapters/kernel-authority.js +53 -0
- package/daemon/dist/adapters/kernel-authority.js.map +1 -0
- package/daemon/dist/adapters/non-interruptive.d.ts +14 -0
- package/daemon/dist/adapters/non-interruptive.d.ts.map +1 -0
- package/daemon/dist/adapters/non-interruptive.js +38 -0
- package/daemon/dist/adapters/non-interruptive.js.map +1 -0
- package/daemon/dist/adapters/omp-resume.d.ts +6 -0
- package/daemon/dist/adapters/omp-resume.d.ts.map +1 -0
- package/daemon/dist/adapters/omp-resume.js +6 -0
- package/daemon/dist/adapters/omp-resume.js.map +1 -0
- package/daemon/dist/adapters/omp-runtime-adapter.d.ts +10 -0
- package/daemon/dist/adapters/omp-runtime-adapter.d.ts.map +1 -0
- package/daemon/dist/adapters/omp-runtime-adapter.js +16 -0
- package/daemon/dist/adapters/omp-runtime-adapter.js.map +1 -0
- package/daemon/dist/adapters/pi-resume.d.ts +7 -1
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-resume.js +27 -18
- package/daemon/dist/adapters/pi-resume.js.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.d.ts +29 -2
- package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.js +89 -5
- package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
- package/daemon/dist/adapters/pi-runner.d.ts +52 -5
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner.js +429 -68
- package/daemon/dist/adapters/pi-runner.js.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts +11 -2
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.js +85 -40
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/preflight-exec.d.ts +11 -0
- package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -0
- package/daemon/dist/adapters/preflight-exec.js +52 -0
- package/daemon/dist/adapters/preflight-exec.js.map +1 -0
- package/daemon/dist/adapters/stub-runner-protocol.d.ts +1 -1
- package/daemon/dist/adapters/stub-runner-protocol.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runner.d.ts +1 -1
- package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runner.js +3 -1
- package/daemon/dist/adapters/stub-runner.js.map +1 -1
- package/daemon/dist/adapters/stub-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runtime-adapter.js +11 -8
- package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +52 -6
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +313 -57
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/adapters/yolo-mode.d.ts +1 -1
- package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
- package/daemon/dist/adapters/yolo-mode.js +3 -0
- package/daemon/dist/adapters/yolo-mode.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/bundle-behaviour-surface.d.ts +2 -0
- package/daemon/dist/bundle-behaviour-surface.d.ts.map +1 -0
- package/daemon/dist/bundle-behaviour-surface.js +2 -0
- package/daemon/dist/bundle-behaviour-surface.js.map +1 -0
- package/daemon/dist/bundle-identity-surface.d.ts +2 -0
- package/daemon/dist/bundle-identity-surface.d.ts.map +1 -0
- package/daemon/dist/bundle-identity-surface.js +4 -0
- package/daemon/dist/bundle-identity-surface.js.map +1 -0
- package/daemon/dist/daemon-shutdown.d.ts +19 -0
- package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
- package/daemon/dist/daemon-shutdown.js +85 -0
- package/daemon/dist/daemon-shutdown.js.map +1 -1
- package/daemon/dist/db/all-migrations.d.ts +1 -1
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +12 -2
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/090_human_reply_to.d.ts +3 -0
- package/daemon/dist/db/migrations/090_human_reply_to.d.ts.map +1 -0
- package/daemon/dist/db/migrations/090_human_reply_to.js +7 -0
- package/daemon/dist/db/migrations/090_human_reply_to.js.map +1 -0
- package/daemon/dist/db/migrations/091_human_questions.d.ts +3 -0
- package/daemon/dist/db/migrations/091_human_questions.d.ts.map +1 -0
- package/daemon/dist/db/migrations/091_human_questions.js +9 -0
- package/daemon/dist/db/migrations/091_human_questions.js.map +1 -0
- package/daemon/dist/db/migrations/092_node_effort.d.ts +3 -0
- package/daemon/dist/db/migrations/092_node_effort.d.ts.map +1 -0
- package/daemon/dist/db/migrations/092_node_effort.js +8 -0
- package/daemon/dist/db/migrations/092_node_effort.js.map +1 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts +3 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts.map +1 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js +12 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js.map +1 -0
- package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts +3 -0
- package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts.map +1 -0
- package/daemon/dist/db/migrations/095_rig_non_interruptive.js +5 -0
- package/daemon/dist/db/migrations/095_rig_non_interruptive.js.map +1 -0
- package/daemon/dist/domain/activity-endpoint.d.ts.map +1 -1
- package/daemon/dist/domain/activity-endpoint.js +3 -1
- package/daemon/dist/domain/activity-endpoint.js.map +1 -1
- package/daemon/dist/domain/agent-activity-store.d.ts +3 -1
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
- package/daemon/dist/domain/agent-activity-store.js +13 -3
- package/daemon/dist/domain/agent-activity-store.js.map +1 -1
- package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/agent-images/agent-image-library-service.js +76 -56
- package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +28 -5
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts +10 -0
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +136 -33
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/daemon/dist/domain/builtin-policy-reference.d.ts +1 -1
- package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -1
- package/daemon/dist/domain/builtin-policy-reference.js +2 -2
- package/daemon/dist/domain/builtin-policy-reference.js.map +1 -1
- package/daemon/dist/domain/bundle-archive.d.ts +24 -0
- package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-archive.js +66 -21
- package/daemon/dist/domain/bundle-archive.js.map +1 -1
- package/daemon/dist/domain/bundle-audit.d.ts +5 -0
- package/daemon/dist/domain/bundle-audit.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-audit.js.map +1 -1
- package/daemon/dist/domain/bundle-behaviour-inspect.d.ts +4 -0
- package/daemon/dist/domain/bundle-behaviour-inspect.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-behaviour-inspect.js +56 -0
- package/daemon/dist/domain/bundle-behaviour-inspect.js.map +1 -0
- package/daemon/dist/domain/bundle-behaviour.d.ts +118 -0
- package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-behaviour.js +364 -0
- package/daemon/dist/domain/bundle-behaviour.js.map +1 -0
- package/daemon/dist/domain/bundle-carried-context-pack.d.ts +16 -0
- package/daemon/dist/domain/bundle-carried-context-pack.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-carried-context-pack.js +67 -0
- package/daemon/dist/domain/bundle-carried-context-pack.js.map +1 -0
- package/daemon/dist/domain/bundle-carried-project.d.ts +13 -0
- package/daemon/dist/domain/bundle-carried-project.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-carried-project.js +71 -0
- package/daemon/dist/domain/bundle-carried-project.js.map +1 -0
- package/daemon/dist/domain/bundle-conflict-detector.js +3 -3
- package/daemon/dist/domain/bundle-conflict-detector.js.map +1 -1
- package/daemon/dist/domain/bundle-content-routing.d.ts +49 -0
- package/daemon/dist/domain/bundle-content-routing.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-content-routing.js +246 -0
- package/daemon/dist/domain/bundle-content-routing.js.map +1 -0
- package/daemon/dist/domain/bundle-context-packs-router.d.ts +7 -2
- package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-context-packs-router.js +19 -0
- package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
- package/daemon/dist/domain/bundle-identity.d.ts +27 -0
- package/daemon/dist/domain/bundle-identity.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-identity.js +34 -0
- package/daemon/dist/domain/bundle-identity.js.map +1 -0
- package/daemon/dist/domain/bundle-install-context.d.ts +22 -0
- package/daemon/dist/domain/bundle-install-context.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-install-context.js +51 -0
- package/daemon/dist/domain/bundle-install-context.js.map +1 -0
- package/daemon/dist/domain/bundle-integrity.d.ts +1 -0
- package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-integrity.js +1 -1
- package/daemon/dist/domain/bundle-integrity.js.map +1 -1
- package/daemon/dist/domain/bundle-source-resolver.d.ts +4 -1
- package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-source-resolver.js +73 -19
- package/daemon/dist/domain/bundle-source-resolver.js.map +1 -1
- package/daemon/dist/domain/bundle-types.d.ts +37 -0
- package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-types.js +78 -0
- package/daemon/dist/domain/bundle-types.js.map +1 -1
- package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
- package/daemon/dist/domain/chat-repository.js +3 -1
- package/daemon/dist/domain/chat-repository.js.map +1 -1
- package/daemon/dist/domain/checkpoint-store.d.ts.map +1 -1
- package/daemon/dist/domain/checkpoint-store.js +2 -2
- package/daemon/dist/domain/checkpoint-store.js.map +1 -1
- package/daemon/dist/domain/claim-service.d.ts +7 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +6 -2
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +38 -12
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +291 -128
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.d.ts +13 -0
- package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.js +31 -4
- package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
- package/daemon/dist/domain/codex-daemon-support.d.ts +1 -1
- package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -1
- package/daemon/dist/domain/codex-daemon-support.js +2 -2
- package/daemon/dist/domain/codex-daemon-support.js.map +1 -1
- package/daemon/dist/domain/codex-network-default.d.ts +42 -0
- package/daemon/dist/domain/codex-network-default.d.ts.map +1 -0
- package/daemon/dist/domain/codex-network-default.js +230 -0
- package/daemon/dist/domain/codex-network-default.js.map +1 -0
- package/daemon/dist/domain/codex-profile-preflight.d.ts +1 -1
- package/daemon/dist/domain/codex-profile-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/codex-profile-preflight.js +3 -3
- package/daemon/dist/domain/codex-profile-preflight.js.map +1 -1
- package/daemon/dist/domain/codex-team-workspace.d.ts +8 -0
- package/daemon/dist/domain/codex-team-workspace.d.ts.map +1 -0
- package/daemon/dist/domain/codex-team-workspace.js +54 -0
- package/daemon/dist/domain/codex-team-workspace.js.map +1 -0
- package/daemon/dist/domain/codex-thread-id.d.ts +4 -2
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +10 -6
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +9 -2
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.js +13 -2
- package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.d.ts +5 -0
- package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.js +30 -15
- package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +10 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/profile-source-resolver.js +43 -8
- package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
- package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/seat-recap-store.js +73 -16
- package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -1
- package/daemon/dist/domain/context-usage-store.d.ts +3 -0
- package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-usage-store.js +4 -2
- package/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/daemon/dist/domain/crash-cart-detect.d.ts.map +1 -1
- package/daemon/dist/domain/crash-cart-detect.js +2 -1
- package/daemon/dist/domain/crash-cart-detect.js.map +1 -1
- package/daemon/dist/domain/crash-cart-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/crash-cart-discovery.js +4 -2
- package/daemon/dist/domain/crash-cart-discovery.js.map +1 -1
- package/daemon/dist/domain/current-work.d.ts +17 -0
- package/daemon/dist/domain/current-work.d.ts.map +1 -1
- package/daemon/dist/domain/current-work.js +46 -0
- package/daemon/dist/domain/current-work.js.map +1 -1
- package/daemon/dist/domain/cwd-resolution.js +1 -1
- package/daemon/dist/domain/cwd-resolution.js.map +1 -1
- package/daemon/dist/domain/daemon-url.d.ts +7 -0
- package/daemon/dist/domain/daemon-url.d.ts.map +1 -0
- package/daemon/dist/domain/daemon-url.js +12 -0
- package/daemon/dist/domain/daemon-url.js.map +1 -0
- package/daemon/dist/domain/daemon-version.d.ts +3 -1
- package/daemon/dist/domain/daemon-version.d.ts.map +1 -1
- package/daemon/dist/domain/daemon-version.js +6 -1
- package/daemon/dist/domain/daemon-version.js.map +1 -1
- package/daemon/dist/domain/discovery-types.d.ts +1 -1
- package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
- package/daemon/dist/domain/event-bus.d.ts +1 -0
- package/daemon/dist/domain/event-bus.d.ts.map +1 -1
- package/daemon/dist/domain/event-bus.js +18 -7
- package/daemon/dist/domain/event-bus.js.map +1 -1
- package/daemon/dist/domain/event-loop-monitor.d.ts +6 -0
- package/daemon/dist/domain/event-loop-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/event-loop-monitor.js +13 -0
- package/daemon/dist/domain/event-loop-monitor.js.map +1 -1
- package/daemon/dist/domain/execution-view.d.ts +3 -3
- package/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/daemon/dist/domain/execution-view.js +116 -93
- package/daemon/dist/domain/execution-view.js.map +1 -1
- package/daemon/dist/domain/finite-telemetry.d.ts +74 -0
- package/daemon/dist/domain/finite-telemetry.d.ts.map +1 -0
- package/daemon/dist/domain/finite-telemetry.js +236 -0
- package/daemon/dist/domain/finite-telemetry.js.map +1 -0
- package/daemon/dist/domain/gateway/connections-projection.d.ts +1 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +2 -0
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.js +4 -0
- package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +9 -7
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.js +38 -16
- package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts +45 -0
- package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/channel-recovery.js +176 -0
- package/daemon/dist/domain/gateway/slack/channel-recovery.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +74 -4
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +163 -18
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/manifest.js +1 -1
- package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.d.ts +17 -0
- package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.js +77 -3
- package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.js +2 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.js +15 -5
- package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/secrets.js +5 -4
- package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts +17 -10
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.js +94 -24
- package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +33 -10
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +107 -26
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +121 -28
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +4 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.js +14 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.d.ts +27 -0
- package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.js +102 -1
- package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-routing.js +7 -2
- package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +3 -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 +14 -2
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
- package/daemon/dist/domain/generated-file-hygiene.d.ts +3 -0
- package/daemon/dist/domain/generated-file-hygiene.d.ts.map +1 -0
- package/daemon/dist/domain/generated-file-hygiene.js +142 -0
- package/daemon/dist/domain/generated-file-hygiene.js.map +1 -0
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/graph-projection.js +1 -0
- package/daemon/dist/domain/graph-projection.js.map +1 -1
- package/daemon/dist/domain/health-checkpoints.d.ts +2 -0
- package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -1
- package/daemon/dist/domain/health-checkpoints.js +2 -0
- package/daemon/dist/domain/health-checkpoints.js.map +1 -1
- package/daemon/dist/domain/health-detectors.d.ts +32 -1
- package/daemon/dist/domain/health-detectors.d.ts.map +1 -1
- package/daemon/dist/domain/health-detectors.js +40 -9
- package/daemon/dist/domain/health-detectors.js.map +1 -1
- package/daemon/dist/domain/health-diagnosis.d.ts +3 -1
- package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
- package/daemon/dist/domain/health-diagnosis.js +6 -3
- package/daemon/dist/domain/health-diagnosis.js.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.d.ts +5 -1
- package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.js +20 -4
- package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +3 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.js +10 -3
- package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
- package/daemon/dist/domain/human-questions.d.ts +41 -0
- package/daemon/dist/domain/human-questions.d.ts.map +1 -0
- package/daemon/dist/domain/human-questions.js +81 -0
- package/daemon/dist/domain/human-questions.js.map +1 -0
- package/daemon/dist/domain/install-planner.d.ts.map +1 -1
- package/daemon/dist/domain/install-planner.js +17 -0
- package/daemon/dist/domain/install-planner.js.map +1 -1
- package/daemon/dist/domain/managed-blocks.d.ts +1 -0
- package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
- package/daemon/dist/domain/managed-blocks.js +3 -0
- package/daemon/dist/domain/managed-blocks.js.map +1 -1
- package/daemon/dist/domain/markdown-address.js +1 -1
- package/daemon/dist/domain/markdown-address.js.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.d.ts +5 -0
- package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.js +11 -1
- package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +25 -63
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +34 -100
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +1 -0
- package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js +6 -3
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +5 -0
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +33 -2
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +2 -0
- package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +4 -0
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +33 -2
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -1
- package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts +27 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.js +60 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.js.map +1 -0
- package/daemon/dist/domain/native-permission-store.d.ts +14 -0
- package/daemon/dist/domain/native-permission-store.d.ts.map +1 -1
- package/daemon/dist/domain/native-permission-store.js +168 -4
- package/daemon/dist/domain/native-permission-store.js.map +1 -1
- package/daemon/dist/domain/native-process-executable.d.ts +4 -0
- package/daemon/dist/domain/native-process-executable.d.ts.map +1 -0
- package/daemon/dist/domain/native-process-executable.js +53 -0
- package/daemon/dist/domain/native-process-executable.js.map +1 -0
- package/daemon/dist/domain/native-process-lineage.d.ts +11 -2
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
- package/daemon/dist/domain/native-process-lineage.js +135 -15
- package/daemon/dist/domain/native-process-lineage.js.map +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts +8 -2
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +55 -11
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +91 -44
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +4 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +4 -1
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +1 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.js +25 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
- package/daemon/dist/domain/permission-drift.d.ts +1 -0
- package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
- package/daemon/dist/domain/permission-drift.js +13 -1
- package/daemon/dist/domain/permission-drift.js.map +1 -1
- package/daemon/dist/domain/permission-policy/policy-ref.d.ts +6 -1
- package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -1
- package/daemon/dist/domain/permission-policy/policy-ref.js +16 -4
- package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -1
- package/daemon/dist/domain/permission-policy/policy-spec.d.ts +1 -1
- package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -1
- package/daemon/dist/domain/permission-policy/policy-spec.js +2 -2
- package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -1
- package/daemon/dist/domain/plugin-discovery-service.d.ts +5 -6
- package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-discovery-service.js +14 -8
- package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.d.ts +6 -2
- package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.js +58 -15
- package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +6 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
- package/daemon/dist/domain/policies/parked-owner-consumer.js +11 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
- package/daemon/dist/domain/profile-resolver.d.ts +4 -2
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +78 -9
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
- package/daemon/dist/domain/project-lifecycle-compiler.js +10 -2
- package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
- package/daemon/dist/domain/projection-planner.d.ts +11 -0
- package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
- package/daemon/dist/domain/projection-planner.js +14 -5
- package/daemon/dist/domain/projection-planner.js.map +1 -1
- package/daemon/dist/domain/proof/judgments.d.ts +3 -0
- package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
- package/daemon/dist/domain/proof/judgments.js +13 -8
- package/daemon/dist/domain/proof/judgments.js.map +1 -1
- package/daemon/dist/domain/proof/source-watch.d.ts.map +1 -1
- package/daemon/dist/domain/proof/source-watch.js +45 -27
- package/daemon/dist/domain/proof/source-watch.js.map +1 -1
- package/daemon/dist/domain/provider/host-usage-rollup.js +9 -5
- package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +22 -3
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +50 -11
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
- package/daemon/dist/domain/queue-recovery.js +7 -1
- package/daemon/dist/domain/queue-recovery.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +98 -6
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +337 -43
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts +3 -0
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +111 -26
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
- package/daemon/dist/domain/queue-transition-log.js +12 -10
- package/daemon/dist/domain/queue-transition-log.js.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.d.ts +8 -7
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +278 -19
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.d.ts +10 -9
- package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.js +31 -11
- package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
- package/daemon/dist/domain/readiness-timeout.d.ts +7 -0
- package/daemon/dist/domain/readiness-timeout.d.ts.map +1 -0
- package/daemon/dist/domain/readiness-timeout.js +19 -0
- package/daemon/dist/domain/readiness-timeout.js.map +1 -0
- package/daemon/dist/domain/reply-to-choice.d.ts +26 -0
- package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -0
- package/daemon/dist/domain/reply-to-choice.js +45 -0
- package/daemon/dist/domain/reply-to-choice.js.map +1 -0
- package/daemon/dist/domain/request-phase-observer.d.ts +69 -0
- package/daemon/dist/domain/request-phase-observer.d.ts.map +1 -0
- package/daemon/dist/domain/request-phase-observer.js +206 -0
- package/daemon/dist/domain/request-phase-observer.js.map +1 -0
- package/daemon/dist/domain/restore-check-service.d.ts +27 -8
- package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
- package/daemon/dist/domain/restore-check-service.js +202 -126
- package/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +5 -2
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +119 -216
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +2 -6
- package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/daemon/dist/domain/restore-preconditions.d.ts +12 -0
- package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -0
- package/daemon/dist/domain/restore-preconditions.js +202 -0
- package/daemon/dist/domain/restore-preconditions.js.map +1 -0
- package/daemon/dist/domain/resume-metadata-refresher.d.ts +20 -4
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +70 -8
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/daemon/dist/domain/resume-token-capture.d.ts +22 -1
- package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-capture.js +32 -4
- package/daemon/dist/domain/resume-token-capture.js.map +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-validation.js +24 -24
- package/daemon/dist/domain/resume-token-validation.js.map +1 -1
- package/daemon/dist/domain/rig-mode/operating-posture.d.ts +17 -1
- package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
- package/daemon/dist/domain/rig-mode/operating-posture.js +53 -15
- package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +15 -5
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +70 -6
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rig-teardown.d.ts +3 -0
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +105 -19
- 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 +8 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +5 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +8 -3
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +82 -20
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +5 -2
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +36 -13
- 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 +19 -3
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/route-timing-recorder.d.ts.map +1 -1
- package/daemon/dist/domain/route-timing-recorder.js +2 -0
- package/daemon/dist/domain/route-timing-recorder.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +19 -3
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js +1 -0
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/runtime-verifier.d.ts +3 -1
- package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-verifier.js +10 -1
- package/daemon/dist/domain/runtime-verifier.js.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -4
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.js +4 -4
- package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts +9 -4
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +73 -22
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts +1 -0
- package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.js +38 -9
- package/daemon/dist/domain/seat-attention-reconciler.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 +12 -11
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.js +99 -18
- package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-launch-environment.d.ts +26 -0
- package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -0
- package/daemon/dist/domain/seat-launch-environment.js +182 -0
- package/daemon/dist/domain/seat-launch-environment.js.map +1 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +11 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.js +41 -2
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/seat-status-service.d.ts +2 -1
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +10 -6
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.d.ts +5 -4
- package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.js +23 -9
- package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-switch-client-service.js +3 -2
- package/daemon/dist/domain/seat-switch-client-service.js.map +1 -1
- package/daemon/dist/domain/service-orchestrator.d.ts +1 -0
- package/daemon/dist/domain/service-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/service-orchestrator.js +4 -0
- package/daemon/dist/domain/service-orchestrator.js.map +1 -1
- package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
- package/daemon/dist/domain/services-readiness.js +6 -2
- package/daemon/dist/domain/services-readiness.js.map +1 -1
- package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -1
- package/daemon/dist/domain/session-fingerprinter.js +16 -1
- package/daemon/dist/domain/session-fingerprinter.js.map +1 -1
- package/daemon/dist/domain/session-name.d.ts.map +1 -1
- package/daemon/dist/domain/session-name.js +6 -0
- package/daemon/dist/domain/session-name.js.map +1 -1
- package/daemon/dist/domain/session-registry.d.ts +3 -0
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js +7 -0
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +35 -1
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +450 -158
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/skill-catalog.d.ts +19 -0
- package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
- package/daemon/dist/domain/skill-catalog.js +166 -17
- package/daemon/dist/domain/skill-catalog.js.map +1 -1
- package/daemon/dist/domain/skill-discovery.d.ts +1 -1
- package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/skill-discovery.js +6 -0
- package/daemon/dist/domain/skill-discovery.js.map +1 -1
- package/daemon/dist/domain/slow-op-recorder.d.ts +5 -0
- package/daemon/dist/domain/slow-op-recorder.d.ts.map +1 -1
- package/daemon/dist/domain/slow-op-recorder.js +34 -1
- package/daemon/dist/domain/slow-op-recorder.js.map +1 -1
- package/daemon/dist/domain/snapshot-repository.d.ts +2 -1
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-repository.js +39 -15
- package/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js +70 -11
- package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
- package/daemon/dist/domain/spec-validation-service.d.ts +6 -0
- package/daemon/dist/domain/spec-validation-service.d.ts.map +1 -1
- package/daemon/dist/domain/spec-validation-service.js +16 -1
- package/daemon/dist/domain/spec-validation-service.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +38 -5
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +275 -64
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/startup-proof.d.ts +7 -0
- package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
- package/daemon/dist/domain/startup-proof.js +7 -0
- package/daemon/dist/domain/startup-proof.js.map +1 -1
- package/daemon/dist/domain/startup-submission-evidence.d.ts +45 -0
- package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -0
- package/daemon/dist/domain/startup-submission-evidence.js +84 -0
- package/daemon/dist/domain/startup-submission-evidence.js.map +1 -0
- package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
- package/daemon/dist/domain/startup-validation.js +4 -0
- package/daemon/dist/domain/startup-validation.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +14 -3
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +19 -9
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/system-world.d.ts +3 -0
- package/daemon/dist/domain/system-world.d.ts.map +1 -1
- package/daemon/dist/domain/system-world.js +24 -21
- package/daemon/dist/domain/system-world.js.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js +2 -3
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +19 -4
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.js +102 -8
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
- package/daemon/dist/domain/terminal/terminal-provider.d.ts +2 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.d.ts +10 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.js +75 -6
- package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.d.ts +6 -0
- package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.js +6 -3
- package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
- package/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/tmux-discovery-scanner.js +7 -2
- package/daemon/dist/domain/tmux-discovery-scanner.js.map +1 -1
- package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -1
- package/daemon/dist/domain/tmux-option-defaults.js +5 -0
- package/daemon/dist/domain/tmux-option-defaults.js.map +1 -1
- package/daemon/dist/domain/topology/remote-up-leaf.d.ts +1 -0
- package/daemon/dist/domain/topology/remote-up-leaf.d.ts.map +1 -1
- package/daemon/dist/domain/topology/remote-up-leaf.js.map +1 -1
- package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-capture.js +1 -1
- package/daemon/dist/domain/transcript-capture.js.map +1 -1
- package/daemon/dist/domain/transcript-rotation.d.ts +26 -5
- package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-rotation.js +176 -25
- package/daemon/dist/domain/transcript-rotation.js.map +1 -1
- package/daemon/dist/domain/transcript-store.d.ts +1 -1
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +14 -6
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +24 -5
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/usage-series.d.ts.map +1 -1
- package/daemon/dist/domain/usage-series.js +11 -6
- package/daemon/dist/domain/usage-series.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 +101 -6
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/view-projector.d.ts +11 -6
- package/daemon/dist/domain/view-projector.d.ts.map +1 -1
- package/daemon/dist/domain/view-projector.js +2 -6
- package/daemon/dist/domain/view-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-runtime.d.ts +1 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts +29 -7
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.js +103 -14
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
- package/daemon/dist/domain/workspace/project-catalog.d.ts +20 -0
- package/daemon/dist/domain/workspace/project-catalog.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/project-catalog.js +92 -0
- package/daemon/dist/domain/workspace/project-catalog.js.map +1 -1
- package/daemon/dist/domain/workspace/project-registration.d.ts +49 -0
- package/daemon/dist/domain/workspace/project-registration.d.ts.map +1 -0
- package/daemon/dist/domain/workspace/project-registration.js +251 -0
- package/daemon/dist/domain/workspace/project-registration.js.map +1 -0
- package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-resolver.js +1 -1
- package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -1
- package/daemon/dist/health-detectors-surface.d.ts +1 -1
- package/daemon/dist/health-detectors-surface.d.ts.map +1 -1
- package/daemon/dist/health-detectors-surface.js.map +1 -1
- package/daemon/dist/index.d.ts +4 -4
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +12 -7
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/middleware/json-body-error.d.ts +17 -0
- package/daemon/dist/middleware/json-body-error.d.ts.map +1 -0
- package/daemon/dist/middleware/json-body-error.js +42 -0
- package/daemon/dist/middleware/json-body-error.js.map +1 -0
- package/daemon/dist/project-catalog-surface.d.ts +2 -1
- package/daemon/dist/project-catalog-surface.d.ts.map +1 -1
- package/daemon/dist/project-catalog-surface.js +1 -1
- package/daemon/dist/project-catalog-surface.js.map +1 -1
- package/daemon/dist/routes/activity.d.ts.map +1 -1
- package/daemon/dist/routes/activity.js +85 -6
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/attention.d.ts.map +1 -1
- package/daemon/dist/routes/attention.js +7 -1
- package/daemon/dist/routes/attention.js.map +1 -1
- package/daemon/dist/routes/bundles.d.ts.map +1 -1
- package/daemon/dist/routes/bundles.js +197 -407
- 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 +44 -4
- package/daemon/dist/routes/compaction.js.map +1 -1
- package/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/daemon/dist/routes/context-packs.js +10 -2
- package/daemon/dist/routes/context-packs.js.map +1 -1
- package/daemon/dist/routes/env.d.ts.map +1 -1
- package/daemon/dist/routes/env.js +14 -4
- package/daemon/dist/routes/env.js.map +1 -1
- package/daemon/dist/routes/files.js +2 -2
- package/daemon/dist/routes/files.js.map +1 -1
- package/daemon/dist/routes/gateway.d.ts.map +1 -1
- package/daemon/dist/routes/gateway.js +11 -1
- package/daemon/dist/routes/gateway.js.map +1 -1
- package/daemon/dist/routes/hosts.d.ts.map +1 -1
- package/daemon/dist/routes/hosts.js +51 -12
- 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 +6 -2
- package/daemon/dist/routes/mission-control.js.map +1 -1
- package/daemon/dist/routes/missions.d.ts.map +1 -1
- package/daemon/dist/routes/missions.js +17 -5
- package/daemon/dist/routes/missions.js.map +1 -1
- package/daemon/dist/routes/plugins.d.ts.map +1 -1
- package/daemon/dist/routes/plugins.js +5 -1
- package/daemon/dist/routes/plugins.js.map +1 -1
- package/daemon/dist/routes/projects.d.ts.map +1 -1
- package/daemon/dist/routes/projects.js +4 -2
- package/daemon/dist/routes/projects.js.map +1 -1
- package/daemon/dist/routes/proof.d.ts.map +1 -1
- package/daemon/dist/routes/proof.js +9 -2
- package/daemon/dist/routes/proof.js.map +1 -1
- package/daemon/dist/routes/ps.d.ts.map +1 -1
- package/daemon/dist/routes/ps.js +18 -0
- package/daemon/dist/routes/ps.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +150 -67
- 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 +40 -1
- package/daemon/dist/routes/restore-check.js.map +1 -1
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +4 -3
- 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 +11 -12
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +22 -4
- 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 +3 -2
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/telemetry.d.ts +2 -0
- package/daemon/dist/routes/telemetry.d.ts.map +1 -1
- package/daemon/dist/routes/telemetry.js +22 -1
- package/daemon/dist/routes/telemetry.js.map +1 -1
- package/daemon/dist/routes/terminal-ws.d.ts +1 -2
- package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
- package/daemon/dist/routes/terminal-ws.js +1 -2
- package/daemon/dist/routes/terminal-ws.js.map +1 -1
- package/daemon/dist/routes/up.js +11 -6
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/views.js +2 -2
- package/daemon/dist/routes/views.js.map +1 -1
- package/daemon/dist/server.d.ts +3 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +11 -3
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/spec-validation-surface.d.ts +4 -0
- package/daemon/dist/spec-validation-surface.d.ts.map +1 -0
- package/daemon/dist/spec-validation-surface.js +4 -0
- package/daemon/dist/spec-validation-surface.js.map +1 -0
- package/daemon/dist/startup.d.ts +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +166 -57
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/dist/system-world-surface.d.ts +1 -1
- package/daemon/dist/system-world-surface.d.ts.map +1 -1
- package/daemon/dist/system-world-surface.js +1 -1
- package/daemon/dist/system-world-surface.js.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js +8 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +145 -64
- package/daemon/docs/reference/agent-startup-guide.md +187 -35
- package/daemon/docs/reference/agent-state-taxonomy.md +44 -13
- package/daemon/docs/reference/browser-access.md +8 -4
- package/daemon/docs/reference/bundle-formats.md +207 -0
- package/daemon/docs/reference/chain-file-convention.md +16 -7
- package/daemon/docs/reference/developing.md +24 -9
- package/daemon/docs/reference/edge-types.md +18 -10
- package/daemon/docs/reference/getting-started.md +426 -111
- package/daemon/docs/reference/health-diagnosis.md +23 -8
- package/daemon/docs/reference/help.md +40 -10
- package/daemon/docs/reference/host-resources.md +61 -0
- package/daemon/docs/reference/instance-layout.md +11 -0
- package/daemon/docs/reference/inventory-request-diagnostics.md +75 -0
- package/daemon/docs/reference/knowledge-maturity.md +3 -1
- package/daemon/docs/reference/legacy-topology-migration.md +4 -2
- package/daemon/docs/reference/lore-routing.md +3 -1
- package/daemon/docs/reference/mission-install.md +3 -1
- package/daemon/docs/reference/non-interruptive-mode.md +60 -0
- package/daemon/docs/reference/planning-dial.md +2 -1
- package/daemon/docs/reference/product-journey-sdlc.md +11 -6
- package/daemon/docs/reference/product-management-pass.md +3 -1
- package/daemon/docs/reference/project-workspace.md +80 -3
- package/daemon/docs/reference/publishing-a-rig-bundle.md +144 -0
- package/daemon/docs/reference/refocus-channel.md +14 -5
- package/daemon/docs/reference/release-boundary.md +7 -3
- package/daemon/docs/reference/rig-bundle.md +271 -42
- package/daemon/docs/reference/rig-spec.md +180 -29
- package/daemon/docs/reference/rosters.md +60 -0
- package/daemon/docs/reference/schemas/bundle-behaviour.v1.schema.json +546 -0
- package/daemon/docs/reference/schemas/bundle-common.v1.schema.json +110 -0
- package/daemon/docs/reference/schemas/bundle-configurations.v1.schema.json +67 -0
- package/daemon/docs/reference/schemas/bundle-status.v1.schema.json +323 -0
- package/daemon/docs/reference/schemas/fixtures/identity-vectors.json +80 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/behaviour/not-generated-with-sections.json +60 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/configurations/spaced-member.configurations.yaml +6 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/registry/listed-with-withdrawn-on.yaml +21 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/registry/missing-source.yaml +16 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/registry/parent-folder.yaml +20 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/registry/short-commit.yaml +20 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/registry/withdrawn-without-date.yaml +20 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/run-record/harness-check-with-configuration.json +75 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/run-record/unlabelable-platform.json +97 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/status/hand-edited-notice.json +61 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-with-assistance.json +62 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-without-records.json +59 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-harness-with-result.json +61 -0
- package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-listing-with-label.json +61 -0
- package/daemon/docs/reference/schemas/fixtures/valid/behaviour/custom-not-generated.json +22 -0
- package/daemon/docs/reference/schemas/fixtures/valid/behaviour/legacy-archive-unknown-identity.json +53 -0
- package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-default.json +101 -0
- package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-yolo.json +102 -0
- package/daemon/docs/reference/schemas/fixtures/valid/behaviour/openrig-dev.recommended.json +258 -0
- package/daemon/docs/reference/schemas/fixtures/valid/configurations/openrig-dev.configurations.yaml +12 -0
- package/daemon/docs/reference/schemas/fixtures/valid/registry/openrig-dev.yaml +20 -0
- package/daemon/docs/reference/schemas/fixtures/valid/registry/withdrawn.yaml +21 -0
- package/daemon/docs/reference/schemas/fixtures/valid/run-record/pi-harness-check-blocked.json +74 -0
- package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-assisted-pass.json +97 -0
- package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-pass.json +97 -0
- package/daemon/docs/reference/schemas/fixtures/valid/run-record/withdraws-earlier.json +99 -0
- package/daemon/docs/reference/schemas/fixtures/valid/status/status.json +61 -0
- package/daemon/docs/reference/schemas/registry-entry.v1.schema.json +139 -0
- package/daemon/docs/reference/schemas/run-record.v1.schema.json +315 -0
- package/daemon/docs/reference/scoped-operating-posture.md +17 -9
- package/daemon/docs/reference/sdlc-conventions.md +47 -28
- package/daemon/docs/reference/slack-app-setup.md +58 -7
- package/daemon/docs/reference/stream-classifier-worker.md +21 -8
- package/daemon/docs/reference/telemetry.md +114 -0
- package/daemon/docs/reference/worktree-builds.md +12 -6
- package/daemon/policies/builtin/auto.policy.md +24 -0
- package/daemon/specs/agents/development/implementer/agent.yaml +2 -2
- package/daemon/specs/agents/development/qa/agent.yaml +1 -1
- package/daemon/specs/agents/product-management/pm/agent.yaml +10 -0
- package/daemon/specs/agents/shared/agent.yaml +1 -1
- package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +0 -6
- package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
- package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +24 -0
- package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +5 -5
- package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +9 -4
- package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +12 -9
- package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +29 -29
- package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -1
- package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +0 -5
- package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
- package/daemon/specs/agents/shared/skills/process/agent-browser/OPENRIG.md +1 -1
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/SKILL.md +0 -2
- package/daemon/specs/rigs/focused/{adversarial-review → code-review}/rig.yaml +1 -1
- package/daemon/specs/rigs/focused/pm/CULTURE.md +21 -0
- package/daemon/specs/rigs/focused/{pm-team → pm}/rig.yaml +5 -5
- package/daemon/specs/rigs/focused/{research-team → research}/rig.yaml +1 -1
- package/daemon/specs/rigs/launch/factory/CULTURE.md +96 -0
- package/daemon/specs/rigs/launch/factory/guidance/advisor-role.md +10 -0
- package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +23 -0
- package/daemon/specs/rigs/launch/{demo → factory}/rig.yaml +46 -35
- package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/instance/CRAFT.md +1 -1
- package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/CRAFT.md +2 -2
- package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/ORCHESTRATION-CRAFT.md +3 -3
- package/daemon/specs/rigs/{preview/product-team/topology/seats/dev1-qa → launch/factory/topology/seats/dev-qa}/CRAFT.md +1 -1
- package/daemon/specs/rigs/{preview/product-team/topology/seats/orch1-lead → launch/factory/topology/seats/orch-lead}/CRAFT.md +1 -1
- package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r1 → launch/factory/topology/seats/review-r1}/CRAFT.md +1 -1
- package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r2 → launch/factory/topology/seats/review-r2}/CRAFT.md +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -8
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +37 -0
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +12 -13
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -8
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +167 -4
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +30 -7
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -8
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +37 -0
- package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +41 -0
- package/daemon/specs/rigs/launch/starter/CULTURE.md +39 -0
- package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +23 -0
- package/daemon/specs/rigs/launch/{first-project-mixed → starter}/rig.yaml +11 -8
- package/dist/atomic-text-write.d.ts +3 -0
- package/dist/atomic-text-write.d.ts.map +1 -0
- package/dist/atomic-text-write.js +79 -0
- package/dist/atomic-text-write.js.map +1 -0
- package/dist/build-info.js +3 -3
- package/dist/bundle-behaviour.d.ts +10 -0
- package/dist/bundle-behaviour.d.ts.map +1 -0
- package/dist/bundle-behaviour.js +72 -0
- package/dist/bundle-behaviour.js.map +1 -0
- package/dist/cli-error.d.ts.map +1 -1
- package/dist/cli-error.js +15 -2
- package/dist/cli-error.js.map +1 -1
- package/dist/client.d.ts +14 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +29 -4
- package/dist/client.js.map +1 -1
- package/dist/commands/agent-image.d.ts.map +1 -1
- package/dist/commands/agent-image.js +2 -0
- package/dist/commands/agent-image.js.map +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +10 -1
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +34 -11
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/broadcast.js +1 -1
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/bundle.d.ts +12 -0
- package/dist/commands/bundle.d.ts.map +1 -1
- package/dist/commands/bundle.js +286 -21
- package/dist/commands/bundle.js.map +1 -1
- package/dist/commands/capture.js +4 -4
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/chatroom.d.ts.map +1 -1
- package/dist/commands/chatroom.js +22 -1
- package/dist/commands/chatroom.js.map +1 -1
- package/dist/commands/compact-plan.d.ts.map +1 -1
- package/dist/commands/compact-plan.js +36 -7
- package/dist/commands/compact-plan.js.map +1 -1
- package/dist/commands/compact.d.ts.map +1 -1
- package/dist/commands/compact.js +24 -4
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +5 -4
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts +3 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +85 -32
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/crash-cart.d.ts.map +1 -1
- package/dist/commands/crash-cart.js +2 -1
- package/dist/commands/crash-cart.js.map +1 -1
- package/dist/commands/daemon.d.ts +13 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +36 -18
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/destroy.d.ts.map +1 -1
- package/dist/commands/destroy.js +3 -2
- package/dist/commands/destroy.js.map +1 -1
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +2 -4
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +10 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +7 -1
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +9 -1
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/export.js +2 -2
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +23 -3
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +13 -1
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/host.d.ts +11 -0
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +38 -4
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +2 -0
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +25 -12
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/plugin.d.ts.map +1 -1
- package/dist/commands/plugin.js +12 -2
- package/dist/commands/plugin.js.map +1 -1
- package/dist/commands/policy.d.ts.map +1 -1
- package/dist/commands/policy.js +3 -2
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/project-jev.js +1 -1
- package/dist/commands/project-jev.js.map +1 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +5 -3
- package/dist/commands/project.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 +109 -37
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +2 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +133 -19
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/requirements.d.ts.map +1 -1
- package/dist/commands/requirements.js +6 -3
- package/dist/commands/requirements.js.map +1 -1
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +5 -0
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/rig-mode.d.ts.map +1 -1
- package/dist/commands/rig-mode.js +6 -1
- package/dist/commands/rig-mode.js.map +1 -1
- package/dist/commands/rig.d.ts.map +1 -1
- package/dist/commands/rig.js +20 -20
- package/dist/commands/rig.js.map +1 -1
- package/dist/commands/roster.d.ts +63 -0
- package/dist/commands/roster.d.ts.map +1 -0
- package/dist/commands/roster.js +169 -0
- package/dist/commands/roster.js.map +1 -0
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +22 -0
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +96 -17
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +20 -6
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +78 -30
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/slack.d.ts +1 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +57 -5
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/specs.d.ts.map +1 -1
- package/dist/commands/specs.js +21 -2
- package/dist/commands/specs.js.map +1 -1
- package/dist/commands/start.js +7 -6
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/startup-proof.d.ts.map +1 -1
- package/dist/commands/startup-proof.js +2 -1
- package/dist/commands/startup-proof.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +7 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/telemetry.d.ts +5 -0
- package/dist/commands/telemetry.d.ts.map +1 -0
- package/dist/commands/telemetry.js +58 -0
- package/dist/commands/telemetry.js.map +1 -0
- package/dist/commands/terminal.d.ts.map +1 -1
- package/dist/commands/terminal.js +5 -1
- package/dist/commands/terminal.js.map +1 -1
- package/dist/commands/transcript.js +5 -3
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/tui.js +4 -4
- package/dist/commands/tui.js.map +1 -1
- package/dist/commands/up.d.ts +8 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +193 -72
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +3 -0
- package/dist/commands/walk.js.map +1 -1
- package/dist/commands/whoami.d.ts +3 -0
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +29 -2
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/workflow-follow.d.ts +2 -0
- package/dist/commands/workflow-follow.d.ts.map +1 -1
- package/dist/commands/workflow-follow.js +6 -4
- package/dist/commands/workflow-follow.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +2 -4
- package/dist/commands/workflow.js.map +1 -1
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +2 -4
- package/dist/commands/workspace.js.map +1 -1
- package/dist/config-store.d.ts +7 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +40 -7
- package/dist/config-store.js.map +1 -1
- package/dist/daemon-auto-start.d.ts +8 -0
- package/dist/daemon-auto-start.d.ts.map +1 -0
- package/dist/daemon-auto-start.js +39 -0
- package/dist/daemon-auto-start.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts +9 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +61 -19
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/daemon-reachability.d.ts +18 -0
- package/dist/daemon-reachability.d.ts.map +1 -0
- package/dist/daemon-reachability.js +48 -0
- package/dist/daemon-reachability.js.map +1 -0
- package/dist/front-door.d.ts.map +1 -1
- package/dist/front-door.js +3 -2
- package/dist/front-door.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/bundle-check.d.ts +13 -0
- package/dist/lib/bundle-check.d.ts.map +1 -0
- package/dist/lib/bundle-check.js +191 -0
- package/dist/lib/bundle-check.js.map +1 -0
- package/dist/lib/bundle-configuration.d.ts +60 -0
- package/dist/lib/bundle-configuration.d.ts.map +1 -0
- package/dist/lib/bundle-configuration.js +198 -0
- package/dist/lib/bundle-configuration.js.map +1 -0
- package/dist/lib/bundle-source.d.ts +57 -0
- package/dist/lib/bundle-source.d.ts.map +1 -0
- package/dist/lib/bundle-source.js +355 -0
- package/dist/lib/bundle-source.js.map +1 -0
- package/dist/lib/context-install.d.ts.map +1 -1
- package/dist/lib/context-install.js +2 -3
- package/dist/lib/context-install.js.map +1 -1
- package/dist/lib/file-transfer.d.ts +1 -1
- package/dist/lib/file-transfer.d.ts.map +1 -1
- package/dist/lib/file-transfer.js +17 -5
- package/dist/lib/file-transfer.js.map +1 -1
- package/dist/lib/permission-policy/policy-ref.d.ts +6 -1
- package/dist/lib/permission-policy/policy-ref.d.ts.map +1 -1
- package/dist/lib/permission-policy/policy-ref.js +16 -4
- package/dist/lib/permission-policy/policy-ref.js.map +1 -1
- package/dist/lib/permission-policy/policy-spec.d.ts +1 -1
- package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -1
- package/dist/lib/permission-policy/policy-spec.js +2 -2
- package/dist/lib/permission-policy/policy-spec.js.map +1 -1
- package/dist/lib/scope/mission-composition.d.ts.map +1 -1
- package/dist/lib/scope/mission-composition.js +11 -0
- package/dist/lib/scope/mission-composition.js.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.d.ts +4 -4
- package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.js +4 -4
- package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +10 -16
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/lib/scope/templates.d.ts.map +1 -1
- package/dist/lib/scope/templates.js +1 -0
- package/dist/lib/scope/templates.js.map +1 -1
- package/dist/lib/scope-templates/notes.md +1 -1
- package/dist/lib/scope-templates/slice-progress.md +11 -7
- package/dist/lib/work-install.d.ts +12 -0
- package/dist/lib/work-install.d.ts.map +1 -1
- package/dist/lib/work-install.js +55 -4
- package/dist/lib/work-install.js.map +1 -1
- package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -1
- package/dist/restore-packet/claude-transcript-parser.js +2 -0
- package/dist/restore-packet/claude-transcript-parser.js.map +1 -1
- package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -1
- package/dist/restore-packet/codex-jsonl-parser.js +2 -0
- package/dist/restore-packet/codex-jsonl-parser.js.map +1 -1
- package/dist/restore-packet/runtime-detect.d.ts.map +1 -1
- package/dist/restore-packet/runtime-detect.js +2 -0
- package/dist/restore-packet/runtime-detect.js.map +1 -1
- package/package.json +4 -3
- package/tui/dist/attention/source-continuity.d.ts.map +1 -1
- package/tui/dist/attention/source-continuity.js +5 -3
- package/tui/dist/attention/source-continuity.js.map +1 -1
- package/tui/dist/commands/registry.d.ts.map +1 -1
- package/tui/dist/commands/registry.js +8 -3
- package/tui/dist/commands/registry.js.map +1 -1
- package/tui/dist/daemon-client.d.ts +3 -1
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +18 -6
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/execution/execution-model.d.ts.map +1 -1
- package/tui/dist/execution/execution-model.js +19 -7
- package/tui/dist/execution/execution-model.js.map +1 -1
- package/tui/dist/grammar.d.ts.map +1 -1
- package/tui/dist/grammar.js +3 -2
- package/tui/dist/grammar.js.map +1 -1
- package/tui/dist/health/health-model.d.ts.map +1 -1
- package/tui/dist/health/health-model.js +17 -5
- package/tui/dist/health/health-model.js.map +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +1 -0
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/input.d.ts.map +1 -1
- package/tui/dist/input.js +5 -0
- package/tui/dist/input.js.map +1 -1
- package/tui/dist/live-events.d.ts +2 -2
- package/tui/dist/live-events.d.ts.map +1 -1
- package/tui/dist/live-events.js +65 -27
- package/tui/dist/live-events.js.map +1 -1
- package/tui/dist/local-reading.d.ts.map +1 -1
- package/tui/dist/local-reading.js +2 -0
- package/tui/dist/local-reading.js.map +1 -1
- package/tui/dist/main.js +46 -6
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/page-read.d.ts.map +1 -1
- package/tui/dist/page-read.js +4 -1
- package/tui/dist/page-read.js.map +1 -1
- package/tui/dist/render.d.ts +2 -0
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +81 -23
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
- package/tui/dist/scopes/scopes-model.js +36 -31
- package/tui/dist/scopes/scopes-model.js.map +1 -1
- package/tui/dist/socket-server.d.ts +6 -2
- package/tui/dist/socket-server.d.ts.map +1 -1
- package/tui/dist/socket-server.js +159 -14
- package/tui/dist/socket-server.js.map +1 -1
- package/tui/dist/specs/graph.d.ts +5 -0
- package/tui/dist/specs/graph.d.ts.map +1 -0
- package/tui/dist/specs/graph.js +16 -0
- package/tui/dist/specs/graph.js.map +1 -0
- package/tui/dist/specs/launch.d.ts +29 -0
- package/tui/dist/specs/launch.d.ts.map +1 -0
- package/tui/dist/specs/launch.js +64 -0
- package/tui/dist/specs/launch.js.map +1 -0
- package/tui/dist/startup.d.ts.map +1 -1
- package/tui/dist/startup.js +15 -6
- package/tui/dist/startup.js.map +1 -1
- package/tui/dist/state.d.ts +2 -2
- package/tui/dist/state.d.ts.map +1 -1
- package/tui/dist/state.js +41 -18
- package/tui/dist/state.js.map +1 -1
- package/tui/dist/terminals/terminal-model.d.ts +1 -0
- package/tui/dist/terminals/terminal-model.d.ts.map +1 -1
- package/tui/dist/terminals/terminal-model.js +19 -2
- package/tui/dist/terminals/terminal-model.js.map +1 -1
- package/tui/dist/types.d.ts +35 -0
- package/tui/dist/types.d.ts.map +1 -1
- package/ui/dist/assets/{index-N-SdPj-I.css → index-DNU3XZr_.css} +1 -1
- package/ui/dist/assets/{index-BVW54ItO.js → index-HHSvwF97.js} +75 -75
- package/ui/dist/index.html +2 -2
- package/daemon/specs/rigs/launch/conveyor/README.md +0 -33
- package/daemon/specs/rigs/launch/conveyor/rig.yaml +0 -72
- package/daemon/specs/rigs/launch/demo/project-example/README.md +0 -25
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +0 -19
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +0 -6
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +0 -7
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +0 -31
- package/daemon/specs/rigs/launch/first-project/rig.yaml +0 -31
- package/daemon/specs/rigs/launch/first-project-claude/rig.yaml +0 -30
- package/daemon/specs/rigs/launch/implementation-pair/rig.yaml +0 -27
- package/daemon/specs/rigs/preview/product-team/rig.yaml +0 -90
- /package/daemon/specs/rigs/launch/factory-rsi/{rig.yaml → world-bundle.yaml} +0 -0
|
@@ -104,11 +104,25 @@ function classifyWriteError(err) {
|
|
|
104
104
|
}
|
|
105
105
|
return { ok: false, code: "unknown", message: err.message };
|
|
106
106
|
}
|
|
107
|
-
/**
|
|
107
|
+
/** The most sessions one batched capture chains (#308). Not a byte bound: a chunk whose output overflows exec's buffer
|
|
108
|
+
* fails and is split in half. */
|
|
109
|
+
const CAPTURE_BATCH = 24;
|
|
108
110
|
function shellQuote(s) {
|
|
109
111
|
// Replace each ' with '"'"' (end quote, double-quote the apostrophe, resume quote)
|
|
110
112
|
return "'" + s.replace(/'/g, "'\"'\"'") + "'";
|
|
111
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* An exact tmux target for a session name. tmux resolves a bare name by prefix when no session has that exact name,
|
|
116
|
+
* so a read or pipe for a session that just ended would act on another (`dev-impl@my-rig` on `dev-impl@my-rig2`).
|
|
117
|
+
* Pane, window and session ids (`%3`, `@1`, `$2`) and `session:window.pane` targets pass through unchanged (tmux
|
|
118
|
+
* turns `:` in a session name into `_`, so a `:` always means an explicit target). A pane or window command gets
|
|
119
|
+
* `=name:` (as the batched capture uses); a session command gets `=name`.
|
|
120
|
+
*/
|
|
121
|
+
function exactTarget(target, kind) {
|
|
122
|
+
if (/^[%@$]\d+$/.test(target) || target.includes(":"))
|
|
123
|
+
return target;
|
|
124
|
+
return kind === "session" ? `=${target}` : `=${target}:`;
|
|
125
|
+
}
|
|
112
126
|
/** Elements safe to leave bare in a POSIX shell word list. */
|
|
113
127
|
const SHELL_SAFE = /^[A-Za-z0-9_@%+=:,./-]+$/;
|
|
114
128
|
/** Join argv for a POSIX shell — the legacy string form. Only used when
|
|
@@ -168,17 +182,17 @@ function parsePaneLine(line) {
|
|
|
168
182
|
if (parts.length < 6)
|
|
169
183
|
return null;
|
|
170
184
|
const index = parseInt(parts[1], 10);
|
|
171
|
-
const width = parseInt(parts
|
|
172
|
-
const height = parseInt(parts
|
|
185
|
+
const width = parseInt(parts.at(-3), 10);
|
|
186
|
+
const height = parseInt(parts.at(-2), 10);
|
|
173
187
|
if (isNaN(index) || isNaN(width) || isNaN(height))
|
|
174
188
|
return null;
|
|
175
189
|
return {
|
|
176
190
|
id: parts[0],
|
|
177
191
|
index,
|
|
178
|
-
cwd: parts
|
|
192
|
+
cwd: parts.slice(2, -3).join(TMUX_FIELD_SEPARATOR),
|
|
179
193
|
width,
|
|
180
194
|
height,
|
|
181
|
-
active: parts
|
|
195
|
+
active: parts.at(-1) === "1",
|
|
182
196
|
};
|
|
183
197
|
}
|
|
184
198
|
function parseLines(output, parser) {
|
|
@@ -280,9 +294,20 @@ export class TmuxAdapter {
|
|
|
280
294
|
const result = classifyWriteError(error);
|
|
281
295
|
// Only termination consumes positive absence. Unknown probe failures
|
|
282
296
|
// still refuse, and guard-on never reaches this observation.
|
|
283
|
-
if (allowAbsent && !result.ok
|
|
284
|
-
&& !/permission denied|operation not permitted|EACCES|EPERM/i.test(result.message))
|
|
285
|
-
|
|
297
|
+
if (allowAbsent && !result.ok
|
|
298
|
+
&& !/permission denied|operation not permitted|EACCES|EPERM/i.test(result.message)) {
|
|
299
|
+
if (result.code === "session_not_found")
|
|
300
|
+
return result;
|
|
301
|
+
// list-panes reports a missing session as "can't find window" on
|
|
302
|
+
// native tmux. Do not broaden write-error classification: only
|
|
303
|
+
// termination may confirm the bound session's positive absence.
|
|
304
|
+
if (/can't find window/i.test(result.message)) {
|
|
305
|
+
const probe = await this.probeSession(bound.session);
|
|
306
|
+
guard.checkInput(identity);
|
|
307
|
+
if (probe.state === "absent")
|
|
308
|
+
return { ok: false, code: "session_not_found", message: result.message };
|
|
309
|
+
}
|
|
310
|
+
}
|
|
286
311
|
throw error;
|
|
287
312
|
}
|
|
288
313
|
const pane = fresh ? created.pane : bound.pane;
|
|
@@ -369,8 +394,15 @@ export class TmuxAdapter {
|
|
|
369
394
|
}
|
|
370
395
|
}
|
|
371
396
|
async listPanes(target) {
|
|
397
|
+
// Callers name a session (optionally with a window), or an immutable tmux
|
|
398
|
+
// id. Exact session matching prevents observing a prefix neighbor's pane.
|
|
399
|
+
// A bare leading '=' belongs to the literal session name. Only qualified
|
|
400
|
+
// targets already carry tmux's encoded exact-match syntax.
|
|
401
|
+
const namedTarget = target.includes(":") && target.startsWith("=") ? target : `=${target}`;
|
|
402
|
+
const exactTarget = /^[%$@]\d+$/.test(target) ? target
|
|
403
|
+
: namedTarget.includes(":") ? namedTarget : `${namedTarget}:`;
|
|
372
404
|
try {
|
|
373
|
-
const output = await this.run(["tmux", "list-panes", "-t",
|
|
405
|
+
const output = await this.run(["tmux", "list-panes", "-t", exactTarget, "-F", PANE_FORMAT], `tmux list-panes -t ${shellQuote(exactTarget)} -F "${PANE_FORMAT}"`);
|
|
374
406
|
return parseLines(output, parsePaneLine);
|
|
375
407
|
}
|
|
376
408
|
catch (err) {
|
|
@@ -394,7 +426,8 @@ export class TmuxAdapter {
|
|
|
394
426
|
// Use `tmux has-session` directly for reliable existence check — avoids
|
|
395
427
|
// parsing format-string output from `list-sessions` which can fail when
|
|
396
428
|
// tab delimiters are malformed across tmux versions.
|
|
397
|
-
|
|
429
|
+
const target = `=${name}`; // canonical session name, never a prefix lookup
|
|
430
|
+
await this.run(["tmux", "has-session", "-t", target], `tmux has-session -t ${shellQuote(target)}`);
|
|
398
431
|
return { state: "present" }; // exit 0 = session exists
|
|
399
432
|
}
|
|
400
433
|
catch (err) {
|
|
@@ -435,18 +468,25 @@ export class TmuxAdapter {
|
|
|
435
468
|
/** The committed binding now owns identity; this is not filesystem cleanup. */
|
|
436
469
|
finishLaunchBinding(session) { this.freshManaged.delete(session); }
|
|
437
470
|
async createSessionUnchecked(name, cwd, env) {
|
|
471
|
+
// These are the daemon's resolved capture settings, not seat overrides.
|
|
472
|
+
// An empty per-session value prevents the tmux server's inherited values
|
|
473
|
+
// from pinning an old policy over config.json inside a newly launched seat.
|
|
474
|
+
// Explicit seat settings remain authoritative.
|
|
475
|
+
const seatEnv = {
|
|
476
|
+
OPENRIG_TRANSCRIPTS_LINES: "",
|
|
477
|
+
OPENRIG_TRANSCRIPTS_POLL_INTERVAL_SECONDS: "",
|
|
478
|
+
...env,
|
|
479
|
+
};
|
|
438
480
|
const argv = ["tmux", "new-session", "-d", "-s", name];
|
|
439
481
|
if (cwd != null)
|
|
440
482
|
argv.push("-c", cwd);
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
argv.push("-e", `${k}=${v}`);
|
|
483
|
+
for (const [k, v] of Object.entries(seatEnv))
|
|
484
|
+
argv.push("-e", `${k}=${v}`);
|
|
444
485
|
const legacyParts = ["tmux", "new-session", "-d", "-s", shellQuote(name)];
|
|
445
486
|
if (cwd != null)
|
|
446
487
|
legacyParts.push("-c", shellQuote(cwd));
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
legacyParts.push("-e", shellQuote(`${k}=${v}`));
|
|
488
|
+
for (const [k, v] of Object.entries(seatEnv))
|
|
489
|
+
legacyParts.push("-e", shellQuote(`${k}=${v}`));
|
|
450
490
|
try {
|
|
451
491
|
await this.run(argv, legacyParts.join(" "));
|
|
452
492
|
return { ok: true };
|
|
@@ -456,33 +496,40 @@ export class TmuxAdapter {
|
|
|
456
496
|
}
|
|
457
497
|
}
|
|
458
498
|
/**
|
|
459
|
-
*
|
|
499
|
+
* Bracketed paste by default, at every size. Unbracketed input can be consumed as individual
|
|
460
500
|
* keystrokes by agent TUIs, losing text even below the old 8 KiB cutoff.
|
|
461
501
|
* A file keeps payload bytes out of shell/tmux argv and its size limits.
|
|
462
502
|
* `-p` bracket the paste when the receiving application enables that mode.
|
|
463
503
|
* `-r` preserve raw LF. tmux's default paste-buffer replaces every LF with
|
|
464
|
-
* CR, and CR
|
|
504
|
+
* CR, and CR is SUBMIT in the Claude/Codex TUIs - a
|
|
465
505
|
* default paste of a multi-line pack would submit on every newline.
|
|
466
506
|
* `-d` drop the buffer after a successful paste.
|
|
467
|
-
*
|
|
507
|
+
* `options.bracketed: false` omits `-p` for explicit prompt answers: bytes
|
|
508
|
+
* then act as keystrokes, including menu shortcuts and control keys.
|
|
509
|
+
* Any trailing submit stays the caller's separate `sendKeys(["Enter"])`.
|
|
468
510
|
* Cleanup unlinks the temp file in `finally`; if the buffer was loaded but the
|
|
469
511
|
* paste failed (e.g. missing target), an explicit `delete-buffer` runs so no
|
|
470
512
|
* buffer leaks. Unique temp + buffer names per call keep parallel `rig up`
|
|
471
513
|
* seats from colliding.
|
|
472
514
|
*/
|
|
473
|
-
async sendText(target, text) {
|
|
474
|
-
return this.guardedInput(target, (pane, beforeWrite) => this.sendTextUnchecked(pane, text, beforeWrite));
|
|
515
|
+
async sendText(target, text, beforeInput, options) {
|
|
516
|
+
return this.guardedInput(target, (pane, beforeWrite) => this.sendTextUnchecked(pane, text, () => { beforeWrite(); beforeInput?.(); }, options?.bracketed));
|
|
475
517
|
}
|
|
476
|
-
async sendTextUnchecked(target, text, beforeWrite) {
|
|
518
|
+
async sendTextUnchecked(target, text, beforeWrite, bracketed = true) {
|
|
477
519
|
const path = this.fileOps.tmpName();
|
|
478
520
|
const buffer = this.fileOps.bufferName();
|
|
479
521
|
let bufferLoaded = false;
|
|
522
|
+
let created = false;
|
|
480
523
|
try {
|
|
481
|
-
await this.fileOps.writeFile(path, text);
|
|
524
|
+
await this.fileOps.writeFile(path, text, { mode: 0o600, flag: "wx" });
|
|
525
|
+
created = true;
|
|
482
526
|
await this.run(["tmux", "load-buffer", "-b", buffer, path], `tmux load-buffer -b ${shellQuote(buffer)} ${shellQuote(path)}`);
|
|
483
527
|
bufferLoaded = true;
|
|
484
528
|
beforeWrite();
|
|
485
|
-
|
|
529
|
+
// Explicit prompt answers need key input, not bracketed-paste framing.
|
|
530
|
+
// Keep their bytes in the file: tmux command parsing and argv limits must
|
|
531
|
+
// not alter semicolons or reject long answers (#519, #602).
|
|
532
|
+
await this.run(["tmux", "paste-buffer", "-t", target, "-b", buffer, "-d", "-r", ...(bracketed ? ["-p"] : [])], `tmux paste-buffer -t ${shellQuote(target)} -b ${shellQuote(buffer)} -d -r${bracketed ? " -p" : ""}`);
|
|
486
533
|
return { ok: true };
|
|
487
534
|
}
|
|
488
535
|
catch (err) {
|
|
@@ -497,10 +544,12 @@ export class TmuxAdapter {
|
|
|
497
544
|
return classifyWriteError(err);
|
|
498
545
|
}
|
|
499
546
|
finally {
|
|
500
|
-
|
|
501
|
-
|
|
547
|
+
if (created) {
|
|
548
|
+
try {
|
|
549
|
+
await this.fileOps.unlink(path);
|
|
550
|
+
}
|
|
551
|
+
catch { /* best-effort cleanup */ }
|
|
502
552
|
}
|
|
503
|
-
catch { /* best-effort cleanup */ }
|
|
504
553
|
}
|
|
505
554
|
}
|
|
506
555
|
/**
|
|
@@ -511,23 +560,50 @@ export class TmuxAdapter {
|
|
|
511
560
|
* The shell removes its private script when consumed (not when pasted).
|
|
512
561
|
* A shell that never consumes the invocation leaves the file for diagnosis.
|
|
513
562
|
*/
|
|
514
|
-
async sendShellCommand(target, command, beforeInput) {
|
|
563
|
+
async sendShellCommand(target, command, beforeInput, options = {}) {
|
|
515
564
|
// Keep the managed selector for nested paste/Enter checks. A resolved pane
|
|
516
565
|
// ID can also occur in detached bindings after a tmux restart; resolving it
|
|
517
566
|
// again would lose the unambiguous session/node and its existing lease.
|
|
518
567
|
// Each nested write still validates the lease and targets its observed pane.
|
|
519
|
-
return this.guardedInput(target, () => this.sendShellCommandUnchecked(target, command, beforeInput));
|
|
568
|
+
return this.guardedInput(target, () => this.sendShellCommandUnchecked(target, command, beforeInput, options));
|
|
520
569
|
}
|
|
521
|
-
async sendShellCommandUnchecked(target, command, beforeInput) {
|
|
522
|
-
const
|
|
523
|
-
|
|
570
|
+
async sendShellCommandUnchecked(target, command, beforeInput, options) {
|
|
571
|
+
const commandBytes = Buffer.byteLength(command, "utf8");
|
|
572
|
+
// POSIX shells retain subshell isolation; unknown/unreadable panes use sh.
|
|
573
|
+
const paneShell = options.sourceInPane ? (await this.getPaneCommand(target) ?? "").replace(/^-/, "") : "";
|
|
574
|
+
const sourceInPane = ["bash", "zsh", "sh", "dash", "ksh"].includes(paneShell);
|
|
575
|
+
let path = options.stageIfLong && commandBytes <= 512 ? undefined : this.fileOps.tmpName();
|
|
576
|
+
let invocation = path ? sourceInPane ? `( . ${shellQuote(path)} )` : `/bin/sh ${shellQuote(path)}` : command;
|
|
577
|
+
if (path && paneShell === "fish") {
|
|
578
|
+
const quotedPath = shellQuote(path);
|
|
579
|
+
invocation = `/bin/sh ${quotedPath}`;
|
|
580
|
+
// Fish single quotes reinterpret POSIX backslashes. Keep those payloads
|
|
581
|
+
// (and paths) on sh, preserving existing executable launches byte-for-byte.
|
|
582
|
+
if (!command.includes("\\") && !path.includes("\\")) {
|
|
583
|
+
// Probe fixed syntax in the pane before sourcing, not the launch's exit
|
|
584
|
+
// status: even failed cleanup must not turn a later exit into a retry.
|
|
585
|
+
const sourced = `if eval 'OPENRIG_FISH_ASSIGNMENT_PROBE=1 /bin/sh -c :'; source ${quotedPath}; else; /bin/sh ${quotedPath}; end`;
|
|
586
|
+
// Repeating the path must not add a refusal for previously valid TMPDIRs.
|
|
587
|
+
if (Buffer.byteLength(sourced, "utf8") <= 512)
|
|
588
|
+
invocation = sourced;
|
|
589
|
+
}
|
|
590
|
+
}
|
|
524
591
|
if (Buffer.byteLength(invocation, "utf8") > 512) {
|
|
525
|
-
|
|
592
|
+
// Pi commands below the canonical tty limit still fit when staging cannot.
|
|
593
|
+
if (options.stageIfLong && commandBytes < 1024) {
|
|
594
|
+
path = undefined;
|
|
595
|
+
invocation = command;
|
|
596
|
+
}
|
|
597
|
+
else {
|
|
598
|
+
return { ok: false, code: "launch_path_too_long", message: "Temporary launch-script path exceeds the safe terminal input bound" };
|
|
599
|
+
}
|
|
526
600
|
}
|
|
527
601
|
let created = false;
|
|
528
602
|
try {
|
|
529
|
-
|
|
530
|
-
|
|
603
|
+
if (path) {
|
|
604
|
+
await this.fileOps.writeFile(path, `/bin/rm -f -- ${shellQuote(path)}\n${options.execInScript ? "exec " : ""}${command}\n`, { mode: 0o600, flag: "wx" });
|
|
605
|
+
created = true;
|
|
606
|
+
}
|
|
531
607
|
const text = beforeInput ? await this.guardedInput(target, (pane, check) => this.sendTextUnchecked(pane, invocation, () => { check(); beforeInput(); }))
|
|
532
608
|
: await this.sendText(target, invocation);
|
|
533
609
|
if (!text.ok)
|
|
@@ -546,7 +622,7 @@ export class TmuxAdapter {
|
|
|
546
622
|
return classifyWriteError(err);
|
|
547
623
|
}
|
|
548
624
|
finally {
|
|
549
|
-
if (created) {
|
|
625
|
+
if (created && path) {
|
|
550
626
|
try {
|
|
551
627
|
await this.fileOps.unlink(path);
|
|
552
628
|
}
|
|
@@ -554,8 +630,8 @@ export class TmuxAdapter {
|
|
|
554
630
|
}
|
|
555
631
|
}
|
|
556
632
|
}
|
|
557
|
-
async sendKeys(target, keys) {
|
|
558
|
-
return this.guardedInput(target, pane => this.sendKeysUnchecked(pane, keys));
|
|
633
|
+
async sendKeys(target, keys, beforeInput) {
|
|
634
|
+
return this.guardedInput(target, (pane, beforeWrite) => { beforeWrite(); beforeInput?.(); return this.sendKeysUnchecked(pane, keys); });
|
|
559
635
|
}
|
|
560
636
|
async sendKeysUnchecked(target, keys) {
|
|
561
637
|
try {
|
|
@@ -567,8 +643,9 @@ export class TmuxAdapter {
|
|
|
567
643
|
}
|
|
568
644
|
}
|
|
569
645
|
async setWindowOption(target, option, value) {
|
|
646
|
+
const window = exactTarget(target, "window");
|
|
570
647
|
try {
|
|
571
|
-
await this.run(["tmux", "set-option", "-w", "-t",
|
|
648
|
+
await this.run(["tmux", "set-option", "-w", "-t", window, option, value], `tmux set-option -w -t ${shellQuote(window)} ${shellQuote(option)} ${shellQuote(value)}`);
|
|
572
649
|
return { ok: true };
|
|
573
650
|
}
|
|
574
651
|
catch (err) {
|
|
@@ -583,7 +660,7 @@ export class TmuxAdapter {
|
|
|
583
660
|
return { ok: false, code: "validation_error", message: `resizeWindow: rows must be a positive integer, got ${rows}` };
|
|
584
661
|
}
|
|
585
662
|
try {
|
|
586
|
-
await this.run(["tmux", "resize-window", "-t", target, "-x", String(cols), "-y", String(rows)]);
|
|
663
|
+
await this.run(["tmux", "resize-window", "-t", exactTarget(target, "window"), "-x", String(cols), "-y", String(rows)]);
|
|
587
664
|
return { ok: true };
|
|
588
665
|
}
|
|
589
666
|
catch (err) {
|
|
@@ -614,8 +691,20 @@ export class TmuxAdapter {
|
|
|
614
691
|
return this.killSessionUnchecked(name);
|
|
615
692
|
}
|
|
616
693
|
async killSessionUnchecked(name) {
|
|
694
|
+
// The guarded path passes the immutable `$N` id, which stays as it is; a bare name is made exact.
|
|
695
|
+
const session = exactTarget(name, "session");
|
|
696
|
+
// Detach first so `detach-on-destroy off` cannot switch views onto another session.
|
|
697
|
+
try {
|
|
698
|
+
await this.run(["tmux", "detach-client", "-s", session], `tmux detach-client -s ${shellQuote(session)}`);
|
|
699
|
+
}
|
|
700
|
+
catch (err) {
|
|
701
|
+
// tmux 3.7 says "no current client" when nothing is attached (and for a missing session, which the kill classifies).
|
|
702
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
703
|
+
if (!message.toLowerCase().includes("no current client"))
|
|
704
|
+
return classifyWriteError(err);
|
|
705
|
+
}
|
|
617
706
|
try {
|
|
618
|
-
await this.run(["tmux", "kill-session", "-t",
|
|
707
|
+
await this.run(["tmux", "kill-session", "-t", session], `tmux kill-session -t ${shellQuote(session)}`);
|
|
619
708
|
const pane = this.freshProbes.get(name);
|
|
620
709
|
this.freshProbes.delete(name);
|
|
621
710
|
if (pane)
|
|
@@ -648,7 +737,8 @@ export class TmuxAdapter {
|
|
|
648
737
|
return this.guardedInput(paneTarget, pane => this.respawnPaneUnchecked(pane, command, opts));
|
|
649
738
|
}
|
|
650
739
|
async respawnPaneUnchecked(paneTarget, command, opts) {
|
|
651
|
-
const
|
|
740
|
+
const exact = exactTarget(paneTarget, "pane");
|
|
741
|
+
const argv = ["tmux", "respawn-pane", "-t", exact];
|
|
652
742
|
if (opts?.cwd != null)
|
|
653
743
|
argv.push("-c", opts.cwd);
|
|
654
744
|
if (opts?.env)
|
|
@@ -657,7 +747,7 @@ export class TmuxAdapter {
|
|
|
657
747
|
// The respawn command is ONE argv unit: tmux runs it via the shell.
|
|
658
748
|
if (command != null && command.length > 0)
|
|
659
749
|
argv.push(command);
|
|
660
|
-
const legacyRespawn = ["tmux", "respawn-pane", "-t", shellQuote(
|
|
750
|
+
const legacyRespawn = ["tmux", "respawn-pane", "-t", shellQuote(exact)];
|
|
661
751
|
if (opts?.cwd != null)
|
|
662
752
|
legacyRespawn.push("-c", shellQuote(opts.cwd));
|
|
663
753
|
if (opts?.env)
|
|
@@ -678,8 +768,9 @@ export class TmuxAdapter {
|
|
|
678
768
|
* Set to `on` BEFORE the retiree is signalled to exit (else the pane is destroyed on exit and there
|
|
679
769
|
* is nothing to respawn into). */
|
|
680
770
|
async setRemainOnExit(paneTarget, on) {
|
|
771
|
+
const exact = exactTarget(paneTarget, "pane");
|
|
681
772
|
try {
|
|
682
|
-
await this.run(["tmux", "set-option", "-p", "-t",
|
|
773
|
+
await this.run(["tmux", "set-option", "-p", "-t", exact, "remain-on-exit", on ? "on" : "off"], `tmux set-option -p -t ${shellQuote(exact)} remain-on-exit ${on ? "on" : "off"}`);
|
|
683
774
|
return { ok: true };
|
|
684
775
|
}
|
|
685
776
|
catch (err) {
|
|
@@ -689,8 +780,9 @@ export class TmuxAdapter {
|
|
|
689
780
|
/** Seat-handover cutover: is the pane's process dead (the retiree exited; the pane held by
|
|
690
781
|
* remain-on-exit)? A known-missing pane also proves physical cutover; unknown probe errors stay false. */
|
|
691
782
|
async isPaneDead(paneId) {
|
|
783
|
+
const exact = exactTarget(paneId, "pane");
|
|
692
784
|
try {
|
|
693
|
-
const output = await this.run(["tmux", "display-message", "-p", "-t",
|
|
785
|
+
const output = await this.run(["tmux", "display-message", "-p", "-t", exact, "#{pane_dead}"], `tmux display-message -p -t ${shellQuote(exact)} "#{pane_dead}"`);
|
|
694
786
|
return output.trim() === "1";
|
|
695
787
|
}
|
|
696
788
|
catch (error) {
|
|
@@ -721,8 +813,9 @@ export class TmuxAdapter {
|
|
|
721
813
|
}
|
|
722
814
|
/** Get the PID of the foreground process in a pane. Returns null if unavailable. */
|
|
723
815
|
async getPanePid(paneId) {
|
|
816
|
+
const target = exactTarget(paneId, "pane");
|
|
724
817
|
try {
|
|
725
|
-
const output = await this.run(["tmux", "display-message", "-p", "-t",
|
|
818
|
+
const output = await this.run(["tmux", "display-message", "-p", "-t", target, "#{pane_pid}"], `tmux display-message -p -t ${shellQuote(target)} "#{pane_pid}"`);
|
|
726
819
|
const trimmed = output.trim();
|
|
727
820
|
const parsed = parseInt(trimmed, 10);
|
|
728
821
|
return Number.isFinite(parsed) && parsed > 0 ? parsed : null;
|
|
@@ -746,8 +839,9 @@ export class TmuxAdapter {
|
|
|
746
839
|
}
|
|
747
840
|
/** Get the current foreground command in a pane. Returns null if unavailable. */
|
|
748
841
|
async getPaneCommand(paneId) {
|
|
842
|
+
const target = exactTarget(paneId, "pane");
|
|
749
843
|
try {
|
|
750
|
-
const output = await this.run(["tmux", "display-message", "-p", "-t",
|
|
844
|
+
const output = await this.run(["tmux", "display-message", "-p", "-t", target, "#{pane_current_command}"], `tmux display-message -p -t ${shellQuote(target)} "#{pane_current_command}"`);
|
|
751
845
|
const trimmed = output.trim();
|
|
752
846
|
return trimmed || null;
|
|
753
847
|
}
|
|
@@ -755,14 +849,33 @@ export class TmuxAdapter {
|
|
|
755
849
|
return null;
|
|
756
850
|
}
|
|
757
851
|
}
|
|
852
|
+
/** A launch metadata read. Callers must never put credential values in terminal input. */
|
|
853
|
+
async getSessionEnv(session, key) {
|
|
854
|
+
if (!/^[A-Z_][A-Z0-9_]*$/.test(key))
|
|
855
|
+
throw new Error("Invalid session environment key.");
|
|
856
|
+
try {
|
|
857
|
+
const output = await this.run(["tmux", "show-environment", "-t", session, key], `tmux show-environment -t ${shellQuote(session)} ${shellQuote(key)}`);
|
|
858
|
+
if (output.trim() === `-${key}`)
|
|
859
|
+
return undefined;
|
|
860
|
+
if (!output.startsWith(`${key}=`))
|
|
861
|
+
throw new Error("Unexpected session environment response.");
|
|
862
|
+
return output.slice(key.length + 1).replace(/\r?\n$/, "");
|
|
863
|
+
}
|
|
864
|
+
catch (error) {
|
|
865
|
+
if (error instanceof Error && error.message.includes(`unknown variable: ${key}`))
|
|
866
|
+
return undefined;
|
|
867
|
+
throw new Error("Cannot read the session's launch environment.");
|
|
868
|
+
}
|
|
869
|
+
}
|
|
758
870
|
/** OPR.0.4.3.28 Part C — usable-presence check for a session-env variable.
|
|
759
871
|
* Returns whether the var has a nonblank value, NEVER that value, and null
|
|
760
872
|
* when the session environment cannot be inspected. Listing the environment
|
|
761
873
|
* distinguishes a genuinely absent var from `tmux show-environment <var>`'s
|
|
762
874
|
* nonzero lookup exit. */
|
|
763
875
|
async hasSessionEnv(sessionName, varName) {
|
|
876
|
+
const target = exactTarget(sessionName, "session");
|
|
764
877
|
try {
|
|
765
|
-
const output = await this.run(["tmux", "show-environment", "-t",
|
|
878
|
+
const output = await this.run(["tmux", "show-environment", "-t", target], `tmux show-environment -t ${shellQuote(target)}`);
|
|
766
879
|
const prefix = `${varName}=`;
|
|
767
880
|
return output.split(/\r?\n/).some((line) => line.startsWith(prefix) && line.slice(prefix.length).trim().length > 0);
|
|
768
881
|
}
|
|
@@ -779,8 +892,9 @@ export class TmuxAdapter {
|
|
|
779
892
|
// shell, so its inner quoting stays POSIX here (psmux documents the same
|
|
780
893
|
// `cat >` server-side form for its own path).
|
|
781
894
|
const sink = "cat >> " + shellQuote(outputPath);
|
|
895
|
+
const target = exactTarget(sessionName, "pane");
|
|
782
896
|
try {
|
|
783
|
-
await this.run(["tmux", "pipe-pane", "-t",
|
|
897
|
+
await this.run(["tmux", "pipe-pane", "-t", target, sink], `tmux pipe-pane -t ${shellQuote(target)} ${shellQuote(sink)}`);
|
|
784
898
|
return { ok: true };
|
|
785
899
|
}
|
|
786
900
|
catch (err) {
|
|
@@ -789,8 +903,9 @@ export class TmuxAdapter {
|
|
|
789
903
|
}
|
|
790
904
|
/** Stop pipe-pane on a session. */
|
|
791
905
|
async stopPipePane(sessionName) {
|
|
906
|
+
const target = exactTarget(sessionName, "pane");
|
|
792
907
|
try {
|
|
793
|
-
await this.run(["tmux", "pipe-pane", "-t",
|
|
908
|
+
await this.run(["tmux", "pipe-pane", "-t", target], `tmux pipe-pane -t ${shellQuote(target)}`);
|
|
794
909
|
return { ok: true };
|
|
795
910
|
}
|
|
796
911
|
catch (err) {
|
|
@@ -798,9 +913,93 @@ export class TmuxAdapter {
|
|
|
798
913
|
}
|
|
799
914
|
}
|
|
800
915
|
/** Capture pane content (last N lines). Returns null if unavailable. */
|
|
916
|
+
/**
|
|
917
|
+
* Capture many sessions' panes with a few tmux calls instead of one per session (#308). One `list-sessions` says
|
|
918
|
+
* which targets exist: a missing one maps to null (as a failed per-target capture) without a fork. The live ones
|
|
919
|
+
* are captured in chunks of CAPTURE_BATCH chained commands (a `display-message` marker, then `capture-pane`), each
|
|
920
|
+
* pane's output delimited by a marker unique to the call, so the text equals what `capturePaneContent` returns.
|
|
921
|
+
* Targets are exact (`=<name>:`): no prefix match, and a name with a "." still resolves. tmux stops a chain at its
|
|
922
|
+
* first failing command, so a chunk that fails is split in half and retried (an oversized output, or a session gone
|
|
923
|
+
* since the listing); a single session that still fails is left OUT of the map, and the caller reads it per target.
|
|
924
|
+
* Null when tmux can't be listed at all. Each entry carries the time its own chunk was read (`capturedAt`), so a
|
|
925
|
+
* slow later chunk can't make an earlier capture look fresh.
|
|
926
|
+
*/
|
|
927
|
+
async capturePanesContent(targets, lines = 20, now = () => new Date()) {
|
|
928
|
+
let live;
|
|
929
|
+
try {
|
|
930
|
+
const listing = await this.run(["tmux", "list-sessions", "-F", "#{session_name}"], "tmux list-sessions -F '#{session_name}'");
|
|
931
|
+
live = new Set(listing.split("\n").map((s) => s.trim()).filter(Boolean));
|
|
932
|
+
}
|
|
933
|
+
catch {
|
|
934
|
+
return null;
|
|
935
|
+
}
|
|
936
|
+
const out = new Map();
|
|
937
|
+
const listedAt = now();
|
|
938
|
+
const present = [];
|
|
939
|
+
for (const t of new Set(targets)) {
|
|
940
|
+
if (live.has(t))
|
|
941
|
+
present.push(t);
|
|
942
|
+
else
|
|
943
|
+
out.set(t, { text: null, capturedAt: listedAt });
|
|
944
|
+
}
|
|
945
|
+
// A chunk that fails is split in half and retried, down to one session: its output overflowed exec's buffer (wide,
|
|
946
|
+
// colour-dense panes: each capture is the visible pane plus the requested history) or a session vanished since
|
|
947
|
+
// the listing. A single session that still fails is left out: the caller reads it per target.
|
|
948
|
+
/** Capture one chunk with a single chained tmux call into `out`; on failure, split it in half and retry each half. */
|
|
949
|
+
const captureChunk = async (chunk) => {
|
|
950
|
+
const nonce = randomUUID().replace(/-/g, "");
|
|
951
|
+
const mark = (k) => `__openrig_capture_${nonce}_${k}__`;
|
|
952
|
+
const argv = ["tmux", ...chunk.flatMap((t, k) => [
|
|
953
|
+
...(k > 0 ? [";"] : []),
|
|
954
|
+
"display-message", "-p", "-t", `=${t}:`, mark(k), ";", "capture-pane", "-p", "-t", `=${t}:`, "-S", `-${lines}`,
|
|
955
|
+
])];
|
|
956
|
+
const legacy = "tmux " + chunk.map((t, k) => `display-message -p -t ${shellQuote(`=${t}:`)} ${shellQuote(mark(k))} \\; capture-pane -p -t ${shellQuote(`=${t}:`)} -S -${lines}`).join(" \\; ");
|
|
957
|
+
let output;
|
|
958
|
+
let capturedAt;
|
|
959
|
+
try {
|
|
960
|
+
output = await this.run(argv, legacy);
|
|
961
|
+
capturedAt = now(); // when THIS chunk's panes were read, not when the sweep ends
|
|
962
|
+
}
|
|
963
|
+
catch {
|
|
964
|
+
if (chunk.length > 1) {
|
|
965
|
+
const half = Math.ceil(chunk.length / 2);
|
|
966
|
+
await captureChunk(chunk.slice(0, half));
|
|
967
|
+
await captureChunk(chunk.slice(half));
|
|
968
|
+
}
|
|
969
|
+
return; // a single session that failed: read per target by the caller
|
|
970
|
+
}
|
|
971
|
+
const segments = chunk.map(() => null);
|
|
972
|
+
let cur = -1;
|
|
973
|
+
const outLines = output.split("\n");
|
|
974
|
+
if (outLines.length && outLines[outLines.length - 1] === "")
|
|
975
|
+
outLines.pop(); // the final newline, not a line
|
|
976
|
+
for (const line of outLines) {
|
|
977
|
+
const m = line.startsWith(`__openrig_capture_${nonce}_`) ? /_(\d+)__$/.exec(line) : null;
|
|
978
|
+
if (m && line === mark(Number(m[1]))) {
|
|
979
|
+
cur = Number(m[1]);
|
|
980
|
+
segments[cur] = [];
|
|
981
|
+
}
|
|
982
|
+
else if (cur >= 0) {
|
|
983
|
+
segments[cur].push(line);
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
chunk.forEach((t, k) => {
|
|
987
|
+
const seg = segments[k];
|
|
988
|
+
if (seg == null)
|
|
989
|
+
return; // its marker never printed: read per target
|
|
990
|
+
// capture-pane prints its lines newline-terminated, as the per-target read returns them
|
|
991
|
+
const text = seg.length ? seg.join("\n") + "\n" : "";
|
|
992
|
+
out.set(t, { text: text === "" ? null : text, capturedAt });
|
|
993
|
+
});
|
|
994
|
+
};
|
|
995
|
+
for (let i = 0; i < present.length; i += CAPTURE_BATCH)
|
|
996
|
+
await captureChunk(present.slice(i, i + CAPTURE_BATCH));
|
|
997
|
+
return out;
|
|
998
|
+
}
|
|
801
999
|
async capturePaneContent(paneId, lines = 20) {
|
|
1000
|
+
const target = exactTarget(paneId, "pane");
|
|
802
1001
|
try {
|
|
803
|
-
const output = await this.run(["tmux", "capture-pane", "-p", "-t",
|
|
1002
|
+
const output = await this.run(["tmux", "capture-pane", "-p", "-t", target, "-S", `-${lines}`], `tmux capture-pane -p -t ${shellQuote(target)} -S -${lines}`);
|
|
804
1003
|
return output || null;
|
|
805
1004
|
}
|
|
806
1005
|
catch {
|
|
@@ -814,8 +1013,9 @@ export class TmuxAdapter {
|
|
|
814
1013
|
* the absolute-paint seed exists to eliminate.
|
|
815
1014
|
*/
|
|
816
1015
|
async capturePaneScreen(paneId) {
|
|
1016
|
+
const target = exactTarget(paneId, "pane");
|
|
817
1017
|
try {
|
|
818
|
-
const output = await this.run(["tmux", "capture-pane", "-p", "-t",
|
|
1018
|
+
const output = await this.run(["tmux", "capture-pane", "-p", "-t", target], `tmux capture-pane -p -t ${shellQuote(target)}`);
|
|
819
1019
|
return output || null;
|
|
820
1020
|
}
|
|
821
1021
|
catch {
|
|
@@ -829,8 +1029,9 @@ export class TmuxAdapter {
|
|
|
829
1029
|
* produces a garbage seed.
|
|
830
1030
|
*/
|
|
831
1031
|
async getPaneCursorPosition(paneId) {
|
|
1032
|
+
const exact = exactTarget(paneId, "pane");
|
|
832
1033
|
try {
|
|
833
|
-
const output = await this.run(["tmux", "display-message", "-p", "-t",
|
|
1034
|
+
const output = await this.run(["tmux", "display-message", "-p", "-t", exact, CURSOR_FORMAT], `tmux display-message -p -t ${shellQuote(exact)} "${CURSOR_FORMAT}"`);
|
|
834
1035
|
const [xRaw, yRaw, widthRaw, heightRaw] = output.trim().split(TMUX_FIELD_SEPARATOR);
|
|
835
1036
|
const x = Number.parseInt(xRaw ?? "", 10);
|
|
836
1037
|
const y = Number.parseInt(yRaw ?? "", 10);
|
|
@@ -855,8 +1056,10 @@ export class TmuxAdapter {
|
|
|
855
1056
|
* scopes are never crossed (guard b2).
|
|
856
1057
|
*/
|
|
857
1058
|
async setSessionOption(sessionName, key, value) {
|
|
1059
|
+
// set/show-option take a target-pane even when the option is session-scoped.
|
|
1060
|
+
const exact = exactTarget(sessionName, "pane");
|
|
858
1061
|
try {
|
|
859
|
-
await this.run(["tmux", "set-option", "-t",
|
|
1062
|
+
await this.run(["tmux", "set-option", "-t", exact, key, value], `tmux set-option -t ${shellQuote(exact)} ${shellQuote(key)} ${shellQuote(value)}`);
|
|
860
1063
|
return { ok: true };
|
|
861
1064
|
}
|
|
862
1065
|
catch (err) {
|
|
@@ -896,8 +1099,10 @@ export class TmuxAdapter {
|
|
|
896
1099
|
}
|
|
897
1100
|
/** Get a session-scoped user option value. Returns null if not set or error. */
|
|
898
1101
|
async getSessionOption(sessionName, key) {
|
|
1102
|
+
// set/show-option take a target-pane even when the option is session-scoped.
|
|
1103
|
+
const exact = exactTarget(sessionName, "pane");
|
|
899
1104
|
try {
|
|
900
|
-
const output = await this.run(["tmux", "show-option", "-v", "-t",
|
|
1105
|
+
const output = await this.run(["tmux", "show-option", "-v", "-t", exact, key], `tmux show-option -v -t ${shellQuote(exact)} ${shellQuote(key)}`);
|
|
901
1106
|
return output.trim() || null;
|
|
902
1107
|
}
|
|
903
1108
|
catch {
|
|
@@ -925,9 +1130,59 @@ export class TmuxAdapter {
|
|
|
925
1130
|
* - `null` when the target is missing OR the value is unparseable
|
|
926
1131
|
* (consumers treat null as "no signal", distinct from "idle").
|
|
927
1132
|
*/
|
|
1133
|
+
/** Every session's current-window `#{window_activity}` in ONE tmux call, keyed by session name: the same value
|
|
1134
|
+
* `readPaneLastActivity(<session name>)` reads (display-message -t <session> resolves to the session's current
|
|
1135
|
+
* window). Only well-formed timestamps are included, so a missing key means "read it the per-target way". Null when
|
|
1136
|
+
* tmux can't be read at all. The session name is the LAST field, so a separator inside it stays intact. */
|
|
1137
|
+
async readAllSessionWindowActivity() {
|
|
1138
|
+
try {
|
|
1139
|
+
const format = ["#{window_active}", "#{window_activity}", "#{session_name}"].join(TMUX_FIELD_SEPARATOR);
|
|
1140
|
+
const output = await this.run(["tmux", "list-windows", "-a", "-F", format], `tmux list-windows -a -F '${format}'`);
|
|
1141
|
+
const out = new Map();
|
|
1142
|
+
for (const line of output.split("\n")) {
|
|
1143
|
+
const first = line.indexOf(TMUX_FIELD_SEPARATOR), second = line.indexOf(TMUX_FIELD_SEPARATOR, first + 1);
|
|
1144
|
+
if (first < 0 || second < 0)
|
|
1145
|
+
continue;
|
|
1146
|
+
const active = line.slice(0, first), activity = line.slice(first + 1, second).trim(), session = line.slice(second + 1);
|
|
1147
|
+
if (!session || active !== "1" || !/^\d+$/.test(activity))
|
|
1148
|
+
continue;
|
|
1149
|
+
const n = Number(activity);
|
|
1150
|
+
if (Number.isFinite(n) && n > 0)
|
|
1151
|
+
out.set(session, n);
|
|
1152
|
+
}
|
|
1153
|
+
return out;
|
|
1154
|
+
}
|
|
1155
|
+
catch {
|
|
1156
|
+
return null;
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
/** Every pane's pid and current command in ONE tmux call, keyed by pane id (%N): the values `getPanePid` /
|
|
1160
|
+
* `getPaneCommand` read per pane. Panes without a valid pid are left out (read those per pane). Null when tmux can't
|
|
1161
|
+
* be read at all. The command is the LAST field, so a separator inside it stays intact. */
|
|
1162
|
+
async readAllPaneProcesses() {
|
|
1163
|
+
try {
|
|
1164
|
+
const format = ["#{pane_id}", "#{pane_pid}", "#{pane_current_command}"].join(TMUX_FIELD_SEPARATOR);
|
|
1165
|
+
const output = await this.run(["tmux", "list-panes", "-a", "-F", format], `tmux list-panes -a -F '${format}'`);
|
|
1166
|
+
const out = new Map();
|
|
1167
|
+
for (const line of output.split("\n")) {
|
|
1168
|
+
const first = line.indexOf(TMUX_FIELD_SEPARATOR), second = line.indexOf(TMUX_FIELD_SEPARATOR, first + 1);
|
|
1169
|
+
if (first <= 0 || second < 0)
|
|
1170
|
+
continue;
|
|
1171
|
+
const id = line.slice(0, first), pid = parseInt(line.slice(first + 1, second).trim(), 10);
|
|
1172
|
+
if (!Number.isFinite(pid) || pid <= 0)
|
|
1173
|
+
continue;
|
|
1174
|
+
out.set(id, { pid, command: line.slice(second + 1).trim() || null });
|
|
1175
|
+
}
|
|
1176
|
+
return out;
|
|
1177
|
+
}
|
|
1178
|
+
catch {
|
|
1179
|
+
return null;
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
928
1182
|
async readPaneLastActivity(paneId) {
|
|
1183
|
+
const exact = exactTarget(paneId, "pane");
|
|
929
1184
|
try {
|
|
930
|
-
const output = await this.run(["tmux", "display-message", "-p", "-t",
|
|
1185
|
+
const output = await this.run(["tmux", "display-message", "-p", "-t", exact, "#{window_activity}"], `tmux display-message -p -t ${shellQuote(exact)} '#{window_activity}'`);
|
|
931
1186
|
const trimmed = output.trim();
|
|
932
1187
|
if (!/^\d+$/.test(trimmed))
|
|
933
1188
|
return null;
|
|
@@ -966,8 +1221,9 @@ export class TmuxAdapter {
|
|
|
966
1221
|
* kills, or rebinds a session and never touches OpenRig routing/identity.
|
|
967
1222
|
*/
|
|
968
1223
|
async switchClient(client, target) {
|
|
1224
|
+
const exact = exactTarget(target, "session");
|
|
969
1225
|
try {
|
|
970
|
-
await this.run(["tmux", "switch-client", "-c", client, "-t",
|
|
1226
|
+
await this.run(["tmux", "switch-client", "-c", client, "-t", exact], `tmux switch-client -c ${shellQuote(client)} -t ${shellQuote(exact)}`);
|
|
971
1227
|
return { ok: true };
|
|
972
1228
|
}
|
|
973
1229
|
catch (err) {
|