@openrig/cli 0.5.1 → 0.5.3
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/daemon/assets/guidance/openrig-start.md +21 -64
- package/daemon/assets/plugins/openrig-core/hooks/claude.json +36 -0
- package/daemon/assets/plugins/openrig-core/hooks/codex.json +27 -0
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +132 -0
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +35 -3
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +8 -95
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +63 -20
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +6 -2
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +28 -2
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +42 -52
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +23 -1
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +7 -2
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +64 -0
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +235 -0
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +31 -1
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +48 -0
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +211 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +8 -0
- package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +28 -1
- package/daemon/context-packs/skills/core/agent-starters/SKILL.md +132 -0
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +112 -0
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/attention-queue/SKILL.md +264 -0
- package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +195 -0
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/human-in-the-loop/SKILL.md +104 -0
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +378 -0
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/openrig-cmux/SKILL.md +81 -0
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/openrig-herdr/SKILL.md +153 -0
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +460 -0
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/rig-lifecycle/SKILL.md +127 -0
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +160 -0
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/specification-system/SKILL.md +103 -0
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/watchdog/SKILL.md +126 -0
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/backlog-capture/SKILL.md +43 -0
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/context-builder/SKILL.md +87 -0
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/exec-summary/SKILL.md +84 -0
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/office-hours/SKILL.md +129 -0
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/plan-review/SKILL.md +98 -0
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +113 -0
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/ui-mockup/SKILL.md +76 -0
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pods/development-team/SKILL.md +156 -0
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +307 -0
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pods/oversight-team/SKILL.md +106 -0
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pods/review-team/SKILL.md +213 -0
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +9 -0
- package/daemon/context-packs/skills/process/agent-browser/LOCAL-INSIGHTS.md +189 -0
- package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +40 -0
- package/daemon/context-packs/skills/process/agent-browser/SKILL.md +427 -0
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +13 -0
- package/daemon/context-packs/skills/process/brainstorming/OPENRIG.md +48 -0
- package/daemon/context-packs/skills/process/brainstorming/SKILL.md +107 -0
- package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +11 -0
- package/daemon/context-packs/skills/process/context-engineering/SKILL.md +479 -0
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +9 -0
- package/daemon/context-packs/skills/process/dogfood/SKILL.md +225 -0
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +13 -0
- package/daemon/context-packs/skills/process/dogfood/references/issue-taxonomy.md +109 -0
- package/daemon/context-packs/skills/process/dogfood/templates/dogfood-report-template.md +53 -0
- package/daemon/context-packs/skills/process/executing-plans/OPENRIG.md +56 -0
- package/daemon/context-packs/skills/process/executing-plans/SKILL.md +94 -0
- package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +11 -0
- package/daemon/context-packs/skills/process/frontend-design/LICENSE.txt +177 -0
- package/daemon/context-packs/skills/process/frontend-design/SKILL.md +50 -0
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +11 -0
- package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +301 -0
- package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting.md +115 -0
- package/daemon/context-packs/skills/process/systematic-debugging/defense-in-depth.md +122 -0
- package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +63 -0
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +19 -0
- package/daemon/context-packs/skills/process/systematic-debugging/root-cause-tracing.md +169 -0
- package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +385 -0
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +11 -0
- package/daemon/context-packs/skills/process/test-driven-development/testing-anti-patterns.md +299 -0
- package/daemon/context-packs/skills/process/using-superpowers/OPENRIG.md +48 -0
- package/daemon/context-packs/skills/process/using-superpowers/SKILL.md +106 -0
- package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +11 -0
- package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +155 -0
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +9 -0
- package/daemon/context-packs/skills/process/writing-plans/OPENRIG.md +52 -0
- package/daemon/context-packs/skills/process/writing-plans/SKILL.md +126 -0
- package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +11 -0
- package/daemon/context-packs/world/install/01-world-from-primitives.md +97 -0
- package/daemon/context-packs/world/install/02-permission-self-sleep.md +141 -0
- package/daemon/context-packs/world/install/03-what-this-is-for.md +86 -0
- package/daemon/context-packs/world/install/04-ontology.md +790 -0
- package/daemon/context-packs/world/install/05-harness-power-use.md +355 -0
- package/daemon/context-packs/world/install/06-a-competent-turn.md +225 -0
- package/daemon/context-packs/world/install/manifest.yaml +125 -0
- package/daemon/context-packs/world/install/reference-material.md +125 -0
- package/daemon/context-packs/world/install/what-you-can-do.md +416 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +7 -4
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +2 -2
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -2
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +18 -10
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +10 -2
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +27 -7
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/adapters/yolo-mode.d.ts +18 -0
- package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
- package/daemon/dist/adapters/yolo-mode.js +21 -0
- package/daemon/dist/adapters/yolo-mode.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/domain/codex-thread-id.d.ts +100 -2
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +180 -6
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
- package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
- package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
- package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
- package/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
- package/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
- package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/profile-composer.js +125 -0
- package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
- package/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
- package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
- package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
- package/daemon/dist/domain/crash-cart-conductor.d.ts +173 -0
- package/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -0
- package/daemon/dist/domain/crash-cart-conductor.js +233 -0
- package/daemon/dist/domain/crash-cart-conductor.js.map +1 -0
- package/daemon/dist/domain/crash-cart-probes.d.ts +7 -6
- package/daemon/dist/domain/crash-cart-probes.d.ts.map +1 -1
- package/daemon/dist/domain/crash-cart-probes.js +57 -7
- package/daemon/dist/domain/crash-cart-probes.js.map +1 -1
- package/daemon/dist/domain/hosts/fanout-contract.d.ts +4 -0
- package/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/fanout-contract.js +15 -0
- package/daemon/dist/domain/hosts/fanout-contract.js.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +11 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.js +34 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
- package/daemon/dist/domain/markdown-address.d.ts +56 -0
- package/daemon/dist/domain/markdown-address.d.ts.map +1 -0
- package/daemon/dist/domain/markdown-address.js +188 -0
- package/daemon/dist/domain/markdown-address.js.map +1 -0
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +73 -0
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -0
- package/daemon/dist/domain/model-divergence/current-generation-record.js +204 -0
- package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -0
- package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +13 -0
- package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -0
- package/daemon/dist/domain/model-divergence/effective-model-readers.js +163 -0
- package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -0
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +125 -0
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -0
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +199 -0
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
- package/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
- package/daemon/dist/domain/permission-drift-observer.js +6 -1
- package/daemon/dist/domain/permission-drift-observer.js.map +1 -1
- package/daemon/dist/domain/predecessor-recap-resolver.d.ts +10 -3
- package/daemon/dist/domain/predecessor-recap-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/predecessor-recap-resolver.js +61 -14
- package/daemon/dist/domain/predecessor-recap-resolver.js.map +1 -1
- package/daemon/dist/domain/process-census.d.ts +25 -0
- package/daemon/dist/domain/process-census.d.ts.map +1 -0
- package/daemon/dist/domain/process-census.js +47 -0
- package/daemon/dist/domain/process-census.js.map +1 -0
- package/daemon/dist/domain/resume-metadata-refresher.d.ts +41 -3
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +74 -31
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/daemon/dist/domain/review/compose.d.ts +5 -26
- package/daemon/dist/domain/review/compose.d.ts.map +1 -1
- package/daemon/dist/domain/review/compose.js +31 -57
- package/daemon/dist/domain/review/compose.js.map +1 -1
- package/daemon/dist/domain/review/gather.d.ts.map +1 -1
- package/daemon/dist/domain/review/gather.js +3 -2
- package/daemon/dist/domain/review/gather.js.map +1 -1
- package/daemon/dist/domain/{rig-policy/rig-policy-defaults.d.ts → rig-mode/rig-mode-defaults.d.ts} +2 -2
- package/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts.map +1 -0
- package/daemon/dist/domain/{rig-policy/rig-policy-defaults.js → rig-mode/rig-mode-defaults.js} +1 -1
- package/daemon/dist/domain/rig-mode/rig-mode-defaults.js.map +1 -0
- package/{node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-store.d.ts → daemon/dist/domain/rig-mode/rig-mode-store.d.ts} +6 -6
- package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -0
- package/daemon/dist/domain/{rig-policy/rig-policy-store.js → rig-mode/rig-mode-store.js} +5 -5
- package/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -0
- package/daemon/dist/domain/{rig-policy/rig-policy-types.d.ts → rig-mode/rig-mode-types.d.ts} +1 -1
- package/daemon/dist/domain/rig-mode/rig-mode-types.d.ts.map +1 -0
- package/{node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.js → daemon/dist/domain/rig-mode/rig-mode-types.js} +1 -1
- package/daemon/dist/domain/rig-mode/rig-mode-types.js.map +1 -0
- package/{node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts → daemon/dist/domain/rig-mode/rig-mode-validator.d.ts} +2 -2
- package/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts.map +1 -0
- package/daemon/dist/domain/{rig-policy/rig-policy-validator.js → rig-mode/rig-mode-validator.js} +3 -3
- package/daemon/dist/domain/rig-mode/rig-mode-validator.js.map +1 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +39 -0
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts +7 -0
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +25 -2
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
- package/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
- package/daemon/dist/domain/scope/logical-checkbox.js +65 -0
- package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
- package/daemon/dist/domain/scope/node-file.d.ts +37 -0
- package/daemon/dist/domain/scope/node-file.d.ts.map +1 -0
- package/daemon/dist/domain/scope/node-file.js +55 -0
- package/daemon/dist/domain/scope/node-file.js.map +1 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +12 -1
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
- package/daemon/dist/domain/scope/plan-lock-artifacts.js +42 -2
- package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.d.ts +4 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.js +56 -7
- package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts +1 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-view-projection.js +5 -2
- package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts +1 -0
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +39 -23
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +54 -15
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +74 -19
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts +17 -0
- package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.js +22 -0
- package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
- package/daemon/dist/domain/session-jsonl.js +1 -1
- package/daemon/dist/domain/session-jsonl.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +8 -0
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +116 -0
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/shell-classifier.d.ts +23 -0
- package/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
- package/daemon/dist/domain/shell-classifier.js +36 -0
- package/daemon/dist/domain/shell-classifier.js.map +1 -0
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-detail-projector.js +24 -3
- package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
- package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-indexer.js +16 -3
- package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
- package/daemon/dist/domain/spec-live-conformance.d.ts +22 -0
- package/daemon/dist/domain/spec-live-conformance.d.ts.map +1 -1
- package/daemon/dist/domain/spec-live-conformance.js +35 -0
- package/daemon/dist/domain/spec-live-conformance.js.map +1 -1
- package/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
- package/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
- package/daemon/dist/domain/spec-validation-advisory.js +38 -0
- package/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +38 -1
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/sync-site-wrap.d.ts +9 -0
- package/daemon/dist/domain/sync-site-wrap.d.ts.map +1 -1
- package/daemon/dist/domain/sync-site-wrap.js +11 -0
- package/daemon/dist/domain/sync-site-wrap.js.map +1 -1
- package/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
- package/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
- package/daemon/dist/domain/topology-defaults-installer.js +92 -0
- package/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
- package/daemon/dist/domain/transcript-rotation.d.ts +4 -0
- package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-rotation.js +61 -3
- package/daemon/dist/domain/transcript-rotation.js.map +1 -1
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +9 -2
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +18 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +59 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/watchdog-auto-registration.d.ts +7 -0
- package/daemon/dist/domain/watchdog-auto-registration.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-auto-registration.js +27 -0
- package/daemon/dist/domain/watchdog-auto-registration.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +4 -3
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/routes/activity.js +11 -2
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/bundles.d.ts +27 -0
- package/daemon/dist/routes/bundles.d.ts.map +1 -1
- package/daemon/dist/routes/bundles.js +107 -26
- package/daemon/dist/routes/bundles.js.map +1 -1
- package/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/daemon/dist/routes/context-packs.js +205 -0
- package/daemon/dist/routes/context-packs.js.map +1 -1
- package/daemon/dist/routes/crash-cart.d.ts +4 -0
- package/daemon/dist/routes/crash-cart.d.ts.map +1 -0
- package/daemon/dist/routes/crash-cart.js +144 -0
- package/daemon/dist/routes/crash-cart.js.map +1 -0
- package/daemon/dist/routes/missions.d.ts.map +1 -1
- package/daemon/dist/routes/missions.js +10 -6
- package/daemon/dist/routes/missions.js.map +1 -1
- package/daemon/dist/routes/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
- package/daemon/dist/routes/rig-mode.d.ts.map +1 -0
- package/{node_modules/@openrig/daemon/dist/routes/rig-policy.js → daemon/dist/routes/rig-mode.js} +13 -13
- package/daemon/dist/routes/rig-mode.js.map +1 -0
- package/daemon/dist/routes/scope-approve.d.ts.map +1 -1
- package/daemon/dist/routes/scope-approve.js +4 -0
- package/daemon/dist/routes/scope-approve.js.map +1 -1
- package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/daemon/dist/routes/scope-audit.js +29 -2
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +18 -2
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/daemon/dist/routes/sessions.js +66 -1
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/transport.d.ts.map +1 -1
- package/daemon/dist/routes/transport.js +12 -3
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/seat-recap-store-surface.d.ts +2 -0
- package/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
- package/daemon/dist/seat-recap-store-surface.js +6 -0
- package/daemon/dist/seat-recap-store-surface.js.map +1 -0
- package/daemon/dist/server.d.ts +3 -1
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +15 -5
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +166 -6
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/chain-file-convention.md +115 -0
- package/daemon/docs/reference/legacy-topology-migration.md +53 -0
- package/daemon/docs/reference/refocus-channel.md +80 -0
- package/daemon/docs/reference/sdlc-conventions.md +24 -0
- package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -4
- package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +8 -0
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +72 -31
- package/daemon/specs/agents/shared/skills/pods/oversight-team/SKILL.md +106 -0
- package/daemon/specs/agents/shared/skills/process/context-engineering/SKILL.md +479 -0
- package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +9 -0
- package/daemon/specs/rigs/launch/demo/project-example/README.md +25 -0
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +19 -0
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +6 -0
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +7 -0
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +31 -0
- package/daemon/specs/rigs/preview/product-team/topology/instance/CRAFT.md +24 -0
- package/daemon/specs/rigs/preview/product-team/topology/rig/CRAFT.md +21 -0
- package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +50 -0
- package/daemon/specs/rigs/preview/product-team/topology/seats/dev1-qa/CRAFT.md +13 -0
- package/daemon/specs/rigs/preview/product-team/topology/seats/orch1-lead/CRAFT.md +17 -0
- package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r1/CRAFT.md +17 -0
- package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r2/CRAFT.md +15 -0
- package/dist/build-info.js +3 -3
- package/dist/commands/bundle.d.ts.map +1 -1
- package/dist/commands/bundle.js +6 -0
- package/dist/commands/bundle.js.map +1 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +2 -0
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +8 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +353 -48
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/crash-cart.d.ts.map +1 -1
- package/dist/commands/crash-cart.js.map +1 -1
- package/dist/commands/host.d.ts +5 -0
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +59 -3
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/policy.d.ts +5 -0
- package/dist/commands/policy.d.ts.map +1 -0
- package/dist/commands/policy.js +307 -0
- package/dist/commands/policy.js.map +1 -0
- package/dist/commands/proof.d.ts.map +1 -1
- package/dist/commands/proof.js +70 -12
- package/dist/commands/proof.js.map +1 -1
- package/dist/commands/ps.d.ts +4 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +4 -0
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
- package/dist/commands/rig-mode.d.ts.map +1 -0
- package/dist/commands/{rig-policy.js → rig-mode.js} +17 -17
- package/dist/commands/rig-mode.js.map +1 -0
- package/dist/commands/rig.d.ts.map +1 -1
- package/dist/commands/rig.js +5 -0
- package/dist/commands/rig.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +58 -16
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +2 -0
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts +13 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +3 -3
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/transcript.d.ts.map +1 -1
- package/dist/commands/transcript.js +27 -1
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +279 -26
- package/dist/commands/walk.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +11 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config-store.d.ts +17 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +53 -1
- package/dist/config-store.js.map +1 -1
- package/dist/cross-host-target.d.ts +8 -1
- package/dist/cross-host-target.d.ts.map +1 -1
- package/dist/cross-host-target.js +23 -4
- package/dist/cross-host-target.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +10 -1
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +26 -1
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/front-door.d.ts.map +1 -1
- package/dist/front-door.js +11 -1
- package/dist/front-door.js.map +1 -1
- package/dist/host-bindings.d.ts +62 -0
- package/dist/host-bindings.d.ts.map +1 -0
- package/dist/host-bindings.js +147 -0
- package/dist/host-bindings.js.map +1 -0
- package/dist/host-registry.d.ts +14 -1
- package/dist/host-registry.d.ts.map +1 -1
- package/dist/host-registry.js +30 -2
- package/dist/host-registry.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/hosts/fanout-contract.d.ts +4 -0
- package/dist/lib/hosts/fanout-contract.d.ts.map +1 -1
- package/dist/lib/hosts/fanout-contract.js +15 -0
- package/dist/lib/hosts/fanout-contract.js.map +1 -1
- package/dist/lib/path-safety.d.ts +8 -0
- package/dist/lib/path-safety.d.ts.map +1 -0
- package/dist/lib/path-safety.js +24 -0
- package/dist/lib/path-safety.js.map +1 -0
- package/dist/lib/permission-policy/policy-ref.d.ts +89 -0
- package/dist/lib/permission-policy/policy-ref.d.ts.map +1 -0
- package/dist/lib/permission-policy/policy-ref.js +171 -0
- package/dist/lib/permission-policy/policy-ref.js.map +1 -0
- package/dist/lib/permission-policy/policy-spec.d.ts +34 -0
- package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -0
- package/dist/lib/permission-policy/policy-spec.js +106 -0
- package/dist/lib/permission-policy/policy-spec.js.map +1 -0
- package/dist/lib/scope/logical-checkbox.d.ts +26 -0
- package/dist/lib/scope/logical-checkbox.d.ts.map +1 -0
- package/dist/lib/scope/logical-checkbox.js +65 -0
- package/dist/lib/scope/logical-checkbox.js.map +1 -0
- package/dist/lib/scope/scaffold-placeholder.d.ts +22 -0
- package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.js +24 -0
- package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
- package/dist/lib/scope/scope-audit.d.ts +1 -1
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js.map +1 -1
- package/dist/lib/scope/scope-fs.d.ts +19 -3
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +37 -17
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/lib/topology-trace.d.ts +36 -0
- package/dist/lib/topology-trace.d.ts.map +1 -0
- package/dist/lib/topology-trace.js +91 -0
- package/dist/lib/topology-trace.js.map +1 -0
- package/dist/release-surface/extract-surface.js +1 -1
- package/dist/release-surface/extract-surface.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +7 -4
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js +2 -2
- package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -2
- package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js +18 -10
- package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +10 -2
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js +27 -7
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts +18 -0
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js +21 -0
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +100 -2
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +180 -6
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +125 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts +173 -0
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js +233 -0
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.d.ts +7 -6
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.js +57 -7
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.js +15 -0
- package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +11 -0
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.js +34 -1
- package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts +56 -0
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.js +188 -0
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +73 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +204 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +13 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js +163 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +125 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js +199 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js +6 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.d.ts +10 -3
- package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.js +61 -14
- package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts +25 -0
- package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/process-census.js +47 -0
- package/node_modules/@openrig/daemon/dist/domain/process-census.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts +41 -3
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js +74 -31
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +5 -26
- package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/review/compose.js +31 -57
- package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/review/gather.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/review/gather.js +3 -2
- package/node_modules/@openrig/daemon/dist/domain/review/gather.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-defaults.d.ts → rig-mode/rig-mode-defaults.d.ts} +2 -2
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-defaults.js → rig-mode/rig-mode-defaults.js} +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.js.map +1 -0
- package/{daemon/dist/domain/rig-policy/rig-policy-store.d.ts → node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.d.ts} +6 -6
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-store.js → rig-mode/rig-mode-store.js} +5 -5
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-types.d.ts → rig-mode/rig-mode-types.d.ts} +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.d.ts.map +1 -0
- package/{daemon/dist/domain/rig-policy/rig-policy-types.js → node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js} +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js.map +1 -0
- package/{daemon/dist/domain/rig-policy/rig-policy-validator.d.ts → node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts} +2 -2
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-validator.js → rig-mode/rig-mode-validator.js} +3 -3
- package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +39 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts +7 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +25 -2
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js +65 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts +37 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js +55 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +12 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +42 -2
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js +56 -7
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js +5 -2
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +1 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +39 -23
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +54 -15
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +74 -19
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts +17 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js +22 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-jsonl.js +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-jsonl.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +8 -0
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-transport.js +116 -0
- package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts +23 -0
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js +36 -0
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js +24 -3
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js +16 -3
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.d.ts +22 -0
- package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.js +35 -0
- package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js +38 -0
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +38 -1
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.d.ts +9 -0
- package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.js +11 -0
- package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js +92 -0
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js +61 -3
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-store.js +9 -2
- package/node_modules/@openrig/daemon/dist/domain/transcript-store.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts +18 -0
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +59 -0
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.d.ts +7 -0
- package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.js +27 -0
- package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js +4 -3
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/activity.js +11 -2
- package/node_modules/@openrig/daemon/dist/routes/activity.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts +27 -0
- package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/bundles.js +107 -26
- package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/context-packs.js +205 -0
- package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/crash-cart.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/routes/crash-cart.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/routes/crash-cart.js +144 -0
- package/node_modules/@openrig/daemon/dist/routes/crash-cart.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/routes/missions.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/missions.js +10 -6
- package/node_modules/@openrig/daemon/dist/routes/missions.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
- package/node_modules/@openrig/daemon/dist/routes/rig-mode.d.ts.map +1 -0
- package/{daemon/dist/routes/rig-policy.js → node_modules/@openrig/daemon/dist/routes/rig-mode.js} +13 -13
- package/node_modules/@openrig/daemon/dist/routes/rig-mode.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/routes/scope-approve.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/scope-approve.js +4 -0
- package/node_modules/@openrig/daemon/dist/routes/scope-approve.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +29 -2
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/seat.js +18 -2
- package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/sessions.js +66 -1
- package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/transport.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/transport.js +12 -3
- package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts +2 -0
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js +6 -0
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/server.d.ts +3 -1
- package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/server.js +15 -5
- package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.js +166 -6
- package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
- package/node_modules/@openrig/daemon/package.json +6 -1
- package/package.json +1 -1
- package/tui/dist/crash-cart/from-emit.d.ts +9 -0
- package/tui/dist/crash-cart/from-emit.d.ts.map +1 -1
- package/tui/dist/crash-cart/from-emit.js.map +1 -1
- package/tui/dist/crash-cart/keys.d.ts +1 -1
- package/tui/dist/crash-cart/keys.d.ts.map +1 -1
- package/tui/dist/crash-cart/keys.js +13 -2
- package/tui/dist/crash-cart/keys.js.map +1 -1
- package/tui/dist/crash-cart/one-click-gate.d.ts +5 -0
- package/tui/dist/crash-cart/one-click-gate.d.ts.map +1 -1
- package/tui/dist/crash-cart/one-click-gate.js +8 -0
- package/tui/dist/crash-cart/one-click-gate.js.map +1 -1
- package/tui/dist/crash-cart/render-crash-cart.d.ts +11 -0
- package/tui/dist/crash-cart/render-crash-cart.d.ts.map +1 -1
- package/tui/dist/crash-cart/render-crash-cart.js +113 -0
- package/tui/dist/crash-cart/render-crash-cart.js.map +1 -1
- package/tui/dist/crash-cart/restore-input.d.ts +32 -0
- package/tui/dist/crash-cart/restore-input.d.ts.map +1 -0
- package/tui/dist/crash-cart/restore-input.js +37 -0
- package/tui/dist/crash-cart/restore-input.js.map +1 -0
- package/tui/dist/crash-cart/restore-lifecycle.d.ts +66 -0
- package/tui/dist/crash-cart/restore-lifecycle.d.ts.map +1 -0
- package/tui/dist/crash-cart/restore-lifecycle.js +96 -0
- package/tui/dist/crash-cart/restore-lifecycle.js.map +1 -0
- package/tui/dist/crash-cart/restore-scroll.d.ts +14 -0
- package/tui/dist/crash-cart/restore-scroll.d.ts.map +1 -0
- package/tui/dist/crash-cart/restore-scroll.js +27 -0
- package/tui/dist/crash-cart/restore-scroll.js.map +1 -0
- package/tui/dist/daemon-client.d.ts +38 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +15 -0
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/main.js +146 -2
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/render.d.ts +10 -0
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +63 -10
- package/tui/dist/render.js.map +1 -1
- package/daemon/dist/domain/rig-policy/rig-policy-defaults.d.ts.map +0 -1
- package/daemon/dist/domain/rig-policy/rig-policy-defaults.js.map +0 -1
- package/daemon/dist/domain/rig-policy/rig-policy-store.d.ts.map +0 -1
- package/daemon/dist/domain/rig-policy/rig-policy-store.js.map +0 -1
- package/daemon/dist/domain/rig-policy/rig-policy-types.d.ts.map +0 -1
- package/daemon/dist/domain/rig-policy/rig-policy-types.js.map +0 -1
- package/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts.map +0 -1
- package/daemon/dist/domain/rig-policy/rig-policy-validator.js.map +0 -1
- package/daemon/dist/routes/rig-policy.d.ts.map +0 -1
- package/daemon/dist/routes/rig-policy.js.map +0 -1
- package/dist/commands/rig-policy.d.ts.map +0 -1
- package/dist/commands/rig-policy.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-defaults.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-defaults.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-store.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-store.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-validator.js.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/rig-policy.d.ts.map +0 -1
- package/node_modules/@openrig/daemon/dist/routes/rig-policy.js.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { renderTriage } from "./triage.js";
|
|
1
2
|
/** Build a Line whose plain `text` is the concat of its segs (capture/width truth). */
|
|
2
3
|
function line(segs, opts) {
|
|
3
4
|
return { text: segs.map((s) => s.text).join(""), segs, ...(opts?.selected ? { selected: true } : {}) };
|
|
@@ -97,6 +98,118 @@ export function renderCrashCartView(model) {
|
|
|
97
98
|
...renderActions(),
|
|
98
99
|
];
|
|
99
100
|
}
|
|
101
|
+
/** Glyph + token for the DONE header by the DERIVED fleet verdict — the conclusion must match the
|
|
102
|
+
* truth: only an all-restored fleet wears the success ✓; all_failed is ✗; none_attempted / mixed carry
|
|
103
|
+
* a warning, never a success glyph (BLOCKER 2 — the rollup was truthful, the header was not). */
|
|
104
|
+
function verdictGlyph(verdict) {
|
|
105
|
+
switch (verdict) {
|
|
106
|
+
case "all_fully_restored":
|
|
107
|
+
return { glyph: "✓", token: "ok" };
|
|
108
|
+
case "all_failed":
|
|
109
|
+
return { glyph: "✗", token: "error" };
|
|
110
|
+
default:
|
|
111
|
+
return { glyph: "⚠", token: "warn" }; // none_attempted / mixed / partially — not a success
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** Glyph for a per-rig progress row by its rollup outcome. */
|
|
115
|
+
function outcomeGlyph(outcome) {
|
|
116
|
+
switch (outcome) {
|
|
117
|
+
case "fully_restored":
|
|
118
|
+
return { glyph: "✓", token: "ok" };
|
|
119
|
+
case "partially_restored":
|
|
120
|
+
return { glyph: "◑", token: "warn" };
|
|
121
|
+
case "failed":
|
|
122
|
+
return { glyph: "✗", token: "error" };
|
|
123
|
+
default:
|
|
124
|
+
return { glyph: "◌", token: "dim" }; // not_attempted
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/** The RESTORE LIFECYCLE view (B1 ROUND 2). While running: a live header + a per-rig progress list
|
|
128
|
+
* updated from each poll (the rollup stream) + the cancel affordance. When done: the verdict + counts
|
|
129
|
+
* and the SHIPPED keyboard-walkable triage list (renderTriage) — each seat/rig on its own row with its
|
|
130
|
+
* EXACT need, NOT a width-clipped one-line footer summary. */
|
|
131
|
+
export function renderRestoreLifecycleView(vm) {
|
|
132
|
+
const c = vm.counts;
|
|
133
|
+
const total = c.fully_restored + c.partially_restored + c.failed + c.not_attempted;
|
|
134
|
+
const countsSeg = {
|
|
135
|
+
text: `${c.fully_restored} restored · ${c.partially_restored} partial · ${c.failed} failed · ${c.not_attempted} not attempted`,
|
|
136
|
+
token: "dim",
|
|
137
|
+
};
|
|
138
|
+
if (vm.phase === "running") {
|
|
139
|
+
const out = [
|
|
140
|
+
line([
|
|
141
|
+
{ text: "⟳ RESTORING FLEET", token: "bright", bold: true },
|
|
142
|
+
{ text: ` — ${total} of the fleet done so far`, token: "dim" },
|
|
143
|
+
]),
|
|
144
|
+
line([countsSeg]),
|
|
145
|
+
];
|
|
146
|
+
// HIGH-1 — an ACCEPTED cancel is honestly rendered: the state SAYS cancellation was requested and
|
|
147
|
+
// the current rig will finish, and it no longer offers the initial `c cancel` affordance.
|
|
148
|
+
if (vm.cancelled)
|
|
149
|
+
out.push(line([{ text: "⚠ cancellation requested — the current rig will finish, then stop", token: "warn" }]));
|
|
150
|
+
out.push({ text: "" });
|
|
151
|
+
for (const p of vm.progress) {
|
|
152
|
+
const g = outcomeGlyph(p.outcome);
|
|
153
|
+
out.push(line([{ text: ` ${g.glyph} `, token: g.token }, { text: p.rigId, token: "bright" }, { text: ` ${p.outcome}`, token: "dim" }]));
|
|
154
|
+
}
|
|
155
|
+
out.push({ text: "" });
|
|
156
|
+
out.push(vm.cancelled
|
|
157
|
+
? line([{ text: " cancellation accepted — waiting for the current rig; the restore stops before the next", token: "dim" }])
|
|
158
|
+
: line([{ text: " c cancel (stop-before-next-rig) · restore continues per rig", token: "dim" }]));
|
|
159
|
+
return out;
|
|
160
|
+
}
|
|
161
|
+
if (vm.phase === "detached") {
|
|
162
|
+
// The live view paused past its window (poll ceiling, or a sustained poll-error streak) — the
|
|
163
|
+
// restore is CONTINUING on the daemon, not stopped. An explicit, OPERABLE state: reattach resumes
|
|
164
|
+
// the live view, cancel stops-before-next-rig by the retained id (both observable via the resumed poll).
|
|
165
|
+
const out = [
|
|
166
|
+
line([
|
|
167
|
+
{ text: "⚠ RESTORE STILL RUNNING ON THE DAEMON", token: "warn", bold: true },
|
|
168
|
+
{ text: ` — attempt ${vm.attemptId}`, token: "dim" },
|
|
169
|
+
]),
|
|
170
|
+
line([{ text: "the live view paused past its window; the restore is CONTINUING on the daemon, not stopped.", token: "dim" }]),
|
|
171
|
+
line([countsSeg]),
|
|
172
|
+
];
|
|
173
|
+
// HIGH-1 — if cancel was already requested, say so and drop the `c cancel` offer; reattach confirms it.
|
|
174
|
+
if (vm.cancelled)
|
|
175
|
+
out.push(line([{ text: "⚠ cancellation requested — reattach to confirm it lands on the daemon", token: "warn" }]));
|
|
176
|
+
out.push({ text: "" });
|
|
177
|
+
for (const p of vm.progress) {
|
|
178
|
+
const g = outcomeGlyph(p.outcome);
|
|
179
|
+
out.push(line([{ text: ` ${g.glyph} `, token: g.token }, { text: p.rigId, token: "bright" }, { text: ` ${p.outcome}`, token: "dim" }]));
|
|
180
|
+
}
|
|
181
|
+
out.push({ text: "" });
|
|
182
|
+
out.push(vm.cancelled
|
|
183
|
+
? line([{ text: " r reattach (confirm the cancellation) · any key dismiss", token: "dim" }])
|
|
184
|
+
: line([{ text: " r reattach (resume the live view) · c cancel (stop-before-next-rig) · any key dismiss", token: "dim" }]));
|
|
185
|
+
return out;
|
|
186
|
+
}
|
|
187
|
+
// done
|
|
188
|
+
const vg = verdictGlyph(vm.verdict);
|
|
189
|
+
const out = [
|
|
190
|
+
line([
|
|
191
|
+
{ text: `${vg.glyph} FLEET RESTORE: ${vm.verdict}`, token: vg.token, bold: true },
|
|
192
|
+
...(vm.cancelled ? [{ text: " (cancelled)", token: "warn" }] : []),
|
|
193
|
+
]),
|
|
194
|
+
line([countsSeg]),
|
|
195
|
+
{ text: "" },
|
|
196
|
+
// The shipped triage renderer — one keyboard-walkable row per need (seat + exact remediation),
|
|
197
|
+
// or the all-clean line. This is the surface the door test asserts.
|
|
198
|
+
...renderTriage(vm.triage),
|
|
199
|
+
];
|
|
200
|
+
return out;
|
|
201
|
+
}
|
|
202
|
+
/** B1 ROUND 10 — the ⏎ confirm banner, rendered at the TOP of the cockpit so the operator SEES the
|
|
203
|
+
* confirmation where they look. The first ⏎ used to be invisible because the confirm went to
|
|
204
|
+
* ViewState.notice, which the daemon-down cockpit does not render. The message already names the deltas
|
|
205
|
+
* and the ⏎-proceed / Esc-cancel affordance. */
|
|
206
|
+
export function renderConfirmBanner(message) {
|
|
207
|
+
return [
|
|
208
|
+
line([{ text: "⚠ CONFIRM RESTORE", token: "warn", bold: true }]),
|
|
209
|
+
line([{ text: message, token: "bright" }]),
|
|
210
|
+
{ text: "" },
|
|
211
|
+
];
|
|
212
|
+
}
|
|
100
213
|
/** The UNVERIFIED screen (planner+PM ruling): a minimal DISTINCT view — evidence VERBATIM + retry +
|
|
101
214
|
* quit + the rig-status hint, and ZERO recovery actions (never the cockpit, never RESTORE). */
|
|
102
215
|
export function renderUnverifiedView(evidence) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-crash-cart.js","sourceRoot":"","sources":["../../src/crash-cart/render-crash-cart.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render-crash-cart.js","sourceRoot":"","sources":["../../src/crash-cart/render-crash-cart.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface RestoreInputEvent {
|
|
2
|
+
type: string;
|
|
3
|
+
ch?: string;
|
|
4
|
+
key?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface RestoreInputContext {
|
|
7
|
+
phase: "running" | "detached" | "done";
|
|
8
|
+
cancelled: boolean;
|
|
9
|
+
offset: number;
|
|
10
|
+
maxOffset: number;
|
|
11
|
+
}
|
|
12
|
+
export type RestoreAction = {
|
|
13
|
+
kind: "quit";
|
|
14
|
+
} | {
|
|
15
|
+
kind: "scroll";
|
|
16
|
+
offset: number;
|
|
17
|
+
} | {
|
|
18
|
+
kind: "cancel";
|
|
19
|
+
} | {
|
|
20
|
+
kind: "reattach";
|
|
21
|
+
} | {
|
|
22
|
+
kind: "cancel-reattach";
|
|
23
|
+
} | {
|
|
24
|
+
kind: "dismiss";
|
|
25
|
+
} | {
|
|
26
|
+
kind: "none";
|
|
27
|
+
};
|
|
28
|
+
/** Resolve one key in a restore phase to an action. Order: quit, then scroll (advertised in EVERY phase
|
|
29
|
+
* when the content overflows — so it must ACT in every phase), then the phase-specific lifecycle keys.
|
|
30
|
+
* A cancel already requested is NOT re-offered (the render drops `c cancel` once `cancelled`). */
|
|
31
|
+
export declare function restoreKeyAction(ev: RestoreInputEvent, ctx: RestoreInputContext): RestoreAction;
|
|
32
|
+
//# sourceMappingURL=restore-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore-input.d.ts","sourceRoot":"","sources":["../../src/crash-cart/restore-input.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;mGAEmG;AACnG,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,mBAAmB,GAAG,aAAa,CA0B/F"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// B1 ROUND 4 — the restore view's key handling as a PURE reducer, so the operator affordances the
|
|
2
|
+
// screen advertises can be driven and asserted (r1: drive the test matrix from what the UI ADVERTISES,
|
|
3
|
+
// not from the handlers — an advertised-but-unwired key has no handler to enumerate from). main.ts is a
|
|
4
|
+
// thin executor over this reducer. The rule this closes: every affordance the screen offers in a state
|
|
5
|
+
// MUST act in that state, and the screen must never offer one the state cannot honour.
|
|
6
|
+
import { scrollKeyOf, nextScrollOffset } from "./restore-scroll.js";
|
|
7
|
+
/** Resolve one key in a restore phase to an action. Order: quit, then scroll (advertised in EVERY phase
|
|
8
|
+
* when the content overflows — so it must ACT in every phase), then the phase-specific lifecycle keys.
|
|
9
|
+
* A cancel already requested is NOT re-offered (the render drops `c cancel` once `cancelled`). */
|
|
10
|
+
export function restoreKeyAction(ev, ctx) {
|
|
11
|
+
if (ev.type === "char" && ev.ch === "q")
|
|
12
|
+
return { kind: "quit" };
|
|
13
|
+
const sk = scrollKeyOf(ev);
|
|
14
|
+
if (sk) {
|
|
15
|
+
const next = nextScrollOffset(sk, ctx.offset, ctx.maxOffset);
|
|
16
|
+
return next === null ? { kind: "none" } : { kind: "scroll", offset: next };
|
|
17
|
+
}
|
|
18
|
+
if (ctx.phase === "running") {
|
|
19
|
+
// c cancels only while it is actually offerable (not already requested); other keys are swallowed
|
|
20
|
+
// (the fleet is restoring — no accidental dismissal).
|
|
21
|
+
if (ev.type === "char" && ev.ch === "c" && !ctx.cancelled)
|
|
22
|
+
return { kind: "cancel" };
|
|
23
|
+
return { kind: "none" };
|
|
24
|
+
}
|
|
25
|
+
if (ctx.phase === "detached") {
|
|
26
|
+
if (ev.type === "char" && ev.ch === "r")
|
|
27
|
+
return { kind: "reattach" };
|
|
28
|
+
// c: if not yet requested, cancel + reattach (observable); if already requested, the render no
|
|
29
|
+
// longer offers `c cancel`, so c just reattaches to confirm.
|
|
30
|
+
if (ev.type === "char" && ev.ch === "c")
|
|
31
|
+
return ctx.cancelled ? { kind: "reattach" } : { kind: "cancel-reattach" };
|
|
32
|
+
return { kind: "dismiss" };
|
|
33
|
+
}
|
|
34
|
+
// done: the triage list is scrollable (handled above); any other key dismisses.
|
|
35
|
+
return { kind: "dismiss" };
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=restore-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore-input.js","sourceRoot":"","sources":["../../src/crash-cart/restore-input.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,uGAAuG;AACvG,wGAAwG;AACxG,uGAAuG;AACvG,uFAAuF;AACvF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAwBpE;;mGAEmG;AACnG,MAAM,UAAU,gBAAgB,CAAC,EAAqB,EAAE,GAAwB;IAC9E,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAEjE,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7E,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5B,kGAAkG;QAClG,sDAAsD;QACtD,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACrF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAC7B,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG;YAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACrE,+FAA+F;QAC/F,6DAA6D;QAC7D,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG;YAAE,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;QACnH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED,gFAAgF;IAChF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { RestoreFleetStatus } from "../daemon-client.js";
|
|
2
|
+
import type { TriageRow } from "./triage.js";
|
|
3
|
+
/** The daemon surface the lifecycle needs — a structural subset of DaemonClient (injectable for tests). */
|
|
4
|
+
export interface RestoreLifecycleClient {
|
|
5
|
+
restoreFleet(): Promise<{
|
|
6
|
+
fleetAttemptId: string;
|
|
7
|
+
}>;
|
|
8
|
+
restoreFleetStatus(id: string): Promise<RestoreFleetStatus>;
|
|
9
|
+
cancelRestoreFleet(id: string): Promise<unknown>;
|
|
10
|
+
}
|
|
11
|
+
/** One rendered frame of the lifecycle — a poll's status plus the retained attempt id + phase.
|
|
12
|
+
* `detached` = the driver stopped polling (poll ceiling reached, or repeated poll errors) while the
|
|
13
|
+
* restore is STILL running on the daemon — an explicit, operable state (reattach / cancel by id), NEVER
|
|
14
|
+
* a frozen `running` screen with a dead cancel key. */
|
|
15
|
+
export interface RestoreFrame extends RestoreFleetStatus {
|
|
16
|
+
attemptId: string;
|
|
17
|
+
phase: "running" | "done" | "detached";
|
|
18
|
+
}
|
|
19
|
+
/** Per-rig progress row for the running view (one per rig in the rollup sequence so far). */
|
|
20
|
+
export interface RestoreProgressRow {
|
|
21
|
+
rigId: string;
|
|
22
|
+
outcome: string;
|
|
23
|
+
}
|
|
24
|
+
/** The render model for the restore lifecycle surface — progress while running, rollup + the
|
|
25
|
+
* keyboard-walkable triage list when done. Built purely from a frame so the render stays testable. */
|
|
26
|
+
export interface RestoreLifecycleVM {
|
|
27
|
+
phase: "running" | "done" | "detached";
|
|
28
|
+
cancelled: boolean;
|
|
29
|
+
verdict: string;
|
|
30
|
+
counts: RestoreFleetStatus["rollup"]["counts"];
|
|
31
|
+
progress: RestoreProgressRow[];
|
|
32
|
+
/** The triage list (attention seats + not_attempted rigs) as shipped TriageRow[] — fed to renderTriage. */
|
|
33
|
+
triage: TriageRow[];
|
|
34
|
+
/** The retained attempt id — the detached view needs it for the reattach / direct-cancel affordances. */
|
|
35
|
+
attemptId: string;
|
|
36
|
+
}
|
|
37
|
+
/** Adapt a lifecycle frame into the render VM. The triage list is the UNION of two honest sources,
|
|
38
|
+
* each carrying its EXACT need on its own row (never a clipped one-line summary): the per-seat
|
|
39
|
+
* attention rows (Claude picker / Codex auth / awaiting-decision), red; and the not_attempted rigs
|
|
40
|
+
* that carry a remediation (no usable snapshot / cancelled), yellow (a caveat, not a failed seat). */
|
|
41
|
+
export declare function buildRestoreLifecycleVM(frame: RestoreFrame): RestoreLifecycleVM;
|
|
42
|
+
export interface RestoreLifecycleDeps {
|
|
43
|
+
client: RestoreLifecycleClient;
|
|
44
|
+
/** Called with EVERY poll (running + detached frames included) — the progress stream the TUI renders. */
|
|
45
|
+
onFrame: (frame: RestoreFrame) => void;
|
|
46
|
+
/** Polled each tick; when true, the driver POSTs cancel once (stop-before-next-rig). */
|
|
47
|
+
isCancelRequested: () => boolean;
|
|
48
|
+
/** Reattach to an EXISTING attempt (skip the kick) — the detached view's `r` re-enters the loop. */
|
|
49
|
+
attemptId?: string;
|
|
50
|
+
/** Injected in tests (no real delay); production uses setTimeout. */
|
|
51
|
+
sleep?: (ms: number) => Promise<void>;
|
|
52
|
+
pollIntervalMs?: number;
|
|
53
|
+
maxPolls?: number;
|
|
54
|
+
/** Consecutive poll ERRORS tolerated before detaching (a transient blip must NOT kill the driver). */
|
|
55
|
+
maxConsecutiveErrors?: number;
|
|
56
|
+
}
|
|
57
|
+
/** Drive one fleet restore from the TUI: kick (or reattach), retain the attempt id, poll emitting a
|
|
58
|
+
* frame each time (mid-run observable), request cancel when the operator asks, resolve on done. Two
|
|
59
|
+
* guarantees the operator lifecycle depends on:
|
|
60
|
+
* - a TRANSIENT poll error never ends the lifecycle — it is tolerated and retried; only
|
|
61
|
+
* `maxConsecutiveErrors` in a row (a genuinely unreachable daemon) DETACHES.
|
|
62
|
+
* - reaching the poll ceiling DETACHES (phase "detached"), it does NOT return a frozen "running"
|
|
63
|
+
* frame — so the caller never renders a live-looking screen whose cancel key is dead. A detached
|
|
64
|
+
* frame is an explicit, operable state: the caller reattaches or cancels by the retained id. */
|
|
65
|
+
export declare function driveRestoreLifecycle(deps: RestoreLifecycleDeps): Promise<RestoreFrame>;
|
|
66
|
+
//# sourceMappingURL=restore-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore-lifecycle.d.ts","sourceRoot":"","sources":["../../src/crash-cart/restore-lifecycle.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,2GAA2G;AAC3G,MAAM,WAAW,sBAAsB;IACrC,YAAY,IAAI,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5D,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClD;AAED;;;wDAGwD;AACxD,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;CACxC;AAED,6FAA6F;AAC7F,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;uGACuG;AACvG,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC/C,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,2GAA2G;IAC3G,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,yGAAyG;IACzG,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;uGAGuG;AACvG,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,kBAAkB,CA4B/E;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,yGAAyG;IACzG,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,wFAAwF;IACxF,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,oGAAoG;IACpG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sGAAsG;IACtG,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;oGAOoG;AACpG,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,CAkD7F"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/** Adapt a lifecycle frame into the render VM. The triage list is the UNION of two honest sources,
|
|
2
|
+
* each carrying its EXACT need on its own row (never a clipped one-line summary): the per-seat
|
|
3
|
+
* attention rows (Claude picker / Codex auth / awaiting-decision), red; and the not_attempted rigs
|
|
4
|
+
* that carry a remediation (no usable snapshot / cancelled), yellow (a caveat, not a failed seat). */
|
|
5
|
+
export function buildRestoreLifecycleVM(frame) {
|
|
6
|
+
const attentionRows = frame.rollup.attention_required.map((a) => ({
|
|
7
|
+
seat: `${a.seat}@${a.rigId}`,
|
|
8
|
+
check: "resume",
|
|
9
|
+
status: "red",
|
|
10
|
+
need: a.need,
|
|
11
|
+
evidence: a.need,
|
|
12
|
+
remediationSafe: false,
|
|
13
|
+
}));
|
|
14
|
+
const notAttemptedRows = frame.rollup.sequence
|
|
15
|
+
.filter((r) => r.outcome === "not_attempted" && (r.remediation || r.reason))
|
|
16
|
+
.map((r) => ({
|
|
17
|
+
seat: r.rigId,
|
|
18
|
+
check: "snapshot",
|
|
19
|
+
status: "yellow",
|
|
20
|
+
need: r.remediation ?? r.reason ?? "not attempted",
|
|
21
|
+
evidence: r.reason ?? "",
|
|
22
|
+
remediationSafe: false,
|
|
23
|
+
}));
|
|
24
|
+
return {
|
|
25
|
+
phase: frame.phase,
|
|
26
|
+
cancelled: frame.cancelled,
|
|
27
|
+
verdict: frame.verdict,
|
|
28
|
+
counts: frame.rollup.counts,
|
|
29
|
+
progress: frame.rollup.sequence.map((r) => ({ rigId: r.rigId, outcome: r.outcome })),
|
|
30
|
+
triage: [...attentionRows, ...notAttemptedRows],
|
|
31
|
+
attemptId: frame.attemptId,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** Drive one fleet restore from the TUI: kick (or reattach), retain the attempt id, poll emitting a
|
|
35
|
+
* frame each time (mid-run observable), request cancel when the operator asks, resolve on done. Two
|
|
36
|
+
* guarantees the operator lifecycle depends on:
|
|
37
|
+
* - a TRANSIENT poll error never ends the lifecycle — it is tolerated and retried; only
|
|
38
|
+
* `maxConsecutiveErrors` in a row (a genuinely unreachable daemon) DETACHES.
|
|
39
|
+
* - reaching the poll ceiling DETACHES (phase "detached"), it does NOT return a frozen "running"
|
|
40
|
+
* frame — so the caller never renders a live-looking screen whose cancel key is dead. A detached
|
|
41
|
+
* frame is an explicit, operable state: the caller reattaches or cancels by the retained id. */
|
|
42
|
+
export async function driveRestoreLifecycle(deps) {
|
|
43
|
+
const fleetAttemptId = deps.attemptId ?? (await deps.client.restoreFleet()).fleetAttemptId;
|
|
44
|
+
const sleep = deps.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
|
|
45
|
+
const interval = deps.pollIntervalMs ?? 400;
|
|
46
|
+
const maxPolls = deps.maxPolls ?? 4500; // generous — a real fleet restore is bounded by daemon work
|
|
47
|
+
const maxConsecutiveErrors = deps.maxConsecutiveErrors ?? 5;
|
|
48
|
+
let cancelSent = false;
|
|
49
|
+
let consecutiveErrors = 0;
|
|
50
|
+
let last;
|
|
51
|
+
const detached = () => ({
|
|
52
|
+
...(last ?? { done: false, cancelled: false, verdict: "none_attempted", rollup: { counts: { fully_restored: 0, partially_restored: 0, failed: 0, not_attempted: 0 }, sequence: [], attention_required: [] } }),
|
|
53
|
+
done: false,
|
|
54
|
+
attemptId: fleetAttemptId,
|
|
55
|
+
phase: "detached",
|
|
56
|
+
});
|
|
57
|
+
for (let i = 0; i < maxPolls; i++) {
|
|
58
|
+
if (deps.isCancelRequested() && !cancelSent) {
|
|
59
|
+
cancelSent = true;
|
|
60
|
+
try {
|
|
61
|
+
await deps.client.cancelRestoreFleet(fleetAttemptId); // reach the endpoint that exists
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
cancelSent = false; // a failed cancel POST may retry next tick (never swallow the operator's intent)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
let status;
|
|
68
|
+
try {
|
|
69
|
+
status = await deps.client.restoreFleetStatus(fleetAttemptId);
|
|
70
|
+
consecutiveErrors = 0; // a good poll clears the transient-error streak
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// TRANSIENT poll failure (r1 refinement 2): tolerate, DO NOT end the lifecycle on one. Only a
|
|
74
|
+
// sustained streak (a genuinely unreachable daemon) detaches to the operable reattach state.
|
|
75
|
+
if (++consecutiveErrors >= maxConsecutiveErrors) {
|
|
76
|
+
const frame = detached();
|
|
77
|
+
deps.onFrame(frame);
|
|
78
|
+
return frame;
|
|
79
|
+
}
|
|
80
|
+
await sleep(interval);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const frame = { ...status, attemptId: fleetAttemptId, phase: status.done ? "done" : "running" };
|
|
84
|
+
deps.onFrame(frame); // a frame EVERY poll — the operator sees progress before completion
|
|
85
|
+
last = status;
|
|
86
|
+
if (status.done)
|
|
87
|
+
return frame;
|
|
88
|
+
await sleep(interval);
|
|
89
|
+
}
|
|
90
|
+
// Poll ceiling: DETACH (never a frozen "running" frame — r1 refinement 1). The restore continues on
|
|
91
|
+
// the daemon; the caller offers reattach / cancel-by-id from this explicit state.
|
|
92
|
+
const frame = detached();
|
|
93
|
+
deps.onFrame(frame);
|
|
94
|
+
return frame;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=restore-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore-lifecycle.js","sourceRoot":"","sources":["../../src/crash-cart/restore-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** A resolved scroll intent, or null when the event is not a scroll key. */
|
|
2
|
+
export type ScrollKey = "up" | "down" | null;
|
|
3
|
+
/** Map an input event to a scroll intent: ↑/↓ arrows and k/j (vim). Anything else → null. */
|
|
4
|
+
export declare function scrollKeyOf(ev: {
|
|
5
|
+
type: string;
|
|
6
|
+
key?: string;
|
|
7
|
+
ch?: string;
|
|
8
|
+
}): ScrollKey;
|
|
9
|
+
export declare function clampScroll(offset: number, maxOffset: number): number;
|
|
10
|
+
/** The next scroll offset for a scroll key, clamped to [0, maxOffset]; null when `key` is not a scroll
|
|
11
|
+
* key (so the caller falls through to the phase-specific keys). Phase-agnostic BY DESIGN — the same
|
|
12
|
+
* scroll works in running, detached, and done. */
|
|
13
|
+
export declare function nextScrollOffset(key: ScrollKey, offset: number, maxOffset: number): number | null;
|
|
14
|
+
//# sourceMappingURL=restore-scroll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore-scroll.d.ts","sourceRoot":"","sources":["../../src/crash-cart/restore-scroll.ts"],"names":[],"mappings":"AAMA,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AAE7C,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAKtF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;mDAEmD;AACnD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGjG"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// B1 ROUND 4 (HIGH-2) — the restore view's scroll input logic, pure + phase-agnostic. The crash-cart
|
|
2
|
+
// shell advertises "↑↓ scroll" whenever the restore content overflows the viewport, in EVERY phase; this
|
|
3
|
+
// is the logic that makes that affordance real (an advertised-but-unwired affordance is exactly the
|
|
4
|
+
// defect class 5.2 named). main.ts calls it BEFORE the phase-specific keys, so running / detached / done
|
|
5
|
+
// all scroll — reaching the lifecycle action row (cancel / reattach) below the fold on a large fleet.
|
|
6
|
+
/** Map an input event to a scroll intent: ↑/↓ arrows and k/j (vim). Anything else → null. */
|
|
7
|
+
export function scrollKeyOf(ev) {
|
|
8
|
+
if (ev.type === "key" && (ev.key === "up" || ev.key === "down"))
|
|
9
|
+
return ev.key === "up" ? "up" : "down";
|
|
10
|
+
if (ev.type === "char" && ev.ch === "k")
|
|
11
|
+
return "up";
|
|
12
|
+
if (ev.type === "char" && ev.ch === "j")
|
|
13
|
+
return "down";
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
export function clampScroll(offset, maxOffset) {
|
|
17
|
+
return Math.max(0, Math.min(Math.max(0, maxOffset), offset));
|
|
18
|
+
}
|
|
19
|
+
/** The next scroll offset for a scroll key, clamped to [0, maxOffset]; null when `key` is not a scroll
|
|
20
|
+
* key (so the caller falls through to the phase-specific keys). Phase-agnostic BY DESIGN — the same
|
|
21
|
+
* scroll works in running, detached, and done. */
|
|
22
|
+
export function nextScrollOffset(key, offset, maxOffset) {
|
|
23
|
+
if (key === null)
|
|
24
|
+
return null;
|
|
25
|
+
return clampScroll(offset + (key === "down" ? 1 : -1), maxOffset);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=restore-scroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore-scroll.js","sourceRoot":"","sources":["../../src/crash-cart/restore-scroll.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,yGAAyG;AACzG,oGAAoG;AACpG,yGAAyG;AACzG,sGAAsG;AAKtG,6FAA6F;AAC7F,MAAM,UAAU,WAAW,CAAC,EAA+C;IACzE,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IACxG,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,SAAiB;IAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;mDAEmD;AACnD,MAAM,UAAU,gBAAgB,CAAC,GAAc,EAAE,MAAc,EAAE,SAAiB;IAChF,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -2,6 +2,32 @@ export interface DaemonClientOptions {
|
|
|
2
2
|
baseUrl?: string;
|
|
3
3
|
fetchImpl?: typeof fetch;
|
|
4
4
|
}
|
|
5
|
+
/** One poll of a fleet-restore attempt (the daemon's GET status shape). The verdict is
|
|
6
|
+
* derived server-side from the rollup counts (never a stored field). */
|
|
7
|
+
export interface RestoreFleetStatus {
|
|
8
|
+
done: boolean;
|
|
9
|
+
cancelled: boolean;
|
|
10
|
+
verdict: string;
|
|
11
|
+
rollup: {
|
|
12
|
+
counts: {
|
|
13
|
+
fully_restored: number;
|
|
14
|
+
partially_restored: number;
|
|
15
|
+
failed: number;
|
|
16
|
+
not_attempted: number;
|
|
17
|
+
};
|
|
18
|
+
sequence: Array<{
|
|
19
|
+
rigId: string;
|
|
20
|
+
outcome: string;
|
|
21
|
+
reason?: string;
|
|
22
|
+
remediation?: string;
|
|
23
|
+
}>;
|
|
24
|
+
attention_required: Array<{
|
|
25
|
+
rigId: string;
|
|
26
|
+
seat: string;
|
|
27
|
+
need: string;
|
|
28
|
+
}>;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
5
31
|
export interface TerminalOpenResult {
|
|
6
32
|
provider: string;
|
|
7
33
|
ok: boolean;
|
|
@@ -29,6 +55,18 @@ export declare class DaemonClient {
|
|
|
29
55
|
constructor(options?: DaemonClientOptions);
|
|
30
56
|
private get;
|
|
31
57
|
private post;
|
|
58
|
+
/** Kick the async fleet restore; the daemon answers on-commit with a fleet-attempt handle. */
|
|
59
|
+
restoreFleet(): Promise<{
|
|
60
|
+
fleetAttemptId: string;
|
|
61
|
+
status: string;
|
|
62
|
+
}>;
|
|
63
|
+
/** Poll one fleet-attempt's progress + rollup + derived verdict. */
|
|
64
|
+
restoreFleetStatus(id: string): Promise<RestoreFleetStatus>;
|
|
65
|
+
/** Request stop-before-next-rig cancel on a running fleet attempt. */
|
|
66
|
+
cancelRestoreFleet(id: string): Promise<{
|
|
67
|
+
ok: boolean;
|
|
68
|
+
cancelled: boolean;
|
|
69
|
+
}>;
|
|
32
70
|
rigGraph(rigId: string): Promise<unknown>;
|
|
33
71
|
ps(): Promise<unknown>;
|
|
34
72
|
rigsSummary(): Promise<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-client.d.ts","sourceRoot":"","sources":["../src/daemon-client.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAIhF;AAED,qBAAa,YAAY;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAE7B,OAAO,GAAE,mBAAwB;YAK/B,GAAG;YAMH,IAAI;
|
|
1
|
+
{"version":3,"file":"daemon-client.d.ts","sourceRoot":"","sources":["../src/daemon-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,21 @@ export class DaemonClient {
|
|
|
29
29
|
}
|
|
30
30
|
return parsed;
|
|
31
31
|
}
|
|
32
|
+
// --- Crash-cart fleet restore (B1 conductor — the TUI OWNS the kick/poll/cancel
|
|
33
|
+
// lifecycle so it can retain the attempt id, render progress from the poll stream,
|
|
34
|
+
// and reach the cancel endpoint; it no longer delegates blind to a buffered child) ---
|
|
35
|
+
/** Kick the async fleet restore; the daemon answers on-commit with a fleet-attempt handle. */
|
|
36
|
+
restoreFleet() {
|
|
37
|
+
return this.post("/api/crash-cart/restore-fleet", {});
|
|
38
|
+
}
|
|
39
|
+
/** Poll one fleet-attempt's progress + rollup + derived verdict. */
|
|
40
|
+
restoreFleetStatus(id) {
|
|
41
|
+
return this.get(`/api/crash-cart/restore-fleet/${encodeURIComponent(id)}`);
|
|
42
|
+
}
|
|
43
|
+
/** Request stop-before-next-rig cancel on a running fleet attempt. */
|
|
44
|
+
cancelRestoreFleet(id) {
|
|
45
|
+
return this.post(`/api/crash-cart/restore-fleet/${encodeURIComponent(id)}/cancel`, {});
|
|
46
|
+
}
|
|
32
47
|
// --- Topology (§4.A rows 1–3) ---
|
|
33
48
|
rigGraph(rigId) {
|
|
34
49
|
return this.get(`/api/rigs/${encodeURIComponent(rigId)}/graph`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-client.js","sourceRoot":"","sources":["../src/daemon-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"daemon-client.js","sourceRoot":"","sources":["../src/daemon-client.ts"],"names":[],"mappings":"AAyCA,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAwB;IACtE,OAAO,MAAM,CAAC,IAAI,KAAK,iBAAiB;QACtC,CAAC,CAAC,0BAA0B,KAAK,EAAE;QACnC,CAAC,CAAC,wBAAwB,KAAK,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,OAAO,YAAY;IACd,OAAO,CAAS;IACR,SAAS,CAAe;IAEzC,YAAY,UAA+B,EAAE;QAC3C,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7G,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,GAAG,CAAC,KAAa;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,IAAa;QAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,MAAO,MAA6B,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7H,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iFAAiF;IACjF,uFAAuF;IACvF,2FAA2F;IAC3F,8FAA8F;IAC9F,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAwD,CAAC;IAC/G,CAAC;IACD,oEAAoE;IACpE,kBAAkB,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,iCAAiC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAgC,CAAC;IAC5G,CAAC;IACD,sEAAsE;IACtE,kBAAkB,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,iCAAiC,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAGnF,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,QAAQ,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IACD,EAAE;QACA,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,QAAQ,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IACD,YAAY,CAAC,QAAyB,KAAK;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,6BAA6B;IAC7B,YAAY,CAAC,IAAa;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,CAAC,KAAa;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACtE,CAAC;IACD;6EACyE;IACzE,iBAAiB,CAAC,EAAU;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;IAED,iFAAiF;IACjF,iEAAiE;IACjE,cAAc;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD;;;gEAG4D;IAC5D,YAAY;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD;;;4DAGwD;IACxD,eAAe;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD;;;;4DAIwD;IACxD,YAAY,CAAC,KAAK,GAAG,EAAE;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IACD;;;;wFAIoF;IACpF,qBAAqB,CAAC,KAAK,GAAG,EAAE;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,+CAA+C,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD;;;yDAGqD;IACrD,SAAS,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;IAED,sEAAsE;IACtE,kFAAkF;IAClF,UAAU,CAAC,KAAK,GAAG,GAAG,EAAE,YAAqB;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,0BAA0B,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,iBAAiB,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/H,CAAC;IACD,kFAAkF;IAClF,YAAY,CAAC,KAAK,GAAG,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,0BAA0B,KAAK,mBAAmB,CAAC,CAAC;IACtE,CAAC;IAED,+EAA+E;IAC/E,0EAA0E;IAC1E,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAuB,CAAC;QACvF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,yCAAyC;IACzC,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,SAAiB;QAC/C,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,kBAAkB,CAAC,KAAK,CAAC,UAAU,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC,CAAqB,CAAC;IAC3I,CAAC;CACF"}
|