@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,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Terminal appearance route (iterate-2026-07-06-terminal-theme-modes,
|
|
3
|
+
* FR-01.44).
|
|
4
|
+
*
|
|
5
|
+
* `GET /api/terminal/claude-theme` → `{ theme: string | null }` — the raw
|
|
6
|
+
* theme the user selected in Claude Code, mirrored from
|
|
7
|
+
* `~/.claude/settings.json` so the embedded terminal's default `auto`
|
|
8
|
+
* appearance can track it. Standalone module (NOT terminal/routes.ts, which
|
|
9
|
+
* is at its ADR-103 bloat ceiling); mounted BEFORE createTerminalRoutes in
|
|
10
|
+
* index.ts. No collision with the `/api/terminal/:taskId/<verb>` pty routes
|
|
11
|
+
* — `claude-theme` is a single trailing segment, and those routes all carry
|
|
12
|
+
* a `:taskId` plus a verb sub-segment.
|
|
13
|
+
*
|
|
14
|
+
* Read-only, best-effort: the reader never throws, so this route always
|
|
15
|
+
* 200s (with `theme: null` when no Claude config exists).
|
|
16
|
+
*/
|
|
17
|
+
import { Hono } from "hono";
|
|
18
|
+
import { readClaudeTheme } from "../core/claude-theme-reader.js";
|
|
19
|
+
export function createTerminalAppearanceRoutes(deps = {}) {
|
|
20
|
+
const app = new Hono();
|
|
21
|
+
const read = deps.readClaudeTheme ?? (() => readClaudeTheme());
|
|
22
|
+
app.get("/api/terminal/claude-theme", async (c) => {
|
|
23
|
+
const theme = await read();
|
|
24
|
+
return c.json({ theme });
|
|
25
|
+
});
|
|
26
|
+
return app;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=terminal-appearance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-appearance.js","sourceRoot":"","sources":["../../src/routes/terminal-appearance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAOjE,MAAM,UAAU,8BAA8B,CAC5C,OAAoC,EAAE;IAEtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IAE/D,GAAG,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChD,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { SdkSessionsStore } from "../core/sdk-sessions-store.js";
|
|
3
|
+
import { type CampaignRef } from "../core/triage-enrich.js";
|
|
4
|
+
import { runTriageCli, triageWriteAvailability } from "../core/triage-cli-runner.js";
|
|
5
|
+
/** Never put an interpreter probe on the native board-read critical path. */
|
|
6
|
+
export declare const TRIAGE_WRITE_AVAILABILITY_TTL_MS = 15000;
|
|
7
|
+
export interface TriageProjectMeta {
|
|
8
|
+
id: string;
|
|
9
|
+
path: string;
|
|
10
|
+
synthesized?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface TriageRoutesDeps {
|
|
13
|
+
/** All non-synthesized registered projects, used by /counts. */
|
|
14
|
+
getAllProjects: () => TriageProjectMeta[];
|
|
15
|
+
/** Per-id project lookup. Synthesized rows treated as 404 by callers. */
|
|
16
|
+
getProjectById: (id: string) => TriageProjectMeta | undefined;
|
|
17
|
+
/** sdk-sessions store (find/create/persist). */
|
|
18
|
+
store: SdkSessionsStore;
|
|
19
|
+
/** Sole triage transition writer. Defaults to the installed Python CLI. */
|
|
20
|
+
runTriageCli?: typeof runTriageCli;
|
|
21
|
+
/** Availability probe for the visible no-fallback degraded state. */
|
|
22
|
+
triageWriteAvailability?: typeof triageWriteAvailability;
|
|
23
|
+
/** Test seam for the cached availability refresh interval. */
|
|
24
|
+
triageWriteAvailabilityTtlMs?: number;
|
|
25
|
+
/**
|
|
26
|
+
* FR-01.33 — injected campaign correlation (server-side enrichment). Returns
|
|
27
|
+
* each campaign in the project as `{expandsTriage, slug, status}`. Wired in
|
|
28
|
+
* index.ts from the campaign store so THIS module imports no campaign code
|
|
29
|
+
* (preserves the campaigns-no-triage-coupling import boundary). Optional:
|
|
30
|
+
* when absent, items are returned without campaign annotations.
|
|
31
|
+
*/
|
|
32
|
+
listCampaignRefs?: (projectId: string) => CampaignRef[];
|
|
33
|
+
}
|
|
34
|
+
export declare function createTriageRoutes(deps: TriageRoutesDeps): Hono;
|
|
35
|
+
//# sourceMappingURL=triage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../../src/routes/triage.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAItE,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EACL,YAAY,EACZ,uBAAuB,EAGxB,MAAM,8BAA8B,CAAC;AAGtC,6EAA6E;AAC7E,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAqBvD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,cAAc,EAAE,MAAM,iBAAiB,EAAE,CAAC;IAC1C,yEAAyE;IACzE,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IAC9D,gDAAgD;IAChD,KAAK,EAAE,gBAAgB,CAAC;IACxB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,qEAAqE;IACrE,uBAAuB,CAAC,EAAE,OAAO,uBAAuB,CAAC;IACzD,8DAA8D;IAC9D,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;CACzD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAoa/D"}
|
|
@@ -0,0 +1,496 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* triage.ts — webui Triage Tab routes (FR-01.30, ADR-101).
|
|
3
|
+
*
|
|
4
|
+
* Six endpoints:
|
|
5
|
+
* GET /api/triage/:projectId — resolved view (status==triage filter applied client-side)
|
|
6
|
+
* GET /api/triage/counts — { counts: Record<projectId, number>, total }
|
|
7
|
+
* POST /api/triage/:projectId/promote — cross-store transaction → 201 / 207 partial / 409 / 400 / 404
|
|
8
|
+
* POST /api/triage/:projectId/dismiss — single-file write → 200
|
|
9
|
+
* POST /api/triage/:projectId/snooze — single-file write → 200
|
|
10
|
+
* POST /api/triage/:projectId/amend — single-file DELTA write (edit-in-place) → 200
|
|
11
|
+
*
|
|
12
|
+
* The Python CLI owns triage.jsonl locking and status compare-and-swap. This
|
|
13
|
+
* route only uses the sdk-sessions store's independent lock while preparing a
|
|
14
|
+
* promoted task; it never takes a TypeScript triage lock.
|
|
15
|
+
*/
|
|
16
|
+
import { Hono } from "hono";
|
|
17
|
+
import { resolveTriagePath } from "../core/triage-paths.js";
|
|
18
|
+
import { enrichPendingDelivery, enrichWithCampaignRefs, } from "../core/triage-enrich.js";
|
|
19
|
+
import { readAllItems, findItemById, filterTriage } from "../core/triage-store.js";
|
|
20
|
+
import { readBoardItems } from "../core/triage-board-read.js";
|
|
21
|
+
import { parsePromoteBody, parseDismissSnoozeBody, parseAmendBody, } from "../core/triage-validation.js";
|
|
22
|
+
import { runTriageCli, triageWriteAvailability, } from "../core/triage-cli-runner.js";
|
|
23
|
+
import { normalizeDescription } from "../external/_shared/helpers.js";
|
|
24
|
+
/** Never put an interpreter probe on the native board-read critical path. */
|
|
25
|
+
export const TRIAGE_WRITE_AVAILABILITY_TTL_MS = 15_000;
|
|
26
|
+
/**
|
|
27
|
+
* Action assigned to a promoted triage task. The launch route only
|
|
28
|
+
* injects a task's description into the `claude` command via the
|
|
29
|
+
* `actionId` → `substitutePlaceholders` branch; a task with no actionId
|
|
30
|
+
* falls to the legacy path and the brief never reaches the run. A triage
|
|
31
|
+
* item is by nature a change to a finished project, so `new-iterate` —
|
|
32
|
+
* which launches `/shipwright-iterate <description>` — is the natural
|
|
33
|
+
* landing action (a finding that turns out to need no change just ends
|
|
34
|
+
* the iterate early). `new-iterate` is a bundled action, always present
|
|
35
|
+
* in the resolved catalog; the launch route still validates it
|
|
36
|
+
* (`unknown_action_id`) against the project's `.shipwright-webui/actions.json`. A
|
|
37
|
+
* custom catalog that removes `new-iterate` therefore yields a loud
|
|
38
|
+
* 400 on launch — by design. Do NOT add a degrade-to-legacy fallback
|
|
39
|
+
* here: the legacy launch path has no description placeholder, so a
|
|
40
|
+
* fallback would silently re-drop the brief — exactly the bug this
|
|
41
|
+
* constant fixes.
|
|
42
|
+
*/
|
|
43
|
+
const PROMOTED_TASK_ACTION_ID = "new-iterate";
|
|
44
|
+
export function createTriageRoutes(deps) {
|
|
45
|
+
const app = new Hono();
|
|
46
|
+
const writeTriage = deps.runTriageCli ?? runTriageCli;
|
|
47
|
+
const writeAvailability = deps.triageWriteAvailability ?? triageWriteAvailability;
|
|
48
|
+
const availabilityTtlMs = deps.triageWriteAvailabilityTtlMs ?? TRIAGE_WRITE_AVAILABILITY_TTL_MS;
|
|
49
|
+
let cachedAvailability = null;
|
|
50
|
+
let availabilityInFlight = null;
|
|
51
|
+
function currentWriteAvailability() {
|
|
52
|
+
const now = Date.now();
|
|
53
|
+
if (cachedAvailability && now - cachedAvailability.at <= availabilityTtlMs) {
|
|
54
|
+
return Promise.resolve(cachedAvailability.value);
|
|
55
|
+
}
|
|
56
|
+
if (!availabilityInFlight) {
|
|
57
|
+
availabilityInFlight = writeAvailability()
|
|
58
|
+
.then((value) => { cachedAvailability = { at: Date.now(), value }; })
|
|
59
|
+
.catch(() => {
|
|
60
|
+
cachedAvailability = {
|
|
61
|
+
at: Date.now(),
|
|
62
|
+
value: {
|
|
63
|
+
available: false,
|
|
64
|
+
reason: "The triage write engine could not be checked.",
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
})
|
|
68
|
+
.finally(() => { availabilityInFlight = null; });
|
|
69
|
+
}
|
|
70
|
+
// A cold probe must not delay a native board read. Keep transitions safely
|
|
71
|
+
// disabled until its verdict is available; subsequent polling picks it up.
|
|
72
|
+
return Promise.resolve(cachedAvailability?.value ?? {
|
|
73
|
+
available: false,
|
|
74
|
+
checking: true,
|
|
75
|
+
reason: "Checking whether the triage write engine is available.",
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
// ----------------------------------------------------------------------
|
|
79
|
+
// GET /api/triage/counts — aggregate (status==triage) per project + total,
|
|
80
|
+
// plus a cross-project deferredTotal (status==snoozed) so the client can
|
|
81
|
+
// tell "genuinely nothing to look at" apart from "nothing OPEN, but items
|
|
82
|
+
// are parked" (iterate-2026-08-05-triage-deferred-envelope, code review).
|
|
83
|
+
//
|
|
84
|
+
// MUST be registered BEFORE the parametric `:projectId` route below,
|
|
85
|
+
// otherwise Hono matches "counts" as projectId="counts" → 404.
|
|
86
|
+
// ----------------------------------------------------------------------
|
|
87
|
+
app.get("/api/triage/counts", async (c) => {
|
|
88
|
+
const projects = deps.getAllProjects().filter((p) => !p.synthesized);
|
|
89
|
+
const settled = await Promise.allSettled(projects.map(async (p) => {
|
|
90
|
+
const pathRes = resolveTriagePath({
|
|
91
|
+
path: p.path,
|
|
92
|
+
synthesized: p.synthesized,
|
|
93
|
+
});
|
|
94
|
+
if (!pathRes.ok)
|
|
95
|
+
return { id: p.id, count: 0, deferred: 0 };
|
|
96
|
+
try {
|
|
97
|
+
const items = readAllItems(pathRes.absolute);
|
|
98
|
+
return {
|
|
99
|
+
id: p.id,
|
|
100
|
+
count: filterTriage(items).length,
|
|
101
|
+
deferred: items.filter((it) => it.status === "snoozed").length,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
console.warn(JSON.stringify({
|
|
106
|
+
level: "warn",
|
|
107
|
+
message: "triage counts: per-project read failed",
|
|
108
|
+
projectId: p.id,
|
|
109
|
+
error: String(err).slice(0, 200),
|
|
110
|
+
}));
|
|
111
|
+
return { id: p.id, count: 0, deferred: 0 };
|
|
112
|
+
}
|
|
113
|
+
}));
|
|
114
|
+
const counts = {};
|
|
115
|
+
let total = 0;
|
|
116
|
+
let deferredTotal = 0;
|
|
117
|
+
for (const r of settled) {
|
|
118
|
+
if (r.status === "fulfilled") {
|
|
119
|
+
counts[r.value.id] = r.value.count;
|
|
120
|
+
total += r.value.count;
|
|
121
|
+
deferredTotal += r.value.deferred;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return c.json({ counts, total, deferredTotal });
|
|
125
|
+
});
|
|
126
|
+
// ----------------------------------------------------------------------
|
|
127
|
+
// GET /api/triage/:projectId — list items (caller filters status if needed)
|
|
128
|
+
// ----------------------------------------------------------------------
|
|
129
|
+
app.get("/api/triage/:projectId", async (c) => {
|
|
130
|
+
const projectId = c.req.param("projectId");
|
|
131
|
+
const project = deps.getProjectById(projectId);
|
|
132
|
+
if (!project || project.synthesized) {
|
|
133
|
+
return c.json({ error: "project_not_found", projectId }, 404);
|
|
134
|
+
}
|
|
135
|
+
const pathRes = resolveTriagePath({
|
|
136
|
+
path: project.path,
|
|
137
|
+
synthesized: project.synthesized,
|
|
138
|
+
});
|
|
139
|
+
if (!pathRes.ok) {
|
|
140
|
+
// synthesized / missing path → 404; path traversal → 403
|
|
141
|
+
if (pathRes.error.reason === "path_traversal") {
|
|
142
|
+
return c.json({ error: "path_traversal_rejected", projectId }, 403);
|
|
143
|
+
}
|
|
144
|
+
return c.json({ error: "project_path_invalid", projectId }, 404);
|
|
145
|
+
}
|
|
146
|
+
// Delivered-origin union read (root-cause fix for the "ghost" bug) +
|
|
147
|
+
// `origin` drift metadata for the staleness banner (additive; older clients
|
|
148
|
+
// ignore it). Read errors + git failures degrade inside readBoardItems. See
|
|
149
|
+
// core/triage-board-read.ts.
|
|
150
|
+
const [board, write] = await Promise.all([
|
|
151
|
+
readBoardItems(pathRes.absolute, projectId),
|
|
152
|
+
currentWriteAvailability(),
|
|
153
|
+
]);
|
|
154
|
+
const items = board.items;
|
|
155
|
+
enrichWithCampaignRefs(items, projectId, deps.listCampaignRefs);
|
|
156
|
+
enrichPendingDelivery(items, pathRes.absolute);
|
|
157
|
+
return c.json({ items, origin: { ...board.origin, write } });
|
|
158
|
+
});
|
|
159
|
+
// ----------------------------------------------------------------------
|
|
160
|
+
// POST /api/triage/:projectId/promote — cross-store transaction
|
|
161
|
+
// ----------------------------------------------------------------------
|
|
162
|
+
app.post("/api/triage/:projectId/promote", async (c) => {
|
|
163
|
+
const projectId = c.req.param("projectId");
|
|
164
|
+
const project = deps.getProjectById(projectId);
|
|
165
|
+
if (!project || project.synthesized) {
|
|
166
|
+
return c.json({ error: "project_not_found", projectId }, 404);
|
|
167
|
+
}
|
|
168
|
+
let body;
|
|
169
|
+
try {
|
|
170
|
+
body = await c.req.json();
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return c.json({ error: "invalid_json" }, 400);
|
|
174
|
+
}
|
|
175
|
+
const parsed = parsePromoteBody(body);
|
|
176
|
+
if (!parsed.ok)
|
|
177
|
+
return c.json(parsed.error, 400);
|
|
178
|
+
const pathRes = resolveTriagePath({
|
|
179
|
+
path: project.path,
|
|
180
|
+
synthesized: project.synthesized,
|
|
181
|
+
});
|
|
182
|
+
if (!pathRes.ok) {
|
|
183
|
+
if (pathRes.error.reason === "path_traversal") {
|
|
184
|
+
return c.json({ error: "path_traversal_rejected", projectId }, 403);
|
|
185
|
+
}
|
|
186
|
+
return c.json({ error: "project_path_invalid", projectId }, 404);
|
|
187
|
+
}
|
|
188
|
+
// Read natively to construct the local task, but leave the transition
|
|
189
|
+
// itself to the Python CLI. This snapshot is deliberately NOT a TypeScript
|
|
190
|
+
// CAS: the CLI repeats the precondition under its cross-process lock.
|
|
191
|
+
const item = findItemById(readAllItems(pathRes.absolute), parsed.value.triageId);
|
|
192
|
+
if (!item) {
|
|
193
|
+
return c.json({ error: "triage_item_not_found", triageId: parsed.value.triageId }, 404);
|
|
194
|
+
}
|
|
195
|
+
try {
|
|
196
|
+
let taskId;
|
|
197
|
+
let recovered;
|
|
198
|
+
let createdTaskId;
|
|
199
|
+
// RC2 fix (ADR-106): create-or-recover with NO route-held
|
|
200
|
+
// sdk-sessions lock. `store.persist()` takes its own
|
|
201
|
+
// proper-lockfile lock internally; a second route-level lock on
|
|
202
|
+
// the same sdk-sessions.json was the non-reentrant self-deadlock
|
|
203
|
+
// (proper-lockfile is not reentrant → inner lock `ELOCKED` → 500).
|
|
204
|
+
// The CLI serializes same-id promotes under its cross-process lock; the
|
|
205
|
+
// back-ref lookup below stays as the idempotent create-vs-recover
|
|
206
|
+
// decision.
|
|
207
|
+
const existing = deps.store.findByPromotedFromTriageId(parsed.value.triageId);
|
|
208
|
+
if (existing) {
|
|
209
|
+
// Idempotent recovery — reuse the prior task, then proceed to
|
|
210
|
+
// the status flip (idempotent: last-status-wins). Re-persist
|
|
211
|
+
// defensively: a prior attempt may have created the task in
|
|
212
|
+
// memory but failed its persist() (e.g. ELOCKED → 503), leaving
|
|
213
|
+
// it off-disk. persist() is idempotent, so a re-run on an
|
|
214
|
+
// already-persisted task is a harmless full rewrite (external
|
|
215
|
+
// code review, ADR-106).
|
|
216
|
+
taskId = existing.taskId;
|
|
217
|
+
recovered = true;
|
|
218
|
+
await deps.store.persist();
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
// Fresh promote: create task, persist.
|
|
222
|
+
const defaultTags = [
|
|
223
|
+
`source:${item.source}`,
|
|
224
|
+
`severity:${item.severity}`,
|
|
225
|
+
`triage:${parsed.value.triageId}`,
|
|
226
|
+
];
|
|
227
|
+
const allTags = mergeTags(defaultTags, parsed.value.tags);
|
|
228
|
+
// Carry the triage item's `detail` text into the task as its
|
|
229
|
+
// description (the "brief" / initial prompt), and assign
|
|
230
|
+
// PROMOTED_TASK_ACTION_ID so the launch route's substitution
|
|
231
|
+
// branch actually injects that brief into the run. Without the
|
|
232
|
+
// actionId the launch falls to the legacy path and the brief is
|
|
233
|
+
// silently dropped; without the description there is nothing to
|
|
234
|
+
// inject. Both are required for the triage→backlog→in-progress
|
|
235
|
+
// chain to carry the brief end to end.
|
|
236
|
+
// Reuse the exact same normalizeDescription() create/edit already
|
|
237
|
+
// enforce (create.ts / patch.ts) — not a hand-rolled trim+cap
|
|
238
|
+
// check — so promote applies the identical rule (cap measured on
|
|
239
|
+
// the RAW string, before trimming) and the operator sees one
|
|
240
|
+
// consistent error regardless of entry point. A prior version
|
|
241
|
+
// checked the cap post-trim here, which silently accepted a
|
|
242
|
+
// padded-with-whitespace detail that create/edit would reject.
|
|
243
|
+
const normalized = normalizeDescription(item.detail);
|
|
244
|
+
if (!normalized.ok) {
|
|
245
|
+
return c.json({ error: "invalid_description", detail: normalized.error }, 400);
|
|
246
|
+
}
|
|
247
|
+
const description = normalized.value;
|
|
248
|
+
const created = deps.store.create({
|
|
249
|
+
title: item.title,
|
|
250
|
+
cwd: project.path,
|
|
251
|
+
projectId,
|
|
252
|
+
actionId: PROMOTED_TASK_ACTION_ID,
|
|
253
|
+
domain: parsed.value.domain,
|
|
254
|
+
priority: parsed.value.priority,
|
|
255
|
+
complexityHint: parsed.value.complexityHint,
|
|
256
|
+
tags: allTags,
|
|
257
|
+
promotedFromTriageId: parsed.value.triageId,
|
|
258
|
+
...(description !== undefined ? { description } : {}),
|
|
259
|
+
});
|
|
260
|
+
await deps.store.persist();
|
|
261
|
+
taskId = created.taskId;
|
|
262
|
+
recovered = false;
|
|
263
|
+
createdTaskId = taskId;
|
|
264
|
+
}
|
|
265
|
+
const cli = await writeTriage({
|
|
266
|
+
projectRoot: project.path,
|
|
267
|
+
operation: "promote",
|
|
268
|
+
itemId: parsed.value.triageId,
|
|
269
|
+
args: [`--task-ref=EXT:${taskId}`, "--reason=webuiPromote"],
|
|
270
|
+
});
|
|
271
|
+
let resolvedItem = cli.kind === "ok" ? cli.item : undefined;
|
|
272
|
+
if (!resolvedItem && cli.kind === "precondition" && recovered) {
|
|
273
|
+
// The original promotion may have committed before its stdout was
|
|
274
|
+
// lost. A second `promote` correctly receives the CLI's stable
|
|
275
|
+
// precondition exit, so reconcile through the CLI reader before
|
|
276
|
+
// declaring the recoverable task stranded.
|
|
277
|
+
const shown = await writeTriage({
|
|
278
|
+
projectRoot: project.path,
|
|
279
|
+
operation: "show",
|
|
280
|
+
itemId: parsed.value.triageId,
|
|
281
|
+
args: [],
|
|
282
|
+
});
|
|
283
|
+
if (shown.kind === "ok" &&
|
|
284
|
+
shown.item.status === "promoted" &&
|
|
285
|
+
shown.item.promotedTaskId === `EXT:${taskId}`) {
|
|
286
|
+
resolvedItem = shown.item;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
if (!resolvedItem) {
|
|
290
|
+
// A newly minted task has no triage transition until the CLI says it
|
|
291
|
+
// succeeded. Stable CLI refusals prove no transition committed, so a
|
|
292
|
+
// Python-originated winning race cannot leave a WebUI orphan behind.
|
|
293
|
+
// An unrecognised result is deliberately NOT rolled back: the CLI may
|
|
294
|
+
// have committed before stdout was truncated, and its promoted event
|
|
295
|
+
// references this task. Preserve that recoverable partial instead.
|
|
296
|
+
if (createdTaskId && cli.kind !== "failed") {
|
|
297
|
+
deps.store.delete(createdTaskId);
|
|
298
|
+
await deps.store.persist();
|
|
299
|
+
}
|
|
300
|
+
if (cli.kind === "engine-unavailable")
|
|
301
|
+
return engineUnavailable(c, cli);
|
|
302
|
+
if (cli.kind === "failed") {
|
|
303
|
+
return c.json({
|
|
304
|
+
error: "promote_partial",
|
|
305
|
+
taskId,
|
|
306
|
+
triageId: parsed.value.triageId,
|
|
307
|
+
code: "triage_cli_result_unknown",
|
|
308
|
+
message: "ExternalTask created; triage transition result is unknown — retry to reconcile.",
|
|
309
|
+
}, 207);
|
|
310
|
+
}
|
|
311
|
+
// `ok` always supplies a non-null object to `resolvedItem`; TypeScript
|
|
312
|
+
// cannot retain that relationship through the reconciliation branch.
|
|
313
|
+
return cliFailure(c, cli, parsed.value.triageId);
|
|
314
|
+
}
|
|
315
|
+
const fullTask = deps.store.get(taskId);
|
|
316
|
+
const response = {
|
|
317
|
+
task: {
|
|
318
|
+
taskId,
|
|
319
|
+
promotedFromTriageId: fullTask?.promotedFromTriageId,
|
|
320
|
+
},
|
|
321
|
+
triageId: parsed.value.triageId,
|
|
322
|
+
newStatus: "promoted",
|
|
323
|
+
recovered,
|
|
324
|
+
item: resolvedItem,
|
|
325
|
+
};
|
|
326
|
+
return c.json(response, 201);
|
|
327
|
+
}
|
|
328
|
+
catch (err) {
|
|
329
|
+
// sdk-sessions persistence is still independently lock-protected.
|
|
330
|
+
if (isElockedError(err))
|
|
331
|
+
return lockUnavailable(c);
|
|
332
|
+
throw err;
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
// ----------------------------------------------------------------------
|
|
336
|
+
// POST /api/triage/:projectId/dismiss — single-file write
|
|
337
|
+
// ----------------------------------------------------------------------
|
|
338
|
+
app.post("/api/triage/:projectId/dismiss", async (c) => {
|
|
339
|
+
return statusFlipRoute(c, "dismissed");
|
|
340
|
+
});
|
|
341
|
+
// ----------------------------------------------------------------------
|
|
342
|
+
// POST /api/triage/:projectId/snooze — single-file write
|
|
343
|
+
// ----------------------------------------------------------------------
|
|
344
|
+
app.post("/api/triage/:projectId/snooze", async (c) => {
|
|
345
|
+
return statusFlipRoute(c, "snoozed");
|
|
346
|
+
});
|
|
347
|
+
// ----------------------------------------------------------------------
|
|
348
|
+
// POST /api/triage/:projectId/amend — single-file DELTA write, edit-in-
|
|
349
|
+
// place (iterate-2026-08-08-triage-amend-reader AC7). `triageId` is in
|
|
350
|
+
// the JSON body, matching /dismiss + /snooze — not a URL path param.
|
|
351
|
+
// ----------------------------------------------------------------------
|
|
352
|
+
app.post("/api/triage/:projectId/amend", async (c) => {
|
|
353
|
+
const projectId = c.req.param("projectId") ?? "";
|
|
354
|
+
const project = deps.getProjectById(projectId);
|
|
355
|
+
if (!project || project.synthesized) {
|
|
356
|
+
return c.json({ error: "project_not_found", projectId }, 404);
|
|
357
|
+
}
|
|
358
|
+
let body;
|
|
359
|
+
try {
|
|
360
|
+
body = await c.req.json();
|
|
361
|
+
}
|
|
362
|
+
catch {
|
|
363
|
+
return c.json({ error: "invalid_json" }, 400);
|
|
364
|
+
}
|
|
365
|
+
const parsed = parseAmendBody(body);
|
|
366
|
+
if (!parsed.ok)
|
|
367
|
+
return c.json(parsed.error, 400);
|
|
368
|
+
const pathRes = resolveTriagePath({
|
|
369
|
+
path: project.path,
|
|
370
|
+
synthesized: project.synthesized,
|
|
371
|
+
});
|
|
372
|
+
if (!pathRes.ok) {
|
|
373
|
+
if (pathRes.error.reason === "path_traversal") {
|
|
374
|
+
return c.json({ error: "path_traversal_rejected", projectId }, 403);
|
|
375
|
+
}
|
|
376
|
+
return c.json({ error: "project_path_invalid", projectId }, 404);
|
|
377
|
+
}
|
|
378
|
+
const cli = await writeTriage({
|
|
379
|
+
projectRoot: project.path,
|
|
380
|
+
operation: "amend",
|
|
381
|
+
itemId: parsed.value.triageId,
|
|
382
|
+
args: [
|
|
383
|
+
...(parsed.value.title !== undefined ? [`--title=${parsed.value.title}`] : []),
|
|
384
|
+
...(parsed.value.detail !== undefined ? [`--detail=${parsed.value.detail}`] : []),
|
|
385
|
+
...(parsed.value.severity !== undefined ? [`--severity=${parsed.value.severity}`] : []),
|
|
386
|
+
],
|
|
387
|
+
});
|
|
388
|
+
if (cli.kind === "ok")
|
|
389
|
+
return c.json({ triageId: parsed.value.triageId, amended: true, item: cli.item });
|
|
390
|
+
if (cli.kind === "engine-unavailable")
|
|
391
|
+
return engineUnavailable(c, cli);
|
|
392
|
+
return cliFailure(c, cli, parsed.value.triageId);
|
|
393
|
+
});
|
|
394
|
+
async function statusFlipRoute(c, newStatus) {
|
|
395
|
+
const projectId = c.req.param("projectId") ?? "";
|
|
396
|
+
const project = deps.getProjectById(projectId);
|
|
397
|
+
if (!project || project.synthesized) {
|
|
398
|
+
return c.json({ error: "project_not_found", projectId }, 404);
|
|
399
|
+
}
|
|
400
|
+
let body;
|
|
401
|
+
try {
|
|
402
|
+
body = await c.req.json();
|
|
403
|
+
}
|
|
404
|
+
catch {
|
|
405
|
+
return c.json({ error: "invalid_json" }, 400);
|
|
406
|
+
}
|
|
407
|
+
const parsed = parseDismissSnoozeBody(body, newStatus);
|
|
408
|
+
if (!parsed.ok)
|
|
409
|
+
return c.json(parsed.error, 400);
|
|
410
|
+
const pathRes = resolveTriagePath({
|
|
411
|
+
path: project.path,
|
|
412
|
+
synthesized: project.synthesized,
|
|
413
|
+
});
|
|
414
|
+
if (!pathRes.ok) {
|
|
415
|
+
if (pathRes.error.reason === "path_traversal") {
|
|
416
|
+
return c.json({ error: "path_traversal_rejected", projectId }, 403);
|
|
417
|
+
}
|
|
418
|
+
return c.json({ error: "project_path_invalid", projectId }, 404);
|
|
419
|
+
}
|
|
420
|
+
// Orphan-promote guard: this is task-store recovery, not a triage CAS.
|
|
421
|
+
// The CLI owns both the unlocked status check and the locked transition.
|
|
422
|
+
const existing = deps.store.findByPromotedFromTriageId(parsed.value.triageId);
|
|
423
|
+
if (existing) {
|
|
424
|
+
return c.json({
|
|
425
|
+
error: "promote_in_progress",
|
|
426
|
+
taskId: existing.taskId,
|
|
427
|
+
message: "A previous Promote attempt left a task; complete the promote (retry) or delete the task first.",
|
|
428
|
+
}, 409);
|
|
429
|
+
}
|
|
430
|
+
const cli = await writeTriage({
|
|
431
|
+
projectRoot: project.path,
|
|
432
|
+
operation: newStatus === "dismissed" ? "dismiss" : "snooze",
|
|
433
|
+
itemId: parsed.value.triageId,
|
|
434
|
+
args: [
|
|
435
|
+
...(parsed.value.reason ? [`--reason=${parsed.value.reason}`] : []),
|
|
436
|
+
...(newStatus === "snoozed" && parsed.value.revisitAt ? [`--revisit=${parsed.value.revisitAt}`] : []),
|
|
437
|
+
],
|
|
438
|
+
});
|
|
439
|
+
if (cli.kind === "ok")
|
|
440
|
+
return c.json({ triageId: parsed.value.triageId, newStatus, item: cli.item });
|
|
441
|
+
if (cli.kind === "engine-unavailable")
|
|
442
|
+
return engineUnavailable(c, cli);
|
|
443
|
+
return cliFailure(c, cli, parsed.value.triageId);
|
|
444
|
+
}
|
|
445
|
+
return app;
|
|
446
|
+
}
|
|
447
|
+
// Body validators (parsePromoteBody, parseDismissSnoozeBody + shared
|
|
448
|
+
// helpers) live in core/triage-validation.ts — extracted
|
|
449
|
+
// iterate-2026-08-05-triage-deferred-envelope to keep this already-
|
|
450
|
+
// baselined file from ratcheting.
|
|
451
|
+
// enrichWithCampaignRefs (FR-01.33) moved verbatim to core/triage-enrich.ts
|
|
452
|
+
// (anti-ratchet extraction, iterate-2026-06-10-triage-pending-delivery-badge).
|
|
453
|
+
function mergeTags(defaults, userTags) {
|
|
454
|
+
const seen = new Set(defaults);
|
|
455
|
+
const out = [...defaults];
|
|
456
|
+
for (const t of userTags) {
|
|
457
|
+
if (!seen.has(t)) {
|
|
458
|
+
seen.add(t);
|
|
459
|
+
out.push(t);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
return out;
|
|
463
|
+
}
|
|
464
|
+
/** sdk-sessions persistence remains lock-protected independently of triage. */
|
|
465
|
+
function isElockedError(err) {
|
|
466
|
+
return (typeof err === "object" &&
|
|
467
|
+
err !== null &&
|
|
468
|
+
err.code === "ELOCKED");
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* 503 response for genuine lock contention. Generic, retry-oriented
|
|
472
|
+
* wording — never leaks the raw error or a filesystem path (spec AC4).
|
|
473
|
+
*/
|
|
474
|
+
function lockUnavailable(c) {
|
|
475
|
+
return c.json({
|
|
476
|
+
error: "lock_unavailable",
|
|
477
|
+
message: "Triage storage is busy — please retry in a moment.",
|
|
478
|
+
}, 503);
|
|
479
|
+
}
|
|
480
|
+
function engineUnavailable(c, result) {
|
|
481
|
+
return c.json({ error: "engine_unavailable", message: result.reason, repairCommand: result.repairCommand }, 503);
|
|
482
|
+
}
|
|
483
|
+
function cliFailure(c, result, triageId) {
|
|
484
|
+
switch (result.kind) {
|
|
485
|
+
case "precondition":
|
|
486
|
+
return c.json({ error: "triage_item_not_in_triage_state", triageId }, 409);
|
|
487
|
+
case "not-found":
|
|
488
|
+
case "store-uninitialised":
|
|
489
|
+
return c.json({ error: "triage_item_not_found", triageId }, 404);
|
|
490
|
+
case "lock-timeout":
|
|
491
|
+
return lockUnavailable(c);
|
|
492
|
+
case "failed":
|
|
493
|
+
return c.json({ error: "triage_write_failed", message: result.reason }, 502);
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
//# sourceMappingURL=triage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triage.js","sourceRoot":"","sources":["../../src/routes/triage.ts"],"names":[],"mappings":"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"}
|