@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,114 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* core/mission-context/artifacts-decisions.ts — the DECISIONS descriptor
|
|
3
|
+
* (CONTRACT §6 row 5).
|
|
4
|
+
*
|
|
5
|
+
* Its own module rather than more lines in `artifacts-slice2.ts`: that file was
|
|
6
|
+
* at 300 LOC and reading a SECOND source (decision-drops) grew this builder past
|
|
7
|
+
* what it had room for. A cohesive file-level split, per the repo's bloat rule —
|
|
8
|
+
* not a per-handler shred.
|
|
9
|
+
*
|
|
10
|
+
* The distinction this file exists to keep, and the reason it was worth
|
|
11
|
+
* splitting rather than baselining a crossing:
|
|
12
|
+
*
|
|
13
|
+
* available at least one decision was read — from either source. A partial
|
|
14
|
+
* read still lands here and DISCLOSES what it lost.
|
|
15
|
+
* unavailable nothing was read AND something failed. SHOWN.
|
|
16
|
+
* hidden nothing was read and BOTH sources answered cleanly. A real
|
|
17
|
+
* absence, and the only case that may disappear.
|
|
18
|
+
*
|
|
19
|
+
* "We could not read the drops directory" and "this run decided nothing" are
|
|
20
|
+
* different facts. Collapsing them is the defect family this whole iterate is
|
|
21
|
+
* about.
|
|
22
|
+
*/
|
|
23
|
+
function plural(n, one, many) {
|
|
24
|
+
return `${n} ${n === 1 ? one : many}`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* True when `malformedCount` already accounts for everything that was lost, so
|
|
28
|
+
* the uncountable clause would be redundant rather than additive.
|
|
29
|
+
*/
|
|
30
|
+
function hasOnlyCountedLoss(record) {
|
|
31
|
+
return record.malformedCount > 0 && !record.logOrScanLoss;
|
|
32
|
+
}
|
|
33
|
+
export function buildDecisionsArtifact(record, events) {
|
|
34
|
+
if (record.entries.length === 0) {
|
|
35
|
+
if (record.sawUnreadable) {
|
|
36
|
+
// Something existed and could not be read. This must NEVER fall through
|
|
37
|
+
// to the hidden branch below — a hidden artifact reads as "this run
|
|
38
|
+
// decided nothing", which is precisely what we do not know.
|
|
39
|
+
return {
|
|
40
|
+
kind: "decisions",
|
|
41
|
+
label: "Decisions",
|
|
42
|
+
state: "unavailable",
|
|
43
|
+
summary: null,
|
|
44
|
+
receipt: null,
|
|
45
|
+
note: "This run's decision records could not be read.",
|
|
46
|
+
detail: null,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
// Both sources WERE read and neither holds anything for this run. Whether
|
|
50
|
+
// that is "not yet" or "never" depends only on whether the run has
|
|
51
|
+
// finished — both hide, but the state stays truthful.
|
|
52
|
+
return {
|
|
53
|
+
kind: "decisions",
|
|
54
|
+
label: "Decisions",
|
|
55
|
+
state: events.status === "found" ? "not_applicable" : "not_yet_created",
|
|
56
|
+
summary: null,
|
|
57
|
+
receipt: null,
|
|
58
|
+
detail: null,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const titles = record.entries.map((e) => e.title || e.adrId || "A decision");
|
|
62
|
+
const lead = titles.length === 1
|
|
63
|
+
? titles[0]
|
|
64
|
+
: `${titles[0]} and ${plural(titles.length - 1, "other decision", "other decisions")}`;
|
|
65
|
+
// A decision that exists only as a drop is REAL and RECORDED — it simply has
|
|
66
|
+
// no ADR number until a release publishes it. Say that in words a non-expert
|
|
67
|
+
// can act on, and never imply something went wrong.
|
|
68
|
+
const unnumbered = record.entries.filter((e) => e.source === "drop").length;
|
|
69
|
+
const pending = unnumbered === 0
|
|
70
|
+
? ""
|
|
71
|
+
: unnumbered === record.entries.length
|
|
72
|
+
? " Not yet published in a release."
|
|
73
|
+
: ` ${plural(unnumbered, "decision is", "decisions are")} not yet published in a release.`;
|
|
74
|
+
// Two different losses, and neither may be swallowed just because something
|
|
75
|
+
// else rendered. `malformedCount` is a countable one; `sawUnreadable` also
|
|
76
|
+
// covers an unreadable decision LOG and a scan cut short by a cap, which have
|
|
77
|
+
// no count — those used to disappear entirely once a drop rendered
|
|
78
|
+
// successfully (external code review, gemini #1).
|
|
79
|
+
// Two DIFFERENT losses, and they are additive rather than alternative. A
|
|
80
|
+
// ternary made them exclusive, so one malformed drop plus an entirely
|
|
81
|
+
// unreadable log rendered only "1 further record could not be read." — a
|
|
82
|
+
// countable claim quietly absorbing an unread log and dropping the
|
|
83
|
+
// "may be incomplete" clause that was the one still true (cascade, cheap).
|
|
84
|
+
const counted = record.malformedCount
|
|
85
|
+
? ` ${plural(record.malformedCount, "further record", "further records")} could not be read.`
|
|
86
|
+
: "";
|
|
87
|
+
// `sawUnreadable` also covers losses with NO count: an unreadable log, a scan
|
|
88
|
+
// cut short. Emit that clause whenever such a loss exists beyond the counted
|
|
89
|
+
// ones — never let a number stand in for "and also, something uncountable".
|
|
90
|
+
const uncounted = record.sawUnreadable && !hasOnlyCountedLoss(record)
|
|
91
|
+
? " Some of this run's decision records could not be read, so this list may be incomplete."
|
|
92
|
+
: "";
|
|
93
|
+
const lost = `${counted}${uncounted}`;
|
|
94
|
+
// The receipt is the ADR numbers when there are any, else a plain count —
|
|
95
|
+
// never an invented identifier for an unnumbered decision.
|
|
96
|
+
const numbered = record.entries.map((e) => e.adrId).filter((id) => !!id);
|
|
97
|
+
const receipt = numbered.length
|
|
98
|
+
? numbered.join(", ").slice(0, 80)
|
|
99
|
+
: plural(record.entries.length, "decision", "decisions");
|
|
100
|
+
return {
|
|
101
|
+
kind: "decisions",
|
|
102
|
+
label: "Decisions",
|
|
103
|
+
state: "available",
|
|
104
|
+
summary: `${lead}.${pending}${lost}`,
|
|
105
|
+
receipt,
|
|
106
|
+
detail: {
|
|
107
|
+
type: "decisions",
|
|
108
|
+
entries: record.entries,
|
|
109
|
+
truncated: record.truncated,
|
|
110
|
+
malformedCount: record.malformedCount,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=artifacts-decisions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts-decisions.js","sourceRoot":"","sources":["../../../src/core/mission-context/artifacts-decisions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ReviewLookup } from "./review-state.js";
|
|
2
|
+
import type { ReviewArtifact, ReviewRow } from "./types-slice2.js";
|
|
3
|
+
export declare function buildReviewArtifact(lookup: ReviewLookup): ReviewArtifact;
|
|
4
|
+
/**
|
|
5
|
+
* Plain-language name for a review type — used by the client too (mirrored).
|
|
6
|
+
*
|
|
7
|
+
* A type outside the pinned five has no curated word, so it falls back to the
|
|
8
|
+
* key the run itself used rather than to `undefined`, which the `: string`
|
|
9
|
+
* signature would otherwise have been lying about.
|
|
10
|
+
*/
|
|
11
|
+
export declare function reviewWord(t: ReviewRow["reviewType"]): string;
|
|
12
|
+
//# sourceMappingURL=artifacts-slice2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts-slice2.d.ts","sourceRoot":"","sources":["../../../src/core/mission-context/artifacts-slice2.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA6BnE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAiFxE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,CAE7D"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* core/mission-context/artifacts-slice2.ts — the Review descriptor
|
|
3
|
+
* (CONTRACT §6 row 4, campaign 2026-07-18-mission-artifacts).
|
|
4
|
+
*
|
|
5
|
+
* Tests (row 3) moved to `artifacts-tests.ts` and Decisions (row 5) to
|
|
6
|
+
* `artifacts-decisions.ts` as each grew; the state discipline described in
|
|
7
|
+
* those files governs this one alike.
|
|
8
|
+
*
|
|
9
|
+
* Same register as artifacts.ts: Mission is FOR NON-EXPERTS, so every `summary`
|
|
10
|
+
* says what the thing MEANS, never which file it came from.
|
|
11
|
+
*
|
|
12
|
+
* The failure mode this file exists to prevent is a summary that reads as a
|
|
13
|
+
* clean sweep while one of the four passes has no readable record. Those two
|
|
14
|
+
* must never collapse.
|
|
15
|
+
*/
|
|
16
|
+
function plural(n, one, many) {
|
|
17
|
+
return `${n} ${n === 1 ? one : many}`;
|
|
18
|
+
}
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Review
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
/**
|
|
23
|
+
* Keyed on the PINNED five spelled out, not on `ReviewRow["reviewType"]`.
|
|
24
|
+
*
|
|
25
|
+
* That type now admits any string (`iterate-2026-07-31-review-record-tolerant-reader`),
|
|
26
|
+
* and `Record<K, V>` over a union containing `(string & {})` collapses into an
|
|
27
|
+
* INDEX SIGNATURE — which silently cost this table two things: the compile error
|
|
28
|
+
* that would fire if a sixth pinned type were added without a word for it, and
|
|
29
|
+
* the honesty of `reviewWord`'s `: string` return, since an index signature hands
|
|
30
|
+
* back `undefined` for every unpinned key without `noUncheckedIndexedAccess` to
|
|
31
|
+
* catch it. Spelling the keys out restores both.
|
|
32
|
+
*/
|
|
33
|
+
const REVIEW_WORD = {
|
|
34
|
+
self: "the self-review",
|
|
35
|
+
plan: "the plan review",
|
|
36
|
+
code: "the code review",
|
|
37
|
+
doubt: "the doubt review",
|
|
38
|
+
external_code: "the external code review",
|
|
39
|
+
};
|
|
40
|
+
export function buildReviewArtifact(lookup) {
|
|
41
|
+
// No record at all AND nothing that failed to read: this run simply has no
|
|
42
|
+
// review history to show. Hidden — an absence, not a fault.
|
|
43
|
+
if (!lookup.hasRecord && !lookup.sawUnreadable) {
|
|
44
|
+
return {
|
|
45
|
+
kind: "review",
|
|
46
|
+
label: "Review",
|
|
47
|
+
state: "not_yet_created",
|
|
48
|
+
summary: null,
|
|
49
|
+
receipt: null,
|
|
50
|
+
detail: null,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
// Something existed and could not be read — an integrity signal, shown.
|
|
54
|
+
if (!lookup.hasRecord) {
|
|
55
|
+
return {
|
|
56
|
+
kind: "review",
|
|
57
|
+
label: "Review",
|
|
58
|
+
state: "unavailable",
|
|
59
|
+
summary: null,
|
|
60
|
+
receipt: null,
|
|
61
|
+
note: "This run's review records could not be read.",
|
|
62
|
+
detail: null,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
// A review that RAN but whose findings count could not be read is its own
|
|
66
|
+
// fact, and it must not be folded into zero. `completed.reduce(n + (count ??
|
|
67
|
+
// 0))` treated "unknown" as "none", so a marker with a missing or non-numeric
|
|
68
|
+
// `findings_count` produced "1 review ran and raised no issues" — the status
|
|
69
|
+
// honest, the count fabricated. That is the same unreadable→clean collapse the
|
|
70
|
+
// state enum prevents one level up (internal code review, MEDIUM).
|
|
71
|
+
const completed = lookup.rows.filter((r) => r.status === "completed");
|
|
72
|
+
// An UNSTRUCTURED parse is the same collapse in a new disguise: the review ran,
|
|
73
|
+
// its prose could not be itemized, so its count is 0 for a review that may have
|
|
74
|
+
// found plenty. Counting it would make the SUMMARY — the first line a reader
|
|
75
|
+
// sees, above the renderer's caveat — say "raised no issues". The renderer was
|
|
76
|
+
// taught this; the summary had to be taught it too.
|
|
77
|
+
const counted = completed.filter((r) => r.findingsCount != null && r.parseStatus !== "unstructured");
|
|
78
|
+
const uncounted = completed.length - counted.length;
|
|
79
|
+
const findings = counted.reduce((n, r) => n + (r.findingsCount ?? 0), 0);
|
|
80
|
+
// Anything whose RESULT we cannot state: unreadable passes, plus completed
|
|
81
|
+
// passes with an unreadable count.
|
|
82
|
+
const unknown = lookup.rows.filter((r) => r.status === "unavailable").length + uncounted;
|
|
83
|
+
// Every "no issues" claim below is made ONLY about passes whose count we
|
|
84
|
+
// actually read (`counted`). "0 reviews ran and raised no issues" would read
|
|
85
|
+
// as a clean sweep when nothing ran; "1 review ran and raised no issues"
|
|
86
|
+
// would do the same when the count was simply unreadable. Both are the
|
|
87
|
+
// false assurance §9.1 forbids, so each gets its own honest sentence.
|
|
88
|
+
const lead = completed.length === 0
|
|
89
|
+
? "No review was recorded as having run."
|
|
90
|
+
: counted.length === 0
|
|
91
|
+
? `${plural(completed.length, "review", "reviews")} ran, but the findings were not recorded.`
|
|
92
|
+
: findings
|
|
93
|
+
? `${plural(findings, "issue", "issues")} raised across ${plural(counted.length, "review", "reviews")}.`
|
|
94
|
+
: `${plural(counted.length, "review", "reviews")} ran and raised no issues.`;
|
|
95
|
+
// Never let the sentence stop at the good news while passes are unreadable.
|
|
96
|
+
const tail = unknown
|
|
97
|
+
? ` ${plural(unknown, "further review is", "further reviews are")} not recorded, so ${unknown === 1 ? "its" : "their"} result is unknown.`
|
|
98
|
+
: "";
|
|
99
|
+
// …and never let it stop there while the READER knows it read past its own
|
|
100
|
+
// knowledge. A newer record format, or passes recorded somewhere this build
|
|
101
|
+
// does not look, would otherwise make the counts above read as complete when
|
|
102
|
+
// they are not — the one way forward-tolerance could turn into a false
|
|
103
|
+
// assurance (Stage-3 doubt, D1/D2). The summary is where it belongs: it is the
|
|
104
|
+
// line a skimming reader actually finishes.
|
|
105
|
+
const disclosure = lookup.caveats.length ? ` ${lookup.caveats.join(" ")}` : "";
|
|
106
|
+
return {
|
|
107
|
+
kind: "review",
|
|
108
|
+
label: "Review",
|
|
109
|
+
state: "available",
|
|
110
|
+
summary: `${lead}${tail}${disclosure}`,
|
|
111
|
+
receipt: findings ? plural(findings, "finding", "findings") : `${completed.length} reviewed`,
|
|
112
|
+
detail: { type: "reviews", rows: lookup.rows },
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Plain-language name for a review type — used by the client too (mirrored).
|
|
117
|
+
*
|
|
118
|
+
* A type outside the pinned five has no curated word, so it falls back to the
|
|
119
|
+
* key the run itself used rather than to `undefined`, which the `: string`
|
|
120
|
+
* signature would otherwise have been lying about.
|
|
121
|
+
*/
|
|
122
|
+
export function reviewWord(t) {
|
|
123
|
+
return t in REVIEW_WORD ? REVIEW_WORD[t] : `the ${t} review`;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=artifacts-slice2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts-slice2.js","sourceRoot":"","sources":["../../../src/core/mission-context/artifacts-slice2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { RunTests } from "../event-log-reader.js";
|
|
2
|
+
import type { EventLookup } from "./iterate-record.js";
|
|
3
|
+
import type { TestsDiff } from "./tests-diff.js";
|
|
4
|
+
import type { TraceabilityIndex } from "./traceability.js";
|
|
5
|
+
import type { TestEvidence } from "./test-evidence.js";
|
|
6
|
+
import type { MissionTests } from "./types.js";
|
|
7
|
+
import type { TestsArtifact } from "./types-slice2.js";
|
|
8
|
+
export interface TestsInput {
|
|
9
|
+
events: EventLookup;
|
|
10
|
+
diff: TestsDiff;
|
|
11
|
+
index: TraceabilityIndex;
|
|
12
|
+
evidence?: TestEvidence;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The pass/total the run RECORDED, or null when it recorded no meaningful
|
|
16
|
+
* counts. `{passed:null,total:null}` AND `{passed:0,total:0}` are both treated
|
|
17
|
+
* as absent: an empty tests object carries nothing citable, and a genuine
|
|
18
|
+
* zero-of-zero must not render the success-sounding "All 0 tests passing" the
|
|
19
|
+
* file header warns against (internal code review, LOW). `gate` is resolved
|
|
20
|
+
* ONCE here via `tests-gate.ts` — callers must not re-derive pass/fail.
|
|
21
|
+
*
|
|
22
|
+
* The SOLE `RunTests` -> `MissionTests` constructor — `resolver.ts`'s own
|
|
23
|
+
* `context.tests` also calls this (rather than rebuilding the shape inline)
|
|
24
|
+
* so the two never diverge on the `{0,0}` edge case (code review, LOW-MEDIUM:
|
|
25
|
+
* they previously did — the inline build in `resolver.ts` did not null it out).
|
|
26
|
+
*/
|
|
27
|
+
export declare function toMissionTests(t: RunTests | null | undefined, ts: string | null): MissionTests | null;
|
|
28
|
+
/**
|
|
29
|
+
* The Tests artifact leads with recorded pass/total and enriches with the diff.
|
|
30
|
+
* It hides only when BOTH are genuinely absent, and stays `unavailable` (not
|
|
31
|
+
* hidden) when the counts are missing AND the diff could not be read.
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildTestsArtifact(input: TestsInput): TestsArtifact;
|
|
34
|
+
//# sourceMappingURL=artifacts-tests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts-tests.d.ts","sourceRoot":"","sources":["../../../src/core/mission-context/artifacts-tests.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAchE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI,CAIrG;AA6HD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,CAyDnE"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* core/mission-context/artifacts-tests.ts — the Tests descriptor
|
|
3
|
+
* (CONTRACT §6 row 3, campaign 2026-07-18-mission-artifacts).
|
|
4
|
+
*
|
|
5
|
+
* Split from artifacts-slice2.ts (which keeps Review) when the Tests builder
|
|
6
|
+
* grew the counts-led path and the combined file crossed the size rule.
|
|
7
|
+
*
|
|
8
|
+
* The Tests artifact LEADS with the pass/total the run RECORDED
|
|
9
|
+
* (`work_completed.tests`) — the signal every finished run emits, present even
|
|
10
|
+
* when the worktree flow shipped `commit:""` and no per-file diff could be
|
|
11
|
+
* built (measured 2026-07-23: 182 of 374 real rows carry counts; only 155 a
|
|
12
|
+
* diff). The per-file changed-test list is ENRICHMENT: shown when a real commit
|
|
13
|
+
* resolved, never a precondition for the card.
|
|
14
|
+
*
|
|
15
|
+
* The state discipline is the load-bearing part (unchanged from S1/S2):
|
|
16
|
+
*
|
|
17
|
+
* not_applicable the run recorded no counts AND its commit touched no test
|
|
18
|
+
* file. Hidden, and that is honest.
|
|
19
|
+
* not_yet_created the run has not finished. Hidden.
|
|
20
|
+
* unavailable expected NOW and unresolvable — no counts recorded AND the
|
|
21
|
+
* diff could not be read. SHOWN, compactly.
|
|
22
|
+
*
|
|
23
|
+
* The failure mode this file exists to prevent is reporting "no tests" when the
|
|
24
|
+
* truth is "we could not find out" — OR when the counts were sitting in the
|
|
25
|
+
* event all along and only the file diff was missing.
|
|
26
|
+
*/
|
|
27
|
+
import { deriveTestsGate } from "../tests-gate.js";
|
|
28
|
+
import { inferLayer } from "./tests-diff.js";
|
|
29
|
+
function plural(n, one, many) {
|
|
30
|
+
return `${n} ${n === 1 ? one : many}`;
|
|
31
|
+
}
|
|
32
|
+
/** Layer codes are jargon; the rail is not the place for it. */
|
|
33
|
+
function layerWord(layer) {
|
|
34
|
+
if (layer === "e2e")
|
|
35
|
+
return "end-to-end";
|
|
36
|
+
if (layer === "unit")
|
|
37
|
+
return "unit";
|
|
38
|
+
if (layer === "integration")
|
|
39
|
+
return "integration";
|
|
40
|
+
return layer;
|
|
41
|
+
}
|
|
42
|
+
function hiddenTests(state, note) {
|
|
43
|
+
return { kind: "tests", label: "Tests", state, summary: null, receipt: null, ...(note ? { note } : {}), detail: null };
|
|
44
|
+
}
|
|
45
|
+
function unavailableTests(note) {
|
|
46
|
+
return { kind: "tests", label: "Tests", state: "unavailable", summary: null, receipt: null, note, detail: null };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The pass/total the run RECORDED, or null when it recorded no meaningful
|
|
50
|
+
* counts. `{passed:null,total:null}` AND `{passed:0,total:0}` are both treated
|
|
51
|
+
* as absent: an empty tests object carries nothing citable, and a genuine
|
|
52
|
+
* zero-of-zero must not render the success-sounding "All 0 tests passing" the
|
|
53
|
+
* file header warns against (internal code review, LOW). `gate` is resolved
|
|
54
|
+
* ONCE here via `tests-gate.ts` — callers must not re-derive pass/fail.
|
|
55
|
+
*
|
|
56
|
+
* The SOLE `RunTests` -> `MissionTests` constructor — `resolver.ts`'s own
|
|
57
|
+
* `context.tests` also calls this (rather than rebuilding the shape inline)
|
|
58
|
+
* so the two never diverge on the `{0,0}` edge case (code review, LOW-MEDIUM:
|
|
59
|
+
* they previously did — the inline build in `resolver.ts` did not null it out).
|
|
60
|
+
*/
|
|
61
|
+
export function toMissionTests(t, ts) {
|
|
62
|
+
if (!t)
|
|
63
|
+
return null;
|
|
64
|
+
if ((t.passed ?? 0) === 0 && (t.total ?? 0) === 0)
|
|
65
|
+
return null;
|
|
66
|
+
return { passed: t.passed, total: t.total, skipped: t.skipped, gate: deriveTestsGate(t, ts) };
|
|
67
|
+
}
|
|
68
|
+
/** Non-negative-integer guard, mirroring `tests-gate.ts`'s own `normalizedCount`
|
|
69
|
+
* — a MissionTests field is raw producer data, not yet validated, so an
|
|
70
|
+
* "all skipped" claim must re-check it rather than trust a truthy `skipped`
|
|
71
|
+
* (external code review, MEDIUM: `{passed:-1,total:5,skipped:1}` and
|
|
72
|
+
* `{passed:0,total:5,skipped:9}` both reach `gate:"unknown"` without every
|
|
73
|
+
* collected test having genuinely been skipped — the FIRST wording fix
|
|
74
|
+
* asserted "All 5 were skipped" for both, a claim the raw counts disprove). */
|
|
75
|
+
function isNonNegInt(n) {
|
|
76
|
+
return typeof n === "number" && Number.isInteger(n) && n >= 0;
|
|
77
|
+
}
|
|
78
|
+
/** The producer gate remains authoritative, but malformed raw counts cannot look green. */
|
|
79
|
+
function hasValidCompleteCounts(r) {
|
|
80
|
+
if (!isNonNegInt(r.passed) || !isNonNegInt(r.total) || r.passed > r.total)
|
|
81
|
+
return false;
|
|
82
|
+
return r.skipped == null || (isNonNegInt(r.skipped) && r.skipped <= r.total);
|
|
83
|
+
}
|
|
84
|
+
/** True only when the raw counts PROVE every collected test was skipped —
|
|
85
|
+
* `passed` genuinely 0, `total` a positive integer, `skipped` exactly equal
|
|
86
|
+
* to it. Anything else reaching `gate:"unknown"` is a malformed/partial
|
|
87
|
+
* record, not a provable all-skipped run. */
|
|
88
|
+
function isGenuinelyAllSkipped(r) {
|
|
89
|
+
return (isNonNegInt(r.passed) && r.passed === 0 && isNonNegInt(r.total) && r.total > 0 &&
|
|
90
|
+
isNonNegInt(r.skipped) && r.skipped === r.total);
|
|
91
|
+
}
|
|
92
|
+
/** A plain-language gate heading followed by the run's recorded counts. */
|
|
93
|
+
function resultsSentence(r) {
|
|
94
|
+
if (r.passed != null && r.total != null) {
|
|
95
|
+
if (!hasValidCompleteCounts(r)) {
|
|
96
|
+
return "No reliable result — the recorded test counts are incomplete or invalid.";
|
|
97
|
+
}
|
|
98
|
+
// `unknown` with BOTH fields present means nothing citable happened
|
|
99
|
+
// despite having full data — never phrased as pass- or fail-shaped
|
|
100
|
+
// "passing" text (doubt review, MEDIUM: an all-skipped post-reversal run
|
|
101
|
+
// otherwise read as "0 of N passing" — indistinguishable from N real
|
|
102
|
+
// failures — or, when `passed` happened to equal `total` too, as a full
|
|
103
|
+
// green). A partial record (only ONE field present) is a DIFFERENT
|
|
104
|
+
// "unknown" — handled by the total-only / passed-only fallbacks below,
|
|
105
|
+
// unchanged.
|
|
106
|
+
if (r.gate === "unknown") {
|
|
107
|
+
return isGenuinelyAllSkipped(r)
|
|
108
|
+
? `Needs attention — all ${plural(r.total, "collected test", "collected tests")} were skipped, so none ran.`
|
|
109
|
+
: "No reliable result — the recorded test counts are incomplete or invalid.";
|
|
110
|
+
}
|
|
111
|
+
// A skipped-carrying pass is disclosed, not rounded up to "All N passing"
|
|
112
|
+
// — that overstates what ran (code review, MEDIUM).
|
|
113
|
+
if (r.gate === "pass" && (r.skipped ?? 0) > 0) {
|
|
114
|
+
return `Passed — ${r.passed} of ${plural(r.total, "test", "tests")} passing (${r.skipped} skipped).`;
|
|
115
|
+
}
|
|
116
|
+
return r.gate === "pass"
|
|
117
|
+
? `Passed — all ${plural(r.total, "test", "tests")} passing.`
|
|
118
|
+
: `Failed — ${r.passed} of ${plural(r.total, "test", "tests")} passing.`;
|
|
119
|
+
}
|
|
120
|
+
return "No reliable result — the run recorded only part of its test counts.";
|
|
121
|
+
}
|
|
122
|
+
/** The compact rail receipt for a counts result. */
|
|
123
|
+
function resultsReceipt(r) {
|
|
124
|
+
if (!hasValidCompleteCounts(r))
|
|
125
|
+
return "no reliable result";
|
|
126
|
+
if (r.gate === "unknown" && isGenuinelyAllSkipped(r)) {
|
|
127
|
+
return `${r.skipped}/${r.total} skipped`;
|
|
128
|
+
}
|
|
129
|
+
if (r.passed != null && r.total != null)
|
|
130
|
+
return `${r.passed}/${r.total} passing`;
|
|
131
|
+
if (r.total != null)
|
|
132
|
+
return `${plural(r.total, "test", "tests")}`;
|
|
133
|
+
return `${r.passed} passing`;
|
|
134
|
+
}
|
|
135
|
+
/** Build the per-file rows + human clause from a resolved commit diff. */
|
|
136
|
+
function summarizeFiles(diff, index) {
|
|
137
|
+
const byFile = index.status === "ok" ? index.byFile : null;
|
|
138
|
+
const rows = diff.files.map((f) => {
|
|
139
|
+
const entry = byFile?.get(f.path);
|
|
140
|
+
return {
|
|
141
|
+
path: f.path,
|
|
142
|
+
kind: f.kind,
|
|
143
|
+
// A removed file is never in the manifest — that is what removal means —
|
|
144
|
+
// so its layer always comes from the path. Inferring is honest here;
|
|
145
|
+
// claiming the manifest knew it would not be.
|
|
146
|
+
layer: entry?.layers[0] ?? inferLayer(f.path),
|
|
147
|
+
frs: entry?.frs ?? [],
|
|
148
|
+
caseCount: entry?.caseCount ?? null,
|
|
149
|
+
};
|
|
150
|
+
});
|
|
151
|
+
const counts = { added: 0, modified: 0, removed: 0 };
|
|
152
|
+
for (const r of rows)
|
|
153
|
+
counts[r.kind]++;
|
|
154
|
+
const layerCounts = new Map();
|
|
155
|
+
for (const r of rows) {
|
|
156
|
+
if (!r.layer)
|
|
157
|
+
continue;
|
|
158
|
+
layerCounts.set(r.layer, (layerCounts.get(r.layer) ?? 0) + 1);
|
|
159
|
+
}
|
|
160
|
+
const byLayer = [...layerCounts.entries()]
|
|
161
|
+
.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))
|
|
162
|
+
.map(([layer, count]) => ({ layer, count }));
|
|
163
|
+
const parts = [];
|
|
164
|
+
if (counts.added)
|
|
165
|
+
parts.push(`added ${plural(counts.added, "test file", "test files")}`);
|
|
166
|
+
if (counts.modified)
|
|
167
|
+
parts.push(`changed ${plural(counts.modified, "test file", "test files")}`);
|
|
168
|
+
if (counts.removed)
|
|
169
|
+
parts.push(`removed ${plural(counts.removed, "test file", "test files")}`);
|
|
170
|
+
const layerPart = byLayer.length
|
|
171
|
+
? ` (${byLayer.map((l) => `${l.count} ${layerWord(l.layer)}`).join(", ")})`
|
|
172
|
+
: "";
|
|
173
|
+
return {
|
|
174
|
+
rows,
|
|
175
|
+
counts,
|
|
176
|
+
byLayer,
|
|
177
|
+
sentence: parts.length ? `This change ${parts.join(", ")}${layerPart}.` : null,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* The Tests artifact leads with recorded pass/total and enriches with the diff.
|
|
182
|
+
* It hides only when BOTH are genuinely absent, and stays `unavailable` (not
|
|
183
|
+
* hidden) when the counts are missing AND the diff could not be read.
|
|
184
|
+
*/
|
|
185
|
+
export function buildTestsArtifact(input) {
|
|
186
|
+
const { events, diff, index } = input;
|
|
187
|
+
// The event log itself is unreadable — we know nothing, and say so.
|
|
188
|
+
if (events.status === "unavailable") {
|
|
189
|
+
return unavailableTests("The run record could not be read.");
|
|
190
|
+
}
|
|
191
|
+
// The run has not finished: nothing recorded yet. Genuinely later.
|
|
192
|
+
if (events.status !== "found")
|
|
193
|
+
return hiddenTests("not_yet_created");
|
|
194
|
+
const results = toMissionTests(events.run.tests, events.run.ts);
|
|
195
|
+
const files = diff.status === "ok" ? summarizeFiles(diff, index) : null;
|
|
196
|
+
const hasFiles = files != null && files.rows.length > 0;
|
|
197
|
+
// Nothing recorded AND no file diff — preserve the honest terminal states so a
|
|
198
|
+
// read fault never masquerades as "no tests".
|
|
199
|
+
if (!results && !hasFiles) {
|
|
200
|
+
if (diff.status === "unavailable") {
|
|
201
|
+
return unavailableTests(diff.reason === "bad_commit"
|
|
202
|
+
? "This run recorded no test counts and no commit, so its tests could not be identified."
|
|
203
|
+
: "This run's test changes could not be read from the repository.");
|
|
204
|
+
}
|
|
205
|
+
// git answered, no test file moved, and no counts were recorded.
|
|
206
|
+
return hiddenTests("not_applicable", "This change touched no test files.");
|
|
207
|
+
}
|
|
208
|
+
const summary = [results ? resultsSentence(results) : null, files?.sentence ?? null]
|
|
209
|
+
.filter((s) => Boolean(s))
|
|
210
|
+
.join(" ") || null;
|
|
211
|
+
const receipt = results
|
|
212
|
+
? resultsReceipt(results)
|
|
213
|
+
: plural(files.rows.length, "test file", "test files");
|
|
214
|
+
return {
|
|
215
|
+
kind: "tests",
|
|
216
|
+
label: "Tests",
|
|
217
|
+
state: "available",
|
|
218
|
+
summary,
|
|
219
|
+
receipt,
|
|
220
|
+
detail: {
|
|
221
|
+
type: "tests",
|
|
222
|
+
results,
|
|
223
|
+
rows: files?.rows ?? [],
|
|
224
|
+
counts: files?.counts ?? { added: 0, modified: 0, removed: 0 },
|
|
225
|
+
byLayer: files?.byLayer ?? [],
|
|
226
|
+
truncated: diff.status === "ok" ? diff.truncated : false,
|
|
227
|
+
// A PARTIAL index counts as unavailable links: a file whose manifest entry
|
|
228
|
+
// fell past the cap would otherwise render "covers nothing" while the UI
|
|
229
|
+
// claimed the manifest was fine (external code review, MEDIUM). With no
|
|
230
|
+
// rows there is nothing to link, so the manifest is not "at fault".
|
|
231
|
+
manifestStatus: !hasFiles || (index.status === "ok" && !index.truncated) ? "ok" : "unavailable",
|
|
232
|
+
evidence: input.evidence,
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=artifacts-tests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts-tests.js","sourceRoot":"","sources":["../../../src/core/mission-context/artifacts-tests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { RequirementArtifact, SpecArtifact } from "./types.js";
|
|
2
|
+
import type { FoldMap } from "./fold-map.js";
|
|
3
|
+
import type { IterateDoc, EventLookup } from "./iterate-record.js";
|
|
4
|
+
export interface SpecInput {
|
|
5
|
+
/** Minted opaque id — null when the document did not resolve. */
|
|
6
|
+
documentId: string | null;
|
|
7
|
+
/** Basename for display (never a path). */
|
|
8
|
+
title: string | null;
|
|
9
|
+
/** True when the resolve was denied by a guard rather than simply missing. */
|
|
10
|
+
denied: boolean;
|
|
11
|
+
/** Mid-run reads come from the worktree; post-Finalize from the main root. */
|
|
12
|
+
fromWorktree: boolean;
|
|
13
|
+
/** The run's own one-line intent, when the event log recorded one. */
|
|
14
|
+
intent: string | null;
|
|
15
|
+
}
|
|
16
|
+
export declare function buildSpecArtifact(input: SpecInput): SpecArtifact;
|
|
17
|
+
export interface RequirementInput {
|
|
18
|
+
foldMap: FoldMap;
|
|
19
|
+
/** Post-Finalize record, when present. */
|
|
20
|
+
doc: IterateDoc | null;
|
|
21
|
+
/** The `work_completed` lookup — its status drives available vs unavailable. */
|
|
22
|
+
events: EventLookup;
|
|
23
|
+
/** Spec body, used ONLY for mid-run planned impact (AC1). */
|
|
24
|
+
specText?: string | null;
|
|
25
|
+
/** True only while the resolver still observes this iterate as live. */
|
|
26
|
+
runLive?: boolean;
|
|
27
|
+
sourceDocument?: {
|
|
28
|
+
documentId: string;
|
|
29
|
+
title: string;
|
|
30
|
+
} | null;
|
|
31
|
+
}
|
|
32
|
+
export declare function buildRequirementArtifact(input: RequirementInput): RequirementArtifact;
|
|
33
|
+
//# sourceMappingURL=artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/core/mission-context/artifacts.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAEV,mBAAmB,EAEnB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAWnE,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,8EAA8E;IAC9E,MAAM,EAAE,OAAO,CAAC;IAChB,8EAA8E;IAC9E,YAAY,EAAE,OAAO,CAAC;IACtB,sEAAsE;IACtE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAqChE;AAeD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IACvB,gFAAgF;IAChF,MAAM,EAAE,WAAW,CAAC;IACpB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,mBAAmB,CA4HrF"}
|