@openrig/cli 0.4.3 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/daemon/assets/guidance/openrig-start.md +6 -0
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +47 -21
- package/daemon/assets/plugins/openrig-core/skills/openrig-cmux/SKILL.md +86 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-herdr/SKILL.md +158 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +742 -94
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +12 -8
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts +32 -0
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-resume.js +125 -0
- package/daemon/dist/adapters/pi-resume.js.map +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.d.ts +88 -0
- package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.js +153 -0
- package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -0
- package/daemon/dist/adapters/pi-runner.d.ts +99 -0
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runner.js +519 -0
- package/daemon/dist/adapters/pi-runner.js.map +1 -0
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts +61 -0
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runtime-adapter.js +356 -0
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -0
- package/daemon/dist/adapters/tmux.d.ts +22 -1
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +40 -1
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.d.ts +12 -0
- package/daemon/dist/build-info.d.ts.map +1 -0
- package/daemon/dist/build-info.js +11 -0
- package/daemon/dist/build-info.js.map +1 -0
- package/daemon/dist/builtins/workflow-specs/branched-remediation.yaml +31 -0
- package/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +152 -0
- package/daemon/dist/builtins/workflow-specs/gated-release.yaml +26 -0
- package/daemon/dist/builtins/workflow-specs/linear-build.yaml +21 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.d.ts +18 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.d.ts.map +1 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.js +22 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.js.map +1 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts +20 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts.map +1 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.js +24 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.js.map +1 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts +22 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts.map +1 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.js +26 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.js.map +1 -0
- package/daemon/dist/db/migrations/051_workflow_resume.d.ts +22 -0
- package/daemon/dist/db/migrations/051_workflow_resume.d.ts.map +1 -0
- package/daemon/dist/db/migrations/051_workflow_resume.js +27 -0
- package/daemon/dist/db/migrations/051_workflow_resume.js.map +1 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts +26 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts.map +1 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js +30 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js.map +1 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts +48 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts.map +1 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.js +53 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.js.map +1 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts +34 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts.map +1 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.js +49 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.js.map +1 -0
- package/daemon/dist/domain/claim-service.d.ts +11 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +3 -1
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/discovery-types.d.ts +1 -1
- package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
- package/daemon/dist/domain/feed/attention-aggregator.d.ts +31 -0
- package/daemon/dist/domain/feed/attention-aggregator.d.ts.map +1 -0
- package/daemon/dist/domain/feed/attention-aggregator.js +119 -0
- package/daemon/dist/domain/feed/attention-aggregator.js.map +1 -0
- package/daemon/dist/domain/files/file-write-service.d.ts +11 -2
- package/daemon/dist/domain/files/file-write-service.d.ts.map +1 -1
- package/daemon/dist/domain/files/file-write-service.js +77 -0
- package/daemon/dist/domain/files/file-write-service.js.map +1 -1
- package/daemon/dist/domain/hosts/fanout-contract.d.ts +33 -0
- package/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/fanout-contract.js +23 -0
- package/daemon/dist/domain/hosts/fanout-contract.js.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +50 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.js +184 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts +11 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.js +54 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.js.map +1 -0
- package/daemon/dist/domain/hosts/read-through.d.ts +28 -0
- package/daemon/dist/domain/hosts/read-through.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/read-through.js +139 -0
- package/daemon/dist/domain/hosts/read-through.js.map +1 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +56 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.js +154 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -0
- package/daemon/dist/domain/human-route-enforcer.d.ts +71 -0
- package/daemon/dist/domain/human-route-enforcer.d.ts.map +1 -0
- package/daemon/dist/domain/human-route-enforcer.js +80 -0
- package/daemon/dist/domain/human-route-enforcer.js.map +1 -0
- package/daemon/dist/domain/mission-control/audit-browse.d.ts +8 -0
- package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.js +19 -0
- package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.js +4 -0
- package/daemon/dist/domain/mission-control/mission-control-action-log.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +28 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js +125 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +18 -0
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +206 -95
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +11 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +10 -0
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts +7 -0
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.js +93 -13
- package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +28 -1
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +76 -26
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +130 -1
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +304 -11
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-retention.d.ts +130 -0
- package/daemon/dist/domain/queue-retention.d.ts.map +1 -0
- package/daemon/dist/domain/queue-retention.js +224 -0
- package/daemon/dist/domain/queue-retention.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +5 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +29 -2
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/resume-token-capture.d.ts +13 -0
- package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-capture.js +14 -1
- package/daemon/dist/domain/resume-token-capture.js.map +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-validation.js +58 -10
- package/daemon/dist/domain/resume-token-validation.js.map +1 -1
- package/daemon/dist/domain/review/brief-spine.d.ts +19 -0
- package/daemon/dist/domain/review/brief-spine.d.ts.map +1 -0
- package/daemon/dist/domain/review/brief-spine.js +86 -0
- package/daemon/dist/domain/review/brief-spine.js.map +1 -0
- package/daemon/dist/domain/review/compose.d.ts +277 -0
- package/daemon/dist/domain/review/compose.d.ts.map +1 -0
- package/daemon/dist/domain/review/compose.js +862 -0
- package/daemon/dist/domain/review/compose.js.map +1 -0
- package/daemon/dist/domain/review/fleet-compose.d.ts +52 -0
- package/daemon/dist/domain/review/fleet-compose.d.ts.map +1 -0
- package/daemon/dist/domain/review/fleet-compose.js +294 -0
- package/daemon/dist/domain/review/fleet-compose.js.map +1 -0
- package/daemon/dist/domain/review/freeze.d.ts +31 -0
- package/daemon/dist/domain/review/freeze.d.ts.map +1 -0
- package/daemon/dist/domain/review/freeze.js +257 -0
- package/daemon/dist/domain/review/freeze.js.map +1 -0
- package/daemon/dist/domain/review/gather.d.ts +115 -0
- package/daemon/dist/domain/review/gather.d.ts.map +1 -0
- package/daemon/dist/domain/review/gather.js +812 -0
- package/daemon/dist/domain/review/gather.js.map +1 -0
- package/daemon/dist/domain/review/types.d.ts +361 -0
- package/daemon/dist/domain/review/types.d.ts.map +1 -0
- package/daemon/dist/domain/review/types.js +35 -0
- package/daemon/dist/domain/review/types.js.map +1 -0
- package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.js +3 -0
- package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +7 -6
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +33 -11
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +3 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +4 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +11 -0
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +6 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +26 -1
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +20 -1
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-verifier.d.ts +7 -1
- package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-verifier.js +39 -1
- package/daemon/dist/domain/runtime-verifier.js.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.d.ts +64 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -0
- package/daemon/dist/domain/scope/scope-approve.js +153 -0
- package/daemon/dist/domain/scope/scope-approve.js.map +1 -0
- package/daemon/dist/domain/scope/scope-audit.d.ts +9 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js +173 -1
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +9 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +2 -0
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-store.d.ts +7 -0
- package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-store.js +27 -0
- package/daemon/dist/domain/seat-identity-store.js.map +1 -1
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +6 -4
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/session-name.d.ts +22 -0
- package/daemon/dist/domain/session-name.d.ts.map +1 -1
- package/daemon/dist/domain/session-name.js +29 -0
- package/daemon/dist/domain/session-name.js.map +1 -1
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-detail-projector.js +4 -5
- package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +18 -2
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js +23 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
- package/daemon/dist/domain/startup-proof.d.ts +10 -6
- package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
- package/daemon/dist/domain/startup-proof.js +35 -7
- package/daemon/dist/domain/startup-proof.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +16 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +13 -0
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +27 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js +67 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -0
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +77 -0
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/herdr-adapter.js +266 -0
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -0
- package/daemon/dist/domain/terminal/herdr-transport.d.ts +50 -0
- package/daemon/dist/domain/terminal/herdr-transport.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/herdr-transport.js +145 -0
- package/daemon/dist/domain/terminal/herdr-transport.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts +88 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-provider.js +17 -0
- package/daemon/dist/domain/terminal/terminal-provider.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts +60 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-service.js +174 -0
- package/daemon/dist/domain/terminal/terminal-service.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-views-store.d.ts +77 -0
- package/daemon/dist/domain/terminal/terminal-views-store.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-views-store.js +146 -0
- package/daemon/dist/domain/terminal/terminal-views-store.js.map +1 -0
- package/daemon/dist/domain/terminal/view-composer.d.ts +42 -0
- package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/view-composer.js +137 -0
- package/daemon/dist/domain/terminal/view-composer.js.map +1 -0
- package/daemon/dist/domain/tmux-option-defaults.d.ts +89 -0
- package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -0
- package/daemon/dist/domain/tmux-option-defaults.js +132 -0
- package/daemon/dist/domain/tmux-option-defaults.js.map +1 -0
- package/daemon/dist/domain/topology/multi-rig-launcher.d.ts +49 -0
- package/daemon/dist/domain/topology/multi-rig-launcher.d.ts.map +1 -0
- package/daemon/dist/domain/topology/multi-rig-launcher.js +132 -0
- package/daemon/dist/domain/topology/multi-rig-launcher.js.map +1 -0
- package/daemon/dist/domain/topology/remote-up-leaf.d.ts +29 -0
- package/daemon/dist/domain/topology/remote-up-leaf.d.ts.map +1 -0
- package/daemon/dist/domain/topology/remote-up-leaf.js +60 -0
- package/daemon/dist/domain/topology/remote-up-leaf.js.map +1 -0
- package/daemon/dist/domain/topology/topology-manifest.d.ts +34 -0
- package/daemon/dist/domain/topology/topology-manifest.d.ts.map +1 -0
- package/daemon/dist/domain/topology/topology-manifest.js +195 -0
- package/daemon/dist/domain/topology/topology-manifest.js.map +1 -0
- package/daemon/dist/domain/types.d.ts +39 -1
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/up-command-router.d.ts +1 -1
- package/daemon/dist/domain/up-command-router.d.ts.map +1 -1
- package/daemon/dist/domain/up-command-router.js +34 -2
- package/daemon/dist/domain/up-command-router.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +18 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +201 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts.map +1 -1
- package/daemon/dist/domain/workflow/slice-workflow-projection.js +6 -2
- package/daemon/dist/domain/workflow/slice-workflow-projection.js.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.d.ts +28 -0
- package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-boot-sweep.js +102 -0
- package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -0
- package/daemon/dist/domain/workflow-deadline.d.ts +74 -0
- package/daemon/dist/domain/workflow-deadline.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-deadline.js +165 -0
- package/daemon/dist/domain/workflow-deadline.js.map +1 -0
- package/daemon/dist/domain/workflow-exception-escalation.d.ts +33 -0
- package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception-escalation.js +104 -0
- package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -0
- package/daemon/dist/domain/workflow-exception-router.d.ts +33 -0
- package/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception-router.js +96 -0
- package/daemon/dist/domain/workflow-exception-router.js.map +1 -0
- package/daemon/dist/domain/workflow-exception.d.ts +90 -0
- package/daemon/dist/domain/workflow-exception.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception.js +122 -0
- package/daemon/dist/domain/workflow-exception.js.map +1 -0
- package/daemon/dist/domain/workflow-frontier-guard.d.ts +24 -0
- package/daemon/dist/domain/workflow-frontier-guard.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-frontier-guard.js +30 -0
- package/daemon/dist/domain/workflow-frontier-guard.js.map +1 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts +28 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-instance-store.js +66 -10
- package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
- package/daemon/dist/domain/workflow-keepalive-arming.d.ts +35 -0
- package/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-keepalive-arming.js +87 -0
- package/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -0
- package/daemon/dist/domain/workflow-projector.d.ts +117 -2
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-projector.js +672 -41
- package/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-role-context.d.ts +57 -0
- package/daemon/dist/domain/workflow-role-context.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-role-context.js +120 -0
- package/daemon/dist/domain/workflow-role-context.js.map +1 -0
- package/daemon/dist/domain/workflow-role-resolver.d.ts +65 -0
- package/daemon/dist/domain/workflow-role-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-role-resolver.js +108 -0
- package/daemon/dist/domain/workflow-role-resolver.js.map +1 -0
- package/daemon/dist/domain/workflow-runtime.d.ts +157 -1
- package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-runtime.js +718 -11
- package/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts +26 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.js +327 -13
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
- package/daemon/dist/domain/workflow-types.d.ts +143 -8
- package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-types.js +14 -1
- package/daemon/dist/domain/workflow-types.js.map +1 -1
- package/daemon/dist/domain/workflow-validator.d.ts +11 -1
- package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-validator.js +246 -1
- package/daemon/dist/domain/workflow-validator.js.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js +51 -6
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts +11 -0
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +82 -0
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/index.d.ts +17 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +44 -0
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/activity.js +22 -0
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/config.d.ts.map +1 -1
- package/daemon/dist/routes/config.js +15 -6
- package/daemon/dist/routes/config.js.map +1 -1
- package/daemon/dist/routes/files.d.ts.map +1 -1
- package/daemon/dist/routes/files.js +45 -1
- package/daemon/dist/routes/files.js.map +1 -1
- package/daemon/dist/routes/hosts.d.ts +5 -0
- package/daemon/dist/routes/hosts.d.ts.map +1 -0
- package/daemon/dist/routes/hosts.js +346 -0
- package/daemon/dist/routes/hosts.js.map +1 -0
- package/daemon/dist/routes/mission-control.d.ts.map +1 -1
- package/daemon/dist/routes/mission-control.js +67 -2
- package/daemon/dist/routes/mission-control.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts +10 -9
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +305 -10
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/review.d.ts +3 -0
- package/daemon/dist/routes/review.d.ts.map +1 -0
- package/daemon/dist/routes/review.js +195 -0
- package/daemon/dist/routes/review.js.map +1 -0
- package/daemon/dist/routes/scope-approve.d.ts +3 -0
- package/daemon/dist/routes/scope-approve.d.ts.map +1 -0
- package/daemon/dist/routes/scope-approve.js +55 -0
- package/daemon/dist/routes/scope-approve.js.map +1 -0
- package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/daemon/dist/routes/scope-audit.js +28 -1
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/seat.js +13 -0
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/slices.d.ts.map +1 -1
- package/daemon/dist/routes/slices.js +49 -9
- package/daemon/dist/routes/slices.js.map +1 -1
- package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
- package/daemon/dist/routes/terminal-ws.js +58 -21
- package/daemon/dist/routes/terminal-ws.js.map +1 -1
- package/daemon/dist/routes/terminal.d.ts +11 -0
- package/daemon/dist/routes/terminal.d.ts.map +1 -0
- package/daemon/dist/routes/terminal.js +104 -0
- package/daemon/dist/routes/terminal.js.map +1 -0
- package/daemon/dist/routes/up.d.ts.map +1 -1
- package/daemon/dist/routes/up.js +84 -0
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/workflow.d.ts.map +1 -1
- package/daemon/dist/routes/workflow.js +102 -10
- package/daemon/dist/routes/workflow.js.map +1 -1
- package/daemon/dist/routes/workspace.js +2 -2
- package/daemon/dist/server.d.ts +6 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +36 -1
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +238 -14
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-startup-guide.md +1 -1
- package/daemon/docs/reference/product-factory-vps-runbook.md +132 -0
- package/daemon/docs/reference/sdlc-conventions.md +187 -0
- package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/builder/guidance/role.md +1 -0
- package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/lead/guidance/role.md +1 -0
- package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/planner/guidance/role.md +1 -0
- package/daemon/specs/agents/conveyor/reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/reviewer/guidance/role.md +1 -0
- package/daemon/specs/agents/design/product-designer/agent.yaml +1 -1
- package/daemon/specs/agents/design/product-designer/guidance/role.md +1 -0
- package/daemon/specs/agents/development/implementer/agent.yaml +1 -1
- package/daemon/specs/agents/development/implementer/guidance/role.md +1 -0
- package/daemon/specs/agents/development/qa/agent.yaml +1 -1
- package/daemon/specs/agents/development/qa/guidance/role.md +1 -0
- package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +29 -0
- package/daemon/specs/agents/factory-rsi/dogfood/guidance/role.md +37 -0
- package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +29 -0
- package/daemon/specs/agents/factory-rsi/release-manager/guidance/role.md +40 -0
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -1
- package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +1 -0
- package/daemon/specs/agents/product-management/pm/agent.yaml +1 -0
- package/daemon/specs/agents/product-management/pm/guidance/role.md +13 -0
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/review/independent-reviewer/guidance/role.md +1 -0
- package/daemon/specs/agents/shared/agent.yaml +2 -0
- package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +113 -0
- package/daemon/specs/agents/shared/skills/core/openrig-cmux/SKILL.md +86 -0
- package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +158 -0
- package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +4 -4
- package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +75 -29
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +2 -2
- package/daemon/specs/rigs/focused/pm-team/CULTURE.md +4 -0
- package/daemon/specs/rigs/launch/factory-rsi/CULTURE.md +47 -0
- package/daemon/specs/rigs/launch/factory-rsi/rig.yaml +115 -0
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +1 -1
- package/daemon/specs/rigs/preview/product-team/CULTURE.md +4 -0
- package/dist/build-info.d.ts +8 -0
- package/dist/build-info.d.ts.map +1 -0
- package/dist/build-info.js +11 -0
- package/dist/build-info.js.map +1 -0
- package/dist/commands/broadcast.d.ts +6 -1
- package/dist/commands/broadcast.d.ts.map +1 -1
- package/dist/commands/broadcast.js +101 -15
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +99 -8
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/config-init-workspace.d.ts.map +1 -1
- package/dist/commands/config-init-workspace.js +20 -4
- package/dist/commands/config-init-workspace.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +4 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +5 -0
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/expand.js +1 -1
- package/dist/commands/expand.js.map +1 -1
- package/dist/commands/file.d.ts +7 -0
- package/dist/commands/file.d.ts.map +1 -0
- package/dist/commands/file.js +77 -0
- package/dist/commands/file.js.map +1 -0
- package/dist/commands/host.d.ts +48 -0
- package/dist/commands/host.d.ts.map +1 -0
- package/dist/commands/host.js +772 -0
- package/dist/commands/host.js.map +1 -0
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +5 -0
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/proof.d.ts +54 -0
- package/dist/commands/proof.d.ts.map +1 -0
- package/dist/commands/proof.js +311 -0
- package/dist/commands/proof.js.map +1 -0
- package/dist/commands/ps.d.ts +41 -7
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +353 -135
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +36 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +149 -7
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/restore-packet.d.ts.map +1 -1
- package/dist/commands/restore-packet.js +13 -2
- package/dist/commands/restore-packet.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +140 -3
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +127 -13
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/terminal.d.ts +6 -0
- package/dist/commands/terminal.d.ts.map +1 -0
- package/dist/commands/terminal.js +116 -0
- package/dist/commands/terminal.js.map +1 -0
- package/dist/commands/transcript.d.ts +6 -1
- package/dist/commands/transcript.d.ts.map +1 -1
- package/dist/commands/transcript.js +113 -30
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/up.d.ts +2 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +78 -2
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +11 -0
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/workflow-errors.d.ts +23 -0
- package/dist/commands/workflow-errors.d.ts.map +1 -0
- package/dist/commands/workflow-errors.js +100 -0
- package/dist/commands/workflow-errors.js.map +1 -0
- package/dist/commands/workflow-follow.d.ts +71 -0
- package/dist/commands/workflow-follow.d.ts.map +1 -0
- package/dist/commands/workflow-follow.js +259 -0
- package/dist/commands/workflow-follow.js.map +1 -0
- package/dist/commands/workflow-render.d.ts +114 -0
- package/dist/commands/workflow-render.d.ts.map +1 -0
- package/dist/commands/workflow-render.js +223 -0
- package/dist/commands/workflow-render.js.map +1 -0
- package/dist/commands/workflow.d.ts +1 -0
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +278 -14
- package/dist/commands/workflow.js.map +1 -1
- package/dist/commands/workspace.js +6 -6
- package/dist/commands/workspace.js.map +1 -1
- package/dist/config-store.d.ts +19 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +171 -0
- package/dist/config-store.js.map +1 -1
- package/dist/cross-host-cli-helpers.d.ts +13 -0
- package/dist/cross-host-cli-helpers.d.ts.map +1 -1
- package/dist/cross-host-cli-helpers.js +27 -0
- package/dist/cross-host-cli-helpers.js.map +1 -1
- package/dist/cross-host-executor.d.ts +1 -0
- package/dist/cross-host-executor.d.ts.map +1 -1
- package/dist/cross-host-executor.js +4 -1
- package/dist/cross-host-executor.js.map +1 -1
- package/dist/cross-host-target.d.ts +49 -0
- package/dist/cross-host-target.d.ts.map +1 -0
- package/dist/cross-host-target.js +35 -0
- package/dist/cross-host-target.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +4 -1
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/host-registry.d.ts +17 -0
- package/dist/host-registry.d.ts.map +1 -1
- package/dist/host-registry.js +64 -2
- package/dist/host-registry.js.map +1 -1
- package/dist/host-selection.d.ts +13 -0
- package/dist/host-selection.d.ts.map +1 -0
- package/dist/host-selection.js +54 -0
- package/dist/host-selection.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/file-transfer.d.ts +89 -0
- package/dist/lib/file-transfer.d.ts.map +1 -0
- package/dist/lib/file-transfer.js +300 -0
- package/dist/lib/file-transfer.js.map +1 -0
- package/dist/lib/hosts/fanout-contract.d.ts +33 -0
- package/dist/lib/hosts/fanout-contract.d.ts.map +1 -0
- package/dist/lib/hosts/fanout-contract.js +23 -0
- package/dist/lib/hosts/fanout-contract.js.map +1 -0
- package/dist/lib/scope/scope-audit.d.ts +9 -1
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js +173 -1
- package/dist/lib/scope/scope-audit.js.map +1 -1
- package/dist/lib/scope/templates.d.ts +1 -0
- package/dist/lib/scope/templates.d.ts.map +1 -1
- package/dist/lib/scope/templates.js +9 -0
- package/dist/lib/scope/templates.js.map +1 -1
- package/dist/lib/scope-templates/backlog-deprecation.md +16 -0
- package/dist/lib/scope-templates/backlog-tech-debt.md +16 -0
- package/dist/lib/scope-templates/bug-fix.md +16 -0
- package/dist/lib/scope-templates/implementation-prd.md +33 -0
- package/dist/lib/scope-templates/mission-placeholder.md +1 -1
- package/dist/lib/scope-templates/mission-progress.md +1 -1
- package/dist/lib/scope-templates/mission-release.md +1 -1
- package/dist/lib/scope-templates/placeholder.md +11 -7
- package/dist/lib/scope-templates/proof.md +5 -1
- package/dist/lib/scope-templates/release-feature.md +14 -6
- package/dist/lib/scope-templates/research.md +16 -0
- package/dist/lib/scope-templates/slice-progress.md +1 -1
- package/dist/remote-host-ops.d.ts +1 -0
- package/dist/remote-host-ops.d.ts.map +1 -1
- package/dist/remote-host-ops.js +11 -4
- package/dist/remote-host-ops.js.map +1 -1
- package/dist/session-name.d.ts +23 -0
- package/dist/session-name.d.ts.map +1 -0
- package/dist/session-name.js +61 -0
- package/dist/session-name.js.map +1 -0
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +11 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/ui/dist/assets/index-CFqxa0zW.css +32 -0
- package/ui/dist/assets/index-zrFqS7gL.js +623 -0
- package/ui/dist/index.html +2 -2
- package/ui/dist/assets/index-DYZniQcc.js +0 -597
- package/ui/dist/assets/index-trcb4Yf_.css +0 -32
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
// Living Notes Packet 2 — approval-triggered frozen export (OPR.0.4.4.20 FR-6).
|
|
2
|
+
//
|
|
3
|
+
// ONE synchronous compose-and-freeze path, invoked AFTER the approval
|
|
4
|
+
// stamp + audit row commit (Packet 1 FR-9's side of the interface cell).
|
|
5
|
+
// The renderer is a MINIMAL string-template renderer (arch pin): the
|
|
6
|
+
// composed doc -> one static, self-contained HTML file — CSS inline,
|
|
7
|
+
// images inlined as data: URIs, video referenced by LINK with its poster
|
|
8
|
+
// inline, zero external fetches, zero heavy dependencies. The contract is
|
|
9
|
+
// the ACs (file:// self-contained), not the twin build's vite plugin —
|
|
10
|
+
// that plugin is build-time prior art, mirrored here at runtime, not reused.
|
|
11
|
+
//
|
|
12
|
+
// Failure semantics: the stamp and audit row are never touched here — a
|
|
13
|
+
// failed render never un-approves. The write is exclusive-create through
|
|
14
|
+
// the daemon's atomic file-write path (allowlist-governed, actor-audited);
|
|
15
|
+
// an existing export makes re-invocation an idempotent no-op.
|
|
16
|
+
import * as fs from "node:fs";
|
|
17
|
+
import * as path from "node:path";
|
|
18
|
+
import { FileWriteError } from "../files/file-write-service.js";
|
|
19
|
+
const IMAGE_EXTS = new Set([".png", ".jpg", ".jpeg", ".gif", ".webp", ".svg"]);
|
|
20
|
+
const VIDEO_EXTS = new Set([".mp4", ".webm", ".mov"]);
|
|
21
|
+
const MIME = {
|
|
22
|
+
".png": "image/png",
|
|
23
|
+
".jpg": "image/jpeg",
|
|
24
|
+
".jpeg": "image/jpeg",
|
|
25
|
+
".gif": "image/gif",
|
|
26
|
+
".webp": "image/webp",
|
|
27
|
+
".svg": "image/svg+xml",
|
|
28
|
+
};
|
|
29
|
+
function esc(s) {
|
|
30
|
+
return (s ?? "")
|
|
31
|
+
.replaceAll("&", "&")
|
|
32
|
+
.replaceAll("<", "<")
|
|
33
|
+
.replaceAll(">", ">")
|
|
34
|
+
.replaceAll('"', """);
|
|
35
|
+
}
|
|
36
|
+
function dataUri(absPath) {
|
|
37
|
+
const ext = path.extname(absPath).toLowerCase();
|
|
38
|
+
const mime = MIME[ext];
|
|
39
|
+
if (!mime)
|
|
40
|
+
return null;
|
|
41
|
+
try {
|
|
42
|
+
return `data:${mime};base64,${fs.readFileSync(absPath).toString("base64")}`;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function verdictChip(cell) {
|
|
49
|
+
// G1: the chip text is the RECORDED token verbatim; tone is a separate class.
|
|
50
|
+
const token = cell.recordedToken ?? "missing";
|
|
51
|
+
return `<span class="chip tone-${cell.tone}">${esc(cell.role)}: ${esc(token)}</span>`;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Slice-dir containment for media inlining (rev1 fixback at d6135921 — the
|
|
55
|
+
* slice-19 path-containment class): the frozen export is the designed future
|
|
56
|
+
* broadcast payload, so a traversal/symlink ref must NEVER data-URI-inline a
|
|
57
|
+
* file from outside the slice dir. Resolve-prefix check first, then a
|
|
58
|
+
* realpath check on existing files so a symlink inside the slice cannot
|
|
59
|
+
* escape either. Returns the safe absolute path, or null (renders the muted
|
|
60
|
+
* unavailable branch — never silent, never inlined).
|
|
61
|
+
*/
|
|
62
|
+
function containedMediaPath(sliceDir, ref) {
|
|
63
|
+
if (ref.startsWith("/"))
|
|
64
|
+
return null;
|
|
65
|
+
const rootResolved = path.resolve(sliceDir);
|
|
66
|
+
const resolved = path.resolve(sliceDir, ref);
|
|
67
|
+
if (resolved !== rootResolved && !resolved.startsWith(rootResolved + path.sep))
|
|
68
|
+
return null;
|
|
69
|
+
try {
|
|
70
|
+
const real = fs.realpathSync(resolved);
|
|
71
|
+
const realRoot = fs.realpathSync(rootResolved);
|
|
72
|
+
if (real !== realRoot && !real.startsWith(realRoot + path.sep))
|
|
73
|
+
return null;
|
|
74
|
+
return real;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// Missing file: containment already proven by the resolve-prefix check;
|
|
78
|
+
// the caller's existsSync/dataUri handles absence with the muted branch.
|
|
79
|
+
return resolved;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** Renders media found in the slice dir: images inline, video by link + poster. */
|
|
83
|
+
function mediaBlock(sliceDir, mediaRefs) {
|
|
84
|
+
const parts = [];
|
|
85
|
+
const images = mediaRefs.filter((r) => IMAGE_EXTS.has(path.extname(r).toLowerCase()));
|
|
86
|
+
const videos = mediaRefs.filter((r) => VIDEO_EXTS.has(path.extname(r).toLowerCase()));
|
|
87
|
+
for (const ref of images) {
|
|
88
|
+
const safe = containedMediaPath(sliceDir, ref);
|
|
89
|
+
const uri = safe ? dataUri(safe) : null;
|
|
90
|
+
if (uri)
|
|
91
|
+
parts.push(`<figure><img src="${uri}" alt="${esc(ref)}"><figcaption>${esc(ref)}</figcaption></figure>`);
|
|
92
|
+
else
|
|
93
|
+
parts.push(`<p class="muted">${safe ? "image unavailable" : "media outside slice dir"}: ${esc(ref)}</p>`);
|
|
94
|
+
}
|
|
95
|
+
for (const ref of videos) {
|
|
96
|
+
if (containedMediaPath(sliceDir, ref) === null) {
|
|
97
|
+
parts.push(`<p class="muted">media outside slice dir: ${esc(ref)}</p>`);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
// Video is NEVER embedded (single-file simplicity); the co-located
|
|
101
|
+
// screenshot poster (same basename) inlines beside the link when present.
|
|
102
|
+
const base = ref.slice(0, ref.length - path.extname(ref).length);
|
|
103
|
+
const poster = [".png", ".jpg", ".jpeg"]
|
|
104
|
+
.map((e) => `${base}${e}`)
|
|
105
|
+
.find((p) => {
|
|
106
|
+
const safePoster = containedMediaPath(sliceDir, p);
|
|
107
|
+
return safePoster !== null && fs.existsSync(safePoster);
|
|
108
|
+
});
|
|
109
|
+
const safePosterPath = poster ? containedMediaPath(sliceDir, poster) : null;
|
|
110
|
+
const posterUri = safePosterPath ? dataUri(safePosterPath) : null;
|
|
111
|
+
parts.push(`<figure>${posterUri ? `<img src="${posterUri}" alt="poster for ${esc(ref)}">` : ""}` +
|
|
112
|
+
`<figcaption>video (by link): <a href="${esc(ref)}">${esc(ref)}</a></figcaption></figure>`);
|
|
113
|
+
}
|
|
114
|
+
return parts.join("\n");
|
|
115
|
+
}
|
|
116
|
+
const STYLE = `
|
|
117
|
+
body{font-family:ui-serif,Georgia,serif;max-width:52rem;margin:2rem auto;padding:0 1rem;color:#1c1917;background:#fafaf9}
|
|
118
|
+
h1,h2{font-family:ui-sans-serif,system-ui,sans-serif}
|
|
119
|
+
.chip{display:inline-block;border:1px solid #a8a29e;border-radius:4px;padding:.1rem .45rem;margin:.1rem;font-family:ui-monospace,monospace;font-size:.8rem}
|
|
120
|
+
.tone-pass{background:#dcfce7}.tone-fail{background:#fee2e2}.tone-unknown{background:#f5f5f4}
|
|
121
|
+
.locked{border:2px solid #1c1917;padding:.6rem 1rem;margin:1rem 0;font-weight:600}
|
|
122
|
+
.unverified{border:3px solid #b91c1c;color:#b91c1c;padding:.6rem 1rem;margin:1rem 0;font-weight:700}
|
|
123
|
+
.muted{color:#78716c}
|
|
124
|
+
.col{border:1px solid #d6d3d1;padding: .75rem;margin:.5rem 0}
|
|
125
|
+
table{border-collapse:collapse;width:100%}td,th{border:1px solid #d6d3d1;padding:.3rem .5rem;text-align:left;font-size:.9rem}
|
|
126
|
+
img{max-width:100%;height:auto;border:1px solid #d6d3d1}
|
|
127
|
+
figure{margin:1rem 0}figcaption{font-size:.8rem;color:#78716c}
|
|
128
|
+
pre{white-space:pre-wrap;font-family:inherit}
|
|
129
|
+
`;
|
|
130
|
+
function stampLine(label, lock) {
|
|
131
|
+
if (!lock)
|
|
132
|
+
return `<p class="muted">○ ${esc(label)} — not stamped</p>`;
|
|
133
|
+
return lock.auditVerified
|
|
134
|
+
? `<div class="locked">✓ ${esc(label)} — ${esc(lock.by)} at ${esc(lock.at)}</div>`
|
|
135
|
+
: `<div class="unverified">UNVERIFIED ${esc(label)} stamp — frontmatter claims ${esc(lock.by)} at ${esc(lock.at)} but NO matching audit row exists</div>`;
|
|
136
|
+
}
|
|
137
|
+
const VERIFIED_WORDS = {
|
|
138
|
+
verified: "✓ QA-verified against the plan",
|
|
139
|
+
unverified: "◇ unverified — no recorded QA comparison",
|
|
140
|
+
missing: "✗ missing — promised, nothing delivered",
|
|
141
|
+
};
|
|
142
|
+
/** The frozen single-file HTML for a composed slice review — the ONE
|
|
143
|
+
* INTENT → PLAN → DELIVERED stack (CORRECTIVE §3.1), mirrored statically. */
|
|
144
|
+
export function renderFrozenSliceHtml(composed, sliceDir, mediaRefs) {
|
|
145
|
+
const lineage = composed.lineage;
|
|
146
|
+
const deliveredRows = composed.delivered.items
|
|
147
|
+
.map((it) => `<tr><td>${esc(it.promised.text)}</td><td>${esc(VERIFIED_WORDS[it.verified] ?? it.verified)}</td><td>${esc(it.note ?? "—")}</td><td>${it.proof.length === 0 ? "—" : it.proof.map((p) => esc(p.src)).join("<br>")}</td></tr>`)
|
|
148
|
+
.join("\n");
|
|
149
|
+
// Evidence media = the source-scan refs plus the curated proof set
|
|
150
|
+
// (slice-relative srcs) — inlined via the same contained-path discipline.
|
|
151
|
+
const evidenceRefs = [
|
|
152
|
+
...new Set([
|
|
153
|
+
...mediaRefs,
|
|
154
|
+
...composed.delivered.items.flatMap((it) => it.proof.map((p) => p.src)),
|
|
155
|
+
...composed.delivered.extraProof.map((p) => p.src),
|
|
156
|
+
]),
|
|
157
|
+
];
|
|
158
|
+
return `<!doctype html>
|
|
159
|
+
<html lang="en">
|
|
160
|
+
<head>
|
|
161
|
+
<meta charset="utf-8">
|
|
162
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
163
|
+
<title>REVIEW — ${esc(composed.title)}</title>
|
|
164
|
+
<style>${STYLE}</style>
|
|
165
|
+
</head>
|
|
166
|
+
<body>
|
|
167
|
+
<h1>${esc(composed.title)}</h1>
|
|
168
|
+
<p class="muted">${esc(composed.slice)}${composed.sliceId ? ` · ${esc(composed.sliceId)}` : ""} · lane ${esc(composed.laneLabel)} · frozen from composition at ${esc(composed.composedAt)}</p>
|
|
169
|
+
${stampLine("proof-lock (done)", composed.delivered.lock)}
|
|
170
|
+
|
|
171
|
+
<h2>Verify lineage</h2>
|
|
172
|
+
<p>proven-at: <code>${esc(lineage.candidateSha ?? "unknown")}</code> · merged-at: <code>${esc(lineage.mergeSha ?? "UNMERGED")}</code> · main tip: <code>${esc(lineage.mainTip)}</code> · ${esc(lineage.freshness)}${lineage.staleBehind !== null ? ` (${lineage.staleBehind} behind)` : ""}</p>
|
|
173
|
+
<p>${lineage.gateCells.map(verdictChip).join(" ")}</p>
|
|
174
|
+
|
|
175
|
+
<h2>Intent</h2>
|
|
176
|
+
<div class="col"><pre>${esc(composed.intent.text ?? composed.intent.degrade)}</pre></div>
|
|
177
|
+
|
|
178
|
+
<h2>Plan</h2>
|
|
179
|
+
<div class="col"><pre>${esc(composed.plan.concise.text ?? "—")}</pre>
|
|
180
|
+
${composed.plan.lockedArtifacts.length > 0 ? `<p class="muted">locked set: ${composed.plan.lockedArtifacts.map((a) => `${esc(a.name)} (${esc(a.kind)}: ${esc(a.path)})`).join(" · ")}</p>` : ""}
|
|
181
|
+
${stampLine("plan-lock (this set gets built)", composed.plan.lock)}</div>
|
|
182
|
+
|
|
183
|
+
<h2>Delivered</h2>
|
|
184
|
+
${composed.delivered.items.length === 0 ? `<p class="muted">no proof contract declared in the plan</p>` : `<table><tr><th>promised</th><th>verified</th><th>QA note</th><th>curated proof</th></tr>${deliveredRows}</table>`}
|
|
185
|
+
${composed.delivered.extraProof.length > 0 ? `<p class="muted">extra proof (not tied to one deliverable): ${composed.delivered.extraProof.map((p) => esc(p.src)).join(" · ")}</p>` : ""}
|
|
186
|
+
|
|
187
|
+
<h2>Evidence</h2>
|
|
188
|
+
${mediaBlock(sliceDir, evidenceRefs)}
|
|
189
|
+
|
|
190
|
+
<h2>Needs-you at freeze time</h2>
|
|
191
|
+
${composed.needsYou.items.length === 0 ? `<p class="muted">${esc(composed.needsYou.provenance)}</p>` : `<ul>${composed.needsYou.items.map((i) => `<li>${esc(i.summary)} <span class="muted">(${esc(i.leg)})</span></li>`).join("\n")}</ul>`}
|
|
192
|
+
|
|
193
|
+
${composed.defects.length > 0 ? `<h2>Defect findings</h2><ul>${composed.defects.map((d) => `<li>${esc(d)}</li>`).join("")}</ul>` : ""}
|
|
194
|
+
</body>
|
|
195
|
+
</html>
|
|
196
|
+
`;
|
|
197
|
+
}
|
|
198
|
+
export function frozenFileName(scopeId, fallbackName, approvedAtIso) {
|
|
199
|
+
const id = (scopeId ?? fallbackName).replaceAll("/", "-");
|
|
200
|
+
const date = approvedAtIso ? approvedAtIso.slice(0, 10) : "undated";
|
|
201
|
+
return `REVIEW-${id}-${date}.html`;
|
|
202
|
+
}
|
|
203
|
+
/** Maps an absolute dir into (allowlist root, relative path) or null. */
|
|
204
|
+
export function resolveAllowlisted(allowlist, absDir) {
|
|
205
|
+
let real;
|
|
206
|
+
try {
|
|
207
|
+
real = fs.realpathSync(absDir);
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
212
|
+
for (const r of allowlist) {
|
|
213
|
+
if (real === r.canonicalPath || real.startsWith(r.canonicalPath + path.sep)) {
|
|
214
|
+
return { root: r.name, rel: path.relative(r.canonicalPath, real) };
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
export function freezeSliceExport(opts) {
|
|
220
|
+
const { composed } = opts;
|
|
221
|
+
if (!composed.delivered.lock) {
|
|
222
|
+
return {
|
|
223
|
+
ok: false,
|
|
224
|
+
error: "stamp_missing",
|
|
225
|
+
message: `slice '${composed.slice}' carries no delivery approval stamp; the freeze fires only after the approve verb commits (stamp + audit row stand regardless of this render)`,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
const mapped = resolveAllowlisted(opts.allowlist, opts.sliceDir);
|
|
229
|
+
if (!mapped) {
|
|
230
|
+
return {
|
|
231
|
+
ok: false,
|
|
232
|
+
error: "allowlist_missing",
|
|
233
|
+
message: `slice folder '${opts.sliceDir}' is not under any OPENRIG_FILES_ALLOWLIST root — the freeze write path is allowlist-governed`,
|
|
234
|
+
hint: `add OPENRIG_FILES_ALLOWLIST=<name>:${path.dirname(opts.sliceDir)} (or a parent root) and restart the daemon`,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
const fileName = frozenFileName(composed.sliceId, composed.slice, composed.delivered.lock.at);
|
|
238
|
+
const relPath = path.join(mapped.rel, fileName);
|
|
239
|
+
const html = renderFrozenSliceHtml(composed, opts.sliceDir, opts.mediaRefs);
|
|
240
|
+
try {
|
|
241
|
+
const result = opts.writeService.createAtomic({ rootName: mapped.root, path: relPath, content: html, actor: opts.actor });
|
|
242
|
+
return { ok: true, path: result.absolutePath, alreadyFrozen: false };
|
|
243
|
+
}
|
|
244
|
+
catch (err) {
|
|
245
|
+
if (err instanceof FileWriteError && err.code === "target_exists") {
|
|
246
|
+
// Idempotent re-invoke for the same approval: the export already exists
|
|
247
|
+
// and frozen exports are never rewritten (invariant 8).
|
|
248
|
+
return { ok: true, path: path.join(opts.sliceDir, fileName), alreadyFrozen: true };
|
|
249
|
+
}
|
|
250
|
+
return {
|
|
251
|
+
ok: false,
|
|
252
|
+
error: "write_failed",
|
|
253
|
+
message: `freeze render/write failed (the approval stamp and audit row still stand; re-invoke after fixing): ${err instanceof Error ? err.message : String(err)}`,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=freeze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"freeze.js","sourceRoot":"","sources":["../../../src/domain/review/freeze.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,sEAAsE;AACtE,yEAAyE;AACzE,qEAAqE;AACrE,qEAAqE;AACrE,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,6EAA6E;AAC7E,EAAE;AACF,wEAAwE;AACxE,yEAAyE;AACzE,2EAA2E;AAC3E,8DAA8D;AAE9D,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIhE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,GAA2B;IACnC,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,eAAe;CACxB,CAAC;AAEF,SAAS,GAAG,CAAC,CAA4B;IACvC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;SACb,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,OAAO,QAAQ,IAAI,WAAW,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAiB;IACpC,8EAA8E;IAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC;IAC9C,OAAO,0BAA0B,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;AACxF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,QAAgB,EAAE,GAAW;IACvD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,YAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;QACxE,yEAAyE;QACzE,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,SAAS,UAAU,CAAC,QAAgB,EAAE,SAAmB;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACtF,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,IAAI,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;;YAC5G,KAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,yBAAyB,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,6CAA6C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxE,SAAS;QACX,CAAC;QACD,mEAAmE;QACnE,0EAA0E;QAC1E,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;aACzB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnD,OAAO,UAAU,KAAK,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACL,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,KAAK,CAAC,IAAI,CACR,WAAW,SAAS,CAAC,CAAC,CAAC,aAAa,SAAS,qBAAqB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACnF,yCAAyC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,4BAA4B,CAC7F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,KAAK,GAAG;;;;;;;;;;;;;CAab,CAAC;AAEF,SAAS,SAAS,CAAC,KAAa,EAAE,IAAsB;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO,sBAAsB,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC;IACvE,OAAO,IAAI,CAAC,aAAa;QACvB,CAAC,CAAC,yBAAyB,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ;QAClF,CAAC,CAAC,sCAAsC,GAAG,CAAC,KAAK,CAAC,+BAA+B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,yCAAyC,CAAC;AAC9J,CAAC;AAED,MAAM,cAAc,GAA2B;IAC7C,QAAQ,EAAE,gCAAgC;IAC1C,UAAU,EAAE,0CAA0C;IACtD,OAAO,EAAE,yCAAyC;CACnD,CAAC;AAEF;8EAC8E;AAC9E,MAAM,UAAU,qBAAqB,CAAC,QAA6B,EAAE,QAAgB,EAAE,SAAmB;IACxG,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK;SAC3C,GAAG,CACF,CAAC,EAAE,EAAE,EAAE,CACL,WAAW,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAC/N;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,mEAAmE;IACnE,0EAA0E;IAC1E,MAAM,YAAY,GAAG;QACnB,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,SAAS;YACZ,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACvE,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;SACnD,CAAC;KACH,CAAC;IAEF,OAAO;;;;;kBAKS,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC5B,KAAK;;;MAGR,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;mBACN,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,iCAAiC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;EACvL,SAAS,CAAC,mBAAmB,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;;;sBAGnC,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,SAAS,CAAC,8BAA8B,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,6BAA6B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,WAAW,UAAU,CAAC,CAAC,CAAC,EAAE;KACrR,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;;wBAGzB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;;;wBAGpD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC;EAC5D,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gCAAgC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;EAC7L,SAAS,CAAC,iCAAiC,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGhE,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,2FAA2F,aAAa,UAAU;EAC1N,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,+DAA+D,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;;;EAGrL,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC;;;EAGlC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;;EAEzO,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,+BAA+B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;;CAGpI,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAsB,EAAE,YAAoB,EAAE,aAA4B;IACvG,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,YAAY,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,OAAO,UAAU,EAAE,IAAI,IAAI,OAAO,CAAC;AACrC,CAAC;AAMD,yEAAyE;AACzE,MAAM,UAAU,kBAAkB,CAAC,SAA0B,EAAE,MAAc;IAC3E,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5E,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC;QACrE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAOjC;IACC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,UAAU,QAAQ,CAAC,KAAK,gJAAgJ;SAClL,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,iBAAiB,IAAI,CAAC,QAAQ,+FAA+F;YACtI,IAAI,EAAE,sCAAsC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,4CAA4C;SACpH,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1H,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,cAAc,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAClE,wEAAwE;YACxE,wDAAwD;YACxD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACrF,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,sGAAsG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAClK,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type Database from "better-sqlite3";
|
|
2
|
+
import type { SliceIndexer } from "../slices/slice-indexer.js";
|
|
3
|
+
import { type SliceComposeInputs } from "./compose.js";
|
|
4
|
+
import type { AgentsBand, AgentsScope, ComposedMissionReview, ComposedRigAgents, ComposedSliceReview, WorkflowRowRef } from "./types.js";
|
|
5
|
+
import type { AgentActivityStore } from "../agent-activity-store.js";
|
|
6
|
+
export interface ReviewGathererDeps {
|
|
7
|
+
db: Database.Database;
|
|
8
|
+
indexer: SliceIndexer;
|
|
9
|
+
/** Repo path for git lineage facts (the workspace default repo); null = degrade to unknown. */
|
|
10
|
+
gitRepoPath?: string | null;
|
|
11
|
+
/** OPR.0.4.4.22 — hook-activity reads for the agent state glyph (FR-2).
|
|
12
|
+
* Optional: absent → every glyph degrades to honest `unknown` (never
|
|
13
|
+
* guessed). Synchronous SQLite reads; no polling, no agent contact. */
|
|
14
|
+
activityStore?: AgentActivityStore | null;
|
|
15
|
+
/** Injected clock so composition stays reproducible in tests. */
|
|
16
|
+
now?: () => string;
|
|
17
|
+
}
|
|
18
|
+
/** OPR.0.4.6.WF4 Q6 — the ● (agent-leg) workflow-identity stamp, derived from
|
|
19
|
+
* the item's OWN STRUCTURED TAGS (`workflow:<name>` / `instance:<id>` /
|
|
20
|
+
* `step:<id>` — the WF-5-ratified queryable identity), NEVER from summary /
|
|
21
|
+
* identity / evidenceRef prose. Returns the pointer only when BOTH required
|
|
22
|
+
* keys are present; a non-workflow row (no `instance:`/`workflow:` tag) →
|
|
23
|
+
* `undefined`, so its AttentionInput stays byte-identical (omit-when-absent).
|
|
24
|
+
* Pointer-only: the three identity keys, never status/deadline/class. */
|
|
25
|
+
export declare function workflowRefFromTags(tagsJson: string | null): WorkflowRowRef | undefined;
|
|
26
|
+
export declare class ReviewGatherer {
|
|
27
|
+
private readonly db;
|
|
28
|
+
private readonly indexer;
|
|
29
|
+
private readonly gitRepoPath;
|
|
30
|
+
private readonly activityStore;
|
|
31
|
+
private readonly now;
|
|
32
|
+
constructor(deps: ReviewGathererDeps);
|
|
33
|
+
composeSlice(name: string): ComposedSliceReview | null;
|
|
34
|
+
/** Composition plus the on-disk context the freeze renderer needs (FR-6). */
|
|
35
|
+
composeSliceWithContext(name: string): {
|
|
36
|
+
composed: ComposedSliceReview;
|
|
37
|
+
sliceDir: string;
|
|
38
|
+
mediaRefs: string[];
|
|
39
|
+
} | null;
|
|
40
|
+
composeMission(mission: string): ComposedMissionReview | null;
|
|
41
|
+
/**
|
|
42
|
+
* OPR.0.4.4.22 — the composed rig-agents read root (FR-1..FR-4): NEEDS
|
|
43
|
+
* YOU + AGENTS (health line) + SETTLED at rig scope. Pure projection over
|
|
44
|
+
* queue + hook-activity; nothing contacts an agent. The roster is
|
|
45
|
+
* active-holders UNION recently-holding (transitions-on-scope-TODAY — the
|
|
46
|
+
* plan-review-ruled display window, named in provenance).
|
|
47
|
+
*/
|
|
48
|
+
composeRig(): ComposedRigAgents;
|
|
49
|
+
/** The scope-parameterized agents projection — ONE contract, all consumers. */
|
|
50
|
+
composeAgents(scope: AgentsScope): AgentsBand | null;
|
|
51
|
+
gatherSlice(name: string): SliceComposeInputs | null;
|
|
52
|
+
/** §3.1's ONLY genuinely new datum: the pinned plan set, a frontmatter READ
|
|
53
|
+
* (`locked-artifacts:` list on the slice README — the scope-fs pattern,
|
|
54
|
+
* zero new file kinds, zero new write machinery). Malformed entries are
|
|
55
|
+
* skipped, never invented. */
|
|
56
|
+
private parseLockedArtifacts;
|
|
57
|
+
private readFile;
|
|
58
|
+
private missionDirExists;
|
|
59
|
+
private readMissionMeta;
|
|
60
|
+
/** FR-8 freeze-moment brief write target: {absolute path, current content}. */
|
|
61
|
+
missionBriefTarget(mission: string): {
|
|
62
|
+
briefPath: string;
|
|
63
|
+
content: string;
|
|
64
|
+
} | null;
|
|
65
|
+
private parseFrontmatter;
|
|
66
|
+
private readProofArtifacts;
|
|
67
|
+
/** Markdown image/video refs across the composed sources (FR-5 defect scan). */
|
|
68
|
+
private collectMediaRefs;
|
|
69
|
+
private tableExists;
|
|
70
|
+
private columnExists;
|
|
71
|
+
/** Human-routed attention rows carrying the given tag (the §5 predicate is
|
|
72
|
+
* Packet 1's; until it lands, human-tier/human-dest/park-on-human rows are
|
|
73
|
+
* selected with the same shape). */
|
|
74
|
+
/** OPR.0.4.6.WF5 FR-3 — recorded workflow-instance views for the ▲
|
|
75
|
+
* band: failed + in-flight instances, the WF-1 evaluator verdict
|
|
76
|
+
* (consumed, never recomputed — the module import IS the single
|
|
77
|
+
* home), the open exception item by TAG QUERY (never summary
|
|
78
|
+
* parsing), and the non-open-frontier anomaly check. Read-only;
|
|
79
|
+
* absent tables (pre-workflow DBs) return []. */
|
|
80
|
+
private gatherWorkflowExceptions;
|
|
81
|
+
private attentionForTag;
|
|
82
|
+
/** Sessions holding active work on the named slices (null = rig-wide).
|
|
83
|
+
* Region membership derives from work-on-scope, never rig co-residency.
|
|
84
|
+
* Runtime/idle telemetry is honest-unknown at v1 (queue-derived only). */
|
|
85
|
+
private agentsForSlices;
|
|
86
|
+
/** FR-1 roster: agents HOLDING active work on any slice-tagged item, UNION
|
|
87
|
+
* agents RECENTLY holding (their slice-tagged items transitioned today —
|
|
88
|
+
* the ruled display window). Membership derives from work-on-scope,
|
|
89
|
+
* never rig co-residency. */
|
|
90
|
+
private rigRoster;
|
|
91
|
+
/** FR-2 telemetry enrichment: runtime from the sessions/nodes tables, the
|
|
92
|
+
* active/idle light from recorded hook activity (AgentActivityStore).
|
|
93
|
+
* Anything unprovable stays honest-unknown — never guessed. */
|
|
94
|
+
private withTelemetry;
|
|
95
|
+
private sessionRuntimes;
|
|
96
|
+
/** Rig-scope NEEDS YOU: ALL human-routed active items (no tag filter). */
|
|
97
|
+
private attentionAll;
|
|
98
|
+
/** FR-4: today's closed handoffs from the transitions log — the SETTLED
|
|
99
|
+
* band and the health line's handoff count come from the SAME query
|
|
100
|
+
* (two renders, one computation). */
|
|
101
|
+
private settledToday;
|
|
102
|
+
/** FR-3/FR-4: in-progress slice work past closure_required_at, rig-wide.
|
|
103
|
+
* Feeds both the derived NEEDS YOU exception and the health count. */
|
|
104
|
+
private overdueWork;
|
|
105
|
+
private hasActiveQitem;
|
|
106
|
+
/** §4 — the two staged-approval stamps (arch F-A: the SHIPPED verb's
|
|
107
|
+
* frontmatter fields), each cross-checked against the pinned
|
|
108
|
+
* scope-approval audit shape (`approval_scope` inside audit_notes_json).
|
|
109
|
+
* A stamp with no matching row -> auditVerified false (UNVERIFIED stamp,
|
|
110
|
+
* rendered loudly — never a block). */
|
|
111
|
+
private gatherApproval;
|
|
112
|
+
private git;
|
|
113
|
+
private gatherGitFacts;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=gather.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gather.d.ts","sourceRoot":"","sources":["../../../src/domain/review/gather.ts"],"names":[],"mappings":"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"}
|