@svenroth-ai/shipwright 0.24.1-next.0
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/LICENSE +21 -0
- package/README.md +55 -0
- package/bin/shipwright.mjs +187 -0
- package/client/dist/assets/EmbeddedTerminal-6GBZ9nXN.css +32 -0
- package/client/dist/assets/EmbeddedTerminal-CpeDvtzx.js +123 -0
- package/client/dist/assets/MarkdownEditorModal-Di9HN39z.js +212 -0
- package/client/dist/assets/abnfDiagram-VRR7QNED-BbSdq0X7.js +1 -0
- package/client/dist/assets/arc-BZT7vKjm.js +1 -0
- package/client/dist/assets/architectureDiagram-ZJ3FMSHR-BuRwoNgV.js +36 -0
- package/client/dist/assets/blockDiagram-677ZJIJ3-B2RNYWcr.js +132 -0
- package/client/dist/assets/c4Diagram-LMCZKHZV-fbXlt08K.js +10 -0
- package/client/dist/assets/channel-2-wkFEKK.js +1 -0
- package/client/dist/assets/chunk-2Q5K7J3B-NqMRUe5-.js +1 -0
- package/client/dist/assets/chunk-32BRIVSS-CIr9bFCd.js +1 -0
- package/client/dist/assets/chunk-5VM5RSS4-l0I6rbZN.js +15 -0
- package/client/dist/assets/chunk-EX3LRPZG-DXinoCxp.js +231 -0
- package/client/dist/assets/chunk-JWPE2WC7-BAcCano9.js +1 -0
- package/client/dist/assets/chunk-MOJQB5TN-DMVOqL7C.js +88 -0
- package/client/dist/assets/chunk-RYQCIY6F-CtNSAItH.js +1 -0
- package/client/dist/assets/chunk-V7JOEXUC-CufSmC93.js +206 -0
- package/client/dist/assets/chunk-VR4S4FIN-_BbUF9fa.js +1 -0
- package/client/dist/assets/chunk-XXDRQBXY-uQ35hUPB.js +1 -0
- package/client/dist/assets/classDiagram-OUVF2IWQ-A9SpDakb.js +1 -0
- package/client/dist/assets/classDiagram-v2-EOCWNBFH-A9SpDakb.js +1 -0
- package/client/dist/assets/cose-bilkent-JH36ORCC-B9q9uYCX.js +1 -0
- package/client/dist/assets/cynefin-VYW2F7L2-C2_bJyZA.js +178 -0
- package/client/dist/assets/cynefinDiagram-TSTJHNR4-0mzVmPv4.js +62 -0
- package/client/dist/assets/cytoscape.esm-DTSO7Bv0.js +331 -0
- package/client/dist/assets/dagre-VKFMJZFB-CIE9HMtr.js +4 -0
- package/client/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/client/dist/assets/diagram-FQU43EPY-DdkBaZrX.js +3 -0
- package/client/dist/assets/diagram-G47NLZAW-Cql4k2sg.js +24 -0
- package/client/dist/assets/diagram-NH7WQ7WH-FRAUyqEu.js +24 -0
- package/client/dist/assets/diagram-OA4YK3LP-DXo8GTB8.js +30 -0
- package/client/dist/assets/diagram-WEI45ONY-DqVtWGdt.js +41 -0
- package/client/dist/assets/ebnfDiagram-CCIWWBDH-B0La0RsO.js +1 -0
- package/client/dist/assets/erDiagram-Q63AITRT-DHbbqiY9.js +85 -0
- package/client/dist/assets/flowDiagram-23GEKE2U-I6vhJlCk.js +156 -0
- package/client/dist/assets/ganttDiagram-NO4QXBWP-CDYZHcsU.js +292 -0
- package/client/dist/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
- package/client/dist/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
- package/client/dist/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
- package/client/dist/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
- package/client/dist/assets/gitGraphDiagram-IHSO6WYX-dyf7caP8.js +106 -0
- package/client/dist/assets/graph-C9eacEi8.js +1 -0
- package/client/dist/assets/index-BYrVLOXw.js +609 -0
- package/client/dist/assets/index-BZvZ9izZ.css +1 -0
- package/client/dist/assets/infoDiagram-FWYZ7A6U-BlWH6vM3.js +2 -0
- package/client/dist/assets/init-Gi6I4Gst.js +1 -0
- package/client/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- package/client/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- package/client/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- package/client/dist/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- package/client/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- package/client/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- package/client/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- package/client/dist/assets/ishikawaDiagram-FXEZZL3T-BEKH-_6E.js +70 -0
- package/client/dist/assets/journeyDiagram-5HDEW3XC-cn_mQ2U9.js +139 -0
- package/client/dist/assets/kanban-definition-HUTT4EX6-DGZiYhYV.js +89 -0
- package/client/dist/assets/katex-DkKDou_j.js +257 -0
- package/client/dist/assets/layout-DEXfKzaS.js +1 -0
- package/client/dist/assets/linear-CdtYl6qR.js +1 -0
- package/client/dist/assets/map-Czzmt4hB.js +1 -0
- package/client/dist/assets/mermaid.core-CrKi1642.js +314 -0
- package/client/dist/assets/mindmap-definition-LN4V7U3C-G_CA7V9L.js +96 -0
- package/client/dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/client/dist/assets/pegDiagram-2B236MQR-6ZeO9kDM.js +1 -0
- package/client/dist/assets/pieDiagram-ENE6RG2P-Bd0InZSQ.js +39 -0
- package/client/dist/assets/quadrantDiagram-ABIIQ3AL-Bg1m9Csn.js +7 -0
- package/client/dist/assets/railroadDiagram-RFXS5EU6-CCzPP1JU.js +1 -0
- package/client/dist/assets/requirementDiagram-TGXJPOKE-iN7kyPgM.js +84 -0
- package/client/dist/assets/sankeyDiagram-HTMAVEWB-DN1v_DUJ.js +40 -0
- package/client/dist/assets/sequenceDiagram-DBY2YBRQ-C5LMp5Sa.js +162 -0
- package/client/dist/assets/sizeCapture-X5ZJPWSS-Bp9jVLhL.js +1 -0
- package/client/dist/assets/stateDiagram-2N3HPSRC-VbWBetTf.js +1 -0
- package/client/dist/assets/stateDiagram-v2-6OUMAXLB-BuaUtNAG.js +1 -0
- package/client/dist/assets/swimlanes-5IMT3BWC-CrXokvQ-.js +2 -0
- package/client/dist/assets/swimlanesDiagram-G3AALYLV-C6hwc993.js +8 -0
- package/client/dist/assets/timeline-definition-FHXFAJF6-Cxx1NT9A.js +120 -0
- package/client/dist/assets/vennDiagram-L72KCM5P-C6DBgaEy.js +34 -0
- package/client/dist/assets/wardleyDiagram-EHGQE667-RV7xMg8g.js +78 -0
- package/client/dist/assets/xychartDiagram-FW5EYKEG-Llhe9pB1.js +7 -0
- package/client/dist/backdrops/deck-golden.jpg +0 -0
- package/client/dist/backdrops/lighthouse.jpg +0 -0
- package/client/dist/index.html +27 -0
- package/client/dist/shipwright-logo-white.png +0 -0
- package/lib/cache-runtime.mjs +72 -0
- package/lib/cache-sync.mjs +243 -0
- package/lib/claude-cli.mjs +173 -0
- package/lib/plugins.mjs +181 -0
- package/lib/preflight.mjs +208 -0
- package/lib/probes.mjs +53 -0
- package/lib/server.mjs +315 -0
- package/lib/util.mjs +83 -0
- package/lib/version-check.mjs +76 -0
- package/lib/win32-spawn.mjs +253 -0
- package/package.json +67 -0
- package/scripts/deploy-procs.mjs +208 -0
- package/scripts/deploy-swap.mjs +276 -0
- package/scripts/kill-targets.js +140 -0
- package/scripts/repair-claude-json.mjs +295 -0
- package/server/dist/config/default-actions.json +90 -0
- package/server/dist/config.d.ts +96 -0
- package/server/dist/config.d.ts.map +1 -0
- package/server/dist/config.js +68 -0
- package/server/dist/config.js.map +1 -0
- package/server/dist/core/actions-schema-validator.d.ts +8 -0
- package/server/dist/core/actions-schema-validator.d.ts.map +1 -0
- package/server/dist/core/actions-schema-validator.js +394 -0
- package/server/dist/core/actions-schema-validator.js.map +1 -0
- package/server/dist/core/actions-substitute.d.ts +115 -0
- package/server/dist/core/actions-substitute.d.ts.map +1 -0
- package/server/dist/core/actions-substitute.js +549 -0
- package/server/dist/core/actions-substitute.js.map +1 -0
- package/server/dist/core/board-column.d.ts +3 -0
- package/server/dist/core/board-column.d.ts.map +1 -0
- package/server/dist/core/board-column.js +4 -0
- package/server/dist/core/board-column.js.map +1 -0
- package/server/dist/core/campaign-events.d.ts +39 -0
- package/server/dist/core/campaign-events.d.ts.map +1 -0
- package/server/dist/core/campaign-events.js +192 -0
- package/server/dist/core/campaign-events.js.map +1 -0
- package/server/dist/core/campaign-loop-state.d.ts +31 -0
- package/server/dist/core/campaign-loop-state.d.ts.map +1 -0
- package/server/dist/core/campaign-loop-state.js +124 -0
- package/server/dist/core/campaign-loop-state.js.map +1 -0
- package/server/dist/core/campaign-parse.d.ts +28 -0
- package/server/dist/core/campaign-parse.d.ts.map +1 -0
- package/server/dist/core/campaign-parse.js +174 -0
- package/server/dist/core/campaign-parse.js.map +1 -0
- package/server/dist/core/campaign-paths.d.ts +24 -0
- package/server/dist/core/campaign-paths.d.ts.map +1 -0
- package/server/dist/core/campaign-paths.js +111 -0
- package/server/dist/core/campaign-paths.js.map +1 -0
- package/server/dist/core/campaign-route-helpers.d.ts +19 -0
- package/server/dist/core/campaign-route-helpers.d.ts.map +1 -0
- package/server/dist/core/campaign-route-helpers.js +51 -0
- package/server/dist/core/campaign-route-helpers.js.map +1 -0
- package/server/dist/core/campaign-status-json.d.ts +55 -0
- package/server/dist/core/campaign-status-json.d.ts.map +1 -0
- package/server/dist/core/campaign-status-json.js +57 -0
- package/server/dist/core/campaign-status-json.js.map +1 -0
- package/server/dist/core/campaign-store.d.ts +10 -0
- package/server/dist/core/campaign-store.d.ts.map +1 -0
- package/server/dist/core/campaign-store.js +245 -0
- package/server/dist/core/campaign-store.js.map +1 -0
- package/server/dist/core/campaign-types.d.ts +101 -0
- package/server/dist/core/campaign-types.d.ts.map +1 -0
- package/server/dist/core/campaign-types.js +10 -0
- package/server/dist/core/campaign-types.js.map +1 -0
- package/server/dist/core/campaign-write.d.ts +13 -0
- package/server/dist/core/campaign-write.d.ts.map +1 -0
- package/server/dist/core/campaign-write.js +128 -0
- package/server/dist/core/campaign-write.js.map +1 -0
- package/server/dist/core/cascade-delete-project-tasks.d.ts +14 -0
- package/server/dist/core/cascade-delete-project-tasks.d.ts.map +1 -0
- package/server/dist/core/cascade-delete-project-tasks.js +68 -0
- package/server/dist/core/cascade-delete-project-tasks.js.map +1 -0
- package/server/dist/core/claude-bin-resolver.d.ts +62 -0
- package/server/dist/core/claude-bin-resolver.d.ts.map +1 -0
- package/server/dist/core/claude-bin-resolver.js +208 -0
- package/server/dist/core/claude-bin-resolver.js.map +1 -0
- package/server/dist/core/claude-theme-reader.d.ts +15 -0
- package/server/dist/core/claude-theme-reader.d.ts.map +1 -0
- package/server/dist/core/claude-theme-reader.js +52 -0
- package/server/dist/core/claude-theme-reader.js.map +1 -0
- package/server/dist/core/cli-compat.d.ts +43 -0
- package/server/dist/core/cli-compat.d.ts.map +1 -0
- package/server/dist/core/cli-compat.js +88 -0
- package/server/dist/core/cli-compat.js.map +1 -0
- package/server/dist/core/compliance-dimensions.d.ts +20 -0
- package/server/dist/core/compliance-dimensions.d.ts.map +1 -0
- package/server/dist/core/compliance-dimensions.js +114 -0
- package/server/dist/core/compliance-dimensions.js.map +1 -0
- package/server/dist/core/compliance-reader.d.ts +49 -0
- package/server/dist/core/compliance-reader.d.ts.map +1 -0
- package/server/dist/core/compliance-reader.js +147 -0
- package/server/dist/core/compliance-reader.js.map +1 -0
- package/server/dist/core/contract-version.d.ts +72 -0
- package/server/dist/core/contract-version.d.ts.map +1 -0
- package/server/dist/core/contract-version.js +114 -0
- package/server/dist/core/contract-version.js.map +1 -0
- package/server/dist/core/design-feedback.d.ts +29 -0
- package/server/dist/core/design-feedback.d.ts.map +1 -0
- package/server/dist/core/design-feedback.js +80 -0
- package/server/dist/core/design-feedback.js.map +1 -0
- package/server/dist/core/dismissed-campaigns-store.d.ts +45 -0
- package/server/dist/core/dismissed-campaigns-store.d.ts.map +1 -0
- package/server/dist/core/dismissed-campaigns-store.js +147 -0
- package/server/dist/core/dismissed-campaigns-store.js.map +1 -0
- package/server/dist/core/event-log-reader.d.ts +19 -0
- package/server/dist/core/event-log-reader.d.ts.map +1 -0
- package/server/dist/core/event-log-reader.js +209 -0
- package/server/dist/core/event-log-reader.js.map +1 -0
- package/server/dist/core/event-log-types.d.ts +99 -0
- package/server/dist/core/event-log-types.d.ts.map +1 -0
- package/server/dist/core/event-log-types.js +14 -0
- package/server/dist/core/event-log-types.js.map +1 -0
- package/server/dist/core/gitignore-cache.d.ts +16 -0
- package/server/dist/core/gitignore-cache.d.ts.map +1 -0
- package/server/dist/core/gitignore-cache.js +103 -0
- package/server/dist/core/gitignore-cache.js.map +1 -0
- package/server/dist/core/grade-runner.d.ts +63 -0
- package/server/dist/core/grade-runner.d.ts.map +1 -0
- package/server/dist/core/grade-runner.js +176 -0
- package/server/dist/core/grade-runner.js.map +1 -0
- package/server/dist/core/grade-target.d.ts +43 -0
- package/server/dist/core/grade-target.d.ts.map +1 -0
- package/server/dist/core/grade-target.js +162 -0
- package/server/dist/core/grade-target.js.map +1 -0
- package/server/dist/core/inbox-derive.d.ts +56 -0
- package/server/dist/core/inbox-derive.d.ts.map +1 -0
- package/server/dist/core/inbox-derive.js +211 -0
- package/server/dist/core/inbox-derive.js.map +1 -0
- package/server/dist/core/jsonl-decode.d.ts +28 -0
- package/server/dist/core/jsonl-decode.d.ts.map +1 -0
- package/server/dist/core/jsonl-decode.js +96 -0
- package/server/dist/core/jsonl-decode.js.map +1 -0
- package/server/dist/core/jsonl-records.d.ts +104 -0
- package/server/dist/core/jsonl-records.d.ts.map +1 -0
- package/server/dist/core/jsonl-records.js +222 -0
- package/server/dist/core/jsonl-records.js.map +1 -0
- package/server/dist/core/launcher.d.ts +74 -0
- package/server/dist/core/launcher.d.ts.map +1 -0
- package/server/dist/core/launcher.js +192 -0
- package/server/dist/core/launcher.js.map +1 -0
- package/server/dist/core/mission-context/artifacts-commit.d.ts +28 -0
- package/server/dist/core/mission-context/artifacts-commit.d.ts.map +1 -0
- package/server/dist/core/mission-context/artifacts-commit.js +98 -0
- package/server/dist/core/mission-context/artifacts-commit.js.map +1 -0
- package/server/dist/core/mission-context/artifacts-decisions.d.ts +5 -0
- package/server/dist/core/mission-context/artifacts-decisions.d.ts.map +1 -0
- package/server/dist/core/mission-context/artifacts-decisions.js +114 -0
- package/server/dist/core/mission-context/artifacts-decisions.js.map +1 -0
- package/server/dist/core/mission-context/artifacts-slice2.d.ts +12 -0
- package/server/dist/core/mission-context/artifacts-slice2.d.ts.map +1 -0
- package/server/dist/core/mission-context/artifacts-slice2.js +125 -0
- package/server/dist/core/mission-context/artifacts-slice2.js.map +1 -0
- package/server/dist/core/mission-context/artifacts-tests.d.ts +34 -0
- package/server/dist/core/mission-context/artifacts-tests.d.ts.map +1 -0
- package/server/dist/core/mission-context/artifacts-tests.js +236 -0
- package/server/dist/core/mission-context/artifacts-tests.js.map +1 -0
- package/server/dist/core/mission-context/artifacts.d.ts +33 -0
- package/server/dist/core/mission-context/artifacts.d.ts.map +1 -0
- package/server/dist/core/mission-context/artifacts.js +186 -0
- package/server/dist/core/mission-context/artifacts.js.map +1 -0
- package/server/dist/core/mission-context/association.d.ts +27 -0
- package/server/dist/core/mission-context/association.d.ts.map +1 -0
- package/server/dist/core/mission-context/association.js +69 -0
- package/server/dist/core/mission-context/association.js.map +1 -0
- package/server/dist/core/mission-context/campaign-artifacts.d.ts +9 -0
- package/server/dist/core/mission-context/campaign-artifacts.d.ts.map +1 -0
- package/server/dist/core/mission-context/campaign-artifacts.js +195 -0
- package/server/dist/core/mission-context/campaign-artifacts.js.map +1 -0
- package/server/dist/core/mission-context/campaign-facts.d.ts +99 -0
- package/server/dist/core/mission-context/campaign-facts.d.ts.map +1 -0
- package/server/dist/core/mission-context/campaign-facts.js +111 -0
- package/server/dist/core/mission-context/campaign-facts.js.map +1 -0
- package/server/dist/core/mission-context/decision-drops.d.ts +46 -0
- package/server/dist/core/mission-context/decision-drops.d.ts.map +1 -0
- package/server/dist/core/mission-context/decision-drops.js +269 -0
- package/server/dist/core/mission-context/decision-drops.js.map +1 -0
- package/server/dist/core/mission-context/decisions.d.ts +91 -0
- package/server/dist/core/mission-context/decisions.d.ts.map +1 -0
- package/server/dist/core/mission-context/decisions.js +222 -0
- package/server/dist/core/mission-context/decisions.js.map +1 -0
- package/server/dist/core/mission-context/doc-ids.d.ts +35 -0
- package/server/dist/core/mission-context/doc-ids.d.ts.map +1 -0
- package/server/dist/core/mission-context/doc-ids.js +78 -0
- package/server/dist/core/mission-context/doc-ids.js.map +1 -0
- package/server/dist/core/mission-context/document-read.d.ts +14 -0
- package/server/dist/core/mission-context/document-read.d.ts.map +1 -0
- package/server/dist/core/mission-context/document-read.js +36 -0
- package/server/dist/core/mission-context/document-read.js.map +1 -0
- package/server/dist/core/mission-context/fold-map.d.ts +45 -0
- package/server/dist/core/mission-context/fold-map.d.ts.map +1 -0
- package/server/dist/core/mission-context/fold-map.js +168 -0
- package/server/dist/core/mission-context/fold-map.js.map +1 -0
- package/server/dist/core/mission-context/fs-read.d.ts +47 -0
- package/server/dist/core/mission-context/fs-read.d.ts.map +1 -0
- package/server/dist/core/mission-context/fs-read.js +104 -0
- package/server/dist/core/mission-context/fs-read.js.map +1 -0
- package/server/dist/core/mission-context/iterate-record.d.ts +52 -0
- package/server/dist/core/mission-context/iterate-record.d.ts.map +1 -0
- package/server/dist/core/mission-context/iterate-record.js +156 -0
- package/server/dist/core/mission-context/iterate-record.js.map +1 -0
- package/server/dist/core/mission-context/merge-check.d.ts +60 -0
- package/server/dist/core/mission-context/merge-check.d.ts.map +1 -0
- package/server/dist/core/mission-context/merge-check.js +217 -0
- package/server/dist/core/mission-context/merge-check.js.map +1 -0
- package/server/dist/core/mission-context/merge-refresh.d.ts +14 -0
- package/server/dist/core/mission-context/merge-refresh.d.ts.map +1 -0
- package/server/dist/core/mission-context/merge-refresh.js +53 -0
- package/server/dist/core/mission-context/merge-refresh.js.map +1 -0
- package/server/dist/core/mission-context/merged-events.d.ts +34 -0
- package/server/dist/core/mission-context/merged-events.d.ts.map +1 -0
- package/server/dist/core/mission-context/merged-events.js +120 -0
- package/server/dist/core/mission-context/merged-events.js.map +1 -0
- package/server/dist/core/mission-context/pipeline-artifacts.d.ts +53 -0
- package/server/dist/core/mission-context/pipeline-artifacts.d.ts.map +1 -0
- package/server/dist/core/mission-context/pipeline-artifacts.js +161 -0
- package/server/dist/core/mission-context/pipeline-artifacts.js.map +1 -0
- package/server/dist/core/mission-context/planned-impact.d.ts +28 -0
- package/server/dist/core/mission-context/planned-impact.d.ts.map +1 -0
- package/server/dist/core/mission-context/planned-impact.js +129 -0
- package/server/dist/core/mission-context/planned-impact.js.map +1 -0
- package/server/dist/core/mission-context/pointer.d.ts +44 -0
- package/server/dist/core/mission-context/pointer.d.ts.map +1 -0
- package/server/dist/core/mission-context/pointer.js +165 -0
- package/server/dist/core/mission-context/pointer.js.map +1 -0
- package/server/dist/core/mission-context/resolver-io.d.ts +47 -0
- package/server/dist/core/mission-context/resolver-io.d.ts.map +1 -0
- package/server/dist/core/mission-context/resolver-io.js +11 -0
- package/server/dist/core/mission-context/resolver-io.js.map +1 -0
- package/server/dist/core/mission-context/resolver-parts.d.ts +57 -0
- package/server/dist/core/mission-context/resolver-parts.d.ts.map +1 -0
- package/server/dist/core/mission-context/resolver-parts.js +136 -0
- package/server/dist/core/mission-context/resolver-parts.js.map +1 -0
- package/server/dist/core/mission-context/resolver.d.ts +11 -0
- package/server/dist/core/mission-context/resolver.d.ts.map +1 -0
- package/server/dist/core/mission-context/resolver.js +261 -0
- package/server/dist/core/mission-context/resolver.js.map +1 -0
- package/server/dist/core/mission-context/review-record-entry.d.ts +45 -0
- package/server/dist/core/mission-context/review-record-entry.d.ts.map +1 -0
- package/server/dist/core/mission-context/review-record-entry.js +214 -0
- package/server/dist/core/mission-context/review-record-entry.js.map +1 -0
- package/server/dist/core/mission-context/review-record.d.ts +35 -0
- package/server/dist/core/mission-context/review-record.d.ts.map +1 -0
- package/server/dist/core/mission-context/review-record.js +259 -0
- package/server/dist/core/mission-context/review-record.js.map +1 -0
- package/server/dist/core/mission-context/review-state.d.ts +33 -0
- package/server/dist/core/mission-context/review-state.d.ts.map +1 -0
- package/server/dist/core/mission-context/review-state.js +249 -0
- package/server/dist/core/mission-context/review-state.js.map +1 -0
- package/server/dist/core/mission-context/run-id-recovery.d.ts +44 -0
- package/server/dist/core/mission-context/run-id-recovery.d.ts.map +1 -0
- package/server/dist/core/mission-context/run-id-recovery.js +175 -0
- package/server/dist/core/mission-context/run-id-recovery.js.map +1 -0
- package/server/dist/core/mission-context/scenario.d.ts +121 -0
- package/server/dist/core/mission-context/scenario.d.ts.map +1 -0
- package/server/dist/core/mission-context/scenario.js +151 -0
- package/server/dist/core/mission-context/scenario.js.map +1 -0
- package/server/dist/core/mission-context/slice2-sources.d.ts +40 -0
- package/server/dist/core/mission-context/slice2-sources.d.ts.map +1 -0
- package/server/dist/core/mission-context/slice2-sources.js +80 -0
- package/server/dist/core/mission-context/slice2-sources.js.map +1 -0
- package/server/dist/core/mission-context/slice2-test-fixtures.d.ts +17 -0
- package/server/dist/core/mission-context/slice2-test-fixtures.d.ts.map +1 -0
- package/server/dist/core/mission-context/slice2-test-fixtures.js +61 -0
- package/server/dist/core/mission-context/slice2-test-fixtures.js.map +1 -0
- package/server/dist/core/mission-context/slice3-sources.d.ts +43 -0
- package/server/dist/core/mission-context/slice3-sources.d.ts.map +1 -0
- package/server/dist/core/mission-context/slice3-sources.js +192 -0
- package/server/dist/core/mission-context/slice3-sources.js.map +1 -0
- package/server/dist/core/mission-context/spec-candidates.d.ts +66 -0
- package/server/dist/core/mission-context/spec-candidates.d.ts.map +1 -0
- package/server/dist/core/mission-context/spec-candidates.js +164 -0
- package/server/dist/core/mission-context/spec-candidates.js.map +1 -0
- package/server/dist/core/mission-context/test-evidence.d.ts +14 -0
- package/server/dist/core/mission-context/test-evidence.d.ts.map +1 -0
- package/server/dist/core/mission-context/test-evidence.js +53 -0
- package/server/dist/core/mission-context/test-evidence.js.map +1 -0
- package/server/dist/core/mission-context/tests-diff.d.ts +68 -0
- package/server/dist/core/mission-context/tests-diff.d.ts.map +1 -0
- package/server/dist/core/mission-context/tests-diff.js +151 -0
- package/server/dist/core/mission-context/tests-diff.js.map +1 -0
- package/server/dist/core/mission-context/traceability.d.ts +58 -0
- package/server/dist/core/mission-context/traceability.d.ts.map +1 -0
- package/server/dist/core/mission-context/traceability.js +168 -0
- package/server/dist/core/mission-context/traceability.js.map +1 -0
- package/server/dist/core/mission-context/types-slice2.d.ts +192 -0
- package/server/dist/core/mission-context/types-slice2.d.ts.map +1 -0
- package/server/dist/core/mission-context/types-slice2.js +15 -0
- package/server/dist/core/mission-context/types-slice2.js.map +1 -0
- package/server/dist/core/mission-context/types-slice3.d.ts +84 -0
- package/server/dist/core/mission-context/types-slice3.d.ts.map +1 -0
- package/server/dist/core/mission-context/types-slice3.js +24 -0
- package/server/dist/core/mission-context/types-slice3.js.map +1 -0
- package/server/dist/core/mission-context/types.d.ts +198 -0
- package/server/dist/core/mission-context/types.d.ts.map +1 -0
- package/server/dist/core/mission-context/types.js +44 -0
- package/server/dist/core/mission-context/types.js.map +1 -0
- package/server/dist/core/mission-context/worktree-roots.d.ts +103 -0
- package/server/dist/core/mission-context/worktree-roots.d.ts.map +1 -0
- package/server/dist/core/mission-context/worktree-roots.js +201 -0
- package/server/dist/core/mission-context/worktree-roots.js.map +1 -0
- package/server/dist/core/model-tier-config-reader.d.ts +16 -0
- package/server/dist/core/model-tier-config-reader.d.ts.map +1 -0
- package/server/dist/core/model-tier-config-reader.js +87 -0
- package/server/dist/core/model-tier-config-reader.js.map +1 -0
- package/server/dist/core/normalize-fs-path.d.ts +2 -0
- package/server/dist/core/normalize-fs-path.d.ts.map +1 -0
- package/server/dist/core/normalize-fs-path.js +31 -0
- package/server/dist/core/normalize-fs-path.js.map +1 -0
- package/server/dist/core/parameter-resolver.d.ts +32 -0
- package/server/dist/core/parameter-resolver.d.ts.map +1 -0
- package/server/dist/core/parameter-resolver.js +300 -0
- package/server/dist/core/parameter-resolver.js.map +1 -0
- package/server/dist/core/path-guard.d.ts +40 -0
- package/server/dist/core/path-guard.d.ts.map +1 -0
- package/server/dist/core/path-guard.js +147 -0
- package/server/dist/core/path-guard.js.map +1 -0
- package/server/dist/core/pr-status.d.ts +47 -0
- package/server/dist/core/pr-status.d.ts.map +1 -0
- package/server/dist/core/pr-status.js +157 -0
- package/server/dist/core/pr-status.js.map +1 -0
- package/server/dist/core/preview-child-lifecycle.d.ts +77 -0
- package/server/dist/core/preview-child-lifecycle.d.ts.map +1 -0
- package/server/dist/core/preview-child-lifecycle.js +223 -0
- package/server/dist/core/preview-child-lifecycle.js.map +1 -0
- package/server/dist/core/preview-coherence.d.ts +59 -0
- package/server/dist/core/preview-coherence.d.ts.map +1 -0
- package/server/dist/core/preview-coherence.js +66 -0
- package/server/dist/core/preview-coherence.js.map +1 -0
- package/server/dist/core/preview-session-manager.d.ts +86 -0
- package/server/dist/core/preview-session-manager.d.ts.map +1 -0
- package/server/dist/core/preview-session-manager.js +303 -0
- package/server/dist/core/preview-session-manager.js.map +1 -0
- package/server/dist/core/preview-win32-spawn.d.ts +11 -0
- package/server/dist/core/preview-win32-spawn.d.ts.map +1 -0
- package/server/dist/core/preview-win32-spawn.js +45 -0
- package/server/dist/core/preview-win32-spawn.js.map +1 -0
- package/server/dist/core/profile-loader.d.ts +65 -0
- package/server/dist/core/profile-loader.d.ts.map +1 -0
- package/server/dist/core/profile-loader.js +125 -0
- package/server/dist/core/profile-loader.js.map +1 -0
- package/server/dist/core/project-actions-loader.d.ts +103 -0
- package/server/dist/core/project-actions-loader.d.ts.map +1 -0
- package/server/dist/core/project-actions-loader.js +161 -0
- package/server/dist/core/project-actions-loader.js.map +1 -0
- package/server/dist/core/project-manager.d.ts +110 -0
- package/server/dist/core/project-manager.d.ts.map +1 -0
- package/server/dist/core/project-manager.js +339 -0
- package/server/dist/core/project-manager.js.map +1 -0
- package/server/dist/core/project-registry-io.d.ts +64 -0
- package/server/dist/core/project-registry-io.d.ts.map +1 -0
- package/server/dist/core/project-registry-io.js +194 -0
- package/server/dist/core/project-registry-io.js.map +1 -0
- package/server/dist/core/readiness-probe.d.ts +89 -0
- package/server/dist/core/readiness-probe.d.ts.map +1 -0
- package/server/dist/core/readiness-probe.js +216 -0
- package/server/dist/core/readiness-probe.js.map +1 -0
- package/server/dist/core/run-config-reader.d.ts +35 -0
- package/server/dist/core/run-config-reader.d.ts.map +1 -0
- package/server/dist/core/run-config-reader.js +362 -0
- package/server/dist/core/run-config-reader.js.map +1 -0
- package/server/dist/core/run-data-join.d.ts +60 -0
- package/server/dist/core/run-data-join.d.ts.map +1 -0
- package/server/dist/core/run-data-join.js +264 -0
- package/server/dist/core/run-data-join.js.map +1 -0
- package/server/dist/core/run-data-types.d.ts +126 -0
- package/server/dist/core/run-data-types.d.ts.map +1 -0
- package/server/dist/core/run-data-types.js +25 -0
- package/server/dist/core/run-data-types.js.map +1 -0
- package/server/dist/core/run-loop-state-reader.d.ts +27 -0
- package/server/dist/core/run-loop-state-reader.d.ts.map +1 -0
- package/server/dist/core/run-loop-state-reader.js +79 -0
- package/server/dist/core/run-loop-state-reader.js.map +1 -0
- package/server/dist/core/sdk-sessions-merge.d.ts +60 -0
- package/server/dist/core/sdk-sessions-merge.d.ts.map +1 -0
- package/server/dist/core/sdk-sessions-merge.js +220 -0
- package/server/dist/core/sdk-sessions-merge.js.map +1 -0
- package/server/dist/core/sdk-sessions-store.d.ts +261 -0
- package/server/dist/core/sdk-sessions-store.d.ts.map +1 -0
- package/server/dist/core/sdk-sessions-store.js +315 -0
- package/server/dist/core/sdk-sessions-store.js.map +1 -0
- package/server/dist/core/sdk-sessions-validate.d.ts +9 -0
- package/server/dist/core/sdk-sessions-validate.d.ts.map +1 -0
- package/server/dist/core/sdk-sessions-validate.js +237 -0
- package/server/dist/core/sdk-sessions-validate.js.map +1 -0
- package/server/dist/core/session-jsonl-io.d.ts +35 -0
- package/server/dist/core/session-jsonl-io.d.ts.map +1 -0
- package/server/dist/core/session-jsonl-io.js +128 -0
- package/server/dist/core/session-jsonl-io.js.map +1 -0
- package/server/dist/core/session-parser.d.ts +81 -0
- package/server/dist/core/session-parser.d.ts.map +1 -0
- package/server/dist/core/session-parser.js +168 -0
- package/server/dist/core/session-parser.js.map +1 -0
- package/server/dist/core/session-watcher-debug.d.ts +7 -0
- package/server/dist/core/session-watcher-debug.d.ts.map +1 -0
- package/server/dist/core/session-watcher-debug.js +31 -0
- package/server/dist/core/session-watcher-debug.js.map +1 -0
- package/server/dist/core/session-watcher.d.ts +101 -0
- package/server/dist/core/session-watcher.d.ts.map +1 -0
- package/server/dist/core/session-watcher.js +226 -0
- package/server/dist/core/session-watcher.js.map +1 -0
- package/server/dist/core/shell-quote.d.ts +5 -0
- package/server/dist/core/shell-quote.d.ts.map +1 -0
- package/server/dist/core/shell-quote.js +49 -0
- package/server/dist/core/shell-quote.js.map +1 -0
- package/server/dist/core/task-editability.d.ts +22 -0
- package/server/dist/core/task-editability.d.ts.map +1 -0
- package/server/dist/core/task-editability.js +34 -0
- package/server/dist/core/task-editability.js.map +1 -0
- package/server/dist/core/terminal-prompt-detect.d.ts +7 -0
- package/server/dist/core/terminal-prompt-detect.d.ts.map +1 -0
- package/server/dist/core/terminal-prompt-detect.js +128 -0
- package/server/dist/core/terminal-prompt-detect.js.map +1 -0
- package/server/dist/core/tests-gate.d.ts +23 -0
- package/server/dist/core/tests-gate.d.ts.map +1 -0
- package/server/dist/core/tests-gate.js +92 -0
- package/server/dist/core/tests-gate.js.map +1 -0
- package/server/dist/core/triage-amend.d.ts +33 -0
- package/server/dist/core/triage-amend.d.ts.map +1 -0
- package/server/dist/core/triage-amend.js +109 -0
- package/server/dist/core/triage-amend.js.map +1 -0
- package/server/dist/core/triage-board-read.d.ts +37 -0
- package/server/dist/core/triage-board-read.d.ts.map +1 -0
- package/server/dist/core/triage-board-read.js +148 -0
- package/server/dist/core/triage-board-read.js.map +1 -0
- package/server/dist/core/triage-cli-runner.d.ts +61 -0
- package/server/dist/core/triage-cli-runner.d.ts.map +1 -0
- package/server/dist/core/triage-cli-runner.js +92 -0
- package/server/dist/core/triage-cli-runner.js.map +1 -0
- package/server/dist/core/triage-compose.d.ts +33 -0
- package/server/dist/core/triage-compose.d.ts.map +1 -0
- package/server/dist/core/triage-compose.js +51 -0
- package/server/dist/core/triage-compose.js.map +1 -0
- package/server/dist/core/triage-contract.d.ts +18 -0
- package/server/dist/core/triage-contract.d.ts.map +1 -0
- package/server/dist/core/triage-contract.js +45 -0
- package/server/dist/core/triage-contract.js.map +1 -0
- package/server/dist/core/triage-defer.d.ts +36 -0
- package/server/dist/core/triage-defer.d.ts.map +1 -0
- package/server/dist/core/triage-defer.js +117 -0
- package/server/dist/core/triage-defer.js.map +1 -0
- package/server/dist/core/triage-enrich.d.ts +31 -0
- package/server/dist/core/triage-enrich.d.ts.map +1 -0
- package/server/dist/core/triage-enrich.js +127 -0
- package/server/dist/core/triage-enrich.js.map +1 -0
- package/server/dist/core/triage-lock.d.ts +12 -0
- package/server/dist/core/triage-lock.d.ts.map +1 -0
- package/server/dist/core/triage-lock.js +41 -0
- package/server/dist/core/triage-lock.js.map +1 -0
- package/server/dist/core/triage-origin.d.ts +52 -0
- package/server/dist/core/triage-origin.d.ts.map +1 -0
- package/server/dist/core/triage-origin.js +0 -0
- package/server/dist/core/triage-origin.js.map +1 -0
- package/server/dist/core/triage-paths.d.ts +25 -0
- package/server/dist/core/triage-paths.d.ts.map +1 -0
- package/server/dist/core/triage-paths.js +125 -0
- package/server/dist/core/triage-paths.js.map +1 -0
- package/server/dist/core/triage-raw.d.ts +33 -0
- package/server/dist/core/triage-raw.d.ts.map +1 -0
- package/server/dist/core/triage-raw.js +66 -0
- package/server/dist/core/triage-raw.js.map +1 -0
- package/server/dist/core/triage-store.d.ts +42 -0
- package/server/dist/core/triage-store.d.ts.map +1 -0
- package/server/dist/core/triage-store.js +268 -0
- package/server/dist/core/triage-store.js.map +1 -0
- package/server/dist/core/triage-validation.d.ts +58 -0
- package/server/dist/core/triage-validation.d.ts.map +1 -0
- package/server/dist/core/triage-validation.js +198 -0
- package/server/dist/core/triage-validation.js.map +1 -0
- package/server/dist/core/win32-spawn.d.ts +29 -0
- package/server/dist/core/win32-spawn.d.ts.map +1 -0
- package/server/dist/core/win32-spawn.js +271 -0
- package/server/dist/core/win32-spawn.js.map +1 -0
- package/server/dist/external/__tests__/api-contract-probes.d.ts +49 -0
- package/server/dist/external/__tests__/api-contract-probes.d.ts.map +1 -0
- package/server/dist/external/__tests__/api-contract-probes.js +295 -0
- package/server/dist/external/__tests__/api-contract-probes.js.map +1 -0
- package/server/dist/external/_lead-fields-tag-filter-harness.d.ts +7 -0
- package/server/dist/external/_lead-fields-tag-filter-harness.d.ts.map +1 -0
- package/server/dist/external/_lead-fields-tag-filter-harness.js +41 -0
- package/server/dist/external/_lead-fields-tag-filter-harness.js.map +1 -0
- package/server/dist/external/_routes-edit-fields-harness.d.ts +8 -0
- package/server/dist/external/_routes-edit-fields-harness.d.ts.map +1 -0
- package/server/dist/external/_routes-edit-fields-harness.js +49 -0
- package/server/dist/external/_routes-edit-fields-harness.js.map +1 -0
- package/server/dist/external/_shared/helpers.d.ts +143 -0
- package/server/dist/external/_shared/helpers.d.ts.map +1 -0
- package/server/dist/external/_shared/helpers.js +231 -0
- package/server/dist/external/_shared/helpers.js.map +1 -0
- package/server/dist/external/actions/_helpers.d.ts +15 -0
- package/server/dist/external/actions/_helpers.d.ts.map +1 -0
- package/server/dist/external/actions/_helpers.js +48 -0
- package/server/dist/external/actions/_helpers.js.map +1 -0
- package/server/dist/external/actions/get.d.ts +8 -0
- package/server/dist/external/actions/get.d.ts.map +1 -0
- package/server/dist/external/actions/get.js +96 -0
- package/server/dist/external/actions/get.js.map +1 -0
- package/server/dist/external/actions/routes.d.ts +9 -0
- package/server/dist/external/actions/routes.d.ts.map +1 -0
- package/server/dist/external/actions/routes.js +33 -0
- package/server/dist/external/actions/routes.js.map +1 -0
- package/server/dist/external/actions/stub.d.ts +6 -0
- package/server/dist/external/actions/stub.d.ts.map +1 -0
- package/server/dist/external/actions/stub.js +51 -0
- package/server/dist/external/actions/stub.js.map +1 -0
- package/server/dist/external/actions/upload-delete.d.ts +6 -0
- package/server/dist/external/actions/upload-delete.d.ts.map +1 -0
- package/server/dist/external/actions/upload-delete.js +46 -0
- package/server/dist/external/actions/upload-delete.js.map +1 -0
- package/server/dist/external/actions/upload.d.ts +6 -0
- package/server/dist/external/actions/upload.d.ts.map +1 -0
- package/server/dist/external/actions/upload.js +141 -0
- package/server/dist/external/actions/upload.js.map +1 -0
- package/server/dist/external/compliance/routes.d.ts +9 -0
- package/server/dist/external/compliance/routes.d.ts.map +1 -0
- package/server/dist/external/compliance/routes.js +46 -0
- package/server/dist/external/compliance/routes.js.map +1 -0
- package/server/dist/external/design-review/__tests__/_helpers.d.ts +16 -0
- package/server/dist/external/design-review/__tests__/_helpers.d.ts.map +1 -0
- package/server/dist/external/design-review/__tests__/_helpers.js +92 -0
- package/server/dist/external/design-review/__tests__/_helpers.js.map +1 -0
- package/server/dist/external/design-review/feedback-write.d.ts +7 -0
- package/server/dist/external/design-review/feedback-write.d.ts.map +1 -0
- package/server/dist/external/design-review/feedback-write.js +126 -0
- package/server/dist/external/design-review/feedback-write.js.map +1 -0
- package/server/dist/external/design-review/gate.d.ts +11 -0
- package/server/dist/external/design-review/gate.d.ts.map +1 -0
- package/server/dist/external/design-review/gate.js +39 -0
- package/server/dist/external/design-review/gate.js.map +1 -0
- package/server/dist/external/design-review/routes.d.ts +9 -0
- package/server/dist/external/design-review/routes.d.ts.map +1 -0
- package/server/dist/external/design-review/routes.js +25 -0
- package/server/dist/external/design-review/routes.js.map +1 -0
- package/server/dist/external/design-review/serve.d.ts +10 -0
- package/server/dist/external/design-review/serve.d.ts.map +1 -0
- package/server/dist/external/design-review/serve.js +184 -0
- package/server/dist/external/design-review/serve.js.map +1 -0
- package/server/dist/external/events/routes.d.ts +16 -0
- package/server/dist/external/events/routes.d.ts.map +1 -0
- package/server/dist/external/events/routes.js +46 -0
- package/server/dist/external/events/routes.js.map +1 -0
- package/server/dist/external/file/_helpers.d.ts +62 -0
- package/server/dist/external/file/_helpers.d.ts.map +1 -0
- package/server/dist/external/file/_helpers.js +146 -0
- package/server/dist/external/file/_helpers.js.map +1 -0
- package/server/dist/external/file/routes.d.ts +7 -0
- package/server/dist/external/file/routes.d.ts.map +1 -0
- package/server/dist/external/file/routes.js +122 -0
- package/server/dist/external/file/routes.js.map +1 -0
- package/server/dist/external/file/write.d.ts +20 -0
- package/server/dist/external/file/write.d.ts.map +1 -0
- package/server/dist/external/file/write.js +172 -0
- package/server/dist/external/file/write.js.map +1 -0
- package/server/dist/external/inbox/_cache.d.ts +48 -0
- package/server/dist/external/inbox/_cache.d.ts.map +1 -0
- package/server/dist/external/inbox/_cache.js +46 -0
- package/server/dist/external/inbox/_cache.js.map +1 -0
- package/server/dist/external/inbox/_derive.d.ts +56 -0
- package/server/dist/external/inbox/_derive.d.ts.map +1 -0
- package/server/dist/external/inbox/_derive.js +231 -0
- package/server/dist/external/inbox/_derive.js.map +1 -0
- package/server/dist/external/inbox/routes.d.ts +13 -0
- package/server/dist/external/inbox/routes.d.ts.map +1 -0
- package/server/dist/external/inbox/routes.js +59 -0
- package/server/dist/external/inbox/routes.js.map +1 -0
- package/server/dist/external/launch/_helpers.d.ts +17 -0
- package/server/dist/external/launch/_helpers.d.ts.map +1 -0
- package/server/dist/external/launch/_helpers.js +25 -0
- package/server/dist/external/launch/_helpers.js.map +1 -0
- package/server/dist/external/launch/action-substitution-branch.d.ts +11 -0
- package/server/dist/external/launch/action-substitution-branch.d.ts.map +1 -0
- package/server/dist/external/launch/action-substitution-branch.js +112 -0
- package/server/dist/external/launch/action-substitution-branch.js.map +1 -0
- package/server/dist/external/launch/campaign-branch.d.ts +12 -0
- package/server/dist/external/launch/campaign-branch.d.ts.map +1 -0
- package/server/dist/external/launch/campaign-branch.js +95 -0
- package/server/dist/external/launch/campaign-branch.js.map +1 -0
- package/server/dist/external/launch/campaign-step-branch.d.ts +12 -0
- package/server/dist/external/launch/campaign-step-branch.d.ts.map +1 -0
- package/server/dist/external/launch/campaign-step-branch.js +108 -0
- package/server/dist/external/launch/campaign-step-branch.js.map +1 -0
- package/server/dist/external/launch/legacy-fallback-branch.d.ts +12 -0
- package/server/dist/external/launch/legacy-fallback-branch.d.ts.map +1 -0
- package/server/dist/external/launch/legacy-fallback-branch.js +29 -0
- package/server/dist/external/launch/legacy-fallback-branch.js.map +1 -0
- package/server/dist/external/launch/master-run-branch.d.ts +24 -0
- package/server/dist/external/launch/master-run-branch.d.ts.map +1 -0
- package/server/dist/external/launch/master-run-branch.js +168 -0
- package/server/dist/external/launch/master-run-branch.js.map +1 -0
- package/server/dist/external/launch/parse-body.d.ts +46 -0
- package/server/dist/external/launch/parse-body.d.ts.map +1 -0
- package/server/dist/external/launch/parse-body.js +115 -0
- package/server/dist/external/launch/parse-body.js.map +1 -0
- package/server/dist/external/launch/phase-task-branch.d.ts +18 -0
- package/server/dist/external/launch/phase-task-branch.d.ts.map +1 -0
- package/server/dist/external/launch/phase-task-branch.js +170 -0
- package/server/dist/external/launch/phase-task-branch.js.map +1 -0
- package/server/dist/external/launch/routes.d.ts +23 -0
- package/server/dist/external/launch/routes.d.ts.map +1 -0
- package/server/dist/external/launch/routes.js +198 -0
- package/server/dist/external/launch/routes.js.map +1 -0
- package/server/dist/external/media/_helpers.d.ts +32 -0
- package/server/dist/external/media/_helpers.d.ts.map +1 -0
- package/server/dist/external/media/_helpers.js +77 -0
- package/server/dist/external/media/_helpers.js.map +1 -0
- package/server/dist/external/media/routes.d.ts +7 -0
- package/server/dist/external/media/routes.d.ts.map +1 -0
- package/server/dist/external/media/routes.js +120 -0
- package/server/dist/external/media/routes.js.map +1 -0
- package/server/dist/external/mission-context/facts-slice3.d.ts +22 -0
- package/server/dist/external/mission-context/facts-slice3.d.ts.map +1 -0
- package/server/dist/external/mission-context/facts-slice3.js +143 -0
- package/server/dist/external/mission-context/facts-slice3.js.map +1 -0
- package/server/dist/external/mission-context/facts.d.ts +44 -0
- package/server/dist/external/mission-context/facts.d.ts.map +1 -0
- package/server/dist/external/mission-context/facts.js +109 -0
- package/server/dist/external/mission-context/facts.js.map +1 -0
- package/server/dist/external/mission-context/routes.d.ts +83 -0
- package/server/dist/external/mission-context/routes.d.ts.map +1 -0
- package/server/dist/external/mission-context/routes.js +226 -0
- package/server/dist/external/mission-context/routes.js.map +1 -0
- package/server/dist/external/mission-context/test-harness.d.ts +62 -0
- package/server/dist/external/mission-context/test-harness.d.ts.map +1 -0
- package/server/dist/external/mission-context/test-harness.js +121 -0
- package/server/dist/external/mission-context/test-harness.js.map +1 -0
- package/server/dist/external/mission-context/wire.d.ts +12 -0
- package/server/dist/external/mission-context/wire.d.ts.map +1 -0
- package/server/dist/external/mission-context/wire.js +62 -0
- package/server/dist/external/mission-context/wire.js.map +1 -0
- package/server/dist/external/model-config/routes.d.ts +9 -0
- package/server/dist/external/model-config/routes.d.ts.map +1 -0
- package/server/dist/external/model-config/routes.js +18 -0
- package/server/dist/external/model-config/routes.js.map +1 -0
- package/server/dist/external/org/__tests__/fixtures/lock-race-worker.d.ts +2 -0
- package/server/dist/external/org/__tests__/fixtures/lock-race-worker.d.ts.map +1 -0
- package/server/dist/external/org/__tests__/fixtures/lock-race-worker.js +67 -0
- package/server/dist/external/org/__tests__/fixtures/lock-race-worker.js.map +1 -0
- package/server/dist/external/org/_helpers.d.ts +67 -0
- package/server/dist/external/org/_helpers.d.ts.map +1 -0
- package/server/dist/external/org/_helpers.js +146 -0
- package/server/dist/external/org/_helpers.js.map +1 -0
- package/server/dist/external/org/beat-register-release-audit.d.ts +17 -0
- package/server/dist/external/org/beat-register-release-audit.d.ts.map +1 -0
- package/server/dist/external/org/beat-register-release-audit.js +96 -0
- package/server/dist/external/org/beat-register-release-audit.js.map +1 -0
- package/server/dist/external/org/beat-register-release-core.d.ts +50 -0
- package/server/dist/external/org/beat-register-release-core.d.ts.map +1 -0
- package/server/dist/external/org/beat-register-release-core.js +183 -0
- package/server/dist/external/org/beat-register-release-core.js.map +1 -0
- package/server/dist/external/org/beat-register-release.d.ts +13 -0
- package/server/dist/external/org/beat-register-release.d.ts.map +1 -0
- package/server/dist/external/org/beat-register-release.js +81 -0
- package/server/dist/external/org/beat-register-release.js.map +1 -0
- package/server/dist/external/org/beat-register.d.ts +100 -0
- package/server/dist/external/org/beat-register.d.ts.map +1 -0
- package/server/dist/external/org/beat-register.js +198 -0
- package/server/dist/external/org/beat-register.js.map +1 -0
- package/server/dist/external/org/countersign.d.ts +8 -0
- package/server/dist/external/org/countersign.d.ts.map +1 -0
- package/server/dist/external/org/countersign.js +157 -0
- package/server/dist/external/org/countersign.js.map +1 -0
- package/server/dist/external/org/cron.d.ts +22 -0
- package/server/dist/external/org/cron.d.ts.map +1 -0
- package/server/dist/external/org/cron.js +59 -0
- package/server/dist/external/org/cron.js.map +1 -0
- package/server/dist/external/org/decisions-lock.d.ts +68 -0
- package/server/dist/external/org/decisions-lock.d.ts.map +1 -0
- package/server/dist/external/org/decisions-lock.js +209 -0
- package/server/dist/external/org/decisions-lock.js.map +1 -0
- package/server/dist/external/org/file-read.d.ts +14 -0
- package/server/dist/external/org/file-read.d.ts.map +1 -0
- package/server/dist/external/org/file-read.js +80 -0
- package/server/dist/external/org/file-read.js.map +1 -0
- package/server/dist/external/org/file-write.d.ts +14 -0
- package/server/dist/external/org/file-write.d.ts.map +1 -0
- package/server/dist/external/org/file-write.js +205 -0
- package/server/dist/external/org/file-write.js.map +1 -0
- package/server/dist/external/org/last-run.d.ts +28 -0
- package/server/dist/external/org/last-run.d.ts.map +1 -0
- package/server/dist/external/org/last-run.js +137 -0
- package/server/dist/external/org/last-run.js.map +1 -0
- package/server/dist/external/org/org-chart-lookup.d.ts +16 -0
- package/server/dist/external/org/org-chart-lookup.d.ts.map +1 -0
- package/server/dist/external/org/org-chart-lookup.js +100 -0
- package/server/dist/external/org/org-chart-lookup.js.map +1 -0
- package/server/dist/external/org/org-chart.d.ts +25 -0
- package/server/dist/external/org/org-chart.d.ts.map +1 -0
- package/server/dist/external/org/org-chart.js +110 -0
- package/server/dist/external/org/org-chart.js.map +1 -0
- package/server/dist/external/org/routes.d.ts +12 -0
- package/server/dist/external/org/routes.d.ts.map +1 -0
- package/server/dist/external/org/routes.js +90 -0
- package/server/dist/external/org/routes.js.map +1 -0
- package/server/dist/external/org/usage.d.ts +24 -0
- package/server/dist/external/org/usage.d.ts.map +1 -0
- package/server/dist/external/org/usage.js +110 -0
- package/server/dist/external/org/usage.js.map +1 -0
- package/server/dist/external/pr-status/routes.d.ts +7 -0
- package/server/dist/external/pr-status/routes.d.ts.map +1 -0
- package/server/dist/external/pr-status/routes.js +37 -0
- package/server/dist/external/pr-status/routes.js.map +1 -0
- package/server/dist/external/preview/routes.d.ts +10 -0
- package/server/dist/external/preview/routes.d.ts.map +1 -0
- package/server/dist/external/preview/routes.js +71 -0
- package/server/dist/external/preview/routes.js.map +1 -0
- package/server/dist/external/routes.d.ts +106 -0
- package/server/dist/external/routes.d.ts.map +1 -0
- package/server/dist/external/routes.js +162 -0
- package/server/dist/external/routes.js.map +1 -0
- package/server/dist/external/run-config/routes.d.ts +9 -0
- package/server/dist/external/run-config/routes.d.ts.map +1 -0
- package/server/dist/external/run-config/routes.js +55 -0
- package/server/dist/external/run-config/routes.js.map +1 -0
- package/server/dist/external/runs/routes.d.ts +16 -0
- package/server/dist/external/runs/routes.d.ts.map +1 -0
- package/server/dist/external/runs/routes.js +69 -0
- package/server/dist/external/runs/routes.js.map +1 -0
- package/server/dist/external/tasks/_phase-helpers.d.ts +37 -0
- package/server/dist/external/tasks/_phase-helpers.d.ts.map +1 -0
- package/server/dist/external/tasks/_phase-helpers.js +101 -0
- package/server/dist/external/tasks/_phase-helpers.js.map +1 -0
- package/server/dist/external/tasks/create.d.ts +12 -0
- package/server/dist/external/tasks/create.d.ts.map +1 -0
- package/server/dist/external/tasks/create.js +139 -0
- package/server/dist/external/tasks/create.js.map +1 -0
- package/server/dist/external/tasks/lifecycle.d.ts +12 -0
- package/server/dist/external/tasks/lifecycle.d.ts.map +1 -0
- package/server/dist/external/tasks/lifecycle.js +231 -0
- package/server/dist/external/tasks/lifecycle.js.map +1 -0
- package/server/dist/external/tasks/list-get.d.ts +11 -0
- package/server/dist/external/tasks/list-get.d.ts.map +1 -0
- package/server/dist/external/tasks/list-get.js +50 -0
- package/server/dist/external/tasks/list-get.js.map +1 -0
- package/server/dist/external/tasks/patch.d.ts +12 -0
- package/server/dist/external/tasks/patch.d.ts.map +1 -0
- package/server/dist/external/tasks/patch.js +192 -0
- package/server/dist/external/tasks/patch.js.map +1 -0
- package/server/dist/external/tasks/routes.d.ts +18 -0
- package/server/dist/external/tasks/routes.d.ts.map +1 -0
- package/server/dist/external/tasks/routes.js +49 -0
- package/server/dist/external/tasks/routes.js.map +1 -0
- package/server/dist/external/transcript/routes.d.ts +12 -0
- package/server/dist/external/transcript/routes.d.ts.map +1 -0
- package/server/dist/external/transcript/routes.js +160 -0
- package/server/dist/external/transcript/routes.js.map +1 -0
- package/server/dist/external/tree/routes.d.ts +7 -0
- package/server/dist/external/tree/routes.d.ts.map +1 -0
- package/server/dist/external/tree/routes.js +96 -0
- package/server/dist/external/tree/routes.js.map +1 -0
- package/server/dist/index.d.ts +3 -0
- package/server/dist/index.d.ts.map +1 -0
- package/server/dist/index.js +774 -0
- package/server/dist/index.js.map +1 -0
- package/server/dist/lib/bind-errors.d.ts +18 -0
- package/server/dist/lib/bind-errors.d.ts.map +1 -0
- package/server/dist/lib/bind-errors.js +43 -0
- package/server/dist/lib/bind-errors.js.map +1 -0
- package/server/dist/lib/resolveHonoHost.d.ts +3 -0
- package/server/dist/lib/resolveHonoHost.d.ts.map +1 -0
- package/server/dist/lib/resolveHonoHost.js +34 -0
- package/server/dist/lib/resolveHonoHost.js.map +1 -0
- package/server/dist/lib/resolveNetworkProfile.d.ts +28 -0
- package/server/dist/lib/resolveNetworkProfile.d.ts.map +1 -0
- package/server/dist/lib/resolveNetworkProfile.js +42 -0
- package/server/dist/lib/resolveNetworkProfile.js.map +1 -0
- package/server/dist/lib/resolveTailscaleIp.d.ts +26 -0
- package/server/dist/lib/resolveTailscaleIp.d.ts.map +1 -0
- package/server/dist/lib/resolveTailscaleIp.js +61 -0
- package/server/dist/lib/resolveTailscaleIp.js.map +1 -0
- package/server/dist/lib/resolveTrustedOrigins.d.ts +9 -0
- package/server/dist/lib/resolveTrustedOrigins.d.ts.map +1 -0
- package/server/dist/lib/resolveTrustedOrigins.js +154 -0
- package/server/dist/lib/resolveTrustedOrigins.js.map +1 -0
- package/server/dist/middleware/error-handler.d.ts +8 -0
- package/server/dist/middleware/error-handler.d.ts.map +1 -0
- package/server/dist/middleware/error-handler.js +75 -0
- package/server/dist/middleware/error-handler.js.map +1 -0
- package/server/dist/middleware/logger.d.ts +3 -0
- package/server/dist/middleware/logger.d.ts.map +1 -0
- package/server/dist/middleware/logger.js +13 -0
- package/server/dist/middleware/logger.js.map +1 -0
- package/server/dist/routes/_triage-api-harness.d.ts +16 -0
- package/server/dist/routes/_triage-api-harness.d.ts.map +1 -0
- package/server/dist/routes/_triage-api-harness.js +89 -0
- package/server/dist/routes/_triage-api-harness.js.map +1 -0
- package/server/dist/routes/campaigns.d.ts +26 -0
- package/server/dist/routes/campaigns.d.ts.map +1 -0
- package/server/dist/routes/campaigns.js +237 -0
- package/server/dist/routes/campaigns.js.map +1 -0
- package/server/dist/routes/diagnostics.d.ts +84 -0
- package/server/dist/routes/diagnostics.d.ts.map +1 -0
- package/server/dist/routes/diagnostics.js +143 -0
- package/server/dist/routes/diagnostics.js.map +1 -0
- package/server/dist/routes/grade.d.ts +13 -0
- package/server/dist/routes/grade.d.ts.map +1 -0
- package/server/dist/routes/grade.js +45 -0
- package/server/dist/routes/grade.js.map +1 -0
- package/server/dist/routes/profiles.d.ts +25 -0
- package/server/dist/routes/profiles.d.ts.map +1 -0
- package/server/dist/routes/profiles.js +58 -0
- package/server/dist/routes/profiles.js.map +1 -0
- package/server/dist/routes/projects.d.ts +20 -0
- package/server/dist/routes/projects.d.ts.map +1 -0
- package/server/dist/routes/projects.js +105 -0
- package/server/dist/routes/projects.js.map +1 -0
- package/server/dist/routes/readiness.d.ts +11 -0
- package/server/dist/routes/readiness.d.ts.map +1 -0
- package/server/dist/routes/readiness.js +52 -0
- package/server/dist/routes/readiness.js.map +1 -0
- package/server/dist/routes/settings.d.ts +13 -0
- package/server/dist/routes/settings.d.ts.map +1 -0
- package/server/dist/routes/settings.js +69 -0
- package/server/dist/routes/settings.js.map +1 -0
- package/server/dist/routes/terminal-appearance.d.ts +7 -0
- package/server/dist/routes/terminal-appearance.d.ts.map +1 -0
- package/server/dist/routes/terminal-appearance.js +28 -0
- package/server/dist/routes/terminal-appearance.js.map +1 -0
- package/server/dist/routes/triage.d.ts +35 -0
- package/server/dist/routes/triage.d.ts.map +1 -0
- package/server/dist/routes/triage.js +496 -0
- package/server/dist/routes/triage.js.map +1 -0
- package/server/dist/terminal/backpressure-telemetry.d.ts +86 -0
- package/server/dist/terminal/backpressure-telemetry.d.ts.map +1 -0
- package/server/dist/terminal/backpressure-telemetry.js +158 -0
- package/server/dist/terminal/backpressure-telemetry.js.map +1 -0
- package/server/dist/terminal/boot-wipe.d.ts +47 -0
- package/server/dist/terminal/boot-wipe.d.ts.map +1 -0
- package/server/dist/terminal/boot-wipe.js +122 -0
- package/server/dist/terminal/boot-wipe.js.map +1 -0
- package/server/dist/terminal/headless-mirror.d.ts +139 -0
- package/server/dist/terminal/headless-mirror.d.ts.map +1 -0
- package/server/dist/terminal/headless-mirror.js +389 -0
- package/server/dist/terminal/headless-mirror.js.map +1 -0
- package/server/dist/terminal/headless-probe.d.ts +26 -0
- package/server/dist/terminal/headless-probe.d.ts.map +1 -0
- package/server/dist/terminal/headless-probe.js +99 -0
- package/server/dist/terminal/headless-probe.js.map +1 -0
- package/server/dist/terminal/idle-reaper.d.ts +47 -0
- package/server/dist/terminal/idle-reaper.d.ts.map +1 -0
- package/server/dist/terminal/idle-reaper.js +95 -0
- package/server/dist/terminal/idle-reaper.js.map +1 -0
- package/server/dist/terminal/image-paste.d.ts +60 -0
- package/server/dist/terminal/image-paste.d.ts.map +1 -0
- package/server/dist/terminal/image-paste.js +260 -0
- package/server/dist/terminal/image-paste.js.map +1 -0
- package/server/dist/terminal/pty-manager.d.ts +452 -0
- package/server/dist/terminal/pty-manager.d.ts.map +1 -0
- package/server/dist/terminal/pty-manager.js +1014 -0
- package/server/dist/terminal/pty-manager.js.map +1 -0
- package/server/dist/terminal/replay-snapshot.d.ts +25 -0
- package/server/dist/terminal/replay-snapshot.d.ts.map +1 -0
- package/server/dist/terminal/replay-snapshot.js +124 -0
- package/server/dist/terminal/replay-snapshot.js.map +1 -0
- package/server/dist/terminal/resync-gate.d.ts +20 -0
- package/server/dist/terminal/resync-gate.d.ts.map +1 -0
- package/server/dist/terminal/resync-gate.js +58 -0
- package/server/dist/terminal/resync-gate.js.map +1 -0
- package/server/dist/terminal/routes.d.ts +67 -0
- package/server/dist/terminal/routes.d.ts.map +1 -0
- package/server/dist/terminal/routes.js +455 -0
- package/server/dist/terminal/routes.js.map +1 -0
- package/server/dist/terminal/scrollback-store.d.ts +120 -0
- package/server/dist/terminal/scrollback-store.d.ts.map +1 -0
- package/server/dist/terminal/scrollback-store.js +572 -0
- package/server/dist/terminal/scrollback-store.js.map +1 -0
- package/server/dist/terminal/snapshot-preserve.d.ts +63 -0
- package/server/dist/terminal/snapshot-preserve.d.ts.map +1 -0
- package/server/dist/terminal/snapshot-preserve.js +116 -0
- package/server/dist/terminal/snapshot-preserve.js.map +1 -0
- package/server/dist/terminal/snapshot-store.d.ts +147 -0
- package/server/dist/terminal/snapshot-store.d.ts.map +1 -0
- package/server/dist/terminal/snapshot-store.js +439 -0
- package/server/dist/terminal/snapshot-store.js.map +1 -0
- package/server/dist/terminal/snapshot-tmp-sweep.d.ts +48 -0
- package/server/dist/terminal/snapshot-tmp-sweep.d.ts.map +1 -0
- package/server/dist/terminal/snapshot-tmp-sweep.js +141 -0
- package/server/dist/terminal/snapshot-tmp-sweep.js.map +1 -0
- package/server/dist/terminal/spawn-env.d.ts +46 -0
- package/server/dist/terminal/spawn-env.d.ts.map +1 -0
- package/server/dist/terminal/spawn-env.js +232 -0
- package/server/dist/terminal/spawn-env.js.map +1 -0
- package/server/dist/terminal/terminal-reset.d.ts +31 -0
- package/server/dist/terminal/terminal-reset.d.ts.map +1 -0
- package/server/dist/terminal/terminal-reset.js +43 -0
- package/server/dist/terminal/terminal-reset.js.map +1 -0
- package/server/dist/terminal/ws-heartbeat.d.ts +78 -0
- package/server/dist/terminal/ws-heartbeat.d.ts.map +1 -0
- package/server/dist/terminal/ws-heartbeat.js +164 -0
- package/server/dist/terminal/ws-heartbeat.js.map +1 -0
- package/server/dist/terminal/ws-upgrade-handler.d.ts +96 -0
- package/server/dist/terminal/ws-upgrade-handler.d.ts.map +1 -0
- package/server/dist/terminal/ws-upgrade-handler.fixtures.d.ts +46 -0
- package/server/dist/terminal/ws-upgrade-handler.fixtures.d.ts.map +1 -0
- package/server/dist/terminal/ws-upgrade-handler.fixtures.js +126 -0
- package/server/dist/terminal/ws-upgrade-handler.fixtures.js.map +1 -0
- package/server/dist/terminal/ws-upgrade-handler.js +518 -0
- package/server/dist/terminal/ws-upgrade-handler.js.map +1 -0
- package/server/dist/types/action-schema.d.ts +75 -0
- package/server/dist/types/action-schema.d.ts.map +1 -0
- package/server/dist/types/action-schema.js +32 -0
- package/server/dist/types/action-schema.js.map +1 -0
- package/server/dist/types/project.d.ts +72 -0
- package/server/dist/types/project.d.ts.map +1 -0
- package/server/dist/types/project.js +16 -0
- package/server/dist/types/project.js.map +1 -0
- package/server/dist/types/run-config-v2.d.ts +172 -0
- package/server/dist/types/run-config-v2.d.ts.map +1 -0
- package/server/dist/types/run-config-v2.js +169 -0
- package/server/dist/types/run-config-v2.js.map +1 -0
- package/server/dist/types/settings.d.ts +25 -0
- package/server/dist/types/settings.d.ts.map +1 -0
- package/server/dist/types/settings.js +12 -0
- package/server/dist/types/settings.js.map +1 -0
- package/server/dist/types/task.d.ts +55 -0
- package/server/dist/types/task.d.ts.map +1 -0
- package/server/dist/types/task.js +13 -0
- package/server/dist/types/task.js.map +1 -0
- package/server/dist/types/triage.d.ts +135 -0
- package/server/dist/types/triage.d.ts.map +1 -0
- package/server/dist/types/triage.js +15 -0
- package/server/dist/types/triage.js.map +1 -0
- package/server/package.json +43 -0
- package/server/profiles/PROFILE_SCHEMA_VERSION +1 -0
- package/server/profiles/README.md +27 -0
- package/server/profiles/python-plugin-monorepo.json +35 -0
- package/server/profiles/supabase-nextjs.json +253 -0
- package/server/profiles/vite-hono.json +92 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* core/mission-context/scenario.ts — the §4 ORDERED decision table.
|
|
3
|
+
*
|
|
4
|
+
* First match wins, in this exact order. The ordering is the fix for
|
|
5
|
+
* external-review GPT #9: a title alone is not evidence, and a leftover
|
|
6
|
+
* pointer must not out-rank a project that is genuinely in custom-actions mode.
|
|
7
|
+
*
|
|
8
|
+
* 1. custom_actions — a VALIDATED custom-actions project → HIDE the Mission
|
|
9
|
+
* tab entirely (only Files & Terminal).
|
|
10
|
+
* 2. iterate — a VALIDATED `iterate_active` pointer, or the persisted
|
|
11
|
+
* association once that pointer has been pruned.
|
|
12
|
+
* 3. pipeline — phaseTaskId + runId (run-config v2 phase_tasks).
|
|
13
|
+
* 4. campaign — a `campaign:<slug>` title AND a real campaign record.
|
|
14
|
+
* 5. iterate — a CORROBORATED `Run-ID` footer in this session's own
|
|
15
|
+
* transcript (run-id-recovery.ts). Last resort, and deliberately ranked
|
|
16
|
+
* below pipeline/campaign — see `recoverTranscriptRunId`.
|
|
17
|
+
* 6. plain — everything else (scenarios 1/4): narration, no rail.
|
|
18
|
+
*
|
|
19
|
+
* Two DECIDED asymmetries, both "fail toward showing the tab":
|
|
20
|
+
* - A MALFORMED actions file or a DUAL-MODE project (custom actions sitting
|
|
21
|
+
* alongside the builtin SDLC actions) falls back to SHOWING Mission.
|
|
22
|
+
* Hiding a useful tab because of a stale or ambiguous file is the worse
|
|
23
|
+
* failure (Review-2 GPT #12).
|
|
24
|
+
* - A `campaign:` TITLE without a matching record is NOT a campaign. Titles
|
|
25
|
+
* are user-editable; a record is evidence.
|
|
26
|
+
*/
|
|
27
|
+
/** The four builtin action ids. Anything else is a user-defined custom action. */
|
|
28
|
+
export const BUILTIN_ACTION_IDS = new Set([
|
|
29
|
+
"new-task",
|
|
30
|
+
"new-pipeline",
|
|
31
|
+
"new-iterate",
|
|
32
|
+
"new-plain",
|
|
33
|
+
]);
|
|
34
|
+
/**
|
|
35
|
+
* Is this project VALIDLY in custom-actions mode?
|
|
36
|
+
*
|
|
37
|
+
* Every clause must hold — the conjunction is the point. Presence of an
|
|
38
|
+
* actions.json is explicitly NOT sufficient (§4 precedence 1).
|
|
39
|
+
*
|
|
40
|
+
* S3 — the `actionIds: readonly string[]` type is a CLAIM, not a guarantee: the
|
|
41
|
+
* values cross a JSON boundary (`.shipwright-webui/actions.json`) where nothing
|
|
42
|
+
* enforces it. MEASURED on the real loader + a real temp project (S3 probe):
|
|
43
|
+
* `{"schemaVersion":1,"actions":[{"foo":"bar"}]}` parses fine, the loader reports
|
|
44
|
+
* `fromUser: true` with ZERO diagnostics because `JSON.parse` succeeded and
|
|
45
|
+
* `checkContractVersion` only WARNS, and `facts.ts` maps `a.id` to `undefined`.
|
|
46
|
+
* That produced a one-element id list matching no builtin — and this function
|
|
47
|
+
* returned true, HIDING the Mission tab for a project whose actions file is
|
|
48
|
+
* simply the wrong shape. Malformed and truncated files were already safe (they
|
|
49
|
+
* throw, so the loader falls back to the bundled default); valid-JSON-wrong-shape
|
|
50
|
+
* was the hole between "parses" and "means anything".
|
|
51
|
+
*
|
|
52
|
+
* The asymmetry is deliberate and load-bearing: hiding a whole tab is
|
|
53
|
+
* irreversible from the user's side and gives no error and no cause, so EVERY
|
|
54
|
+
* ambiguous input must resolve to SHOWING (CONTRACT §4.1, Review-2 GPT #12).
|
|
55
|
+
*/
|
|
56
|
+
export function isValidatedCustomActions(inputs) {
|
|
57
|
+
const a = inputs.actions;
|
|
58
|
+
if (!a)
|
|
59
|
+
return false;
|
|
60
|
+
if (!a.fromUser)
|
|
61
|
+
return false; // bundled default → an ordinary SDLC project
|
|
62
|
+
if (a.hasDiagnostics)
|
|
63
|
+
return false; // malformed / partially parsed → ambiguous
|
|
64
|
+
if (!Array.isArray(a.actionIds))
|
|
65
|
+
return false; // not even a list → ambiguous
|
|
66
|
+
if (a.actionIds.length === 0)
|
|
67
|
+
return false; // nothing resolved → ambiguous
|
|
68
|
+
// A file whose entries carry no usable id is the wrong SHAPE, not a catalog of
|
|
69
|
+
// custom actions. We cannot tell what it declares, so we must not act on it.
|
|
70
|
+
if (!a.actionIds.every((id) => typeof id === "string" && id.length > 0))
|
|
71
|
+
return false;
|
|
72
|
+
// Dual-mode: a builtin SDLC action survives alongside the custom ones.
|
|
73
|
+
if (a.actionIds.some((id) => BUILTIN_ACTION_IDS.has(id)))
|
|
74
|
+
return false;
|
|
75
|
+
// ONLY a definitively ABSENT run-config permits the hide. `ok` means the
|
|
76
|
+
// project runs the pipeline too (dual mode); `unreadable` means we could not
|
|
77
|
+
// find out, and "we could not read it" is not "it is not there" — the same
|
|
78
|
+
// rule the actions catalog above already follows, where every read failure
|
|
79
|
+
// short-circuits to false.
|
|
80
|
+
if (inputs.runConfigStatus !== "missing")
|
|
81
|
+
return false;
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
export function detectScenario(inputs) {
|
|
85
|
+
const base = { runId: null, runIdSource: null, pointerInvalidReason: null };
|
|
86
|
+
// 1 — custom-actions wins over a leftover pointer, but ONLY when validated.
|
|
87
|
+
if (isValidatedCustomActions(inputs)) {
|
|
88
|
+
return { ...base, scenario: "custom_actions", missionTabVisible: false };
|
|
89
|
+
}
|
|
90
|
+
// 2 — a validated iterate pointer.
|
|
91
|
+
if (inputs.pointer.status === "ok") {
|
|
92
|
+
return {
|
|
93
|
+
scenario: "iterate",
|
|
94
|
+
missionTabVisible: true,
|
|
95
|
+
runId: inputs.pointer.pointer.runId,
|
|
96
|
+
runIdSource: "pointer",
|
|
97
|
+
pointerInvalidReason: null,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// An INVALID pointer is remembered so the artifacts can say `unavailable`
|
|
101
|
+
// honestly — but it does NOT make this an iterate session. Fall through.
|
|
102
|
+
const pointerInvalidReason = inputs.pointer.status === "invalid" ? inputs.pointer.reason : null;
|
|
103
|
+
// 2b — the pointer is GONE (pruned at Finalize) but this task was validly
|
|
104
|
+
// observed running an iterate. The association is server-written and
|
|
105
|
+
// server-trusted, so it identifies the run when the bridge no longer can.
|
|
106
|
+
// Deliberately ranked BELOW a live pointer (fresher, carries the worktree)
|
|
107
|
+
// and BELOW custom-actions, but ABOVE pipeline/campaign — a task that ran an
|
|
108
|
+
// iterate is an iterate, whatever else it later looks like.
|
|
109
|
+
//
|
|
110
|
+
// An INVALID pointer does NOT get this fallback: a pointer that failed
|
|
111
|
+
// validation is a signal something is wrong, and quietly resolving via a
|
|
112
|
+
// stored id would mask it.
|
|
113
|
+
if (inputs.pointer.status === "absent" && inputs.association?.runId) {
|
|
114
|
+
return {
|
|
115
|
+
scenario: "iterate",
|
|
116
|
+
missionTabVisible: true,
|
|
117
|
+
runId: inputs.association.runId,
|
|
118
|
+
runIdSource: "association",
|
|
119
|
+
pointerInvalidReason: null,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// 3 — pipeline phase task. Behavior unchanged until its native slice.
|
|
123
|
+
if (inputs.phaseTaskId && inputs.taskRunId) {
|
|
124
|
+
return { ...base, scenario: "pipeline", missionTabVisible: true, pointerInvalidReason };
|
|
125
|
+
}
|
|
126
|
+
// 4 — campaign, only with a real record behind the title.
|
|
127
|
+
if (inputs.campaignSlug && inputs.hasCampaignRecord) {
|
|
128
|
+
return { ...base, scenario: "campaign", missionTabVisible: true, pointerInvalidReason };
|
|
129
|
+
}
|
|
130
|
+
// 5 — the session's own commit footer, corroborated by this project's records.
|
|
131
|
+
// Same asymmetry as 2b: an INVALID pointer gets no fallback, because a pointer
|
|
132
|
+
// that failed validation is a signal something is wrong and quietly resolving
|
|
133
|
+
// the run another way would mask it.
|
|
134
|
+
//
|
|
135
|
+
// THIS is where the transcript is finally read — nowhere earlier. Rules 1-4
|
|
136
|
+
// have all missed by the time control reaches this line, so the scan is paid
|
|
137
|
+
// by exactly the sessions whose identity depends on it.
|
|
138
|
+
const transcriptRunId = inputs.pointer.status === "absent" ? (inputs.recoverTranscriptRunId?.() ?? null) : null;
|
|
139
|
+
if (transcriptRunId) {
|
|
140
|
+
return {
|
|
141
|
+
scenario: "iterate",
|
|
142
|
+
missionTabVisible: true,
|
|
143
|
+
runId: transcriptRunId,
|
|
144
|
+
runIdSource: "transcript",
|
|
145
|
+
pointerInvalidReason: null,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
// 6 — plain / pure.
|
|
149
|
+
return { ...base, scenario: "plain", missionTabVisible: true, pointerInvalidReason };
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=scenario.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario.js","sourceRoot":"","sources":["../../../src/core/mission-context/scenario.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { EventLookup } from "./iterate-record.js";
|
|
2
|
+
import type { DecisionsArtifact, ReviewArtifact, TestsArtifact } from "./types-slice2.js";
|
|
3
|
+
import { type GitRunner } from "./worktree-roots.js";
|
|
4
|
+
/**
|
|
5
|
+
* Every file the Slice-2 artifacts depend on, for `computeSourceRev`.
|
|
6
|
+
*
|
|
7
|
+
* The run's COMMIT is deliberately absent: a sha is immutable, so the diff it
|
|
8
|
+
* produces cannot change. The files below can and do.
|
|
9
|
+
*/
|
|
10
|
+
export declare function slice2RevPaths(projectRoot: string, runId: string): string[];
|
|
11
|
+
export interface Slice2Input {
|
|
12
|
+
projectRoot: string;
|
|
13
|
+
runId: string;
|
|
14
|
+
events: EventLookup;
|
|
15
|
+
/** The run's recorded commit sha, when it recorded one. */
|
|
16
|
+
commit: string | null;
|
|
17
|
+
git?: GitRunner;
|
|
18
|
+
}
|
|
19
|
+
export interface Slice2Result {
|
|
20
|
+
/** Tests · Review · Decisions, in CONTRACT §6 order. */
|
|
21
|
+
artifacts: [TestsArtifact, ReviewArtifact, DecisionsArtifact];
|
|
22
|
+
/**
|
|
23
|
+
* False when the response must NOT be cached.
|
|
24
|
+
*
|
|
25
|
+
* git's answer is not a statted file, so it cannot participate in
|
|
26
|
+
* `sourceRev`. A TRANSIENT git failure (index.lock, a GC race, a briefly
|
|
27
|
+
* unreachable object) would therefore pin Tests at `unavailable` until some
|
|
28
|
+
* unrelated source file happened to change. It degrades toward a visible
|
|
29
|
+
* "currently unavailable" rather than a false "no tests", so this is
|
|
30
|
+
* staleness and not a safety break — but it is trivially avoidable
|
|
31
|
+
* (internal code review, FIX-IF-CHEAP).
|
|
32
|
+
*
|
|
33
|
+
* `bad_commit` deliberately stays CACHEABLE: "this run recorded no commit" is
|
|
34
|
+
* a stable fact about the run, not a transient fault.
|
|
35
|
+
*/
|
|
36
|
+
cacheable: boolean;
|
|
37
|
+
}
|
|
38
|
+
/** Tests · Review · Decisions, in CONTRACT §6 order. */
|
|
39
|
+
export declare function buildSlice2Artifacts(input: Slice2Input): Promise<Slice2Result>;
|
|
40
|
+
//# sourceMappingURL=slice2-sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slice2-sources.d.ts","sourceRoot":"","sources":["../../../src/core/mission-context/slice2-sources.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAiB3E;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,SAAS,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAC9D;;;;;;;;;;;;;OAaG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wDAAwD;AACxD,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA6BpF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* core/mission-context/slice2-sources.ts — one entry point that reads the three
|
|
3
|
+
* Slice-2 sources and returns their descriptors
|
|
4
|
+
* (campaign 2026-07-18-mission-artifacts).
|
|
5
|
+
*
|
|
6
|
+
* Exists so `resolver.ts` grows by a handful of lines rather than by three
|
|
7
|
+
* source reads: that file sits at the 300-LOC ceiling and this slice must not
|
|
8
|
+
* ratchet it.
|
|
9
|
+
*
|
|
10
|
+
* `slice2RevPaths` is the OTHER half of this module and it is not optional
|
|
11
|
+
* bookkeeping — it is the fix for the exact bug S1's review caught. The resolver
|
|
12
|
+
* caches on a fingerprint of its source files, so any input NOT listed in the
|
|
13
|
+
* rev is frozen at whatever it was when the entry was first built. A review
|
|
14
|
+
* marker written minutes after the run finished, or a regenerated traceability
|
|
15
|
+
* manifest, would never appear. Every file read below is therefore listed there,
|
|
16
|
+
* including the ones that do not exist yet (they fingerprint as `absent`, so
|
|
17
|
+
* their later CREATION changes the rev and invalidates the entry).
|
|
18
|
+
*/
|
|
19
|
+
import { buildDecisionsArtifact } from "./artifacts-decisions.js";
|
|
20
|
+
import { buildReviewArtifact } from "./artifacts-slice2.js";
|
|
21
|
+
import { buildTestsArtifact } from "./artifacts-tests.js";
|
|
22
|
+
import { decisionDropsDir, dropFilePaths } from "./decision-drops.js";
|
|
23
|
+
import { readRunDecisionRecord, decisionLogPath } from "./decisions.js";
|
|
24
|
+
import { readReviewState, reviewStatePaths } from "./review-state.js";
|
|
25
|
+
import { readChangedTestFiles } from "./tests-diff.js";
|
|
26
|
+
import { readTraceabilityIndex, traceabilityPath } from "./traceability.js";
|
|
27
|
+
import { readTestEvidence, testEvidencePath } from "./test-evidence.js";
|
|
28
|
+
import { defaultGit } from "./worktree-roots.js";
|
|
29
|
+
/**
|
|
30
|
+
* Every file the Slice-2 artifacts depend on, for `computeSourceRev`.
|
|
31
|
+
*
|
|
32
|
+
* The run's COMMIT is deliberately absent: a sha is immutable, so the diff it
|
|
33
|
+
* produces cannot change. The files below can and do.
|
|
34
|
+
*/
|
|
35
|
+
export function slice2RevPaths(projectRoot, runId) {
|
|
36
|
+
return [
|
|
37
|
+
traceabilityPath(projectRoot),
|
|
38
|
+
decisionLogPath(projectRoot),
|
|
39
|
+
// The drops DIRECTORY, present or not. Registering it while it does not yet
|
|
40
|
+
// exist is the load-bearing half: it fingerprints `absent`, so the moment an
|
|
41
|
+
// iterate's F3 CREATES it the rev changes and the cache lets go. Omitting it
|
|
42
|
+
// would rebuild the exact bug S1 shipped — a cache that could never refresh
|
|
43
|
+
// because its input was outside the rev.
|
|
44
|
+
decisionDropsDir(projectRoot),
|
|
45
|
+
// …and each matching drop FILE. A directory's mtime moves when an entry is
|
|
46
|
+
// added or removed, but NOT when a file's content is rewritten, so the
|
|
47
|
+
// directory alone would freeze an edited drop.
|
|
48
|
+
...dropFilePaths(projectRoot, runId),
|
|
49
|
+
...reviewStatePaths(projectRoot, runId),
|
|
50
|
+
testEvidencePath(projectRoot, runId),
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
/** Tests · Review · Decisions, in CONTRACT §6 order. */
|
|
54
|
+
export async function buildSlice2Artifacts(input) {
|
|
55
|
+
const { projectRoot, runId, events, commit } = input;
|
|
56
|
+
const git = input.git ?? defaultGit;
|
|
57
|
+
// Only diff once the run actually completed — a mid-run git call is waste,
|
|
58
|
+
// and `buildTestsArtifact` reports `not_yet_created` for that case anyway.
|
|
59
|
+
const diff = events.status === "found"
|
|
60
|
+
? await readChangedTestFiles(projectRoot, commit, git)
|
|
61
|
+
: { status: "unavailable", reason: "bad_commit" };
|
|
62
|
+
// The manifest is only needed to ENRICH real diff rows, so skip the 0.9 MB
|
|
63
|
+
// read entirely when there are none.
|
|
64
|
+
const needsManifest = diff.status === "ok" && diff.files.length > 0;
|
|
65
|
+
const index = needsManifest
|
|
66
|
+
? readTraceabilityIndex(projectRoot)
|
|
67
|
+
: { status: "unavailable", reason: "missing" };
|
|
68
|
+
return {
|
|
69
|
+
artifacts: [
|
|
70
|
+
buildTestsArtifact({ events, diff, index, evidence: readTestEvidence(projectRoot, runId) }),
|
|
71
|
+
buildReviewArtifact(readReviewState(projectRoot, runId)),
|
|
72
|
+
// drops ∪ decision_log, deduplicated by run_id (the log wins). A run's ADR
|
|
73
|
+
// exists ONLY as a drop between its F3 and the next release aggregation,
|
|
74
|
+
// which on this repo is the state of every unreleased run.
|
|
75
|
+
buildDecisionsArtifact(readRunDecisionRecord(projectRoot, runId), events),
|
|
76
|
+
],
|
|
77
|
+
cacheable: !(diff.status === "unavailable" && diff.reason === "git_failed"),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=slice2-sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slice2-sources.js","sourceRoot":"","sources":["../../../src/core/mission-context/slice2-sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAkB,MAAM,qBAAqB,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,KAAa;IAC/D,OAAO;QACL,gBAAgB,CAAC,WAAW,CAAC;QAC7B,eAAe,CAAC,WAAW,CAAC;QAC5B,4EAA4E;QAC5E,6EAA6E;QAC7E,6EAA6E;QAC7E,4EAA4E;QAC5E,yCAAyC;QACzC,gBAAgB,CAAC,WAAW,CAAC;QAC7B,2EAA2E;QAC3E,uEAAuE;QACvE,+CAA+C;QAC/C,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC;QACpC,GAAG,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC;QACvC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC;KACrC,CAAC;AACJ,CAAC;AA+BD,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAkB;IAC3D,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACrD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,UAAU,CAAC;IAEpC,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,KAAK,OAAO;QACvB,CAAC,CAAC,MAAM,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC;QACtD,CAAC,CAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAY,CAAC;IAEjE,2EAA2E;IAC3E,qCAAqC;IACrC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,aAAa;QACzB,CAAC,CAAC,qBAAqB,CAAC,WAAW,CAAC;QACpC,CAAC,CAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAY,CAAC;IAE5D,OAAO;QACL,SAAS,EAAE;YACT,kBAAkB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3F,mBAAmB,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACxD,2EAA2E;YAC3E,yEAAyE;YACzE,2DAA2D;YAC3D,sBAAsB,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC;SAC1E;QACD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC;KAC5E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EventLookup } from "./iterate-record.js";
|
|
2
|
+
import type { TraceabilityIndex } from "./traceability.js";
|
|
3
|
+
import type { ReviewRow, TestFrRef } from "./types-slice2.js";
|
|
4
|
+
/** A completed run that recorded a commit — the post-Finalize happy path. */
|
|
5
|
+
export declare const FOUND: EventLookup;
|
|
6
|
+
/** The log is fine; this run is simply not in it yet (the normal mid-run state). */
|
|
7
|
+
export declare const ABSENT: EventLookup;
|
|
8
|
+
/** The log itself could not be read — an integrity fault, not an absence. */
|
|
9
|
+
export declare const UNREADABLE: EventLookup;
|
|
10
|
+
export declare const NO_INDEX: TraceabilityIndex;
|
|
11
|
+
export declare function indexWith(entries: Record<string, {
|
|
12
|
+
layers: string[];
|
|
13
|
+
frs: TestFrRef[];
|
|
14
|
+
}>): TraceabilityIndex;
|
|
15
|
+
/** A review row defaulting to `unavailable` — override only what a case pins. */
|
|
16
|
+
export declare function reviewRow(over: Partial<ReviewRow> & Pick<ReviewRow, "reviewType">): ReviewRow;
|
|
17
|
+
//# sourceMappingURL=slice2-test-fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slice2-test-fixtures.d.ts","sourceRoot":"","sources":["../../../src/core/mission-context/slice2-test-fixtures.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9D,6EAA6E;AAC7E,eAAO,MAAM,KAAK,EAAE,WAqBnB,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,MAAM,EAAE,WAA8C,CAAC;AAEpE,6EAA6E;AAC7E,eAAO,MAAM,UAAU,EAAE,WAAuC,CAAC;AAEjE,eAAO,MAAM,QAAQ,EAAE,iBAAgE,CAAC;AAExF,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,GAC9D,iBAAiB,CAOnB;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CACvB,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,GACvD,SAAS,CAcX"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* slice2-test-fixtures.ts — shared fixtures for the Slice-2 artifact suites.
|
|
3
|
+
*
|
|
4
|
+
* Test-only helper (sibling of `external/mission-context/test-harness.ts`).
|
|
5
|
+
* Extracted when the combined suite crossed the 300-LOC rule; the Tests suite
|
|
6
|
+
* and the Review/Decisions suite both need the same `EventLookup` shapes and
|
|
7
|
+
* duplicating a 20-line projection in two files invites them to drift apart.
|
|
8
|
+
*/
|
|
9
|
+
/** A completed run that recorded a commit — the post-Finalize happy path. */
|
|
10
|
+
export const FOUND = {
|
|
11
|
+
status: "found",
|
|
12
|
+
mtimeMs: 1,
|
|
13
|
+
run: {
|
|
14
|
+
runId: "iterate-x",
|
|
15
|
+
eventId: null,
|
|
16
|
+
ts: null,
|
|
17
|
+
source: "iterate",
|
|
18
|
+
intent: null,
|
|
19
|
+
changeType: null,
|
|
20
|
+
description: null,
|
|
21
|
+
summary: "Did the thing",
|
|
22
|
+
commit: "66e275ae",
|
|
23
|
+
specImpact: null,
|
|
24
|
+
affectedFrs: [],
|
|
25
|
+
newFrs: [],
|
|
26
|
+
tests: null,
|
|
27
|
+
phaseTimings: null,
|
|
28
|
+
campaign: null,
|
|
29
|
+
subIterateId: null,
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
/** The log is fine; this run is simply not in it yet (the normal mid-run state). */
|
|
33
|
+
export const ABSENT = { status: "absent", mtimeMs: 0 };
|
|
34
|
+
/** The log itself could not be read — an integrity fault, not an absence. */
|
|
35
|
+
export const UNREADABLE = { status: "unavailable" };
|
|
36
|
+
export const NO_INDEX = { status: "unavailable", reason: "missing" };
|
|
37
|
+
export function indexWith(entries) {
|
|
38
|
+
return {
|
|
39
|
+
status: "ok",
|
|
40
|
+
generatedAt: null,
|
|
41
|
+
truncated: false,
|
|
42
|
+
byFile: new Map(Object.entries(entries).map(([k, v]) => [k, { ...v, caseCount: 1 }])),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** A review row defaulting to `unavailable` — override only what a case pins. */
|
|
46
|
+
export function reviewRow(over) {
|
|
47
|
+
return {
|
|
48
|
+
status: "unavailable",
|
|
49
|
+
findingsCount: null,
|
|
50
|
+
findings: [],
|
|
51
|
+
provider: null,
|
|
52
|
+
completedAt: null,
|
|
53
|
+
disposition: null,
|
|
54
|
+
note: null,
|
|
55
|
+
parseStatus: null,
|
|
56
|
+
source: "marker",
|
|
57
|
+
truncated: false,
|
|
58
|
+
...over,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=slice2-test-fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slice2-test-fixtures.js","sourceRoot":"","sources":["../../../src/core/mission-context/slice2-test-fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,KAAK,GAAgB;IAChC,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,CAAC;IACV,GAAG,EAAE;QACH,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,IAAI;QACb,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,MAAM,GAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,UAAU,GAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AAEjE,MAAM,CAAC,MAAM,QAAQ,GAAsB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAExF,MAAM,UAAU,SAAS,CACvB,OAA+D;IAE/D,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACtF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,SAAS,CACvB,IAAwD;IAExD,OAAO;QACL,MAAM,EAAE,aAAa;QACrB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,KAAK;QAChB,GAAG,IAAI;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type CampaignFact } from "./campaign-artifacts.js";
|
|
2
|
+
import { type PipelineFact } from "./pipeline-artifacts.js";
|
|
3
|
+
import type { ArtifactDescriptor, MissionContext, MissionScenario } from "./types.js";
|
|
4
|
+
interface MintCtx {
|
|
5
|
+
taskId: string;
|
|
6
|
+
sessionUuid: string;
|
|
7
|
+
projectRoot: string;
|
|
8
|
+
/** Binding value for the id — the pipeline runId or the campaign slug. */
|
|
9
|
+
ref: string;
|
|
10
|
+
rev: string;
|
|
11
|
+
}
|
|
12
|
+
/** Paths whose mtime a pipeline response depends on (absent ones included). */
|
|
13
|
+
export declare function pipelineRevPaths(projectRoot: string): string[];
|
|
14
|
+
export declare function buildPipelineArtifacts(ctx: Omit<MintCtx, "ref">, fact: PipelineFact): ArtifactDescriptor[];
|
|
15
|
+
/** Paths whose mtime a campaign response depends on (absent ones included). */
|
|
16
|
+
export declare function campaignRevPaths(projectRoot: string, slug: string | null): string[];
|
|
17
|
+
export declare function buildCampaignArtifacts(ctx: Omit<MintCtx, "ref">, slug: string, fact: CampaignFact): ArtifactDescriptor[];
|
|
18
|
+
export interface NonIterateInput {
|
|
19
|
+
taskId: string;
|
|
20
|
+
sessionUuid: string;
|
|
21
|
+
projectRoot: string;
|
|
22
|
+
scenario: MissionScenario;
|
|
23
|
+
missionTabVisible: boolean;
|
|
24
|
+
/** Sources every scenario shares (the adopted spec + the event log). */
|
|
25
|
+
baseRevPaths: string[];
|
|
26
|
+
pipeline: PipelineFact | null | undefined;
|
|
27
|
+
campaign: CampaignFact | null | undefined;
|
|
28
|
+
campaignSlug: string | null;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Build the context for every scenario that is NOT a resolved iterate.
|
|
32
|
+
*
|
|
33
|
+
* `pipeline` and `campaign` are scenarios 3 and 5; `plain` and `custom_actions`
|
|
34
|
+
* carry no artifact rail at all and return the empty context unchanged.
|
|
35
|
+
*
|
|
36
|
+
* An ABSENT fact (an older caller that never gathered one) is treated as
|
|
37
|
+
* `unavailable` rather than skipped — the artifacts then render "currently
|
|
38
|
+
* unavailable", which is the honest reading of "nobody told us", and keeps a
|
|
39
|
+
* wiring mistake visible instead of silently producing an empty rail.
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildNonIterateContext(input: NonIterateInput): MissionContext;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=slice3-sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slice3-sources.d.ts","sourceRoot":"","sources":["../../../src/core/mission-context/slice3-sources.ts"],"names":[],"mappings":"AA8BA,OAAO,EAML,KAAK,YAAY,EAElB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAiD,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE3G,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAItF,UAAU,OAAO;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAiDD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAK9D;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EACzB,IAAI,EAAE,YAAY,GACjB,kBAAkB,EAAE,CAatB;AAMD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,CAUnF;AAmCD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,GACjB,kBAAkB,EAAE,CAmBtB;AAMD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAyC7E"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* core/mission-context/slice3-sources.ts — path resolution + document minting
|
|
3
|
+
* for the native pipeline and campaign artifacts (S3).
|
|
4
|
+
*
|
|
5
|
+
* Same discipline as the iterate path (§5.1c): every document path is built from
|
|
6
|
+
* the KNOWN LAYOUT, never from a producer- or title-supplied sub-path, every
|
|
7
|
+
* segment is re-checked against the strict slug grammar, and the read itself
|
|
8
|
+
* goes through `resolveFirstDoc` → `pathGuard` + `realPathGuard`. An id is
|
|
9
|
+
* minted ONLY for a document that actually resolved, which is what keeps AC3's
|
|
10
|
+
* "no dead links" true by construction rather than by inspection.
|
|
11
|
+
*
|
|
12
|
+
* The campaign SLUG used for path building comes from the matched campaign
|
|
13
|
+
* RECORD (a real directory name the server itself read), never from the task
|
|
14
|
+
* title the user can edit.
|
|
15
|
+
*
|
|
16
|
+
* Cache note: unlike the iterate path these contexts are NOT cached. The iterate
|
|
17
|
+
* cache exists because that path reads a 0.9 MB traceability manifest, a 0.6 MB
|
|
18
|
+
* decision log and shells out to git; a pipeline or campaign resolve reads a
|
|
19
|
+
* handful of small JSON/Markdown files. Not caching means run-config and
|
|
20
|
+
* `status.json` — both of which change DURING a run — can never be served stale,
|
|
21
|
+
* which is the failure mode this campaign has already had to fix once.
|
|
22
|
+
*/
|
|
23
|
+
import path from "node:path";
|
|
24
|
+
import { mintDocId } from "./doc-ids.js";
|
|
25
|
+
import { isSafeSlug } from "./pointer.js";
|
|
26
|
+
import { docFingerprint } from "./resolver-parts.js";
|
|
27
|
+
import { resolveFirstDoc } from "./worktree-roots.js";
|
|
28
|
+
import { SPEC_REL_PARTS } from "./fold-map.js";
|
|
29
|
+
import { buildCampaignBriefArtifact, buildCampaignProgressArtifact, buildRunbookArtifact, buildSubIterateArtifact, selectActiveStep, } from "./campaign-artifacts.js";
|
|
30
|
+
import { buildPhaseArtifact, buildPipelineSpecArtifact } from "./pipeline-artifacts.js";
|
|
31
|
+
import { computeSourceRev, emptyContext } from "./resolver-parts.js";
|
|
32
|
+
const CAMPAIGNS_BASE = [".shipwright", "planning", "iterate", "campaigns"];
|
|
33
|
+
/**
|
|
34
|
+
* Resolve ONE known-layout document and mint its id.
|
|
35
|
+
*
|
|
36
|
+
* `denied` is kept SEPARATE from "not found": a guard refusal means the file is
|
|
37
|
+
* there and we would not read it, which is an integrity signal the rail must
|
|
38
|
+
* show, while a missing file is an ordinary absence that hides. Returning both
|
|
39
|
+
* from one call also keeps this to a single filesystem resolve.
|
|
40
|
+
*/
|
|
41
|
+
function resolveDoc(ctx, constParts, varParts) {
|
|
42
|
+
// ONLY the variable segments are grammar-checked. The constant layout prefix
|
|
43
|
+
// is a literal in this file — and `.shipwright` would fail the check anyway,
|
|
44
|
+
// since the id grammar forbids a leading dot precisely so that no
|
|
45
|
+
// caller-supplied segment can ever be a dot-segment.
|
|
46
|
+
if (varParts.length === 0 || !varParts.every((p) => isSafeSlug(p))) {
|
|
47
|
+
return { doc: null, denied: false };
|
|
48
|
+
}
|
|
49
|
+
const relParts = [...constParts, ...varParts];
|
|
50
|
+
const found = resolveFirstDoc(ctx.projectRoot, [relParts]);
|
|
51
|
+
if (!found.ok)
|
|
52
|
+
return { doc: null, denied: found.reason === "denied" };
|
|
53
|
+
return {
|
|
54
|
+
doc: {
|
|
55
|
+
documentId: mintDocId({
|
|
56
|
+
t: ctx.taskId,
|
|
57
|
+
s: ctx.sessionUuid,
|
|
58
|
+
p: ctx.projectRoot,
|
|
59
|
+
r: ctx.ref,
|
|
60
|
+
root: ctx.projectRoot,
|
|
61
|
+
rel: relParts.join("/"),
|
|
62
|
+
rev: ctx.rev,
|
|
63
|
+
f: docFingerprint(path.join(ctx.projectRoot, ...relParts)),
|
|
64
|
+
}),
|
|
65
|
+
title: relParts[relParts.length - 1],
|
|
66
|
+
},
|
|
67
|
+
denied: false,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
// Pipeline (scenario 3)
|
|
72
|
+
// ---------------------------------------------------------------------------
|
|
73
|
+
/** Paths whose mtime a pipeline response depends on (absent ones included). */
|
|
74
|
+
export function pipelineRevPaths(projectRoot) {
|
|
75
|
+
return [
|
|
76
|
+
path.join(projectRoot, "shipwright_run_config.json"),
|
|
77
|
+
path.join(projectRoot, ...SPEC_REL_PARTS),
|
|
78
|
+
];
|
|
79
|
+
}
|
|
80
|
+
export function buildPipelineArtifacts(ctx, fact) {
|
|
81
|
+
const ref = fact.status === "unavailable" ? "pipeline" : fact.runId;
|
|
82
|
+
// The adopted spec is entirely constant layout — no variable segment at all.
|
|
83
|
+
const spec = resolveDoc({ ...ctx, ref }, SPEC_REL_PARTS.slice(0, -1), SPEC_REL_PARTS.slice(-1));
|
|
84
|
+
return [
|
|
85
|
+
buildPhaseArtifact(fact),
|
|
86
|
+
buildPipelineSpecArtifact({
|
|
87
|
+
documentId: spec.doc?.documentId ?? null,
|
|
88
|
+
title: spec.doc?.title ?? null,
|
|
89
|
+
denied: spec.denied,
|
|
90
|
+
}),
|
|
91
|
+
];
|
|
92
|
+
}
|
|
93
|
+
// ---------------------------------------------------------------------------
|
|
94
|
+
// Campaign (scenario 5)
|
|
95
|
+
// ---------------------------------------------------------------------------
|
|
96
|
+
/** Paths whose mtime a campaign response depends on (absent ones included). */
|
|
97
|
+
export function campaignRevPaths(projectRoot, slug) {
|
|
98
|
+
if (!slug || !isSafeSlug(slug))
|
|
99
|
+
return [];
|
|
100
|
+
const dir = path.join(projectRoot, ...CAMPAIGNS_BASE, slug);
|
|
101
|
+
return [
|
|
102
|
+
path.join(dir, "campaign.md"),
|
|
103
|
+
path.join(dir, "RUNBOOK.md"),
|
|
104
|
+
// status.json changes on EVERY unit transition. Registering it — present or
|
|
105
|
+
// not — is what lets a live campaign's progress actually move.
|
|
106
|
+
path.join(dir, "status.json"),
|
|
107
|
+
];
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Take a campaign-store `specPath` (project-root-relative, POSIX) and return the
|
|
111
|
+
* segments BELOW the constant campaigns prefix, or null if it is unusable.
|
|
112
|
+
*
|
|
113
|
+
* The path must land at `campaigns/<thisSlug>/sub-iterates/<file>` EXACTLY.
|
|
114
|
+
*
|
|
115
|
+
* Pinning it to `thisSlug` is the load-bearing part (external code review,
|
|
116
|
+
* openai MEDIUM). A prefix check that only required "somewhere under
|
|
117
|
+
* `campaigns/`" would let one campaign's record point THIS campaign's "current
|
|
118
|
+
* unit spec" at ANOTHER campaign's document — precisely the campaign-level /
|
|
119
|
+
* unit-level confusion this slice exists to prevent, and it would look entirely
|
|
120
|
+
* normal on screen. Requiring `sub-iterates` likewise stops a record from
|
|
121
|
+
* dressing the RUNBOOK up as a unit's brief.
|
|
122
|
+
*
|
|
123
|
+
* The store already existence- and containment-checked the value; re-checking
|
|
124
|
+
* here matters because a guard that only runs at the producer stops running the
|
|
125
|
+
* day someone adds a second producer.
|
|
126
|
+
*/
|
|
127
|
+
function specPathParts(specPath, slug) {
|
|
128
|
+
if (typeof specPath !== "string" || specPath.length === 0)
|
|
129
|
+
return null;
|
|
130
|
+
const parts = specPath.replace(/\\/g, "/").split("/").filter((p) => p.length > 0);
|
|
131
|
+
const expected = [...CAMPAIGNS_BASE, slug, "sub-iterates"];
|
|
132
|
+
// Exactly one segment (the filename) may follow the fixed prefix.
|
|
133
|
+
if (parts.length !== expected.length + 1)
|
|
134
|
+
return null;
|
|
135
|
+
for (let i = 0; i < expected.length; i++) {
|
|
136
|
+
if (parts[i] !== expected[i])
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
const rest = parts.slice(CAMPAIGNS_BASE.length);
|
|
140
|
+
return rest.every((p) => isSafeSlug(p)) ? rest : null;
|
|
141
|
+
}
|
|
142
|
+
export function buildCampaignArtifacts(ctx, slug, fact) {
|
|
143
|
+
const mint = { ...ctx, ref: slug };
|
|
144
|
+
const safeSlug = isSafeSlug(slug) ? slug : null;
|
|
145
|
+
const brief = safeSlug ? resolveDoc(mint, CAMPAIGNS_BASE, [safeSlug, "campaign.md"]).doc : null;
|
|
146
|
+
const runbook = safeSlug ? resolveDoc(mint, CAMPAIGNS_BASE, [safeSlug, "RUNBOOK.md"]).doc : null;
|
|
147
|
+
const picked = fact.status === "ok" ? selectActiveStep(fact.campaign.steps) : null;
|
|
148
|
+
// Pinned to `safeSlug`, not the raw slug: an unusable slug must not fall back
|
|
149
|
+
// to matching whatever the record happens to name.
|
|
150
|
+
const subParts = picked && safeSlug ? specPathParts(picked.step.specPath, safeSlug) : null;
|
|
151
|
+
const subDoc = subParts ? resolveDoc(mint, CAMPAIGNS_BASE, subParts).doc : null;
|
|
152
|
+
return [
|
|
153
|
+
buildCampaignBriefArtifact(fact, brief),
|
|
154
|
+
buildRunbookArtifact(fact, runbook),
|
|
155
|
+
buildCampaignProgressArtifact(fact, picked?.step.id ?? null),
|
|
156
|
+
buildSubIterateArtifact(fact, subDoc),
|
|
157
|
+
];
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Build the context for every scenario that is NOT a resolved iterate.
|
|
161
|
+
*
|
|
162
|
+
* `pipeline` and `campaign` are scenarios 3 and 5; `plain` and `custom_actions`
|
|
163
|
+
* carry no artifact rail at all and return the empty context unchanged.
|
|
164
|
+
*
|
|
165
|
+
* An ABSENT fact (an older caller that never gathered one) is treated as
|
|
166
|
+
* `unavailable` rather than skipped — the artifacts then render "currently
|
|
167
|
+
* unavailable", which is the honest reading of "nobody told us", and keeps a
|
|
168
|
+
* wiring mistake visible instead of silently producing an empty rail.
|
|
169
|
+
*/
|
|
170
|
+
export function buildNonIterateContext(input) {
|
|
171
|
+
const { scenario, projectRoot, missionTabVisible } = input;
|
|
172
|
+
if (scenario === "pipeline") {
|
|
173
|
+
const fact = input.pipeline ?? { status: "unavailable" };
|
|
174
|
+
const rev = computeSourceRev([...input.baseRevPaths, ...pipelineRevPaths(projectRoot)], [scenario, fact.status, input.taskId]);
|
|
175
|
+
return {
|
|
176
|
+
...emptyContext(scenario, missionTabVisible, rev),
|
|
177
|
+
runId: fact.status === "unavailable" ? null : fact.runId,
|
|
178
|
+
artifacts: buildPipelineArtifacts({ taskId: input.taskId, sessionUuid: input.sessionUuid, projectRoot, rev }, fact),
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
if (scenario === "campaign" && input.campaignSlug) {
|
|
182
|
+
const fact = input.campaign ?? { status: "unavailable" };
|
|
183
|
+
const rev = computeSourceRev([...input.baseRevPaths, ...campaignRevPaths(projectRoot, input.campaignSlug)], [scenario, fact.status, input.taskId]);
|
|
184
|
+
return {
|
|
185
|
+
...emptyContext(scenario, missionTabVisible, rev),
|
|
186
|
+
artifacts: buildCampaignArtifacts({ taskId: input.taskId, sessionUuid: input.sessionUuid, projectRoot, rev }, input.campaignSlug, fact),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
// plain / pure / custom_actions — narration + stage only, no rail (§4.5).
|
|
190
|
+
return emptyContext(scenario, missionTabVisible, computeSourceRev(input.baseRevPaths, [scenario]));
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=slice3-sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slice3-sources.js","sourceRoot":"","sources":["../../../src/core/mission-context/slice3-sources.ts"],"names":[],"mappings":"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"}
|