@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,128 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Low-level disk access for the session-JSONL reader: the torn-read retry
|
|
3
|
+
* envelope, the positional tail read, and the newline scan. Split out of
|
|
4
|
+
* `session-watcher.ts` by iterate-2026-07-21-transcript-positional-tail-read —
|
|
5
|
+
* "how we touch the disk safely" vs. that module's "what we look for".
|
|
6
|
+
*
|
|
7
|
+
* WHY POSITIONAL. `readChunk` used to load the ENTIRE file and then slice, so a
|
|
8
|
+
* bounded-tail request cost an unbounded read. Measured over this project's real
|
|
9
|
+
* corpus (203 transcripts, median 2.6 MB, max 138 MB, 82 % over 1 MB): a full
|
|
10
|
+
* sweep moved 917 MB in 229 ms; the same sweep with a 512 KB positional tail
|
|
11
|
+
* moves 101 MB in 37 ms. Per poll on the largest transcript, 30.9 ms → 0.12 ms.
|
|
12
|
+
* The shape is the point — the old cost was O(file size) and grew for the life
|
|
13
|
+
* of a session, while a positional read is flat.
|
|
14
|
+
*
|
|
15
|
+
* CONCURRENCY CONTRACT, stated precisely because both external reviewers went
|
|
16
|
+
* for it: the read runs through the EOF observed by the OPEN HANDLE's own
|
|
17
|
+
* fstat, not "EOF at completion".
|
|
18
|
+
* - APPEND mid-read → the new bytes are simply deferred to the next poll.
|
|
19
|
+
* Safe, because the cursor (`toByte`) always follows what was delivered, so
|
|
20
|
+
* the caller resumes exactly where the content stopped.
|
|
21
|
+
* - TRUNCATION mid-read → the read comes up short, and we re-stat so the
|
|
22
|
+
* caller clamps against the size that actually exists now. That is what
|
|
23
|
+
* the whole-file reader did implicitly (it clamped against the bytes it
|
|
24
|
+
* obtained), and reproducing it is what keeps the swap behavior-preserving.
|
|
25
|
+
*/
|
|
26
|
+
import { open } from "node:fs/promises";
|
|
27
|
+
const openForReadOnly = (p) => open(p, "r");
|
|
28
|
+
/**
|
|
29
|
+
* Read `[fromByte, EOF)` of `p`. Reads only what was asked for — the whole
|
|
30
|
+
* point of this module. `fromByte` is clamped into `[0, size]`.
|
|
31
|
+
*/
|
|
32
|
+
export async function readTailFromDisk(p, fromByte, openForRead = openForReadOnly) {
|
|
33
|
+
const fh = await openForRead(p);
|
|
34
|
+
try {
|
|
35
|
+
const { size } = await fh.stat();
|
|
36
|
+
const start = Math.min(Math.max(fromByte, 0), size);
|
|
37
|
+
const length = size - start;
|
|
38
|
+
if (length <= 0)
|
|
39
|
+
return { bytes: Buffer.alloc(0), size };
|
|
40
|
+
// allocUnsafe, deliberately: every byte in [0, off) is written by the loop
|
|
41
|
+
// below and ONLY that region is ever returned, so no uninitialised memory
|
|
42
|
+
// can escape. Buffer.alloc would add a full-length memset to the
|
|
43
|
+
// `fromByte: 0` callers, which legitimately read whole 100 MB+ files.
|
|
44
|
+
const buf = Buffer.allocUnsafe(length);
|
|
45
|
+
let off = 0;
|
|
46
|
+
while (off < length) {
|
|
47
|
+
const { bytesRead } = await fh.read(buf, off, length - off, start + off);
|
|
48
|
+
if (bytesRead === 0)
|
|
49
|
+
break; // EOF — the file shrank under us
|
|
50
|
+
off += bytesRead;
|
|
51
|
+
}
|
|
52
|
+
if (off === length)
|
|
53
|
+
return { bytes: buf, size };
|
|
54
|
+
// Short read ⇒ truncation. Re-stat so the caller clamps against what exists
|
|
55
|
+
// now; never let the re-stat INFLATE the clamp past what this read covered.
|
|
56
|
+
let effective = size;
|
|
57
|
+
try {
|
|
58
|
+
effective = Math.min(size, (await fh.stat()).size);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
/* keep the opening size — a failed re-stat must not lose the bytes we did read */
|
|
62
|
+
}
|
|
63
|
+
// The bytes in hand live at `start`. Reporting a smaller `size` makes the
|
|
64
|
+
// caller clamp `from` DOWN to it, so anything past the new end would be
|
|
65
|
+
// handed back under an offset it never occupied. Drop it instead of
|
|
66
|
+
// relabelling it: the whole-file reader, clamping `from` against the
|
|
67
|
+
// shrunken length it read, delivered exactly this much and no more.
|
|
68
|
+
const deliverable = Math.max(0, Math.min(off, effective - start));
|
|
69
|
+
return { bytes: buf.subarray(0, deliverable), size: effective };
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
try {
|
|
73
|
+
await fh.close();
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
/*
|
|
77
|
+
* A close failure must never replace the real I/O error: `readWithRetry`
|
|
78
|
+
* classifies on `err.code`, so surfacing EPERM-from-close instead of the
|
|
79
|
+
* actual read error would change RETRY behavior, not merely the message.
|
|
80
|
+
* On a read-only handle a close error is not actionable either way.
|
|
81
|
+
*/
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// ---------- torn-read retry (moved verbatim from session-watcher.ts) ----------
|
|
86
|
+
/*
|
|
87
|
+
* WHY THE ENVELOPE IS THIS WIDE, kept with the code it explains: it is the Plan
|
|
88
|
+
* D'' round-1 BLOCKER fix (+ the Gemini BLOCKER). PoC finding 4 showed torn
|
|
89
|
+
* reads do NOT actually fire on NTFS at the write rates Claude emits, so the
|
|
90
|
+
* six attempts are insurance against AV scanners / OneDrive sync / Defender
|
|
91
|
+
* rather than a response to an observed failure. Moved here verbatim by
|
|
92
|
+
* iterate-2026-07-22-…-single-walk: the collapse of session-watcher.ts's header
|
|
93
|
+
* would otherwise have deleted the only record of it (internal review, LOW-7).
|
|
94
|
+
*/
|
|
95
|
+
const RETRY_DELAYS_MS = [50, 100, 200, 400, 800, 1600];
|
|
96
|
+
const RETRY_ERROR_CODES = new Set(["EBUSY", "EPERM", "EACCES", "ENOENT"]);
|
|
97
|
+
/** D06/F24 — discovery passes this so ENOENT (absent) is an authoritative miss. */
|
|
98
|
+
export const ENOENT_FATAL = new Set(["ENOENT"]);
|
|
99
|
+
/** 6-attempt exponential backoff over Windows fs errors; `fatalCodes` bails
|
|
100
|
+
* immediately on the given codes (e.g. ENOENT for discovery). */
|
|
101
|
+
export async function readWithRetry(op, fatalCodes) {
|
|
102
|
+
let lastErr;
|
|
103
|
+
for (let i = 0; i < RETRY_DELAYS_MS.length; i++) {
|
|
104
|
+
try {
|
|
105
|
+
return await op();
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
lastErr = err;
|
|
109
|
+
const code = err?.code;
|
|
110
|
+
if (!code || !RETRY_ERROR_CODES.has(code) || fatalCodes?.has(code)) {
|
|
111
|
+
throw err; // non-retryable (permissions, syntax) or caller-fatal
|
|
112
|
+
}
|
|
113
|
+
if (i === RETRY_DELAYS_MS.length - 1)
|
|
114
|
+
break;
|
|
115
|
+
await new Promise((r) => setTimeout(r, RETRY_DELAYS_MS[i]));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
throw lastErr;
|
|
119
|
+
}
|
|
120
|
+
/** Index of the last `byte` in `buf`, or -1. */
|
|
121
|
+
export function lastIndexOfByte(buf, byte) {
|
|
122
|
+
for (let i = buf.length - 1; i >= 0; i--) {
|
|
123
|
+
if (buf[i] === byte)
|
|
124
|
+
return i;
|
|
125
|
+
}
|
|
126
|
+
return -1;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=session-jsonl-io.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-jsonl-io.js","sourceRoot":"","sources":["../../src/core/session-jsonl-io.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export type ParsedSessionEvent = UserEvent | AssistantEvent | AttachmentEvent | QueueOpEvent | FileSnapshotEvent | AiTitleEvent | LastPromptEvent | SystemEvent | CustomTitleEvent | AgentNameEvent | PermissionModeEvent | UnknownEvent;
|
|
2
|
+
export interface BaseSessionEvent {
|
|
3
|
+
sessionId?: string;
|
|
4
|
+
timestamp?: string;
|
|
5
|
+
uuid?: string;
|
|
6
|
+
parentUuid?: string | null;
|
|
7
|
+
}
|
|
8
|
+
export interface UserEvent extends BaseSessionEvent {
|
|
9
|
+
kind: "user";
|
|
10
|
+
content: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface AssistantEvent extends BaseSessionEvent {
|
|
13
|
+
kind: "assistant";
|
|
14
|
+
content: unknown;
|
|
15
|
+
model?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AttachmentEvent extends BaseSessionEvent {
|
|
18
|
+
kind: "attachment";
|
|
19
|
+
attachment: unknown;
|
|
20
|
+
}
|
|
21
|
+
export interface QueueOpEvent extends BaseSessionEvent {
|
|
22
|
+
kind: "queue-operation";
|
|
23
|
+
operation: string;
|
|
24
|
+
detail?: unknown;
|
|
25
|
+
}
|
|
26
|
+
export interface FileSnapshotEvent extends BaseSessionEvent {
|
|
27
|
+
kind: "file-history-snapshot";
|
|
28
|
+
snapshot: unknown;
|
|
29
|
+
isSnapshotUpdate?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface AiTitleEvent extends BaseSessionEvent {
|
|
32
|
+
kind: "ai-title";
|
|
33
|
+
title: string;
|
|
34
|
+
}
|
|
35
|
+
export interface LastPromptEvent extends BaseSessionEvent {
|
|
36
|
+
kind: "last-prompt";
|
|
37
|
+
prompt: unknown;
|
|
38
|
+
}
|
|
39
|
+
export interface SystemEvent extends BaseSessionEvent {
|
|
40
|
+
kind: "system";
|
|
41
|
+
text: string;
|
|
42
|
+
subtype?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface CustomTitleEvent extends BaseSessionEvent {
|
|
45
|
+
kind: "custom-title";
|
|
46
|
+
title: string;
|
|
47
|
+
}
|
|
48
|
+
export interface AgentNameEvent extends BaseSessionEvent {
|
|
49
|
+
kind: "agent-name";
|
|
50
|
+
name: string;
|
|
51
|
+
}
|
|
52
|
+
export interface PermissionModeEvent extends BaseSessionEvent {
|
|
53
|
+
kind: "permission-mode";
|
|
54
|
+
mode: string;
|
|
55
|
+
}
|
|
56
|
+
export interface UnknownEvent extends BaseSessionEvent {
|
|
57
|
+
kind: "unknown";
|
|
58
|
+
originalType: string;
|
|
59
|
+
raw: Record<string, unknown>;
|
|
60
|
+
}
|
|
61
|
+
export interface ParseResult {
|
|
62
|
+
events: ParsedSessionEvent[];
|
|
63
|
+
malformedLines: number;
|
|
64
|
+
/** Index (in `events`) of the last fully parsed line — useful for incremental offset tracking. */
|
|
65
|
+
lastValidLineIndex: number;
|
|
66
|
+
}
|
|
67
|
+
export declare function parseSessionJsonl(content: string): ParseResult;
|
|
68
|
+
export interface ToolUseBlock {
|
|
69
|
+
id: string;
|
|
70
|
+
name: string;
|
|
71
|
+
input: unknown;
|
|
72
|
+
/** Index into the parsed events array of the assistant message that carried it. */
|
|
73
|
+
atAssistantEvent: number;
|
|
74
|
+
}
|
|
75
|
+
export interface ToolResultBlock {
|
|
76
|
+
toolUseId: string;
|
|
77
|
+
atUserEvent: number;
|
|
78
|
+
}
|
|
79
|
+
export declare function extractToolUses(events: ParsedSessionEvent[]): ToolUseBlock[];
|
|
80
|
+
export declare function extractToolResults(events: ParsedSessionEvent[]): ToolResultBlock[];
|
|
81
|
+
//# sourceMappingURL=session-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-parser.d.ts","sourceRoot":"","sources":["../../src/core/session-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Server-side session JSONL parser.
|
|
3
|
+
*
|
|
4
|
+
* Used by inbox-derive (server-side) to inspect tool_use / tool_result
|
|
5
|
+
* correlation across an entire JSONL. Client has its own renderer-oriented
|
|
6
|
+
* parser at webui/client/src/poc-external/session-parser.ts (promoted to
|
|
7
|
+
* the final shape in Sub-iterate 2). The two parsers intentionally share
|
|
8
|
+
* no code because the workspaces don't share a tsconfig rootDir; the
|
|
9
|
+
* schemas are small and the drift risk is low.
|
|
10
|
+
*
|
|
11
|
+
* Unknown top-level types pass through as `{ kind: "unknown", raw }` so
|
|
12
|
+
* future CLI additions (slash events, plan events, custom plugin hooks)
|
|
13
|
+
* are never silently dropped.
|
|
14
|
+
*/
|
|
15
|
+
export function parseSessionJsonl(content) {
|
|
16
|
+
if (!content)
|
|
17
|
+
return { events: [], malformedLines: 0, lastValidLineIndex: -1 };
|
|
18
|
+
const lines = content.split("\n");
|
|
19
|
+
const events = [];
|
|
20
|
+
let malformed = 0;
|
|
21
|
+
let lastValid = -1;
|
|
22
|
+
for (const line of lines) {
|
|
23
|
+
if (!line)
|
|
24
|
+
continue;
|
|
25
|
+
let raw;
|
|
26
|
+
try {
|
|
27
|
+
raw = JSON.parse(line);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
malformed++;
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
events.push(parseOne(raw));
|
|
34
|
+
lastValid = events.length - 1;
|
|
35
|
+
}
|
|
36
|
+
return { events, malformedLines: malformed, lastValidLineIndex: lastValid };
|
|
37
|
+
}
|
|
38
|
+
function parseOne(raw) {
|
|
39
|
+
const base = {
|
|
40
|
+
sessionId: typeof raw.sessionId === "string" ? raw.sessionId : undefined,
|
|
41
|
+
timestamp: typeof raw.timestamp === "string" ? raw.timestamp : undefined,
|
|
42
|
+
uuid: typeof raw.uuid === "string" ? raw.uuid : undefined,
|
|
43
|
+
parentUuid: typeof raw.parentUuid === "string" || raw.parentUuid === null
|
|
44
|
+
? raw.parentUuid
|
|
45
|
+
: undefined,
|
|
46
|
+
};
|
|
47
|
+
const type = typeof raw.type === "string" ? raw.type : "";
|
|
48
|
+
switch (type) {
|
|
49
|
+
case "user":
|
|
50
|
+
return {
|
|
51
|
+
...base,
|
|
52
|
+
kind: "user",
|
|
53
|
+
content: raw.message?.content ?? raw.message,
|
|
54
|
+
};
|
|
55
|
+
case "assistant": {
|
|
56
|
+
const msg = raw.message;
|
|
57
|
+
return {
|
|
58
|
+
...base,
|
|
59
|
+
kind: "assistant",
|
|
60
|
+
content: msg?.content ?? raw.message,
|
|
61
|
+
model: typeof msg?.model === "string" ? msg.model : undefined,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
case "attachment":
|
|
65
|
+
return { ...base, kind: "attachment", attachment: raw.attachment };
|
|
66
|
+
case "queue-operation":
|
|
67
|
+
return {
|
|
68
|
+
...base,
|
|
69
|
+
kind: "queue-operation",
|
|
70
|
+
operation: typeof raw.operation === "string" ? raw.operation : "unknown",
|
|
71
|
+
detail: raw.content,
|
|
72
|
+
};
|
|
73
|
+
case "file-history-snapshot":
|
|
74
|
+
return {
|
|
75
|
+
...base,
|
|
76
|
+
kind: "file-history-snapshot",
|
|
77
|
+
snapshot: raw.snapshot,
|
|
78
|
+
isSnapshotUpdate: Boolean(raw.isSnapshotUpdate),
|
|
79
|
+
};
|
|
80
|
+
case "ai-title":
|
|
81
|
+
return {
|
|
82
|
+
...base,
|
|
83
|
+
kind: "ai-title",
|
|
84
|
+
title: typeof raw.title === "string"
|
|
85
|
+
? raw.title
|
|
86
|
+
: "",
|
|
87
|
+
};
|
|
88
|
+
case "last-prompt":
|
|
89
|
+
return { ...base, kind: "last-prompt", prompt: raw.prompt };
|
|
90
|
+
case "system": {
|
|
91
|
+
const content = typeof raw.content === "string" ? raw.content : "";
|
|
92
|
+
const text = content || (typeof raw.text === "string" ? (raw.text) : "");
|
|
93
|
+
return {
|
|
94
|
+
...base,
|
|
95
|
+
kind: "system",
|
|
96
|
+
text,
|
|
97
|
+
subtype: typeof raw.subtype === "string" ? raw.subtype : undefined,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
case "custom-title": {
|
|
101
|
+
const title = typeof raw.customTitle === "string"
|
|
102
|
+
? (raw.customTitle)
|
|
103
|
+
: typeof raw.title === "string"
|
|
104
|
+
? (raw.title)
|
|
105
|
+
: "";
|
|
106
|
+
return { ...base, kind: "custom-title", title };
|
|
107
|
+
}
|
|
108
|
+
case "agent-name": {
|
|
109
|
+
const name = typeof raw.agentName === "string"
|
|
110
|
+
? (raw.agentName)
|
|
111
|
+
: typeof raw.name === "string"
|
|
112
|
+
? (raw.name)
|
|
113
|
+
: "";
|
|
114
|
+
return { ...base, kind: "agent-name", name };
|
|
115
|
+
}
|
|
116
|
+
case "permission-mode": {
|
|
117
|
+
const mode = typeof raw.permissionMode === "string"
|
|
118
|
+
? (raw.permissionMode)
|
|
119
|
+
: typeof raw.mode === "string"
|
|
120
|
+
? (raw.mode)
|
|
121
|
+
: "";
|
|
122
|
+
return { ...base, kind: "permission-mode", mode };
|
|
123
|
+
}
|
|
124
|
+
default:
|
|
125
|
+
return { ...base, kind: "unknown", originalType: type || "(no-type)", raw };
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
export function extractToolUses(events) {
|
|
129
|
+
const out = [];
|
|
130
|
+
events.forEach((e, idx) => {
|
|
131
|
+
if (e.kind !== "assistant")
|
|
132
|
+
return;
|
|
133
|
+
const content = e.content;
|
|
134
|
+
if (!Array.isArray(content))
|
|
135
|
+
return;
|
|
136
|
+
for (const block of content) {
|
|
137
|
+
if (block && typeof block === "object") {
|
|
138
|
+
const b = block;
|
|
139
|
+
if (b.type === "tool_use" &&
|
|
140
|
+
typeof b.id === "string" &&
|
|
141
|
+
typeof b.name === "string") {
|
|
142
|
+
out.push({ id: b.id, name: b.name, input: b.input, atAssistantEvent: idx });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
return out;
|
|
148
|
+
}
|
|
149
|
+
export function extractToolResults(events) {
|
|
150
|
+
const out = [];
|
|
151
|
+
events.forEach((e, idx) => {
|
|
152
|
+
if (e.kind !== "user")
|
|
153
|
+
return;
|
|
154
|
+
const content = e.content;
|
|
155
|
+
if (!Array.isArray(content))
|
|
156
|
+
return;
|
|
157
|
+
for (const block of content) {
|
|
158
|
+
if (block && typeof block === "object") {
|
|
159
|
+
const b = block;
|
|
160
|
+
if (b.type === "tool_result" && typeof b.tool_use_id === "string") {
|
|
161
|
+
out.push({ toolUseId: b.tool_use_id, atUserEvent: idx });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
return out;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=session-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-parser.js","sourceRoot":"","sources":["../../src/core/session-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface AwaitingLaunchProbe {
|
|
2
|
+
readdirFailed(uuid: string, dir: string): void;
|
|
3
|
+
hit(uuid: string, encodedCwd: string, size: number): void;
|
|
4
|
+
miss(uuid: string, subs: string[]): void;
|
|
5
|
+
}
|
|
6
|
+
export declare function awaitingLaunchProbe(): AwaitingLaunchProbe | null;
|
|
7
|
+
//# sourceMappingURL=session-watcher-debug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-watcher-debug.d.ts","sourceRoot":"","sources":["../../src/core/session-watcher-debug.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC1C;AAED,wBAAgB,mBAAmB,IAAI,mBAAmB,GAAG,IAAI,CAiBhE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
/*
|
|
3
|
+
* The `SHIPWRIGHT_DEBUG_AWAITING_LAUNCH` operator probe for
|
|
4
|
+
* `SessionWatcher.findByUuid`. Split out of `session-watcher.ts` by
|
|
5
|
+
* iterate-2026-07-22-transcript-cursor-single-walk, which needed the lines and
|
|
6
|
+
* found this the least arbitrary thing to move: an env-gated field diagnostic
|
|
7
|
+
* is not "what we look for on disk", and its runbook prose is operator
|
|
8
|
+
* documentation that was living in a hot read path.
|
|
9
|
+
*
|
|
10
|
+
* Iterate v0.8.2 AC-5 (awaiting-launch state lag). The known-good lower bound
|
|
11
|
+
* is ~5–15 s for Claude's first JSONL write plus a 2–5 s server poll cadence
|
|
12
|
+
* (~20 s total). If the field reports >30 s, the most likely cause is an
|
|
13
|
+
* encoded-cwd mismatch — the pty was started under one cwd but `Set-Location`'d
|
|
14
|
+
* before launch, while `task.cwd` records the original. The probe deliberately
|
|
15
|
+
* reports BOTH the directories walked AND the no-match outcome, so the operator
|
|
16
|
+
* can compare what was scanned against the encoded cwd they expected.
|
|
17
|
+
*
|
|
18
|
+
* Returns `null` when disabled so the caller pays one null-check per walk
|
|
19
|
+
* rather than an env read per branch.
|
|
20
|
+
*/
|
|
21
|
+
export function awaitingLaunchProbe() {
|
|
22
|
+
const flag = process.env.SHIPWRIGHT_DEBUG_AWAITING_LAUNCH;
|
|
23
|
+
if (flag !== "1" && flag !== "true")
|
|
24
|
+
return null;
|
|
25
|
+
return {
|
|
26
|
+
readdirFailed: (uuid, dir) => console.log(`[awaiting-launch] readdir(projectsDir) failed for uuid=${uuid} dir=${dir}`),
|
|
27
|
+
hit: (uuid, encodedCwd, size) => console.log(`[awaiting-launch] HIT uuid=${uuid} encodedCwd=${encodedCwd} size=${size}`),
|
|
28
|
+
miss: (uuid, subs) => console.log(`[awaiting-launch] miss uuid=${uuid} walked=${subs.length} encodedCwds=${subs.slice(0, 8).join(",")}${subs.length > 8 ? ",…" : ""}`),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=session-watcher-debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-watcher-debug.js","sourceRoot":"","sources":["../../src/core/session-watcher-debug.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B;;;;;;;;;;;;;;;;;;GAkBG;AAQH,MAAM,UAAU,mBAAmB;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAC1D,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjD,OAAO;QACL,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAC3B,OAAO,CAAC,GAAG,CACT,0DAA0D,IAAI,QAAQ,GAAG,EAAE,CAC5E;QACH,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAC9B,OAAO,CAAC,GAAG,CACT,8BAA8B,IAAI,eAAe,UAAU,SAAS,IAAI,EAAE,CAC3E;QACH,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CACnB,OAAO,CAAC,GAAG,CACT,+BAA+B,IAAI,WAAW,IAAI,CAAC,MAAM,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACpI;KACJ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { type TailRead } from "./session-jsonl-io.js";
|
|
2
|
+
export declare const PROJECTS_DIR: string;
|
|
3
|
+
export interface JsonlLocation {
|
|
4
|
+
path: string;
|
|
5
|
+
encodedCwd: string;
|
|
6
|
+
mtimeMs: number;
|
|
7
|
+
sizeBytes: number;
|
|
8
|
+
}
|
|
9
|
+
export interface SessionWatcherDeps {
|
|
10
|
+
readdir?: (p: string) => Promise<string[]>;
|
|
11
|
+
stat?: (p: string) => Promise<{
|
|
12
|
+
mtimeMs: number;
|
|
13
|
+
size: number;
|
|
14
|
+
isDirectory: () => boolean;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* Positional read of `[fromByte, EOF)`. Replaced the former whole-file
|
|
18
|
+
* `readFile` dep in iterate-2026-07-21-transcript-positional-tail-read — a
|
|
19
|
+
* bounded-tail request must not cost an unbounded read. The old dep was
|
|
20
|
+
* removed rather than kept alongside: nothing injected it, so leaving it
|
|
21
|
+
* would have left an override that silently no longer changes behavior.
|
|
22
|
+
*/
|
|
23
|
+
readTail?: (p: string, fromByte: number) => Promise<TailRead>;
|
|
24
|
+
/** Override for tests; defaults to `~/.claude/projects`. */
|
|
25
|
+
projectsDir?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare class SessionWatcher {
|
|
28
|
+
private readonly deps;
|
|
29
|
+
constructor(deps?: SessionWatcherDeps);
|
|
30
|
+
/**
|
|
31
|
+
* Resolve the on-disk JSONL for a given pre-bound session UUID.
|
|
32
|
+
* Returns null if no file matches yet (common during
|
|
33
|
+
* `awaiting_external_start` before the user pastes). The env-gated
|
|
34
|
+
* awaiting-launch diagnostic lives in `session-watcher-debug.ts`.
|
|
35
|
+
*/
|
|
36
|
+
findByUuid(sessionUuid: string): Promise<JsonlLocation | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Batch variant of {@link findByUuid} — resolves many session UUIDs in
|
|
39
|
+
* a SINGLE `~/.claude/projects` walk. `GET /api/external/tasks` uses
|
|
40
|
+
* this so the board delivers a LIVE JSONL mtime for every task in one
|
|
41
|
+
* scan (ADR-102 — the Resume-CTA gate must not be fed the stale
|
|
42
|
+
* persisted `lastJsonlSeenMtimeMs`, which only the transcript endpoint
|
|
43
|
+
* of the currently-open detail page refreshes).
|
|
44
|
+
*
|
|
45
|
+
* Returns a Map keyed by LOWERCASE uuid. UUIDs with no matching file
|
|
46
|
+
* on disk are simply absent from the result (same as `findByUuid`
|
|
47
|
+
* returning null). An empty input set short-circuits with no walk.
|
|
48
|
+
*/
|
|
49
|
+
findManyByUuid(uuids: Set<string>): Promise<Map<string, JsonlLocation>>;
|
|
50
|
+
/**
|
|
51
|
+
* Read a byte-range from the JSONL with torn-read retry + UTF-8 safe
|
|
52
|
+
* chunk trimming. Always returns content ending on `\n` so the client
|
|
53
|
+
* never sees a partial line (and `\n` is safe to split on even in the
|
|
54
|
+
* middle of a multi-byte UTF-8 sequence).
|
|
55
|
+
*
|
|
56
|
+
* Returns the `JsonlLocation` it read from on success, so a caller needing
|
|
57
|
+
* the file's mtime/size does not walk `~/.claude/projects` a second time for
|
|
58
|
+
* an answer this call already had (iterate-2026-07-22-…-single-walk).
|
|
59
|
+
*/
|
|
60
|
+
readChunk(args: {
|
|
61
|
+
sessionUuid: string;
|
|
62
|
+
fromByte: number;
|
|
63
|
+
expectFingerprint: string | null;
|
|
64
|
+
/**
|
|
65
|
+
* Pre-resolved location: "I walked in THIS poll — don't walk again."
|
|
66
|
+
* For callers that must resolve first anyway (mission-context needs
|
|
67
|
+
* `sizeBytes` to compute a tail offset; the inbox cold path walks for its
|
|
68
|
+
* cache). It does not become authoritative over the bytes — the read runs
|
|
69
|
+
* its own `fstat` — but `size` + `fingerprint` are taken from it, so a
|
|
70
|
+
* caller relying on `expectFingerprint` for rotation must NOT pass one.
|
|
71
|
+
* Construct it only via `findByUuid` / `findManyByUuid`; no route may
|
|
72
|
+
* supply a path from request data.
|
|
73
|
+
*/
|
|
74
|
+
location?: JsonlLocation | null;
|
|
75
|
+
}): Promise<TranscriptReadResult>;
|
|
76
|
+
}
|
|
77
|
+
export interface TranscriptChunk {
|
|
78
|
+
fingerprint: string;
|
|
79
|
+
size: number;
|
|
80
|
+
fromByte: number;
|
|
81
|
+
toByte: number;
|
|
82
|
+
content: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* `location` is REQUIRED on `ok` — deliberately, so every construction site
|
|
86
|
+
* (including test mocks) has to supply a real one. An optional field would let
|
|
87
|
+
* a consumer keep a silent `?? findByUuid()` fallback and re-grow the second
|
|
88
|
+
* walk this shape exists to remove. `rotated` carries none: no caller wants it.
|
|
89
|
+
*/
|
|
90
|
+
export type TranscriptReadResult = {
|
|
91
|
+
status: "missing";
|
|
92
|
+
} | {
|
|
93
|
+
status: "rotated";
|
|
94
|
+
currentFingerprint: string;
|
|
95
|
+
} | {
|
|
96
|
+
status: "ok";
|
|
97
|
+
chunk: TranscriptChunk;
|
|
98
|
+
location: JsonlLocation;
|
|
99
|
+
};
|
|
100
|
+
export declare function computeFingerprint(loc: JsonlLocation): string;
|
|
101
|
+
//# sourceMappingURL=session-watcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-watcher.d.ts","sourceRoot":"","sources":["../../src/core/session-watcher.ts"],"names":[],"mappings":"AAyBA,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,YAAY,QAA8C,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7F;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAcD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;gBAExC,IAAI,GAAE,kBAAuB;IAIzC;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IA0CpE;;;;;;;;;;;OAWG;IACG,cAAc,CAClB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GACjB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAmDtC;;;;;;;;;OASG;IACG,SAAS,CAAC,IAAI,EAAE;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC;;;;;;;;;WASG;QACH,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;KACjC,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAmDlC;AAID,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,CAAC;AAEtE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAE7D"}
|