@openrig/cli 0.5.2 → 0.5.4
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/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/README.md +1 -1
- 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 +152 -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 +26 -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 +31 -9
- 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/tmux.d.ts +41 -2
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +58 -18
- 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/daemon-db-path.d.ts.map +1 -1
- package/daemon/dist/daemon-db-path.js +50 -2
- package/daemon/dist/daemon-db-path.js.map +1 -1
- package/daemon/dist/domain/codex-thread-id.d.ts +95 -0
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +171 -2
- 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/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 +8 -2
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
- 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/plugin-discovery-service.d.ts +16 -0
- package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-discovery-service.js +175 -1
- package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +101 -12
- package/daemon/dist/domain/plugin-vendor-service.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/queue-repository.d.ts +3 -1
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +50 -2
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/reconciler.js +6 -1
- package/daemon/dist/domain/reconciler.js.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +64 -29
- 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/rig-repository.d.ts +4 -0
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +9 -0
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +13 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +71 -0
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +19 -3
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/running-name-guard.d.ts +52 -0
- package/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
- package/daemon/dist/domain/running-name-guard.js +34 -0
- package/daemon/dist/domain/running-name-guard.js.map +1 -0
- 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/plan-lock-artifacts.d.ts +1 -1
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
- package/daemon/dist/domain/scope/plan-lock-artifacts.js +2 -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/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 +22 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +32 -2
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +97 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
- package/daemon/dist/domain/seat-lifecycle-service.js +312 -0
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
- package/daemon/dist/domain/session-transport.d.ts +16 -5
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +155 -16
- 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 +10 -1
- package/daemon/dist/domain/slices/slice-detail-projector.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/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 +39 -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 +39 -0
- package/daemon/dist/domain/user-settings/settings-store.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/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +29 -24
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rigspec.js +20 -6
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +69 -0
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.js +55 -0
- 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 +52 -39
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/routes/up.js +21 -2
- package/daemon/dist/routes/up.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/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +37 -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/cli-error.js +1 -1
- package/dist/cli-error.js.map +1 -1
- package/dist/commands/broadcast.js +6 -0
- package/dist/commands/broadcast.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 +363 -48
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +23 -2
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +10 -0
- package/dist/commands/import.js.map +1 -1
- 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/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +36 -13
- package/dist/commands/queue.js.map +1 -1
- 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/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +88 -0
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +224 -20
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/transcript.d.ts.map +1 -1
- package/dist/commands/transcript.js +25 -1
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +8 -0
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/walk.d.ts +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +293 -30
- package/dist/commands/walk.js.map +1 -1
- package/dist/config-store.d.ts +15 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +35 -1
- package/dist/config-store.js.map +1 -1
- 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/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/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/tmux.d.ts +41 -2
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js +58 -18
- 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/daemon-db-path.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/daemon-db-path.js +50 -2
- package/node_modules/@openrig/daemon/dist/daemon-db-path.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +95 -0
- 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 +171 -2
- 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/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 +8 -2
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
- 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/plugin-discovery-service.d.ts +16 -0
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js +175 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js +101 -12
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.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/queue-repository.d.ts +3 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +50 -2
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.js +6 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
- 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 +64 -29
- 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/rig-repository.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +9 -0
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +13 -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 +71 -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.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +19 -3
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts +52 -0
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js +34 -0
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js.map +1 -0
- 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/plan-lock-artifacts.d.ts +1 -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 +2 -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/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 +22 -0
- 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 +32 -2
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts +97 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +312 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +16 -5
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-transport.js +155 -16
- 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 +10 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.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/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 +39 -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 +39 -0
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.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/queue.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/queue.js +29 -24
- package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/rigspec.js +20 -6
- package/node_modules/@openrig/daemon/dist/routes/rigspec.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 +69 -0
- package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/sessions.js +55 -0
- 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 +52 -39
- package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/up.js +21 -2
- package/node_modules/@openrig/daemon/dist/routes/up.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/startup.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.js +37 -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
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ContextPackManifest } from "./context-pack-types.js";
|
|
2
|
+
/** A plain eval-case object in the harness's declarative format. The harness's
|
|
3
|
+
* validateEvalCase is the authority on this shape; the bridge emits data. */
|
|
4
|
+
export type CompiledEvalCaseData = Record<string, unknown>;
|
|
5
|
+
/**
|
|
6
|
+
* Compile every probed atom of a manifest into behavior-category eval-case
|
|
7
|
+
* data. Atoms without probes are skipped (a probe is acceptance evidence,
|
|
8
|
+
* not an obligation). Case ids are namespaced by the pack ref so cases from
|
|
9
|
+
* multiple packs never collide in one harness run.
|
|
10
|
+
*
|
|
11
|
+
* The mapping, field by field:
|
|
12
|
+
* id <- <packRef>/<atomId>
|
|
13
|
+
* name <- the probe's expect (the observable-behavior contract
|
|
14
|
+
* IS the case's human name — what a grader reads first)
|
|
15
|
+
* category <- "behavior"
|
|
16
|
+
* prompt <- probe.prompt (the natural prompt, mini-req 2)
|
|
17
|
+
* expectedPatterns <- probe.expectedPatterns (the deterministic door leg;
|
|
18
|
+
* validated compilable at manifest ingest)
|
|
19
|
+
* rubric <- probe.rubric, else the expect prose (the judged leg
|
|
20
|
+
* always has at least the behavior contract to judge by)
|
|
21
|
+
*/
|
|
22
|
+
export interface CompiledProbeCases {
|
|
23
|
+
cases: CompiledEvalCaseData[];
|
|
24
|
+
/** Probes that could not become harness cases, WITH reasons — a bound the
|
|
25
|
+
* caller must surface (no silent caps): a probe without expectedPatterns
|
|
26
|
+
* has no deterministic-door leg, and the bridge refuses both to fabricate
|
|
27
|
+
* a pattern from prose and to lose the atom silently. */
|
|
28
|
+
skipped: Array<{
|
|
29
|
+
atomId: string;
|
|
30
|
+
reason: string;
|
|
31
|
+
}>;
|
|
32
|
+
}
|
|
33
|
+
export declare function compileAtomProbesToEvalCases(manifest: ContextPackManifest, packRef: string): CompiledProbeCases;
|
|
34
|
+
//# sourceMappingURL=probe-eval-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-eval-bridge.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/probe-eval-bridge.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;8EAC8E;AAC9E,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B;;;8DAG0D;IAC1D,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAsB/G"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// OPR.0.5.3.5 Q3 harness bridge (mini-req 8, amended per desk ruling 9103302d):
|
|
2
|
+
// slice-05's behavior probes execute in the SAME live-model eval harness as
|
|
3
|
+
// slice-07's selection/loading cases, as the "behavior" case CATEGORY — one
|
|
4
|
+
// harness, one runner, one grading door; two runners would fork the eval
|
|
5
|
+
// convention itself (the drift class this release keeps killing).
|
|
6
|
+
//
|
|
7
|
+
// This bridge is DATA-SHAPED on purpose: it compiles atom probes (mini-req 1
|
|
8
|
+
// metadata) into plain eval-case objects that the harness validates through
|
|
9
|
+
// ITS OWN schema at load time — exactly how the authored YAML cases travel.
|
|
10
|
+
// No import from the harness's modules, so the product side and the
|
|
11
|
+
// test-system side stay decoupled by data (the schema's own stated design:
|
|
12
|
+
// "no cross-package TS import"), and the one-harness property is preserved
|
|
13
|
+
// by construction rather than by discipline.
|
|
14
|
+
export function compileAtomProbesToEvalCases(manifest, packRef) {
|
|
15
|
+
const cases = [];
|
|
16
|
+
const skipped = [];
|
|
17
|
+
for (const atom of manifest.atoms ?? []) {
|
|
18
|
+
if (!atom.probe)
|
|
19
|
+
continue;
|
|
20
|
+
if (!atom.probe.expectedPatterns || atom.probe.expectedPatterns.length === 0) {
|
|
21
|
+
skipped.push({
|
|
22
|
+
atomId: atom.id,
|
|
23
|
+
reason: "probe has no expectedPatterns — the harness's deterministic door requires at least one compilable pattern; author them on the atom's probe",
|
|
24
|
+
});
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
cases.push({
|
|
28
|
+
id: `${packRef}/${atom.id}`,
|
|
29
|
+
name: atom.probe.expect,
|
|
30
|
+
category: "behavior",
|
|
31
|
+
prompt: atom.probe.prompt,
|
|
32
|
+
expectedPatterns: atom.probe.expectedPatterns,
|
|
33
|
+
rubric: atom.probe.rubric ?? atom.probe.expect,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return { cases, skipped };
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=probe-eval-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-eval-bridge.js","sourceRoot":"","sources":["../../../src/domain/context-packs/probe-eval-bridge.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,kEAAkE;AAClE,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,oEAAoE;AACpE,2EAA2E;AAC3E,2EAA2E;AAC3E,6CAA6C;AAkC7C,MAAM,UAAU,4BAA4B,CAAC,QAA6B,EAAE,OAAe;IACzF,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,SAAS;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7E,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,4IAA4I;aACrJ,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,GAAG,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE;YAC3B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACvB,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAC7C,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;SAC/C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { ContextPackAtom } from "./context-pack-types.js";
|
|
2
|
+
export declare class ProfileComposeError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export type ComposeSituation = "fresh" | "handover" | "post-compaction";
|
|
6
|
+
export type ComposeRuntime = "claude" | "codex";
|
|
7
|
+
export type SourceKind = "library" | "seat" | "mission";
|
|
8
|
+
export interface ComposeInput {
|
|
9
|
+
/** The one atom graph (possibly gathered across sources by the caller). */
|
|
10
|
+
atoms: ContextPackAtom[];
|
|
11
|
+
situation: ComposeSituation;
|
|
12
|
+
runtime: ComposeRuntime;
|
|
13
|
+
/** Fail-loud file reader keyed by the address's pre-`#` ref. */
|
|
14
|
+
readFile: (ref: string) => string;
|
|
15
|
+
/** The situation's token budget (D2 targets); omitted = no budget check. */
|
|
16
|
+
budgetTokens?: number;
|
|
17
|
+
/** Source labelling per atom (Q2-Amendment 1); defaults to "library". */
|
|
18
|
+
sourceKindFor?: (atom: ContextPackAtom) => SourceKind;
|
|
19
|
+
}
|
|
20
|
+
export interface ComposedPiece {
|
|
21
|
+
atomId: string;
|
|
22
|
+
address: string;
|
|
23
|
+
sourceKind: SourceKind;
|
|
24
|
+
order: number;
|
|
25
|
+
priority: ContextPackAtom["priority"];
|
|
26
|
+
/** The resolved bytes: the addressed span (Q1 full-span rule) or the whole file. */
|
|
27
|
+
text: string;
|
|
28
|
+
estimatedTokens: number;
|
|
29
|
+
}
|
|
30
|
+
export interface ComposedProfile {
|
|
31
|
+
situation: ComposeSituation;
|
|
32
|
+
runtime: ComposeRuntime;
|
|
33
|
+
pieces: ComposedPiece[];
|
|
34
|
+
totalEstimatedTokens: number;
|
|
35
|
+
/** Present ONLY when the budget binds: the report, never a truncation. */
|
|
36
|
+
budget?: {
|
|
37
|
+
limitTokens: number;
|
|
38
|
+
overageTokens: number;
|
|
39
|
+
/** What to drop FIRST, in drop order: optional, then recommended, then core;
|
|
40
|
+
* larger pieces first within a tier (the biggest cheap win leads). */
|
|
41
|
+
dropCandidates: Array<{
|
|
42
|
+
atomId: string;
|
|
43
|
+
priority: ContextPackAtom["priority"];
|
|
44
|
+
estimatedTokens: number;
|
|
45
|
+
}>;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export declare function composeProfile(input: ComposeInput): ComposedProfile;
|
|
49
|
+
//# sourceMappingURL=profile-composer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-composer.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/profile-composer.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,iBAAiB,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,gEAAgE;IAChE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,UAAU,CAAC;CACvD;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IACtC,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,MAAM,CAAC,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB;+EACuE;QACvE,cAAc,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC3G,CAAC;CACH;AAgBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,CAsFnE"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// OPR.0.5.3.5 Atom 3 — the composition algebra (locked SPEC, founder refinement):
|
|
2
|
+
//
|
|
3
|
+
// FRESH = the base walk (atoms tagged fresh)
|
|
4
|
+
// HANDOVER = FRESH + the handover material (atoms tagged handover)
|
|
5
|
+
// POST-COMPACTION = the tagged subset of fresh + the handover material
|
|
6
|
+
//
|
|
7
|
+
// Every profile is CLOSED over requires (a subset profile must close — intake rule);
|
|
8
|
+
// the runtime filter runs per mini-req 3 (claude and codex are never assumed to have
|
|
9
|
+
// lost the same dimensions, so they compose different profiles from the SAME graph);
|
|
10
|
+
// each piece resolves through the Atom-1 address machinery and carries a per-piece
|
|
11
|
+
// SOURCE LABEL (Q2-Amendment 1: composition is multi-source by contract — library /
|
|
12
|
+
// seat tree / mission tree — and every assembled piece names its source; the caller's
|
|
13
|
+
// resolver decides the kind, this module labels). Budgets are evaluated AT COMPOSE
|
|
14
|
+
// and on overage REPORT the amount and the priority-ordered drop candidates —
|
|
15
|
+
// composition never silently truncates (mini-req 9; D2: budgets flag for review,
|
|
16
|
+
// never silently govern).
|
|
17
|
+
//
|
|
18
|
+
// PURE by contract, like the manifest parser: file text arrives through the caller's
|
|
19
|
+
// readFile so the same algebra serves library packs today and configured tree roots
|
|
20
|
+
// (seat/mission sources) when the wiring atom lands. Every failure is LOUD and names
|
|
21
|
+
// the atom — a compose stops rather than thinning the walk (the Q1 rationale).
|
|
22
|
+
import { estimateTokensFromBytes } from "./token-estimate.js";
|
|
23
|
+
import { AddressResolutionError, parseAddress, resolveAddress } from "../markdown-address.js";
|
|
24
|
+
export class ProfileComposeError extends Error {
|
|
25
|
+
constructor(message) {
|
|
26
|
+
super(message);
|
|
27
|
+
this.name = "ProfileComposeError";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Which situation tags select atoms for a profile, per the locked algebra. */
|
|
31
|
+
function selectionTags(situation) {
|
|
32
|
+
switch (situation) {
|
|
33
|
+
case "fresh":
|
|
34
|
+
return ["fresh"];
|
|
35
|
+
case "handover":
|
|
36
|
+
return ["fresh", "handover"];
|
|
37
|
+
case "post-compaction":
|
|
38
|
+
return ["post-compaction", "handover"];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const DROP_ORDER = { optional: 0, recommended: 1, core: 2 };
|
|
42
|
+
export function composeProfile(input) {
|
|
43
|
+
const { atoms, situation, runtime, readFile, budgetTokens, sourceKindFor } = input;
|
|
44
|
+
const byId = new Map(atoms.map((a) => [a.id, a]));
|
|
45
|
+
// 1. SELECT by situation tag, then filter by runtime (an "any" atom serves both).
|
|
46
|
+
const tags = selectionTags(situation);
|
|
47
|
+
const runtimeFits = (a) => a.runtime === "any" || a.runtime === runtime;
|
|
48
|
+
const selected = new Map();
|
|
49
|
+
for (const a of atoms) {
|
|
50
|
+
if (a.situations.some((s) => tags.includes(s)) && runtimeFits(a))
|
|
51
|
+
selected.set(a.id, a);
|
|
52
|
+
}
|
|
53
|
+
// 2. CLOSE over requires: a required atom joins the profile even when untagged.
|
|
54
|
+
// A dependency that exists but is excluded by the RUNTIME filter is a broken
|
|
55
|
+
// graph for this runtime — fail loud, never a quietly thinner walk.
|
|
56
|
+
const queue = [...selected.keys()];
|
|
57
|
+
while (queue.length > 0) {
|
|
58
|
+
const id = queue.pop();
|
|
59
|
+
for (const req of selected.get(id)?.requires ?? byId.get(id)?.requires ?? []) {
|
|
60
|
+
if (selected.has(req))
|
|
61
|
+
continue;
|
|
62
|
+
const dep = byId.get(req);
|
|
63
|
+
if (!dep) {
|
|
64
|
+
throw new ProfileComposeError(`atom '${id}' requires '${req}', which is not in the graph — the ${situation} profile cannot close.`);
|
|
65
|
+
}
|
|
66
|
+
if (!runtimeFits(dep)) {
|
|
67
|
+
throw new ProfileComposeError(`atom '${id}' requires '${req}', but '${req}' is declared runtime=${dep.runtime} and this compose targets runtime=${runtime} — ` +
|
|
68
|
+
`the closure would silently thin the ${situation} walk; fix the graph (retag '${req}' or drop the edge).`);
|
|
69
|
+
}
|
|
70
|
+
selected.set(req, dep);
|
|
71
|
+
queue.push(req);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// 3. ORDER the walk (stable: order, then id — absorption depends on sequence).
|
|
75
|
+
const walk = [...selected.values()].sort((x, y) => x.order - y.order || x.id.localeCompare(y.id));
|
|
76
|
+
// 4. RESOLVE every piece through the one address machinery; label its source.
|
|
77
|
+
const pieces = walk.map((a) => {
|
|
78
|
+
const { ref, headerPath } = parseAddress(a.address);
|
|
79
|
+
let fileText;
|
|
80
|
+
try {
|
|
81
|
+
fileText = readFile(ref);
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
throw new ProfileComposeError(`atom '${a.id}' (${a.address}): source file '${ref}' is unreadable — ${err.message}`);
|
|
85
|
+
}
|
|
86
|
+
let text;
|
|
87
|
+
if (headerPath.length === 0) {
|
|
88
|
+
text = fileText;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
try {
|
|
92
|
+
text = resolveAddress(fileText, headerPath).text;
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
if (err instanceof AddressResolutionError) {
|
|
96
|
+
throw new ProfileComposeError(`atom '${a.id}' (${a.address}): ${err.message}`);
|
|
97
|
+
}
|
|
98
|
+
throw err;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
atomId: a.id,
|
|
103
|
+
address: a.address,
|
|
104
|
+
sourceKind: sourceKindFor?.(a) ?? "library",
|
|
105
|
+
order: a.order,
|
|
106
|
+
priority: a.priority,
|
|
107
|
+
text,
|
|
108
|
+
estimatedTokens: estimateTokensFromBytes(Buffer.byteLength(text, "utf-8")),
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
const totalEstimatedTokens = pieces.reduce((sum, p) => sum + p.estimatedTokens, 0);
|
|
112
|
+
// 5. BUDGET report (mini-req 9): flag, never govern — all pieces stay.
|
|
113
|
+
let budget;
|
|
114
|
+
if (budgetTokens !== undefined && totalEstimatedTokens > budgetTokens) {
|
|
115
|
+
budget = {
|
|
116
|
+
limitTokens: budgetTokens,
|
|
117
|
+
overageTokens: totalEstimatedTokens - budgetTokens,
|
|
118
|
+
dropCandidates: [...pieces]
|
|
119
|
+
.sort((x, y) => DROP_ORDER[x.priority] - DROP_ORDER[y.priority] || y.estimatedTokens - x.estimatedTokens || x.atomId.localeCompare(y.atomId))
|
|
120
|
+
.map((p) => ({ atomId: p.atomId, priority: p.priority, estimatedTokens: p.estimatedTokens })),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
return { situation, runtime, pieces, totalEstimatedTokens, ...(budget !== undefined ? { budget } : {}) };
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=profile-composer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-composer.js","sourceRoot":"","sources":["../../../src/domain/context-packs/profile-composer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { SourceKind } from "./profile-composer.js";
|
|
2
|
+
export declare class SourceResolutionError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
declare const TREE_KINDS: readonly ["seat", "mission"];
|
|
6
|
+
export type TreeKind = (typeof TREE_KINDS)[number];
|
|
7
|
+
export interface ParsedSourceRef {
|
|
8
|
+
kind: SourceKind;
|
|
9
|
+
/** Relative path under the pack dir (library) or the kind's configured root. */
|
|
10
|
+
rel: string;
|
|
11
|
+
}
|
|
12
|
+
/** Split a pre-`#` ref into its resolver kind + relative path. Fail-loud on an
|
|
13
|
+
* unknown prefix or a traversal-shaped path — a clean refusal, never an escape
|
|
14
|
+
* (the r2-B3 precedent from the trace verb). */
|
|
15
|
+
export declare function parseSourceRef(ref: string): ParsedSourceRef;
|
|
16
|
+
export interface ProfileSourceRoots {
|
|
17
|
+
/** The seat's tree directory (recap + lore beside LEARNED) — from config. */
|
|
18
|
+
seat?: string;
|
|
19
|
+
/** The mission's tree directory — from config. */
|
|
20
|
+
mission?: string;
|
|
21
|
+
}
|
|
22
|
+
/** Byte-provenance record for one successful read (r1 rider 1 via 4a's review):
|
|
23
|
+
* the label must be CHECKABLE, not merely asserted — with a symlink in play a
|
|
24
|
+
* source label is accurate about the REF and wrong about the BYTES, and that
|
|
25
|
+
* bites on benign symlinks, not just hostile ones. */
|
|
26
|
+
export interface SourceReadRecord {
|
|
27
|
+
ref: string;
|
|
28
|
+
kind: SourceKind;
|
|
29
|
+
/** The root the read was granted against. */
|
|
30
|
+
base: string;
|
|
31
|
+
/** base + rel, before symlink resolution. */
|
|
32
|
+
nominalPath: string;
|
|
33
|
+
/** Where the BYTES actually came from (realpath after the successful read). */
|
|
34
|
+
realPath: string;
|
|
35
|
+
/** True when realPath sits outside base. Computed via path.relative — never a
|
|
36
|
+
* bare string prefix (r1: `startsWith` says /seat-evil is inside /seat). */
|
|
37
|
+
escapesRoot: boolean;
|
|
38
|
+
}
|
|
39
|
+
/** Build the composer's fail-loud readFile over the pack dir + configured tree
|
|
40
|
+
* roots. Every failure names the source kind and what was being resolved —
|
|
41
|
+
* a missing root is a MISSING CONFIG error, never a silent empty; a DANGLING
|
|
42
|
+
* symlink is its own named failure (a realistic corpus state, not a generic
|
|
43
|
+
* unreadable). Each successful read reports byte provenance via onRead. */
|
|
44
|
+
export declare function makeProfileReadFile(opts: {
|
|
45
|
+
packDir: string;
|
|
46
|
+
roots: ProfileSourceRoots;
|
|
47
|
+
onRead?: (record: SourceReadRecord) => void;
|
|
48
|
+
}): (ref: string) => string;
|
|
49
|
+
/** The composer's per-piece source label (Q2-Amendment 1: every assembled piece
|
|
50
|
+
* is labeled with its source), derived from the atom's full address. */
|
|
51
|
+
export declare function sourceKindForAddress(address: string): SourceKind;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=profile-source-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-source-resolver.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/profile-source-resolver.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,QAAA,MAAM,UAAU,8BAA+B,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;iDAEiD;AACjD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CA0B3D;AAED,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;uDAGuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,CAAC;IACjB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB;iFAC6E;IAC7E,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;4EAI4E;AAC5E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC7C,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CA8D1B;AAED;yEACyE;AACzE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAEhE"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// OPR.0.5.3.5 Atom 4a — the two pre-`#` resolvers behind ONE grammar.
|
|
2
|
+
//
|
|
3
|
+
// Q2-Amendment 1 (locked), the desk's grammar ruling verbatim: non-library sources
|
|
4
|
+
// are addressable with the SAME `#H2-slug/H3-slug` grammar; only the pre-`#`
|
|
5
|
+
// resolver differs — a library ref resolves through the library (here: the pack's
|
|
6
|
+
// own directory), a tree path resolves from CONFIGURED roots — and both resolve
|
|
7
|
+
// FAIL-LOUD. One grammar held in memory, two resolvers behind it, no second
|
|
8
|
+
// addressing convention. The kind prefix is the entire pre-`#` dialect:
|
|
9
|
+
//
|
|
10
|
+
// walk.md#welcome -> library (the pack's declared files)
|
|
11
|
+
// seat:RECAP.md#decisions -> the seat tree (recap + lore live beside LEARNED)
|
|
12
|
+
// mission:NOTES.md#watch-items -> the mission tree
|
|
13
|
+
//
|
|
14
|
+
// Roots arrive from CONFIG through the caller (CE-v2 03-tree-addressability: an
|
|
15
|
+
// addressing verb resolves tree paths from config, never literals — this module
|
|
16
|
+
// holds no path literal and refuses to guess a missing root). Composability comes
|
|
17
|
+
// from ADDRESSING, not homing: nothing must be copied into the library to compose
|
|
18
|
+
// (a profile that copies seat or mission content into the library is a defect —
|
|
19
|
+
// Q2-Amendment 1(c)).
|
|
20
|
+
import { lstatSync, readFileSync, realpathSync } from "node:fs";
|
|
21
|
+
import { isAbsolute, join, normalize, relative, sep } from "node:path";
|
|
22
|
+
import { parseAddress } from "../markdown-address.js";
|
|
23
|
+
export class SourceResolutionError extends Error {
|
|
24
|
+
constructor(message) {
|
|
25
|
+
super(message);
|
|
26
|
+
this.name = "SourceResolutionError";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const TREE_KINDS = ["seat", "mission"];
|
|
30
|
+
/** Split a pre-`#` ref into its resolver kind + relative path. Fail-loud on an
|
|
31
|
+
* unknown prefix or a traversal-shaped path — a clean refusal, never an escape
|
|
32
|
+
* (the r2-B3 precedent from the trace verb). */
|
|
33
|
+
export function parseSourceRef(ref) {
|
|
34
|
+
const colon = ref.indexOf(":");
|
|
35
|
+
let kind = "library";
|
|
36
|
+
let rel = ref;
|
|
37
|
+
if (colon >= 0) {
|
|
38
|
+
const prefix = ref.slice(0, colon);
|
|
39
|
+
if (!TREE_KINDS.includes(prefix)) {
|
|
40
|
+
throw new SourceResolutionError(`source ref '${ref}' has unknown kind prefix '${prefix}' — the pre-'#' dialect is bare (library), ${TREE_KINDS.map((k) => `'${k}:'`).join(" or ")}.`);
|
|
41
|
+
}
|
|
42
|
+
kind = prefix;
|
|
43
|
+
rel = ref.slice(colon + 1);
|
|
44
|
+
}
|
|
45
|
+
if (rel.length === 0) {
|
|
46
|
+
throw new SourceResolutionError(`source ref '${ref}' has an empty path after its kind prefix.`);
|
|
47
|
+
}
|
|
48
|
+
const unsafe = isAbsolute(rel) ||
|
|
49
|
+
rel.split(/[\\/]/).some((segment) => segment === ".." || segment === "");
|
|
50
|
+
if (unsafe) {
|
|
51
|
+
throw new SourceResolutionError(`source ref '${ref}' is traversal-shaped (absolute path, '..' or empty segment) — refs stay inside their source root.`);
|
|
52
|
+
}
|
|
53
|
+
return { kind, rel };
|
|
54
|
+
}
|
|
55
|
+
/** Build the composer's fail-loud readFile over the pack dir + configured tree
|
|
56
|
+
* roots. Every failure names the source kind and what was being resolved —
|
|
57
|
+
* a missing root is a MISSING CONFIG error, never a silent empty; a DANGLING
|
|
58
|
+
* symlink is its own named failure (a realistic corpus state, not a generic
|
|
59
|
+
* unreadable). Each successful read reports byte provenance via onRead. */
|
|
60
|
+
export function makeProfileReadFile(opts) {
|
|
61
|
+
return (ref) => {
|
|
62
|
+
const { kind, rel } = parseSourceRef(ref);
|
|
63
|
+
let base;
|
|
64
|
+
if (kind === "library") {
|
|
65
|
+
base = opts.packDir;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
const configured = opts.roots[kind];
|
|
69
|
+
if (!configured) {
|
|
70
|
+
throw new SourceResolutionError(`source ref '${ref}' needs the ${kind} tree root, which is not configured for this compose — ` +
|
|
71
|
+
`tree paths resolve from config, never literals; supply the ${kind} root or drop the ${kind}-homed atom.`);
|
|
72
|
+
}
|
|
73
|
+
base = configured;
|
|
74
|
+
}
|
|
75
|
+
const abs = normalize(join(base, rel));
|
|
76
|
+
let text;
|
|
77
|
+
try {
|
|
78
|
+
text = readFileSync(abs, "utf-8");
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
// Name the dangling-symlink state precisely: the path EXISTS as a link
|
|
82
|
+
// but its target does not — a generic "unreadable" would send an author
|
|
83
|
+
// hunting for a file that is right there in their listing.
|
|
84
|
+
let dangling = false;
|
|
85
|
+
try {
|
|
86
|
+
lstatSync(abs);
|
|
87
|
+
dangling = true;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
/* genuinely absent */
|
|
91
|
+
}
|
|
92
|
+
throw new SourceResolutionError(dangling
|
|
93
|
+
? `source ref '${ref}' (${kind}) is a DANGLING symlink: ${abs} exists but its target does not — ${err.message}`
|
|
94
|
+
: `source ref '${ref}' (${kind}) did not resolve: ${abs} is unreadable — ${err.message}`);
|
|
95
|
+
}
|
|
96
|
+
// Provenance AFTER the successful read (r1: realpath on a missing file
|
|
97
|
+
// throws, and that throw must never garble the honest read error above).
|
|
98
|
+
if (opts.onRead) {
|
|
99
|
+
let realPath = abs;
|
|
100
|
+
try {
|
|
101
|
+
realPath = realpathSync(abs);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
/* raced away post-read; nominal stands as the best truth available */
|
|
105
|
+
}
|
|
106
|
+
let realBase = base;
|
|
107
|
+
try {
|
|
108
|
+
realBase = realpathSync(base);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
/* root itself unresolvable; compare against the nominal base */
|
|
112
|
+
}
|
|
113
|
+
const relFromBase = relative(realBase, realPath);
|
|
114
|
+
// SEGMENT comparison, never a prefix test on a path-shaped string (r1
|
|
115
|
+
// round-3 F1: a file legitimately NAMED '..hidden-notes.md' inside the
|
|
116
|
+
// root satisfied startsWith('..') — the identical class as
|
|
117
|
+
// startsWith(base) saying /seat-evil is inside /seat, one level in).
|
|
118
|
+
const escapesRoot = relFromBase === ".." || relFromBase.startsWith(`..${sep}`) || isAbsolute(relFromBase);
|
|
119
|
+
opts.onRead({ ref, kind, base, nominalPath: abs, realPath, escapesRoot });
|
|
120
|
+
}
|
|
121
|
+
return text;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/** The composer's per-piece source label (Q2-Amendment 1: every assembled piece
|
|
125
|
+
* is labeled with its source), derived from the atom's full address. */
|
|
126
|
+
export function sourceKindForAddress(address) {
|
|
127
|
+
return parseSourceRef(parseAddress(address).ref).kind;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=profile-source-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-source-resolver.js","sourceRoot":"","sources":["../../../src/domain/context-packs/profile-source-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export declare const RECAP_FILENAME = "RECAP.md";
|
|
2
|
+
export declare class RecapWriteError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export interface RecapChainEntry {
|
|
6
|
+
/** Absolute path of the superseded recap. */
|
|
7
|
+
path: string;
|
|
8
|
+
/** The supersession timestamp encoded in the filename (ms epoch). */
|
|
9
|
+
supersededAtMs: number;
|
|
10
|
+
/** Same-millisecond disambiguator (1 for the bare name, 2+ for -N suffixes). */
|
|
11
|
+
sequence: number;
|
|
12
|
+
}
|
|
13
|
+
/** Write the seat's current recap, superseding any existing one into the
|
|
14
|
+
* chain. The gate is ADDRESSABILITY only — never prose shape. */
|
|
15
|
+
export declare function writeSeatRecap(opts: {
|
|
16
|
+
seatDir: string;
|
|
17
|
+
content: string;
|
|
18
|
+
now?: () => number;
|
|
19
|
+
}): void;
|
|
20
|
+
/** The superseded chain, oldest first. Empty when no recap was ever superseded. */
|
|
21
|
+
export declare function listRecapChain(seatDir: string): RecapChainEntry[];
|
|
22
|
+
export type RecapContractFinding = {
|
|
23
|
+
kind: "no-decisions-section";
|
|
24
|
+
} | {
|
|
25
|
+
kind: "nonstandard-unverified-marker";
|
|
26
|
+
line: number;
|
|
27
|
+
};
|
|
28
|
+
/** The authoring contract's CHECKABLE subset (Q2): decisions-with-rationale has
|
|
29
|
+
* a structural proxy (a decisions-titled section exists); the UNVERIFIED
|
|
30
|
+
* marker has a canonical grammar (`UNVERIFIED:` uppercase) that must stay
|
|
31
|
+
* findable — a variant marker hides exactly the fact it exists to flag.
|
|
32
|
+
* Advisory: findings, never throws. */
|
|
33
|
+
export declare function validateRecapContract(content: string): RecapContractFinding[];
|
|
34
|
+
/** BUILD FOLLOW-UP (r1 verdict bb00e850; row 17015088) — the authored-recap
|
|
35
|
+
* pointer resolution, ONE-HOMED here beside the store it reads, parsing the
|
|
36
|
+
* seat ref through the CANONICAL parseSessionName (first-@ split, the
|
|
37
|
+
* documented greedy-rig ruling) — never a second parser. Safety floor
|
|
38
|
+
* preserved: an unresolved or non-canonical ref fails with a LABELED reason
|
|
39
|
+
* carrying what was tried; fuzzy-matching another seat's directory would hand
|
|
40
|
+
* a successor a DIFFERENT occupant's decisions, which is strictly worse than
|
|
41
|
+
* honest absence. */
|
|
42
|
+
export declare function resolveAuthoredRecapPointer(seatRef: string, topologyRoot: string): {
|
|
43
|
+
address: string;
|
|
44
|
+
chainLength: number;
|
|
45
|
+
} | {
|
|
46
|
+
absentReason: string;
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=seat-recap-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seat-recap-store.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/seat-recap-store.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,cAAc,aAAa,CAAC;AAGzC,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;kEACkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAE,GAAG,IAAI,CA4BnG;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAiBjE;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,+BAA+B,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D;;;;wCAIwC;AACxC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAa7E;AAED;;;;;;;sBAOsB;AACtB,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAUrE"}
|