@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,315 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Persisted store for external-launch task metadata.
|
|
3
|
+
*
|
|
4
|
+
* On disk at `<registryDir>/sdk-sessions.json`: { schemaVersion: 4, sessions:
|
|
5
|
+
* { [taskId]: ExternalTask } } — see the SdkSessionsFile + ExternalTask
|
|
6
|
+
* interfaces below for the full row shape.
|
|
7
|
+
*
|
|
8
|
+
* Schema migration (ADR-038 + -v2 + iterate-2026-06-17 boardColumn):
|
|
9
|
+
* CURRENT_SCHEMA_VERSION = 4; the loader accepts v1–v4. v1 rows backfill
|
|
10
|
+
* `projectId: "unassigned"`; older rows load with newer fields undefined.
|
|
11
|
+
* Write-on-touch — the first persist() after a mutation flushes the whole
|
|
12
|
+
* shape as v4, so large stores migrate over days of use (not on boot) and
|
|
13
|
+
* rollback is a one-line constant revert.
|
|
14
|
+
* O26 (deleted project refs): if `getKnownProjectIds` is injected, v2 rows
|
|
15
|
+
* whose projectId is unknown resolve to "unassigned" in memory + next persist.
|
|
16
|
+
* O25 (forward compat): the v1 branch tolerates an unknown projectId field so
|
|
17
|
+
* older binaries don't crash on a v2-ish row tagged v1 (partial rollback).
|
|
18
|
+
*
|
|
19
|
+
* Writes are guarded by proper-lockfile (injected lock dep). F08 — persist()
|
|
20
|
+
* re-reads + 3-way merges under that lock and writes atomically (tmp+rename)
|
|
21
|
+
* so concurrent instances sharing the file never clobber each other's rows /
|
|
22
|
+
* externally-written claim fields (see sdk-sessions-merge.ts). Reads are
|
|
23
|
+
* unguarded — dirty reads (post-write, pre-flush) are acceptable.
|
|
24
|
+
*
|
|
25
|
+
* Corruption tolerance: a malformed entry fails ONLY its own read — we
|
|
26
|
+
* soft-skip rows that fail schema validation rather than throwing, so one bad
|
|
27
|
+
* row can't kill every other session on restart (round-2 GPT MAJOR 6).
|
|
28
|
+
*/
|
|
29
|
+
import { randomUUID } from "node:crypto";
|
|
30
|
+
import { atomicWriteFile, cloneSessions, mergeSessions, reReadDisk } from "./sdk-sessions-merge.js";
|
|
31
|
+
import { UNASSIGNED_PROJECT_ID, validateExternalTask } from "./sdk-sessions-validate.js";
|
|
32
|
+
// Re-exported for the many callers that historically imported it from here.
|
|
33
|
+
export { UNASSIGNED_PROJECT_ID } from "./sdk-sessions-validate.js";
|
|
34
|
+
/**
|
|
35
|
+
* The five "In Progress" states — a task that has been launched but is
|
|
36
|
+
* not yet `done`. These are exactly the states from which a task can be
|
|
37
|
+
* moved back to the Backlog (`POST /api/external/tasks/:id/backlog`,
|
|
38
|
+
* iterate-2026-05-17-move-to-backlog / FR-01.32). `draft` (already in
|
|
39
|
+
* Backlog) and `done` (terminal) are deliberately excluded.
|
|
40
|
+
*
|
|
41
|
+
* Verbatim mirror: `client/src/lib/taskLifecycle.ts` IN_PROGRESS_STATES.
|
|
42
|
+
* The two halves are independent npm workspaces (DO-NOT guard #7 — no
|
|
43
|
+
* cross-package import); keep this tuple and the client one in sync.
|
|
44
|
+
*/
|
|
45
|
+
export const BACKLOG_SOURCE_STATES = [
|
|
46
|
+
"awaiting_external_start",
|
|
47
|
+
"active",
|
|
48
|
+
"idle",
|
|
49
|
+
"jsonl_missing",
|
|
50
|
+
"launch_failed",
|
|
51
|
+
];
|
|
52
|
+
/** True when `state` is one of the five In-Progress {@link BACKLOG_SOURCE_STATES}. */
|
|
53
|
+
export function isBacklogSourceState(state) {
|
|
54
|
+
return BACKLOG_SOURCE_STATES.includes(state);
|
|
55
|
+
}
|
|
56
|
+
const CURRENT_SCHEMA_VERSION = 4;
|
|
57
|
+
export class SdkSessionsStore {
|
|
58
|
+
path;
|
|
59
|
+
deps;
|
|
60
|
+
sessions = new Map();
|
|
61
|
+
/** Deep-copy of `sessions` at load()/last-persist — the 3-way merge base (F08). */
|
|
62
|
+
baseline = new Map();
|
|
63
|
+
/** ids deleted since baseline — merge drops them so a delete beats disk churn (F08). */
|
|
64
|
+
deletedSinceBaseline = new Set();
|
|
65
|
+
loaded = false;
|
|
66
|
+
constructor(path, deps) {
|
|
67
|
+
this.path = path;
|
|
68
|
+
this.deps = deps;
|
|
69
|
+
}
|
|
70
|
+
async load() {
|
|
71
|
+
if (this.loaded)
|
|
72
|
+
return;
|
|
73
|
+
if (!this.deps.existsSync(this.path)) {
|
|
74
|
+
this.sessions.clear();
|
|
75
|
+
this.loaded = true;
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
let raw;
|
|
79
|
+
try {
|
|
80
|
+
raw = await this.deps.readFile(this.path, "utf-8");
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// Unreadable file → start empty. Write path will create a fresh one.
|
|
84
|
+
this.sessions.clear();
|
|
85
|
+
this.loaded = true;
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (!raw.trim()) {
|
|
89
|
+
this.sessions.clear();
|
|
90
|
+
this.loaded = true;
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
let parsed;
|
|
94
|
+
try {
|
|
95
|
+
parsed = JSON.parse(raw);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// Corrupted top-level JSON → don't silently wipe; rename aside + start empty.
|
|
99
|
+
const asideName = `${this.path}.corrupt-${Date.now()}`;
|
|
100
|
+
try {
|
|
101
|
+
await this.deps.writeFile(asideName, raw);
|
|
102
|
+
}
|
|
103
|
+
catch { /* ignore */ }
|
|
104
|
+
this.sessions.clear();
|
|
105
|
+
this.loaded = true;
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
// Schema-version gate. We accept v1, v2, and v3 (ADR-038 +
|
|
109
|
+
// iterate/multi-session-run-orchestrator-v2). Anything else → start
|
|
110
|
+
// empty (future version, won't silently misinterpret).
|
|
111
|
+
const schemaVersion = parsed && typeof parsed === "object" && "schemaVersion" in parsed
|
|
112
|
+
? parsed.schemaVersion
|
|
113
|
+
: undefined;
|
|
114
|
+
if (schemaVersion !== 1 && schemaVersion !== 2 && schemaVersion !== 3 && schemaVersion !== 4) {
|
|
115
|
+
this.sessions.clear();
|
|
116
|
+
this.loaded = true;
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const sessionsObj = parsed && typeof parsed === "object" && "sessions" in parsed
|
|
120
|
+
? parsed.sessions
|
|
121
|
+
: undefined;
|
|
122
|
+
if (!sessionsObj || typeof sessionsObj !== "object") {
|
|
123
|
+
this.sessions.clear();
|
|
124
|
+
this.loaded = true;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
// Per-entry fault isolation: a bad row is dropped, the rest survive.
|
|
128
|
+
for (const [taskId, value] of Object.entries(sessionsObj)) {
|
|
129
|
+
const task = validateExternalTask(taskId, value, schemaVersion);
|
|
130
|
+
if (task)
|
|
131
|
+
this.sessions.set(taskId, task);
|
|
132
|
+
}
|
|
133
|
+
// Baseline = RAW on-disk rows (pre-O26). O26 below is a local change this
|
|
134
|
+
// instance makes, so it must read as a diff the merge propagates — else
|
|
135
|
+
// persist would take disk's stale projectId back and O26 never reaches disk (F08).
|
|
136
|
+
this.baseline = cloneSessions(this.sessions);
|
|
137
|
+
// O26: resolve stale projectId references to UNASSIGNED. Only runs when the
|
|
138
|
+
// wiring provides a known-project-id set (production has it; unit tests
|
|
139
|
+
// typically don't — fine, they test the pre-resolve shape).
|
|
140
|
+
if (this.deps.getKnownProjectIds) {
|
|
141
|
+
const known = this.deps.getKnownProjectIds();
|
|
142
|
+
for (const task of this.sessions.values()) {
|
|
143
|
+
if (task.projectId !== UNASSIGNED_PROJECT_ID &&
|
|
144
|
+
!known.has(task.projectId)) {
|
|
145
|
+
task.projectId = UNASSIGNED_PROJECT_ID;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
this.loaded = true;
|
|
150
|
+
}
|
|
151
|
+
create(args) {
|
|
152
|
+
const task = {
|
|
153
|
+
taskId: randomUUID(),
|
|
154
|
+
sessionUuid: args.sessionUuid ?? randomUUID(),
|
|
155
|
+
cwd: args.cwd,
|
|
156
|
+
pluginDirs: args.pluginDirs ?? [],
|
|
157
|
+
parentTaskId: args.parentTaskId,
|
|
158
|
+
parentSessionUuid: args.parentSessionUuid,
|
|
159
|
+
title: args.title,
|
|
160
|
+
projectId: typeof args.projectId === "string" && args.projectId.trim()
|
|
161
|
+
? args.projectId.trim()
|
|
162
|
+
: UNASSIGNED_PROJECT_ID,
|
|
163
|
+
state: "draft",
|
|
164
|
+
createdAt: new Date().toISOString(),
|
|
165
|
+
inbox: {
|
|
166
|
+
pendingToolUseIds: [],
|
|
167
|
+
dismissedToolUseIds: [],
|
|
168
|
+
lastProcessedByteOffset: 0,
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
if (args.phase)
|
|
172
|
+
task.phase = args.phase;
|
|
173
|
+
if (args.phaseLabel)
|
|
174
|
+
task.phaseLabel = args.phaseLabel;
|
|
175
|
+
if (args.actionId)
|
|
176
|
+
task.actionId = args.actionId;
|
|
177
|
+
// iterate-2026-05-18-edit-task-dialog — persist the description at
|
|
178
|
+
// create-time so a "Save to Backlog" draft retains its brief.
|
|
179
|
+
if (typeof args.description === "string" && args.description.length > 0) {
|
|
180
|
+
task.description = args.description;
|
|
181
|
+
}
|
|
182
|
+
if (args.phaseTaskId)
|
|
183
|
+
task.phaseTaskId = args.phaseTaskId;
|
|
184
|
+
if (args.runId)
|
|
185
|
+
task.runId = args.runId;
|
|
186
|
+
if (typeof args.parentRunMaster === "boolean") {
|
|
187
|
+
task.parentRunMaster = args.parentRunMaster;
|
|
188
|
+
}
|
|
189
|
+
// iterate-2026-05-14 lead-foundation: assign only when the caller passed
|
|
190
|
+
// the field, so omitted fields stay absent (JSON.stringify drops the rest).
|
|
191
|
+
if (typeof args.domain === "string")
|
|
192
|
+
task.domain = args.domain;
|
|
193
|
+
if (args.priority)
|
|
194
|
+
task.priority = args.priority;
|
|
195
|
+
if (args.complexityHint)
|
|
196
|
+
task.complexityHint = args.complexityHint;
|
|
197
|
+
if (Array.isArray(args.tags))
|
|
198
|
+
task.tags = args.tags;
|
|
199
|
+
if (Array.isArray(args.blockedBy))
|
|
200
|
+
task.blockedBy = args.blockedBy;
|
|
201
|
+
if (typeof args.leadParentTaskId === "string")
|
|
202
|
+
task.leadParentTaskId = args.leadParentTaskId;
|
|
203
|
+
// iterate-2026-05-14 triage-tab (ADR-101): back-ref to the promoted triage
|
|
204
|
+
// item. Set ONLY by /api/triage/:projectId/promote (not public POST
|
|
205
|
+
// /api/external/tasks); daemon-only-fields pattern from ADR-100.
|
|
206
|
+
if (typeof args.promotedFromTriageId === "string") {
|
|
207
|
+
task.promotedFromTriageId = args.promotedFromTriageId;
|
|
208
|
+
}
|
|
209
|
+
this.sessions.set(task.taskId, task);
|
|
210
|
+
return task;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* v3 — find an existing non-terminal task by `phaseTaskId`. Used by the
|
|
214
|
+
* create-task route to make Continue Pipeline launches idempotent: a second
|
|
215
|
+
* click on the same phase_task reuses the prior shadow (review O #6). Returns
|
|
216
|
+
* the first match (only one non-terminal shadow per phase_task; defensive).
|
|
217
|
+
*/
|
|
218
|
+
findByPhaseTaskId(phaseTaskId) {
|
|
219
|
+
for (const t of this.sessions.values()) {
|
|
220
|
+
if (t.phaseTaskId === phaseTaskId && t.state !== "done")
|
|
221
|
+
return t;
|
|
222
|
+
}
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* iterate-2026-05-14 triage-tab (ADR-101) — find an existing task by
|
|
227
|
+
* `promotedFromTriageId`. Used by the promote route to make
|
|
228
|
+
* Promote idempotent: if a previous attempt completed step 5 (created
|
|
229
|
+
* task) but step 7 (status flip) failed, the retry must NOT create
|
|
230
|
+
* another task — it must reuse the existing one and re-attempt the
|
|
231
|
+
* status flip. Mirrors the `findByPhaseTaskId` pattern.
|
|
232
|
+
*
|
|
233
|
+
* Includes done-state tasks too (unlike findByPhaseTaskId): a triage
|
|
234
|
+
* item promoted to a task that's been completed should still block
|
|
235
|
+
* a re-promote attempt; the back-ref is unique per triage id.
|
|
236
|
+
*/
|
|
237
|
+
findByPromotedFromTriageId(triageId) {
|
|
238
|
+
for (const t of this.sessions.values()) {
|
|
239
|
+
if (t.promotedFromTriageId === triageId)
|
|
240
|
+
return t;
|
|
241
|
+
}
|
|
242
|
+
return undefined;
|
|
243
|
+
}
|
|
244
|
+
get(taskId) {
|
|
245
|
+
return this.sessions.get(taskId);
|
|
246
|
+
}
|
|
247
|
+
list() {
|
|
248
|
+
return Array.from(this.sessions.values()).sort((a, b) => a.createdAt < b.createdAt ? 1 : -1);
|
|
249
|
+
}
|
|
250
|
+
/** Apply a partial patch to a task; returns the updated copy or undefined. */
|
|
251
|
+
patch(taskId, patch) {
|
|
252
|
+
const task = this.sessions.get(taskId);
|
|
253
|
+
if (!task)
|
|
254
|
+
return undefined;
|
|
255
|
+
Object.assign(task, patch);
|
|
256
|
+
return task;
|
|
257
|
+
}
|
|
258
|
+
delete(taskId) {
|
|
259
|
+
const existed = this.sessions.delete(taskId);
|
|
260
|
+
// Track deletes of rows that exist on disk (in baseline) so the next
|
|
261
|
+
// merge drops them unconditionally — a delete must beat a concurrent
|
|
262
|
+
// instance's ~1/sec poll rewrite (F08). Cleared after a successful persist.
|
|
263
|
+
if (existed && this.baseline.has(taskId))
|
|
264
|
+
this.deletedSinceBaseline.add(taskId);
|
|
265
|
+
return existed;
|
|
266
|
+
}
|
|
267
|
+
/** Merge under the lock (F08 header note) + atomically flush. `await` after any mutation. */
|
|
268
|
+
async persist() {
|
|
269
|
+
// Ensure parent dir + file exist before locking (proper-lockfile lstats).
|
|
270
|
+
const lastSlash = Math.max(this.path.lastIndexOf("/"), this.path.lastIndexOf("\\"));
|
|
271
|
+
if (lastSlash !== -1) {
|
|
272
|
+
const dir = this.path.slice(0, lastSlash);
|
|
273
|
+
if (!this.deps.existsSync(dir))
|
|
274
|
+
this.deps.mkdirSync(dir, { recursive: true });
|
|
275
|
+
}
|
|
276
|
+
this.deps.ensureFile(this.path);
|
|
277
|
+
const release = this.deps.lock ? await this.deps.lock(this.path) : null;
|
|
278
|
+
try {
|
|
279
|
+
// F08 — UNDER the lock, re-read + 3-way merge onto disk (read-only): a
|
|
280
|
+
// concurrent instance's rows + external claims survive, only fields THIS
|
|
281
|
+
// instance changed win, deletes always win. corrupt disk → recover (write
|
|
282
|
+
// full memory); FUTURE schemaVersion → ABORT (don't downgrade a newer file);
|
|
283
|
+
// a transient read I/O error retries then rejects inside reReadDisk (never
|
|
284
|
+
// clobbers). The merge is applied into this.sessions SYNCHRONOUSLY before
|
|
285
|
+
// the write await, so a create/patch/delete during the write lands on the
|
|
286
|
+
// LIVE map + is preserved for the next persist (never lost to a stale swap).
|
|
287
|
+
// No lock ⇒ no cross-process coordination possible → write memory directly.
|
|
288
|
+
if (release) {
|
|
289
|
+
const rr = await reReadDisk(this.deps, this.path, CURRENT_SCHEMA_VERSION, validateExternalTask);
|
|
290
|
+
if (rr.kind === "future")
|
|
291
|
+
throw new Error("sdk-sessions.json on disk has a newer schemaVersion than this build supports — refusing to overwrite (version mismatch)");
|
|
292
|
+
if (rr.kind === "ok")
|
|
293
|
+
this.sessions = mergeSessions(this.baseline, this.sessions, rr.disk, this.deletedSinceBaseline);
|
|
294
|
+
// rr.kind === "corrupt": keep this.sessions (full-write recover)
|
|
295
|
+
}
|
|
296
|
+
// Snapshot EXACTLY what we write (immune to concurrent mutation during the
|
|
297
|
+
// await) + which deletes this write reconciles — both captured pre-await.
|
|
298
|
+
const snapshot = cloneSessions(this.sessions);
|
|
299
|
+
const reconciledDeletes = new Set(this.deletedSinceBaseline);
|
|
300
|
+
const payload = { schemaVersion: CURRENT_SCHEMA_VERSION, sessions: Object.fromEntries(snapshot) };
|
|
301
|
+
await atomicWriteFile(this.deps, this.path, JSON.stringify(payload, null, 2), Boolean(release));
|
|
302
|
+
// On success only: baseline = what was actually written (NOT the possibly-
|
|
303
|
+
// mutated live map); drop ONLY the reconciled tombstones so a delete during
|
|
304
|
+
// the write survives to the next persist.
|
|
305
|
+
this.baseline = snapshot;
|
|
306
|
+
for (const id of reconciledDeletes)
|
|
307
|
+
this.deletedSinceBaseline.delete(id);
|
|
308
|
+
}
|
|
309
|
+
finally {
|
|
310
|
+
if (release)
|
|
311
|
+
await release();
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=sdk-sessions-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-sessions-store.js","sourceRoot":"","sources":["../../src/core/sdk-sessions-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACzF,4EAA4E;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAWnE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,yBAAyB;IACzB,QAAQ;IACR,MAAM;IACN,eAAe;IACf,eAAe;CACgC,CAAC;AAElD,sFAAsF;AACtF,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IAC3D,OAAQ,qBAAsD,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjF,CAAC;AA8ID,MAAM,sBAAsB,GAAG,CAAU,CAAC;AAE1C,MAAM,OAAO,gBAAgB;IACV,IAAI,CAAS;IACb,IAAI,CAAuB;IACpC,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IACnD,mFAAmF;IAC3E,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IACnD,wFAAwF;IAChF,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,IAAY,EAAE,IAA0B;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,8EAA8E;YAC9E,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACT,CAAC;QAED,2DAA2D;QAC3D,oEAAoE;QACpE,uDAAuD;QACvD,MAAM,aAAa,GACjB,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,eAAe,IAAI,MAAM;YAC/D,CAAC,CAAE,MAAqC,CAAC,aAAa;YACtD,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YAC7F,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GACf,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,UAAU,IAAI,MAAM;YAC1D,CAAC,CAAE,MAAgC,CAAC,QAAQ;YAC5C,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACT,CAAC;QAED,qEAAqE;QACrE,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAsC,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,GAAG,oBAAoB,CAC/B,MAAM,EACN,KAAK,EACL,aAA8B,CAC/B,CAAC;YACF,IAAI,IAAI;gBAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,0EAA0E;QAC1E,wEAAwE;QACxE,mFAAmF;QACnF,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE7C,4EAA4E;QAC5E,wEAAwE;QACxE,4DAA4D;QAC5D,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1C,IACE,IAAI,CAAC,SAAS,KAAK,qBAAqB;oBACxC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAC1B,CAAC;oBACD,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,IAmEN;QACC,MAAM,IAAI,GAAiB;YACzB,MAAM,EAAE,UAAU,EAAE;YACpB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;YAC7C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EACP,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;gBACzD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;gBACvB,CAAC,CAAC,qBAAqB;YAC3B,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE;gBACL,iBAAiB,EAAE,EAAE;gBACrB,mBAAmB,EAAE,EAAE;gBACvB,uBAAuB,EAAE,CAAC;aAC3B;SACF,CAAC;QACF,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACvD,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjD,mEAAmE;QACnE,8DAA8D;QAC9D,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC1D,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,CAAC;QACD,yEAAyE;QACzE,4EAA4E;QAC5E,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjD,IAAI,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACnE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnE,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ;YAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7F,2EAA2E;QAC3E,oEAAoE;QACpE,iEAAiE;QACjE,IAAI,OAAO,IAAI,CAAC,oBAAoB,KAAK,QAAQ,EAAE,CAAC;YAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,WAAmB;QACnC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,WAAW,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;gBAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,0BAA0B,CAAC,QAAgB;QACzC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,oBAAoB,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACtD,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACnC,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,MAAc,EAAE,KAA4B;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,qEAAqE;QACrE,qEAAqE;QACrE,4EAA4E;QAC5E,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,OAAO;QACX,0EAA0E;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,IAAI,CAAC;YACH,uEAAuE;YACvE,yEAAyE;YACzE,0EAA0E;YAC1E,6EAA6E;YAC7E,2EAA2E;YAC3E,0EAA0E;YAC1E,0EAA0E;YAC1E,6EAA6E;YAC7E,4EAA4E;YAC5E,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;gBAChG,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,yHAAyH,CAAC,CAAC;gBACrK,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI;oBAAE,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACtH,iEAAiE;YACnE,CAAC;YAED,2EAA2E;YAC3E,0EAA0E;YAC1E,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAA4B,CAAC;YAC5H,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEhG,2EAA2E;YAC3E,4EAA4E;YAC5E,0CAA0C;YAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,KAAK,MAAM,EAAE,IAAI,iBAAiB;gBAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO;gBAAE,MAAM,OAAO,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ExternalTask } from "./sdk-sessions-store.js";
|
|
2
|
+
/**
|
|
3
|
+
* Reserved projectId sentinel for the "Unassigned" pseudo-project bucket.
|
|
4
|
+
* Kept in sync with client/src/lib/projectIds.ts (intentional duplication
|
|
5
|
+
* per conventions.md — the two sides don't import each other).
|
|
6
|
+
*/
|
|
7
|
+
export declare const UNASSIGNED_PROJECT_ID = "unassigned";
|
|
8
|
+
export declare function validateExternalTask(taskId: string, raw: unknown, schemaVersion: 1 | 2 | 3 | 4): ExternalTask | null;
|
|
9
|
+
//# sourceMappingURL=sdk-sessions-validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-sessions-validate.d.ts","sourceRoot":"","sources":["../../src/core/sdk-sessions-validate.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,YAAY,EAMb,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAKlD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,EACZ,aAAa,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAC3B,YAAY,GAAG,IAAI,CAkPrB"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* core/sdk-sessions-validate.ts — the hand-rolled row validator for
|
|
3
|
+
* `sdk-sessions.json`, extracted verbatim from sdk-sessions-store.ts.
|
|
4
|
+
*
|
|
5
|
+
* Split out as a cohesive unit (the store's sibling `sdk-sessions-merge.ts`
|
|
6
|
+
* follows the same pattern): schema validation is one concern, and the store
|
|
7
|
+
* was carrying ~250 lines of it. Pure move — no behaviour change.
|
|
8
|
+
*
|
|
9
|
+
* `UNASSIGNED_PROJECT_ID` lives HERE and is re-exported by the store, so this
|
|
10
|
+
* module imports only TYPES from the store. Type imports are erased at
|
|
11
|
+
* runtime, which means there is no runtime import cycle between the two files.
|
|
12
|
+
*/
|
|
13
|
+
import { isBoardColumn } from "./board-column.js";
|
|
14
|
+
import { isMissionContextAssociation } from "./mission-context/types.js";
|
|
15
|
+
/**
|
|
16
|
+
* Reserved projectId sentinel for the "Unassigned" pseudo-project bucket.
|
|
17
|
+
* Kept in sync with client/src/lib/projectIds.ts (intentional duplication
|
|
18
|
+
* per conventions.md — the two sides don't import each other).
|
|
19
|
+
*/
|
|
20
|
+
export const UNASSIGNED_PROJECT_ID = "unassigned";
|
|
21
|
+
// ---------- schema validators (hand-rolled; zod stays out of the store
|
|
22
|
+
// load path because a single malformed field shouldn't cascade-throw) ----------
|
|
23
|
+
export function validateExternalTask(taskId, raw, schemaVersion) {
|
|
24
|
+
if (!raw || typeof raw !== "object")
|
|
25
|
+
return null;
|
|
26
|
+
const r = raw;
|
|
27
|
+
if (r.taskId !== taskId)
|
|
28
|
+
return null;
|
|
29
|
+
if (typeof r.sessionUuid !== "string")
|
|
30
|
+
return null;
|
|
31
|
+
if (typeof r.cwd !== "string")
|
|
32
|
+
return null;
|
|
33
|
+
if (typeof r.title !== "string")
|
|
34
|
+
return null;
|
|
35
|
+
if (typeof r.createdAt !== "string")
|
|
36
|
+
return null;
|
|
37
|
+
const pluginDirs = Array.isArray(r.pluginDirs)
|
|
38
|
+
? r.pluginDirs.filter((x) => typeof x === "string")
|
|
39
|
+
: [];
|
|
40
|
+
const validStates = [
|
|
41
|
+
"draft",
|
|
42
|
+
"awaiting_external_start",
|
|
43
|
+
"active",
|
|
44
|
+
"idle",
|
|
45
|
+
"jsonl_missing",
|
|
46
|
+
"launch_failed",
|
|
47
|
+
"done",
|
|
48
|
+
];
|
|
49
|
+
const state = validStates.includes(r.state)
|
|
50
|
+
? r.state
|
|
51
|
+
: "draft";
|
|
52
|
+
// projectId branches on schemaVersion (ADR-038).
|
|
53
|
+
//
|
|
54
|
+
// v1: any projectId field on disk is untrusted (this is a compat-window
|
|
55
|
+
// shape, e.g. an older binary read a v2 row tagged v1). Always
|
|
56
|
+
// backfill UNASSIGNED_PROJECT_ID. External review O25.
|
|
57
|
+
// v2 + v3: require a non-empty string; soft-skip the row otherwise
|
|
58
|
+
// (null, empty-string, or non-string = corrupt).
|
|
59
|
+
let projectId;
|
|
60
|
+
if (schemaVersion === 1) {
|
|
61
|
+
projectId = UNASSIGNED_PROJECT_ID;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
if (typeof r.projectId !== "string" || r.projectId.trim() === "") {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
projectId = r.projectId.trim();
|
|
68
|
+
}
|
|
69
|
+
const rawInbox = r.inbox;
|
|
70
|
+
const inbox = rawInbox && typeof rawInbox === "object"
|
|
71
|
+
? {
|
|
72
|
+
pendingToolUseIds: Array.isArray(rawInbox.pendingToolUseIds)
|
|
73
|
+
? rawInbox.pendingToolUseIds.filter((x) => typeof x === "string")
|
|
74
|
+
: [],
|
|
75
|
+
dismissedToolUseIds: Array.isArray(rawInbox.dismissedToolUseIds)
|
|
76
|
+
? rawInbox.dismissedToolUseIds.filter((x) => typeof x === "string")
|
|
77
|
+
: [],
|
|
78
|
+
lastProcessedByteOffset: typeof rawInbox.lastProcessedByteOffset === "number"
|
|
79
|
+
? rawInbox.lastProcessedByteOffset
|
|
80
|
+
: 0,
|
|
81
|
+
}
|
|
82
|
+
: { pendingToolUseIds: [], dismissedToolUseIds: [], lastProcessedByteOffset: 0 };
|
|
83
|
+
// v3 — read phase-task linkage fields. Forward-compat: tolerate them on
|
|
84
|
+
// v1/v2 rows too (e.g. partial rollback after writing v3 once). Drop bad
|
|
85
|
+
// shapes silently rather than fail the whole row.
|
|
86
|
+
const phaseTaskId = typeof r.phaseTaskId === "string" && r.phaseTaskId.length > 0
|
|
87
|
+
? r.phaseTaskId
|
|
88
|
+
: undefined;
|
|
89
|
+
const runId = typeof r.runId === "string" && r.runId.length > 0 ? r.runId : undefined;
|
|
90
|
+
const parentRunMaster = typeof r.parentRunMaster === "boolean" ? r.parentRunMaster : undefined;
|
|
91
|
+
// v4 — sticky board-column override; soft-drop anything not a valid column.
|
|
92
|
+
const boardColumn = isBoardColumn(r.boardColumn) ? r.boardColumn : undefined;
|
|
93
|
+
// 2026-05-05 — preserve action-context fields persisted via store.patch()
|
|
94
|
+
// (set at /launch time) and via store.create() actionId (Save-to-Backlog).
|
|
95
|
+
// These were silently dropped on disk-reload before, causing every server
|
|
96
|
+
// restart to lose the right command_template for backlog tasks → vanilla
|
|
97
|
+
// claude on next Launch click.
|
|
98
|
+
const actionId = typeof r.actionId === "string" && r.actionId.trim().length > 0
|
|
99
|
+
? r.actionId.trim()
|
|
100
|
+
: undefined;
|
|
101
|
+
const phase = typeof r.phase === "string" && r.phase.trim().length > 0
|
|
102
|
+
? r.phase.trim()
|
|
103
|
+
: undefined;
|
|
104
|
+
const phaseLabel = typeof r.phaseLabel === "string" && r.phaseLabel.trim().length > 0
|
|
105
|
+
? r.phaseLabel.trim()
|
|
106
|
+
: undefined;
|
|
107
|
+
const description = typeof r.description === "string" && r.description.length > 0
|
|
108
|
+
? r.description
|
|
109
|
+
: undefined;
|
|
110
|
+
const autonomy = r.autonomy === "guided" || r.autonomy === "autonomous"
|
|
111
|
+
? r.autonomy
|
|
112
|
+
: undefined;
|
|
113
|
+
// iterate-2026-05-14 lead-foundation-task-schema — per-field soft-drop
|
|
114
|
+
// validation. Forward-compat: tolerated on v1/v2/v3 rows alike (matches
|
|
115
|
+
// the existing phaseTaskId / runId / parentRunMaster pattern). Bad
|
|
116
|
+
// shapes drop the offending field only; the rest of the row survives.
|
|
117
|
+
const domain = typeof r.domain === "string" && r.domain.length > 0 ? r.domain : undefined;
|
|
118
|
+
const priority = r.priority === "P0" ||
|
|
119
|
+
r.priority === "P1" ||
|
|
120
|
+
r.priority === "P2" ||
|
|
121
|
+
r.priority === "P3"
|
|
122
|
+
? r.priority
|
|
123
|
+
: undefined;
|
|
124
|
+
const complexityHint = r.complexityHint === "small" ||
|
|
125
|
+
r.complexityHint === "medium" ||
|
|
126
|
+
r.complexityHint === "large"
|
|
127
|
+
? r.complexityHint
|
|
128
|
+
: undefined;
|
|
129
|
+
// `tags` and `blockedBy` MUST be arrays. A non-array value (string,
|
|
130
|
+
// object, null) drops the whole field. Mixed-type arrays are filtered
|
|
131
|
+
// down to the strings, consistent with `pluginDirs` handling above.
|
|
132
|
+
const tags = Array.isArray(r.tags)
|
|
133
|
+
? r.tags.filter((x) => typeof x === "string")
|
|
134
|
+
: undefined;
|
|
135
|
+
const blockedBy = Array.isArray(r.blockedBy)
|
|
136
|
+
? r.blockedBy.filter((x) => typeof x === "string")
|
|
137
|
+
: undefined;
|
|
138
|
+
const leadParentTaskId = typeof r.leadParentTaskId === "string" && r.leadParentTaskId.length > 0
|
|
139
|
+
? r.leadParentTaskId
|
|
140
|
+
: undefined;
|
|
141
|
+
const poFeedback = typeof r.poFeedback === "string" && r.poFeedback.length > 0
|
|
142
|
+
? r.poFeedback
|
|
143
|
+
: undefined;
|
|
144
|
+
const claimToken = typeof r.claimToken === "string" && r.claimToken.length > 0
|
|
145
|
+
? r.claimToken
|
|
146
|
+
: undefined;
|
|
147
|
+
const claimedBy = typeof r.claimedBy === "string" && r.claimedBy.length > 0
|
|
148
|
+
? r.claimedBy
|
|
149
|
+
: undefined;
|
|
150
|
+
const claimedAt = typeof r.claimedAt === "string" && r.claimedAt.length > 0
|
|
151
|
+
? r.claimedAt
|
|
152
|
+
: undefined;
|
|
153
|
+
const claimPid = typeof r.claimPid === "number" && Number.isFinite(r.claimPid)
|
|
154
|
+
? r.claimPid
|
|
155
|
+
: undefined;
|
|
156
|
+
const promotedFromTriageId = typeof r.promotedFromTriageId === "string" && r.promotedFromTriageId.length > 0
|
|
157
|
+
? r.promotedFromTriageId
|
|
158
|
+
: undefined;
|
|
159
|
+
// leadHandoff: atomic — either the whole sub-object passes validation
|
|
160
|
+
// or it's dropped. status is the discriminator; leadId + status +
|
|
161
|
+
// beatsUsed + summary are required; sub-fields are optional.
|
|
162
|
+
const rawHandoff = r.leadHandoff;
|
|
163
|
+
let leadHandoff = undefined;
|
|
164
|
+
if (rawHandoff && typeof rawHandoff === "object" && !Array.isArray(rawHandoff)) {
|
|
165
|
+
const h = rawHandoff;
|
|
166
|
+
const status = h.status === "completed" || h.status === "escalated" || h.status === "failed"
|
|
167
|
+
? h.status
|
|
168
|
+
: undefined;
|
|
169
|
+
if (status !== undefined &&
|
|
170
|
+
typeof h.leadId === "string" &&
|
|
171
|
+
h.leadId.length > 0 &&
|
|
172
|
+
typeof h.beatsUsed === "number" &&
|
|
173
|
+
Number.isFinite(h.beatsUsed) &&
|
|
174
|
+
typeof h.summary === "string") {
|
|
175
|
+
const handoff = {
|
|
176
|
+
leadId: h.leadId,
|
|
177
|
+
status,
|
|
178
|
+
beatsUsed: h.beatsUsed,
|
|
179
|
+
summary: h.summary,
|
|
180
|
+
};
|
|
181
|
+
if (Array.isArray(h.subIterateIds)) {
|
|
182
|
+
handoff.subIterateIds = h.subIterateIds.filter((x) => typeof x === "string");
|
|
183
|
+
}
|
|
184
|
+
if (typeof h.escalationReason === "string" && h.escalationReason.length > 0) {
|
|
185
|
+
handoff.escalationReason = h.escalationReason;
|
|
186
|
+
}
|
|
187
|
+
if (typeof h.learningsExtracted === "boolean") {
|
|
188
|
+
handoff.learningsExtracted = h.learningsExtracted;
|
|
189
|
+
}
|
|
190
|
+
leadHandoff = handoff;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
taskId,
|
|
195
|
+
sessionUuid: r.sessionUuid,
|
|
196
|
+
cwd: r.cwd,
|
|
197
|
+
pluginDirs,
|
|
198
|
+
parentTaskId: typeof r.parentTaskId === "string" ? r.parentTaskId : undefined,
|
|
199
|
+
parentSessionUuid: typeof r.parentSessionUuid === "string" ? r.parentSessionUuid : undefined,
|
|
200
|
+
title: r.title,
|
|
201
|
+
projectId,
|
|
202
|
+
state,
|
|
203
|
+
createdAt: r.createdAt,
|
|
204
|
+
launchedAt: typeof r.launchedAt === "string" ? r.launchedAt : undefined,
|
|
205
|
+
firstJsonlObservedAt: typeof r.firstJsonlObservedAt === "string" ? r.firstJsonlObservedAt : undefined,
|
|
206
|
+
lastJsonlSeenMtimeMs: typeof r.lastJsonlSeenMtimeMs === "number" ? r.lastJsonlSeenMtimeMs : undefined,
|
|
207
|
+
inbox,
|
|
208
|
+
...(actionId ? { actionId } : {}),
|
|
209
|
+
...(phase ? { phase } : {}),
|
|
210
|
+
...(phaseLabel ? { phaseLabel } : {}),
|
|
211
|
+
...(description ? { description } : {}),
|
|
212
|
+
...(autonomy ? { autonomy } : {}),
|
|
213
|
+
...(phaseTaskId ? { phaseTaskId } : {}),
|
|
214
|
+
...(runId ? { runId } : {}),
|
|
215
|
+
...(parentRunMaster !== undefined ? { parentRunMaster } : {}),
|
|
216
|
+
...(boardColumn !== undefined ? { boardColumn } : {}),
|
|
217
|
+
// S1 — atomic: a malformed association drops the field entirely, so a
|
|
218
|
+
// corrupt value can never be read back as a real run.
|
|
219
|
+
...(isMissionContextAssociation(r.missionContext) ? { missionContext: r.missionContext } : {}),
|
|
220
|
+
// iterate-2026-05-14 lead-foundation — spread only when defined so
|
|
221
|
+
// the on-disk JSON stays quiet for legacy / non-lead tasks.
|
|
222
|
+
...(domain !== undefined ? { domain } : {}),
|
|
223
|
+
...(priority !== undefined ? { priority } : {}),
|
|
224
|
+
...(complexityHint !== undefined ? { complexityHint } : {}),
|
|
225
|
+
...(tags !== undefined ? { tags } : {}),
|
|
226
|
+
...(blockedBy !== undefined ? { blockedBy } : {}),
|
|
227
|
+
...(leadParentTaskId !== undefined ? { leadParentTaskId } : {}),
|
|
228
|
+
...(poFeedback !== undefined ? { poFeedback } : {}),
|
|
229
|
+
...(claimToken !== undefined ? { claimToken } : {}),
|
|
230
|
+
...(claimedBy !== undefined ? { claimedBy } : {}),
|
|
231
|
+
...(claimedAt !== undefined ? { claimedAt } : {}),
|
|
232
|
+
...(claimPid !== undefined ? { claimPid } : {}),
|
|
233
|
+
...(leadHandoff !== undefined ? { leadHandoff } : {}),
|
|
234
|
+
...(promotedFromTriageId !== undefined ? { promotedFromTriageId } : {}),
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=sdk-sessions-validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-sessions-validate.js","sourceRoot":"","sources":["../../src/core/sdk-sessions-validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** The slice of `FileHandle` this module needs — an injection seam for tests. */
|
|
2
|
+
export interface TailFileHandle {
|
|
3
|
+
stat(): Promise<{
|
|
4
|
+
size: number;
|
|
5
|
+
}>;
|
|
6
|
+
read(buf: Buffer, offset: number, length: number, position: number): Promise<{
|
|
7
|
+
bytesRead: number;
|
|
8
|
+
}>;
|
|
9
|
+
close(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export type OpenForRead = (p: string) => Promise<TailFileHandle>;
|
|
12
|
+
export interface TailRead {
|
|
13
|
+
/** The bytes of `[from, end)`, where `from` is `fromByte` clamped to `size`. */
|
|
14
|
+
bytes: Buffer;
|
|
15
|
+
/**
|
|
16
|
+
* The size the caller must clamp `fromByte` against — the effective readable
|
|
17
|
+
* end THIS read observed. Normally the opening fstat; after a short read, the
|
|
18
|
+
* re-stat'ed (smaller) size, so a file truncated under us cannot leave the
|
|
19
|
+
* caller's cursor stranded past the new EOF.
|
|
20
|
+
*/
|
|
21
|
+
size: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Read `[fromByte, EOF)` of `p`. Reads only what was asked for — the whole
|
|
25
|
+
* point of this module. `fromByte` is clamped into `[0, size]`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function readTailFromDisk(p: string, fromByte: number, openForRead?: OpenForRead): Promise<TailRead>;
|
|
28
|
+
/** D06/F24 — discovery passes this so ENOENT (absent) is an authoritative miss. */
|
|
29
|
+
export declare const ENOENT_FATAL: ReadonlySet<string>;
|
|
30
|
+
/** 6-attempt exponential backoff over Windows fs errors; `fatalCodes` bails
|
|
31
|
+
* immediately on the given codes (e.g. ENOENT for discovery). */
|
|
32
|
+
export declare function readWithRetry<T>(op: () => Promise<T>, fatalCodes?: ReadonlySet<string>): Promise<T>;
|
|
33
|
+
/** Index of the last `byte` in `buf`, or -1. */
|
|
34
|
+
export declare function lastIndexOfByte(buf: Buffer, byte: number): number;
|
|
35
|
+
//# sourceMappingURL=session-jsonl-io.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-jsonl-io.d.ts","sourceRoot":"","sources":["../../src/core/session-jsonl-io.ts"],"names":[],"mappings":"AA4BA,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,IAAI,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClC,IAAI,CACF,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAEjE,MAAM,WAAW,QAAQ;IACvB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAID;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,WAA6B,GACzC,OAAO,CAAC,QAAQ,CAAC,CAgDnB;AAeD,mFAAmF;AACnF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,MAAM,CAAuB,CAAC;AAErE;iEACiE;AACjE,wBAAsB,aAAa,CAAC,CAAC,EACnC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED,gDAAgD;AAChD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjE"}
|