@svenroth-ai/shipwright 0.26.0 → 0.28.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/client/dist/assets/{EmbeddedTerminal-D3wpPNZP.js → EmbeddedTerminal-4xgNUBUu.js} +19 -19
- package/client/dist/assets/{abnfDiagram-VRR7QNED-BkLIltB3.js → abnfDiagram-VRR7QNED-BdCNbaqc.js} +1 -1
- package/client/dist/assets/{arc-Sw-Gh0nI.js → arc-DoZTTE1N.js} +1 -1
- package/client/dist/assets/{architectureDiagram-ZJ3FMSHR-rdxUi9Ks.js → architectureDiagram-ZJ3FMSHR-DFTG4KtO.js} +1 -1
- package/client/dist/assets/{blockDiagram-677ZJIJ3-Ch_9dj8a.js → blockDiagram-677ZJIJ3-C34UBjOB.js} +1 -1
- package/client/dist/assets/{c4Diagram-LMCZKHZV-CkFlO65x.js → c4Diagram-LMCZKHZV-CbqAB1Ou.js} +1 -1
- package/client/dist/assets/channel-DBcZw7Kn.js +1 -0
- package/client/dist/assets/{chunk-2Q5K7J3B-CypX83xu.js → chunk-2Q5K7J3B-4N6AnmBJ.js} +1 -1
- package/client/dist/assets/{chunk-32BRIVSS-DxVLYGdl.js → chunk-32BRIVSS-Cs67LiCy.js} +1 -1
- package/client/dist/assets/{chunk-5VM5RSS4-Cxk1evhx.js → chunk-5VM5RSS4-Bwd7rtD3.js} +1 -1
- package/client/dist/assets/{chunk-EX3LRPZG-n9q5S4yJ.js → chunk-EX3LRPZG-CQqGfptD.js} +1 -1
- package/client/dist/assets/{chunk-JWPE2WC7-jeL4xvir.js → chunk-JWPE2WC7-ClvKd4PN.js} +1 -1
- package/client/dist/assets/{chunk-MOJQB5TN-DDSHN0cj.js → chunk-MOJQB5TN-Cwvj8GE1.js} +1 -1
- package/client/dist/assets/{chunk-RYQCIY6F-C0bo383g.js → chunk-RYQCIY6F-DrWMx37d.js} +1 -1
- package/client/dist/assets/{chunk-V7JOEXUC-C0jDXXAU.js → chunk-V7JOEXUC-CYFfa4PY.js} +1 -1
- package/client/dist/assets/{chunk-VR4S4FIN-h-Rr4Pn2.js → chunk-VR4S4FIN-B5eWtesm.js} +1 -1
- package/client/dist/assets/{chunk-XXDRQBXY-BexSo0-s.js → chunk-XXDRQBXY-BQAZ6Our.js} +1 -1
- package/client/dist/assets/classDiagram-OUVF2IWQ-C3Q1V9DU.js +1 -0
- package/client/dist/assets/classDiagram-v2-EOCWNBFH-C3Q1V9DU.js +1 -0
- package/client/dist/assets/{cose-bilkent-JH36ORCC-BQXzaioj.js → cose-bilkent-JH36ORCC-C76Yia6h.js} +1 -1
- package/client/dist/assets/{cynefin-VYW2F7L2-BJIofhfe.js → cynefin-VYW2F7L2-pJe7rdTi.js} +1 -1
- package/client/dist/assets/{cynefinDiagram-TSTJHNR4-DmPqTM1T.js → cynefinDiagram-TSTJHNR4-EeHQ7dYV.js} +1 -1
- package/client/dist/assets/{dagre-VKFMJZFB-1xljvw6X.js → dagre-VKFMJZFB-VXOY6IHR.js} +1 -1
- package/client/dist/assets/{diagram-FQU43EPY-iyL9muCG.js → diagram-FQU43EPY-DW_-leqw.js} +1 -1
- package/client/dist/assets/{diagram-G47NLZAW-DREp2Th6.js → diagram-G47NLZAW-C_hsLD4u.js} +1 -1
- package/client/dist/assets/{diagram-NH7WQ7WH-h0X3Is2S.js → diagram-NH7WQ7WH-CbeQuO_f.js} +1 -1
- package/client/dist/assets/{diagram-OA4YK3LP-Bj8YZRFJ.js → diagram-OA4YK3LP-DRHY5d_c.js} +1 -1
- package/client/dist/assets/{diagram-WEI45ONY-BZOf805d.js → diagram-WEI45ONY-B87OYR_S.js} +1 -1
- package/client/dist/assets/{ebnfDiagram-CCIWWBDH-DO5JnXda.js → ebnfDiagram-CCIWWBDH-B8Z8WHF6.js} +1 -1
- package/client/dist/assets/{erDiagram-Q63AITRT-DRgcqg1T.js → erDiagram-Q63AITRT-DaD7oa9H.js} +1 -1
- package/client/dist/assets/{flowDiagram-23GEKE2U-C3J9QmrW.js → flowDiagram-23GEKE2U-GrMVpsea.js} +1 -1
- package/client/dist/assets/{ganttDiagram-NO4QXBWP-BIEl3Tkm.js → ganttDiagram-NO4QXBWP-K3X0DYBa.js} +1 -1
- package/client/dist/assets/{gitGraphDiagram-IHSO6WYX-BNF0tFWC.js → gitGraphDiagram-IHSO6WYX-B2SEx0xa.js} +1 -1
- package/client/dist/assets/index-CIpLt0ie.js +863 -0
- package/client/dist/assets/index-DGtnTeFd.css +1 -0
- package/client/dist/assets/{infoDiagram-FWYZ7A6U-DEyFxiyY.js → infoDiagram-FWYZ7A6U-Fi8fQ95G.js} +1 -1
- package/client/dist/assets/{ishikawaDiagram-FXEZZL3T-B_ehlg3I.js → ishikawaDiagram-FXEZZL3T-CrN7QJzt.js} +1 -1
- package/client/dist/assets/{journeyDiagram-5HDEW3XC-Dp00FyJS.js → journeyDiagram-5HDEW3XC-XHIsl7rM.js} +1 -1
- package/client/dist/assets/{kanban-definition-HUTT4EX6-CTAf16q8.js → kanban-definition-HUTT4EX6-A6HJqHw7.js} +1 -1
- package/client/dist/assets/{linear-9vNUgmYd.js → linear-D1vF9IQB.js} +1 -1
- package/client/dist/assets/{mermaid.core-A6tjaEVD.js → mermaid.core-D6w9zlA0.js} +4 -4
- package/client/dist/assets/{mindmap-definition-LN4V7U3C-DRW3bmCY.js → mindmap-definition-LN4V7U3C-CxRkUj6Z.js} +1 -1
- package/client/dist/assets/{pegDiagram-2B236MQR-DJFCjHp2.js → pegDiagram-2B236MQR-Bs9dp-8a.js} +1 -1
- package/client/dist/assets/{pieDiagram-ENE6RG2P-KRd-sGvC.js → pieDiagram-ENE6RG2P-DBWILzB8.js} +1 -1
- package/client/dist/assets/{quadrantDiagram-ABIIQ3AL-9TLZE3Hu.js → quadrantDiagram-ABIIQ3AL-DrCVJJx6.js} +1 -1
- package/client/dist/assets/{railroadDiagram-RFXS5EU6-y4tLtjXg.js → railroadDiagram-RFXS5EU6-BdPW2dNf.js} +1 -1
- package/client/dist/assets/{requirementDiagram-TGXJPOKE-B9EOQDQM.js → requirementDiagram-TGXJPOKE-Bj_g3tC5.js} +1 -1
- package/client/dist/assets/{sankeyDiagram-HTMAVEWB-zfwiDzkT.js → sankeyDiagram-HTMAVEWB-BGL9NnsS.js} +1 -1
- package/client/dist/assets/{sequenceDiagram-DBY2YBRQ-DW1LWepL.js → sequenceDiagram-DBY2YBRQ-DEirxTZY.js} +1 -1
- package/client/dist/assets/{sizeCapture-X5ZJPWSS-BM81Mik0.js → sizeCapture-X5ZJPWSS-BtLrvrea.js} +1 -1
- package/client/dist/assets/{stateDiagram-2N3HPSRC-D0EMIw1w.js → stateDiagram-2N3HPSRC-D3GXIouX.js} +1 -1
- package/client/dist/assets/stateDiagram-v2-6OUMAXLB-D3lXe_mJ.js +1 -0
- package/client/dist/assets/{swimlanes-5IMT3BWC-CKXNCX6M.js → swimlanes-5IMT3BWC-PMRQzNhU.js} +2 -2
- package/client/dist/assets/swimlanesDiagram-G3AALYLV-DMLbRFiO.js +8 -0
- package/client/dist/assets/{timeline-definition-FHXFAJF6-ByzIfvL5.js → timeline-definition-FHXFAJF6-CnBKJtD_.js} +1 -1
- package/client/dist/assets/{vennDiagram-L72KCM5P-Xep38xBH.js → vennDiagram-L72KCM5P-BYmiJYoh.js} +1 -1
- package/client/dist/assets/{wardleyDiagram-EHGQE667-DKWDpx6g.js → wardleyDiagram-EHGQE667-DU7vW8q3.js} +1 -1
- package/client/dist/assets/{xychartDiagram-FW5EYKEG-BGcwZTnu.js → xychartDiagram-FW5EYKEG-BEtPvBSU.js} +1 -1
- package/client/dist/index.html +2 -2
- package/lib/preflight.mjs +24 -5
- package/lib/probes.mjs +10 -4
- package/lib/server.mjs +149 -12
- package/lib/util.mjs +5 -1
- package/package.json +1 -1
- package/scripts/deploy-procs.mjs +105 -20
- package/scripts/deploy-swap.mjs +23 -2
- package/server/dist/config.d.ts +9 -0
- package/server/dist/config.d.ts.map +1 -1
- package/server/dist/config.js +1 -0
- package/server/dist/config.js.map +1 -1
- package/server/dist/core/campaign-events.d.ts.map +1 -1
- package/server/dist/core/campaign-events.js +1 -0
- package/server/dist/core/campaign-events.js.map +1 -1
- package/server/dist/core/campaign-loop-state.d.ts.map +1 -1
- package/server/dist/core/campaign-loop-state.js +54 -21
- package/server/dist/core/campaign-loop-state.js.map +1 -1
- package/server/dist/core/campaign-parse.d.ts +4 -0
- package/server/dist/core/campaign-parse.d.ts.map +1 -1
- package/server/dist/core/campaign-parse.js +9 -0
- package/server/dist/core/campaign-parse.js.map +1 -1
- package/server/dist/core/campaign-readiness-schema.d.ts +33 -0
- package/server/dist/core/campaign-readiness-schema.d.ts.map +1 -0
- package/server/dist/core/campaign-readiness-schema.js +70 -0
- package/server/dist/core/campaign-readiness-schema.js.map +1 -0
- package/server/dist/core/campaign-readiness.d.ts +59 -0
- package/server/dist/core/campaign-readiness.d.ts.map +1 -0
- package/server/dist/core/campaign-readiness.js +163 -0
- package/server/dist/core/campaign-readiness.js.map +1 -0
- package/server/dist/core/campaign-status-json.d.ts +3 -0
- package/server/dist/core/campaign-status-json.d.ts.map +1 -1
- package/server/dist/core/campaign-status-json.js +7 -0
- package/server/dist/core/campaign-status-json.js.map +1 -1
- package/server/dist/core/campaign-store.d.ts.map +1 -1
- package/server/dist/core/campaign-store.js +4 -1
- package/server/dist/core/campaign-store.js.map +1 -1
- package/server/dist/core/campaign-types.d.ts +8 -0
- package/server/dist/core/campaign-types.d.ts.map +1 -1
- package/server/dist/core/campaign-worktree-root.d.ts +19 -0
- package/server/dist/core/campaign-worktree-root.d.ts.map +1 -0
- package/server/dist/core/campaign-worktree-root.js +76 -0
- package/server/dist/core/campaign-worktree-root.js.map +1 -0
- package/server/dist/core/claim-record-lock.d.ts +30 -0
- package/server/dist/core/claim-record-lock.d.ts.map +1 -0
- package/server/dist/core/claim-record-lock.js +90 -0
- package/server/dist/core/claim-record-lock.js.map +1 -0
- package/server/dist/core/cli-child-spawn.d.ts +28 -0
- package/server/dist/core/cli-child-spawn.d.ts.map +1 -0
- package/server/dist/core/cli-child-spawn.js +146 -0
- package/server/dist/core/cli-child-spawn.js.map +1 -0
- package/server/dist/core/codex-models-probe.d.ts +46 -0
- package/server/dist/core/codex-models-probe.d.ts.map +1 -0
- package/server/dist/core/codex-models-probe.js +103 -0
- package/server/dist/core/codex-models-probe.js.map +1 -0
- package/server/dist/core/codex-oracle-runner.d.ts +68 -0
- package/server/dist/core/codex-oracle-runner.d.ts.map +1 -0
- package/server/dist/core/codex-oracle-runner.js +124 -0
- package/server/dist/core/codex-oracle-runner.js.map +1 -0
- package/server/dist/core/codex-status-report.d.ts +6 -0
- package/server/dist/core/codex-status-report.d.ts.map +1 -0
- package/server/dist/core/codex-status-report.js +40 -0
- package/server/dist/core/codex-status-report.js.map +1 -0
- package/server/dist/core/codex-task-watcher-types.d.ts +69 -0
- package/server/dist/core/codex-task-watcher-types.d.ts.map +1 -0
- package/server/dist/core/codex-task-watcher-types.js +12 -0
- package/server/dist/core/codex-task-watcher-types.js.map +1 -0
- package/server/dist/core/codex-task-watcher.d.ts +30 -0
- package/server/dist/core/codex-task-watcher.d.ts.map +1 -0
- package/server/dist/core/codex-task-watcher.js +252 -0
- package/server/dist/core/codex-task-watcher.js.map +1 -0
- package/server/dist/core/codex-terminal-signal-detect.d.ts +7 -0
- package/server/dist/core/codex-terminal-signal-detect.d.ts.map +1 -0
- package/server/dist/core/codex-terminal-signal-detect.js +113 -0
- package/server/dist/core/codex-terminal-signal-detect.js.map +1 -0
- package/server/dist/core/codex-thread-discovery.d.ts +21 -0
- package/server/dist/core/codex-thread-discovery.d.ts.map +1 -0
- package/server/dist/core/codex-thread-discovery.js +169 -0
- package/server/dist/core/codex-thread-discovery.js.map +1 -0
- package/server/dist/core/codextender-auth-file-sweep.d.ts +41 -0
- package/server/dist/core/codextender-auth-file-sweep.d.ts.map +1 -0
- package/server/dist/core/codextender-auth-file-sweep.js +97 -0
- package/server/dist/core/codextender-auth-file-sweep.js.map +1 -0
- package/server/dist/core/codextender-proxy-probe.d.ts +80 -0
- package/server/dist/core/codextender-proxy-probe.d.ts.map +1 -0
- package/server/dist/core/codextender-proxy-probe.js +179 -0
- package/server/dist/core/codextender-proxy-probe.js.map +1 -0
- package/server/dist/core/contract-version.d.ts +16 -1
- package/server/dist/core/contract-version.d.ts.map +1 -1
- package/server/dist/core/contract-version.js +16 -1
- package/server/dist/core/contract-version.js.map +1 -1
- package/server/dist/core/launcher-codex.d.ts +61 -0
- package/server/dist/core/launcher-codex.d.ts.map +1 -0
- package/server/dist/core/launcher-codex.js +187 -0
- package/server/dist/core/launcher-codex.js.map +1 -0
- package/server/dist/core/launcher-codextender-env.d.ts +44 -0
- package/server/dist/core/launcher-codextender-env.d.ts.map +1 -0
- package/server/dist/core/launcher-codextender-env.js +212 -0
- package/server/dist/core/launcher-codextender-env.js.map +1 -0
- package/server/dist/core/launcher-codextender.d.ts +72 -0
- package/server/dist/core/launcher-codextender.d.ts.map +1 -0
- package/server/dist/core/launcher-codextender.js +98 -0
- package/server/dist/core/launcher-codextender.js.map +1 -0
- package/server/dist/core/launcher-codextender.smoke-helpers.d.ts +25 -0
- package/server/dist/core/launcher-codextender.smoke-helpers.d.ts.map +1 -0
- package/server/dist/core/launcher-codextender.smoke-helpers.js +211 -0
- package/server/dist/core/launcher-codextender.smoke-helpers.js.map +1 -0
- package/server/dist/core/launcher-permission-flags.d.ts +17 -0
- package/server/dist/core/launcher-permission-flags.d.ts.map +1 -0
- package/server/dist/core/launcher-permission-flags.js +27 -0
- package/server/dist/core/launcher-permission-flags.js.map +1 -0
- package/server/dist/core/launcher.d.ts +18 -0
- package/server/dist/core/launcher.d.ts.map +1 -1
- package/server/dist/core/launcher.js +6 -0
- package/server/dist/core/launcher.js.map +1 -1
- package/server/dist/core/leadwright-preflight-transport.d.ts +27 -0
- package/server/dist/core/leadwright-preflight-transport.d.ts.map +1 -0
- package/server/dist/core/leadwright-preflight-transport.js +124 -0
- package/server/dist/core/leadwright-preflight-transport.js.map +1 -0
- package/server/dist/core/mission-context/artifacts-tests-ac.d.ts +6 -0
- package/server/dist/core/mission-context/artifacts-tests-ac.d.ts.map +1 -0
- package/server/dist/core/mission-context/artifacts-tests-ac.js +31 -0
- package/server/dist/core/mission-context/artifacts-tests-ac.js.map +1 -0
- package/server/dist/core/mission-context/artifacts-tests.d.ts.map +1 -1
- package/server/dist/core/mission-context/artifacts-tests.js +20 -0
- package/server/dist/core/mission-context/artifacts-tests.js.map +1 -1
- package/server/dist/core/mission-context/resolver-io.d.ts +10 -0
- package/server/dist/core/mission-context/resolver-io.d.ts.map +1 -1
- package/server/dist/core/mission-context/resolver-parts.d.ts +8 -7
- package/server/dist/core/mission-context/resolver-parts.d.ts.map +1 -1
- package/server/dist/core/mission-context/resolver-parts.js +22 -14
- package/server/dist/core/mission-context/resolver-parts.js.map +1 -1
- package/server/dist/core/mission-context/resolver.d.ts.map +1 -1
- package/server/dist/core/mission-context/resolver.js +1 -1
- package/server/dist/core/mission-context/resolver.js.map +1 -1
- package/server/dist/core/mission-context/run-id-recovery.d.ts +18 -2
- package/server/dist/core/mission-context/run-id-recovery.d.ts.map +1 -1
- package/server/dist/core/mission-context/run-id-recovery.js +38 -18
- package/server/dist/core/mission-context/run-id-recovery.js.map +1 -1
- package/server/dist/core/mission-context/traceability.d.ts.map +1 -1
- package/server/dist/core/mission-context/traceability.js +15 -1
- package/server/dist/core/mission-context/traceability.js.map +1 -1
- package/server/dist/core/mission-context/types-slice2.d.ts +44 -0
- package/server/dist/core/mission-context/types-slice2.d.ts.map +1 -1
- package/server/dist/core/model-tier-config-reader.d.ts +14 -1
- package/server/dist/core/model-tier-config-reader.d.ts.map +1 -1
- package/server/dist/core/model-tier-config-reader.js +34 -2
- package/server/dist/core/model-tier-config-reader.js.map +1 -1
- package/server/dist/core/powershell-probe.smoke-helpers.d.ts +12 -0
- package/server/dist/core/powershell-probe.smoke-helpers.d.ts.map +1 -0
- package/server/dist/core/powershell-probe.smoke-helpers.js +80 -0
- package/server/dist/core/powershell-probe.smoke-helpers.js.map +1 -0
- package/server/dist/core/readiness-install-hints.d.ts +1 -1
- package/server/dist/core/readiness-install-hints.d.ts.map +1 -1
- package/server/dist/core/readiness-install-hints.js +5 -0
- package/server/dist/core/readiness-install-hints.js.map +1 -1
- package/server/dist/core/readiness-probe-run.d.ts +61 -0
- package/server/dist/core/readiness-probe-run.d.ts.map +1 -1
- package/server/dist/core/readiness-probe-run.js +93 -15
- package/server/dist/core/readiness-probe-run.js.map +1 -1
- package/server/dist/core/readiness-probe.d.ts +1 -1
- package/server/dist/core/readiness-probe.d.ts.map +1 -1
- package/server/dist/core/readiness-probe.js +36 -8
- package/server/dist/core/readiness-probe.js.map +1 -1
- package/server/dist/core/sdk-sessions-merge.d.ts +19 -0
- package/server/dist/core/sdk-sessions-merge.d.ts.map +1 -1
- package/server/dist/core/sdk-sessions-merge.js +19 -5
- package/server/dist/core/sdk-sessions-merge.js.map +1 -1
- package/server/dist/core/sdk-sessions-refresh.d.ts +50 -0
- package/server/dist/core/sdk-sessions-refresh.d.ts.map +1 -0
- package/server/dist/core/sdk-sessions-refresh.js +69 -0
- package/server/dist/core/sdk-sessions-refresh.js.map +1 -0
- package/server/dist/core/sdk-sessions-store.d.ts +48 -0
- package/server/dist/core/sdk-sessions-store.d.ts.map +1 -1
- package/server/dist/core/sdk-sessions-store.js +8 -9
- package/server/dist/core/sdk-sessions-store.js.map +1 -1
- package/server/dist/core/sdk-sessions-validate.d.ts.map +1 -1
- package/server/dist/core/sdk-sessions-validate.js +11 -0
- package/server/dist/core/sdk-sessions-validate.js.map +1 -1
- package/server/dist/core/settings-reader.d.ts +18 -0
- package/server/dist/core/settings-reader.d.ts.map +1 -0
- package/server/dist/core/settings-reader.js +40 -0
- package/server/dist/core/settings-reader.js.map +1 -0
- package/server/dist/core/shell-quote.d.ts +29 -0
- package/server/dist/core/shell-quote.d.ts.map +1 -1
- package/server/dist/core/shell-quote.js +34 -0
- package/server/dist/core/shell-quote.js.map +1 -1
- package/server/dist/core/shipwright-plugin-version-reader.d.ts +15 -0
- package/server/dist/core/shipwright-plugin-version-reader.d.ts.map +1 -0
- package/server/dist/core/shipwright-plugin-version-reader.js +49 -0
- package/server/dist/core/shipwright-plugin-version-reader.js.map +1 -0
- package/server/dist/core/task-editability.d.ts +1 -1
- package/server/dist/core/task-editability.d.ts.map +1 -1
- package/server/dist/core/task-editability.js +1 -0
- package/server/dist/core/task-editability.js.map +1 -1
- package/server/dist/core/triage-cli-runner.d.ts.map +1 -1
- package/server/dist/core/triage-cli-runner.js +6 -21
- package/server/dist/core/triage-cli-runner.js.map +1 -1
- package/server/dist/core/triage-compose.d.ts.map +1 -1
- package/server/dist/core/triage-compose.js +34 -3
- package/server/dist/core/triage-compose.js.map +1 -1
- package/server/dist/core/triage-store.d.ts +2 -1
- package/server/dist/core/triage-store.d.ts.map +1 -1
- package/server/dist/core/triage-store.js +1 -1
- package/server/dist/core/triage-store.js.map +1 -1
- package/server/dist/external/create-external-routes-args.d.ts +122 -0
- package/server/dist/external/create-external-routes-args.d.ts.map +1 -0
- package/server/dist/external/create-external-routes-args.js +2 -0
- package/server/dist/external/create-external-routes-args.js.map +1 -0
- package/server/dist/external/inbox/_codex.d.ts +14 -0
- package/server/dist/external/inbox/_codex.d.ts.map +1 -0
- package/server/dist/external/inbox/_codex.js +88 -0
- package/server/dist/external/inbox/_codex.js.map +1 -0
- package/server/dist/external/inbox/_derive.d.ts +2 -25
- package/server/dist/external/inbox/_derive.d.ts.map +1 -1
- package/server/dist/external/inbox/_derive.js +11 -0
- package/server/dist/external/inbox/_derive.js.map +1 -1
- package/server/dist/external/inbox/_lead.d.ts +23 -0
- package/server/dist/external/inbox/_lead.d.ts.map +1 -0
- package/server/dist/external/inbox/_lead.js +83 -0
- package/server/dist/external/inbox/_lead.js.map +1 -0
- package/server/dist/external/inbox/_types.d.ts +55 -0
- package/server/dist/external/inbox/_types.d.ts.map +1 -0
- package/server/dist/external/inbox/_types.js +13 -0
- package/server/dist/external/inbox/_types.js.map +1 -0
- package/server/dist/external/inbox/routes.d.ts +7 -0
- package/server/dist/external/inbox/routes.d.ts.map +1 -1
- package/server/dist/external/inbox/routes.js +43 -2
- package/server/dist/external/inbox/routes.js.map +1 -1
- package/server/dist/external/launch/_helpers.d.ts +4 -0
- package/server/dist/external/launch/_helpers.d.ts.map +1 -1
- package/server/dist/external/launch/_helpers.js.map +1 -1
- package/server/dist/external/launch/action-substitution-branch.d.ts +12 -0
- package/server/dist/external/launch/action-substitution-branch.d.ts.map +1 -1
- package/server/dist/external/launch/action-substitution-branch.js +35 -1
- package/server/dist/external/launch/action-substitution-branch.js.map +1 -1
- package/server/dist/external/launch/branch-dispatch.d.ts +15 -0
- package/server/dist/external/launch/branch-dispatch.d.ts.map +1 -0
- package/server/dist/external/launch/branch-dispatch.js +73 -0
- package/server/dist/external/launch/branch-dispatch.js.map +1 -0
- package/server/dist/external/launch/campaign-step-branch.d.ts +7 -1
- package/server/dist/external/launch/campaign-step-branch.d.ts.map +1 -1
- package/server/dist/external/launch/campaign-step-branch.js +70 -2
- package/server/dist/external/launch/campaign-step-branch.js.map +1 -1
- package/server/dist/external/launch/claim-executor-permissions.d.ts +31 -0
- package/server/dist/external/launch/claim-executor-permissions.d.ts.map +1 -0
- package/server/dist/external/launch/claim-executor-permissions.js +107 -0
- package/server/dist/external/launch/claim-executor-permissions.js.map +1 -0
- package/server/dist/external/launch/claim-executor-template-arming.d.ts +42 -0
- package/server/dist/external/launch/claim-executor-template-arming.d.ts.map +1 -0
- package/server/dist/external/launch/claim-executor-template-arming.js +121 -0
- package/server/dist/external/launch/claim-executor-template-arming.js.map +1 -0
- package/server/dist/external/launch/claim-holder-gate.d.ts +51 -0
- package/server/dist/external/launch/claim-holder-gate.d.ts.map +1 -0
- package/server/dist/external/launch/claim-holder-gate.js +95 -0
- package/server/dist/external/launch/claim-holder-gate.js.map +1 -0
- package/server/dist/external/launch/claim-permission-perimeter-assert.d.ts +3 -0
- package/server/dist/external/launch/claim-permission-perimeter-assert.d.ts.map +1 -0
- package/server/dist/external/launch/claim-permission-perimeter-assert.js +24 -0
- package/server/dist/external/launch/claim-permission-perimeter-assert.js.map +1 -0
- package/server/dist/external/launch/legacy-fallback-branch.d.ts +14 -0
- package/server/dist/external/launch/legacy-fallback-branch.d.ts.map +1 -1
- package/server/dist/external/launch/legacy-fallback-branch.js +3 -1
- package/server/dist/external/launch/legacy-fallback-branch.js.map +1 -1
- package/server/dist/external/launch/master-run-branch.js +2 -2
- package/server/dist/external/launch/master-run-branch.js.map +1 -1
- package/server/dist/external/launch/mixed-intents-guard.d.ts +10 -0
- package/server/dist/external/launch/mixed-intents-guard.d.ts.map +1 -0
- package/server/dist/external/launch/mixed-intents-guard.js +49 -0
- package/server/dist/external/launch/mixed-intents-guard.js.map +1 -0
- package/server/dist/external/launch/parse-body.d.ts +29 -0
- package/server/dist/external/launch/parse-body.d.ts.map +1 -1
- package/server/dist/external/launch/parse-body.js +66 -0
- package/server/dist/external/launch/parse-body.js.map +1 -1
- package/server/dist/external/launch/routes.d.ts +3 -0
- package/server/dist/external/launch/routes.d.ts.map +1 -1
- package/server/dist/external/launch/routes.js +99 -128
- package/server/dist/external/launch/routes.js.map +1 -1
- package/server/dist/external/launch/runtime-chokepoint-codextender.d.ts +20 -0
- package/server/dist/external/launch/runtime-chokepoint-codextender.d.ts.map +1 -0
- package/server/dist/external/launch/runtime-chokepoint-codextender.js +51 -0
- package/server/dist/external/launch/runtime-chokepoint-codextender.js.map +1 -0
- package/server/dist/external/launch/runtime-chokepoint-errors.d.ts +33 -0
- package/server/dist/external/launch/runtime-chokepoint-errors.d.ts.map +1 -0
- package/server/dist/external/launch/runtime-chokepoint-errors.js +63 -0
- package/server/dist/external/launch/runtime-chokepoint-errors.js.map +1 -0
- package/server/dist/external/launch/runtime-chokepoint.d.ts +120 -0
- package/server/dist/external/launch/runtime-chokepoint.d.ts.map +1 -0
- package/server/dist/external/launch/runtime-chokepoint.js +201 -0
- package/server/dist/external/launch/runtime-chokepoint.js.map +1 -0
- package/server/dist/external/mission-context/routes.d.ts +33 -27
- package/server/dist/external/mission-context/routes.d.ts.map +1 -1
- package/server/dist/external/mission-context/routes.js +30 -27
- package/server/dist/external/mission-context/routes.js.map +1 -1
- package/server/dist/external/mission-context/test-harness.d.ts +6 -0
- package/server/dist/external/mission-context/test-harness.d.ts.map +1 -1
- package/server/dist/external/mission-context/test-harness.js +6 -1
- package/server/dist/external/mission-context/test-harness.js.map +1 -1
- package/server/dist/external/mission-context/wire.d.ts.map +1 -1
- package/server/dist/external/mission-context/wire.js +24 -2
- package/server/dist/external/mission-context/wire.js.map +1 -1
- package/server/dist/external/org/audit-log.d.ts +19 -0
- package/server/dist/external/org/audit-log.d.ts.map +1 -1
- package/server/dist/external/org/audit-log.js +33 -18
- package/server/dist/external/org/audit-log.js.map +1 -1
- package/server/dist/external/org/beat-effect-audit-read.d.ts +15 -0
- package/server/dist/external/org/beat-effect-audit-read.d.ts.map +1 -0
- package/server/dist/external/org/beat-effect-audit-read.js +73 -0
- package/server/dist/external/org/beat-effect-audit-read.js.map +1 -0
- package/server/dist/external/org/beat-register-health.d.ts +57 -0
- package/server/dist/external/org/beat-register-health.d.ts.map +1 -0
- package/server/dist/external/org/beat-register-health.js +125 -0
- package/server/dist/external/org/beat-register-health.js.map +1 -0
- package/server/dist/external/org/beat-register-release-core.d.ts.map +1 -1
- package/server/dist/external/org/beat-register-release-core.js +4 -1
- package/server/dist/external/org/beat-register-release-core.js.map +1 -1
- package/server/dist/external/org/beat-register-release-request.d.ts +20 -0
- package/server/dist/external/org/beat-register-release-request.d.ts.map +1 -0
- package/server/dist/external/org/beat-register-release-request.js +92 -0
- package/server/dist/external/org/beat-register-release-request.js.map +1 -0
- package/server/dist/external/org/beat-register-release.d.ts +3 -1
- package/server/dist/external/org/beat-register-release.d.ts.map +1 -1
- package/server/dist/external/org/beat-register-release.js +15 -57
- package/server/dist/external/org/beat-register-release.js.map +1 -1
- package/server/dist/external/org/beat-register.d.ts +18 -20
- package/server/dist/external/org/beat-register.d.ts.map +1 -1
- package/server/dist/external/org/beat-register.js +30 -56
- package/server/dist/external/org/beat-register.js.map +1 -1
- package/server/dist/external/org/beat-steps-read.d.ts +17 -0
- package/server/dist/external/org/beat-steps-read.d.ts.map +1 -0
- package/server/dist/external/org/beat-steps-read.js +89 -0
- package/server/dist/external/org/beat-steps-read.js.map +1 -0
- package/server/dist/external/org/charter-authority-read.d.ts +39 -0
- package/server/dist/external/org/charter-authority-read.d.ts.map +1 -0
- package/server/dist/external/org/charter-authority-read.js +142 -0
- package/server/dist/external/org/charter-authority-read.js.map +1 -0
- package/server/dist/external/org/commit-validate.d.ts +18 -0
- package/server/dist/external/org/commit-validate.d.ts.map +1 -0
- package/server/dist/external/org/commit-validate.js +59 -0
- package/server/dist/external/org/commit-validate.js.map +1 -0
- package/server/dist/external/org/commit-writes.d.ts +68 -0
- package/server/dist/external/org/commit-writes.d.ts.map +1 -0
- package/server/dist/external/org/commit-writes.js +110 -0
- package/server/dist/external/org/commit-writes.js.map +1 -0
- package/server/dist/external/org/commit.d.ts +73 -0
- package/server/dist/external/org/commit.d.ts.map +1 -0
- package/server/dist/external/org/commit.js +181 -0
- package/server/dist/external/org/commit.js.map +1 -0
- package/server/dist/external/org/commit.test-fixtures.d.ts +38 -0
- package/server/dist/external/org/commit.test-fixtures.d.ts.map +1 -0
- package/server/dist/external/org/commit.test-fixtures.js +67 -0
- package/server/dist/external/org/commit.test-fixtures.js.map +1 -0
- package/server/dist/external/org/countersign-core.d.ts +19 -0
- package/server/dist/external/org/countersign-core.d.ts.map +1 -0
- package/server/dist/external/org/countersign-core.js +122 -0
- package/server/dist/external/org/countersign-core.js.map +1 -0
- package/server/dist/external/org/countersign-request.d.ts +14 -0
- package/server/dist/external/org/countersign-request.d.ts.map +1 -0
- package/server/dist/external/org/countersign-request.js +78 -0
- package/server/dist/external/org/countersign-request.js.map +1 -0
- package/server/dist/external/org/countersign.d.ts +6 -5
- package/server/dist/external/org/countersign.d.ts.map +1 -1
- package/server/dist/external/org/countersign.js +12 -141
- package/server/dist/external/org/countersign.js.map +1 -1
- package/server/dist/external/org/daemon-config-read.d.ts +31 -0
- package/server/dist/external/org/daemon-config-read.d.ts.map +1 -0
- package/server/dist/external/org/daemon-config-read.js +50 -0
- package/server/dist/external/org/daemon-config-read.js.map +1 -0
- package/server/dist/external/org/decisions-lock.d.ts +6 -4
- package/server/dist/external/org/decisions-lock.d.ts.map +1 -1
- package/server/dist/external/org/decisions-lock.js +9 -8
- package/server/dist/external/org/decisions-lock.js.map +1 -1
- package/server/dist/external/org/domains.d.ts +35 -0
- package/server/dist/external/org/domains.d.ts.map +1 -0
- package/server/dist/external/org/domains.js +29 -0
- package/server/dist/external/org/domains.js.map +1 -0
- package/server/dist/external/org/existing-charters-read.d.ts +5 -0
- package/server/dist/external/org/existing-charters-read.d.ts.map +1 -0
- package/server/dist/external/org/existing-charters-read.js +31 -0
- package/server/dist/external/org/existing-charters-read.js.map +1 -0
- package/server/dist/external/org/lead-question-threads.d.ts +46 -0
- package/server/dist/external/org/lead-question-threads.d.ts.map +1 -0
- package/server/dist/external/org/lead-question-threads.js +132 -0
- package/server/dist/external/org/lead-question-threads.js.map +1 -0
- package/server/dist/external/org/leadwright-proposal-merge.d.ts +54 -0
- package/server/dist/external/org/leadwright-proposal-merge.d.ts.map +1 -0
- package/server/dist/external/org/leadwright-proposal-merge.js +47 -0
- package/server/dist/external/org/leadwright-proposal-merge.js.map +1 -0
- package/server/dist/external/org/mount.d.ts +11 -0
- package/server/dist/external/org/mount.d.ts.map +1 -1
- package/server/dist/external/org/mount.js +7 -1
- package/server/dist/external/org/mount.js.map +1 -1
- package/server/dist/external/org/org-chart-full-read.d.ts +19 -0
- package/server/dist/external/org/org-chart-full-read.d.ts.map +1 -0
- package/server/dist/external/org/org-chart-full-read.js +58 -0
- package/server/dist/external/org/org-chart-full-read.js.map +1 -0
- package/server/dist/external/org/org-file-lock.d.ts +41 -0
- package/server/dist/external/org/org-file-lock.d.ts.map +1 -0
- package/server/dist/external/org/org-file-lock.js +90 -0
- package/server/dist/external/org/org-file-lock.js.map +1 -0
- package/server/dist/external/org/routes.d.ts +10 -0
- package/server/dist/external/org/routes.d.ts.map +1 -1
- package/server/dist/external/org/routes.js +22 -1
- package/server/dist/external/org/routes.js.map +1 -1
- package/server/dist/external/org/usage.d.ts.map +1 -1
- package/server/dist/external/org/usage.js +20 -2
- package/server/dist/external/org/usage.js.map +1 -1
- package/server/dist/external/org/verdict.d.ts +57 -0
- package/server/dist/external/org/verdict.d.ts.map +1 -0
- package/server/dist/external/org/verdict.js +74 -0
- package/server/dist/external/org/verdict.js.map +1 -0
- package/server/dist/external/routes.d.ts +3 -101
- package/server/dist/external/routes.d.ts.map +1 -1
- package/server/dist/external/routes.js +12 -3
- package/server/dist/external/routes.js.map +1 -1
- package/server/dist/external/tasks/create.d.ts.map +1 -1
- package/server/dist/external/tasks/create.js +8 -0
- package/server/dist/external/tasks/create.js.map +1 -1
- package/server/dist/external/tasks/fork.d.ts +29 -0
- package/server/dist/external/tasks/fork.d.ts.map +1 -0
- package/server/dist/external/tasks/fork.js +166 -0
- package/server/dist/external/tasks/fork.js.map +1 -0
- package/server/dist/external/tasks/lifecycle.d.ts.map +1 -1
- package/server/dist/external/tasks/lifecycle.js +10 -57
- package/server/dist/external/tasks/lifecycle.js.map +1 -1
- package/server/dist/external/tasks/patch.d.ts.map +1 -1
- package/server/dist/external/tasks/patch.js +17 -0
- package/server/dist/external/tasks/patch.js.map +1 -1
- package/server/dist/external/tasks/routes.d.ts +2 -0
- package/server/dist/external/tasks/routes.d.ts.map +1 -1
- package/server/dist/external/tasks/routes.js +7 -0
- package/server/dist/external/tasks/routes.js.map +1 -1
- package/server/dist/external/transcript/routes.d.ts.map +1 -1
- package/server/dist/external/transcript/routes.js +25 -3
- package/server/dist/external/transcript/routes.js.map +1 -1
- package/server/dist/external-routes-wiring.d.ts +28 -0
- package/server/dist/external-routes-wiring.d.ts.map +1 -0
- package/server/dist/external-routes-wiring.js +61 -0
- package/server/dist/external-routes-wiring.js.map +1 -0
- package/server/dist/index.d.ts.map +1 -1
- package/server/dist/index.js +111 -44
- package/server/dist/index.js.map +1 -1
- package/server/dist/lib/resolveHonoHost.d.ts.map +1 -1
- package/server/dist/lib/resolveHonoHost.js +16 -1
- package/server/dist/lib/resolveHonoHost.js.map +1 -1
- package/server/dist/routes/_triage-api-harness.d.ts +1 -1
- package/server/dist/routes/_triage-api-harness.d.ts.map +1 -1
- package/server/dist/routes/_triage-api-harness.js.map +1 -1
- package/server/dist/routes/campaigns-readiness.d.ts +10 -0
- package/server/dist/routes/campaigns-readiness.d.ts.map +1 -0
- package/server/dist/routes/campaigns-readiness.js +58 -0
- package/server/dist/routes/campaigns-readiness.js.map +1 -0
- package/server/dist/routes/campaigns.d.ts.map +1 -1
- package/server/dist/routes/campaigns.js +3 -0
- package/server/dist/routes/campaigns.js.map +1 -1
- package/server/dist/routes/codex-models.d.ts +15 -0
- package/server/dist/routes/codex-models.d.ts.map +1 -0
- package/server/dist/routes/codex-models.js +77 -0
- package/server/dist/routes/codex-models.js.map +1 -0
- package/server/dist/routes/codextender-models.d.ts +16 -0
- package/server/dist/routes/codextender-models.d.ts.map +1 -0
- package/server/dist/routes/codextender-models.js +81 -0
- package/server/dist/routes/codextender-models.js.map +1 -0
- package/server/dist/routes/diagnostics.d.ts +27 -0
- package/server/dist/routes/diagnostics.d.ts.map +1 -1
- package/server/dist/routes/diagnostics.js +5 -1
- package/server/dist/routes/diagnostics.js.map +1 -1
- package/server/dist/routes/org-chart-lead-guard.d.ts +10 -0
- package/server/dist/routes/org-chart-lead-guard.d.ts.map +1 -0
- package/server/dist/routes/org-chart-lead-guard.js +49 -0
- package/server/dist/routes/org-chart-lead-guard.js.map +1 -0
- package/server/dist/routes/org-inventory-composite.d.ts +20 -0
- package/server/dist/routes/org-inventory-composite.d.ts.map +1 -0
- package/server/dist/routes/org-inventory-composite.js +100 -0
- package/server/dist/routes/org-inventory-composite.js.map +1 -0
- package/server/dist/routes/org-lead-setup-wizard.d.ts +10 -0
- package/server/dist/routes/org-lead-setup-wizard.d.ts.map +1 -0
- package/server/dist/routes/org-lead-setup-wizard.js +51 -0
- package/server/dist/routes/org-lead-setup-wizard.js.map +1 -0
- package/server/dist/routes/org-leads-composite.d.ts.map +1 -1
- package/server/dist/routes/org-leads-composite.js +35 -9
- package/server/dist/routes/org-leads-composite.js.map +1 -1
- package/server/dist/routes/org-threads-composite.d.ts +24 -0
- package/server/dist/routes/org-threads-composite.d.ts.map +1 -0
- package/server/dist/routes/org-threads-composite.js +51 -0
- package/server/dist/routes/org-threads-composite.js.map +1 -0
- package/server/dist/routes/org-writes.d.ts +14 -0
- package/server/dist/routes/org-writes.d.ts.map +1 -0
- package/server/dist/routes/org-writes.js +61 -0
- package/server/dist/routes/org-writes.js.map +1 -0
- package/server/dist/routes/org.d.ts +14 -0
- package/server/dist/routes/org.d.ts.map +1 -1
- package/server/dist/routes/org.js +63 -47
- package/server/dist/routes/org.js.map +1 -1
- package/server/dist/routes/settings.d.ts.map +1 -1
- package/server/dist/routes/settings.js +23 -2
- package/server/dist/routes/settings.js.map +1 -1
- package/server/dist/routes/triage.d.ts +17 -0
- package/server/dist/routes/triage.d.ts.map +1 -1
- package/server/dist/routes/triage.js +29 -0
- package/server/dist/routes/triage.js.map +1 -1
- package/server/dist/terminal/pty-manager.d.ts +37 -1
- package/server/dist/terminal/pty-manager.d.ts.map +1 -1
- package/server/dist/terminal/pty-manager.js +33 -3
- package/server/dist/terminal/pty-manager.js.map +1 -1
- package/server/dist/terminal/pty-write-chunker.d.ts +109 -0
- package/server/dist/terminal/pty-write-chunker.d.ts.map +1 -0
- package/server/dist/terminal/pty-write-chunker.js +234 -0
- package/server/dist/terminal/pty-write-chunker.js.map +1 -0
- package/server/dist/terminal/routes.d.ts.map +1 -1
- package/server/dist/terminal/routes.js +9 -0
- package/server/dist/terminal/routes.js.map +1 -1
- package/server/dist/terminal/ws-upgrade-handler.d.ts.map +1 -1
- package/server/dist/terminal/ws-upgrade-handler.fixtures.d.ts.map +1 -1
- package/server/dist/terminal/ws-upgrade-handler.fixtures.js +1 -0
- package/server/dist/terminal/ws-upgrade-handler.fixtures.js.map +1 -1
- package/server/dist/terminal/ws-upgrade-handler.js +14 -5
- package/server/dist/terminal/ws-upgrade-handler.js.map +1 -1
- package/server/dist/test/event-test-counts-fixtures.d.ts +40 -0
- package/server/dist/test/event-test-counts-fixtures.d.ts.map +1 -0
- package/server/dist/test/event-test-counts-fixtures.js +56 -0
- package/server/dist/test/event-test-counts-fixtures.js.map +1 -0
- package/server/dist/types/leadwright-beat-step.d.ts +19 -0
- package/server/dist/types/leadwright-beat-step.d.ts.map +1 -0
- package/server/dist/types/leadwright-beat-step.js +56 -0
- package/server/dist/types/leadwright-beat-step.js.map +1 -0
- package/server/dist/types/leadwright-preflight.d.ts +90 -0
- package/server/dist/types/leadwright-preflight.d.ts.map +1 -0
- package/server/dist/types/leadwright-preflight.js +65 -0
- package/server/dist/types/leadwright-preflight.js.map +1 -0
- package/server/dist/types/leadwright-schema-drift.d.ts +28 -0
- package/server/dist/types/leadwright-schema-drift.d.ts.map +1 -0
- package/server/dist/types/leadwright-schema-drift.js +89 -0
- package/server/dist/types/leadwright-schema-drift.js.map +1 -0
- package/server/dist/types/org-inventory.d.ts +53 -0
- package/server/dist/types/org-inventory.d.ts.map +1 -0
- package/server/dist/types/org-inventory.js +11 -0
- package/server/dist/types/org-inventory.js.map +1 -0
- package/server/dist/types/org.d.ts +76 -6
- package/server/dist/types/org.d.ts.map +1 -1
- package/server/dist/types/run-config-retry.d.ts +29 -0
- package/server/dist/types/run-config-retry.d.ts.map +1 -0
- package/server/dist/types/run-config-retry.js +47 -0
- package/server/dist/types/run-config-retry.js.map +1 -0
- package/server/dist/types/run-config-v2.d.ts +29 -41
- package/server/dist/types/run-config-v2.d.ts.map +1 -1
- package/server/dist/types/run-config-v2.js +16 -50
- package/server/dist/types/run-config-v2.js.map +1 -1
- package/server/dist/types/settings.d.ts +33 -0
- package/server/dist/types/settings.d.ts.map +1 -1
- package/server/dist/vendor/leadwright/beat-step.schema.json +83 -0
- package/server/dist/vendor/leadwright/claim-record-lock-contract.json +15 -0
- package/server/dist/vendor/leadwright/org-chart.schema.json +195 -0
- package/server/dist/vendor/leadwright/preflight-input.schema.json +318 -0
- package/server/dist/vendor/leadwright/preflight-result.schema.json +56 -0
- package/server/package.json +1 -1
- package/client/dist/assets/channel-BYPbLjRl.js +0 -1
- package/client/dist/assets/classDiagram-OUVF2IWQ-CsFIeTju.js +0 -1
- package/client/dist/assets/classDiagram-v2-EOCWNBFH-CsFIeTju.js +0 -1
- package/client/dist/assets/index-BnTOrFHb.js +0 -829
- package/client/dist/assets/index-CYPc6qxw.css +0 -1
- package/client/dist/assets/stateDiagram-v2-6OUMAXLB-B3E4_xxT.js +0 -1
- package/client/dist/assets/swimlanesDiagram-G3AALYLV-BegQBqnC.js +0 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"charter-authority-read.js","sourceRoot":"","sources":["../../../src/external/org/charter-authority-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,eAAe,EAAoD,MAAM,gBAAgB,CAAC;AAQnG,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE;IACnD,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE;IAC5C,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;IACxC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,yBAAyB,EAAE;CACxD,CAAC;AAEF,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAc7C,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAOD,SAAS,YAAY,CAAC,KAAe;IACnC,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;2DAY2D;AAC3D,SAAS,mBAAmB,CAAC,YAAsB;IACjD,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC,MAAM,CAAC;IACV,MAAM,cAAc,GAAG,cAAc,GAAG,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/E,WAAW,GAAG,CAAC,WAAW,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,IAAI,WAAW;YAAE,SAAS;QAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,oDAAoD;QACzF,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE7C,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAqB,EAAE;QACnD,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACvE,CAAC;QACD,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,gBAAgB,GAAG,QAAQ;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aACnB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;aAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,UAAU,GAAG,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC;QACpD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;QAE9D,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;IACnG,CAAC,CAAC,CAAC;AACL,CAAC;AAOD;;+DAE+D;AAC/D,MAAM,UAAU,oBAAoB,CAClC,IAA0B,EAC1B,MAAc,EACd,WAA+B;IAE/B,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,uBAAuB,EAAE,CAAC;QACzE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,qDAAqD,EAAE,CAAC;IAC5F,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,IAAI,uBAAuB,EAAE,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACpD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,0CAA0C,EAAE,CAAC;IACjF,CAAC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC7D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PreflightLead } from "../../types/leadwright-preflight.js";
|
|
2
|
+
import type { DaemonConfigAdditions } from "./leadwright-proposal-merge.js";
|
|
3
|
+
export interface CommitRequestBody {
|
|
4
|
+
leadId: string;
|
|
5
|
+
lead: PreflightLead;
|
|
6
|
+
daemonConfigAdditions: DaemonConfigAdditions;
|
|
7
|
+
charterContent: string;
|
|
8
|
+
expectedProposalDigest: string;
|
|
9
|
+
}
|
|
10
|
+
export type ValidationResult = {
|
|
11
|
+
ok: true;
|
|
12
|
+
value: CommitRequestBody;
|
|
13
|
+
} | {
|
|
14
|
+
ok: false;
|
|
15
|
+
reason: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function validateCommitBody(body: unknown): ValidationResult;
|
|
18
|
+
//# sourceMappingURL=commit-validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-validate.d.ts","sourceRoot":"","sources":["../../../src/external/org/commit-validate.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAmDlE"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* commit-validate.ts — request-body validation for POST
|
|
3
|
+
* /api/external/org/leads/commit (iterate-2026-09-07-leadwright-setup-wizard,
|
|
4
|
+
* W14). Split out of commit.ts (bloat ceiling) — a self-contained concern:
|
|
5
|
+
* shape-checking the untyped request body against leadwright's published
|
|
6
|
+
* contract, never leadwright's semantic judgment (that's the verdict step's
|
|
7
|
+
* real check-setup.ts subprocess).
|
|
8
|
+
*/
|
|
9
|
+
import path from "node:path";
|
|
10
|
+
import { LEAD_ID_RE, ALLOWED_SKILL_RE } from "../../types/leadwright-preflight.js";
|
|
11
|
+
export function validateCommitBody(body) {
|
|
12
|
+
if (typeof body !== "object" || body === null)
|
|
13
|
+
return { ok: false, reason: "invalid_request_body" };
|
|
14
|
+
const b = body;
|
|
15
|
+
if (typeof b.leadId !== "string" || !LEAD_ID_RE.test(b.leadId)) {
|
|
16
|
+
return { ok: false, reason: "invalid_lead_id" };
|
|
17
|
+
}
|
|
18
|
+
if (typeof b.lead !== "object" || b.lead === null) {
|
|
19
|
+
return { ok: false, reason: "invalid_lead" };
|
|
20
|
+
}
|
|
21
|
+
const lead = b.lead;
|
|
22
|
+
// External-review fix (both legs, high): commitCore ALWAYS writes charter
|
|
23
|
+
// content to `<leadsRoot>/<leadId>/charter.md` regardless of what
|
|
24
|
+
// charter_path says — checking only "relative, no .." (CHARTER_LEARNINGS_
|
|
25
|
+
// PATH_RE) let a caller submit a charter_path that doesn't match, so the
|
|
26
|
+
// org-chart entry would point at a file the endpoint never wrote. Exact
|
|
27
|
+
// match subsumes that regex check (a value equal to the fixed convention
|
|
28
|
+
// is trivially relative with no `..`). The wizard itself always sends
|
|
29
|
+
// this convention (buildLeadProposal.ts); this closes the gap for any
|
|
30
|
+
// other caller. `b.leadId` is a validated string by this point.
|
|
31
|
+
if (lead.charter_path !== `${b.leadId}/charter.md`) {
|
|
32
|
+
return { ok: false, reason: "charter_path_must_match_lead_id_convention" };
|
|
33
|
+
}
|
|
34
|
+
if (lead.learnings_path !== `${b.leadId}/learnings.md`) {
|
|
35
|
+
return { ok: false, reason: "learnings_path_must_match_lead_id_convention" };
|
|
36
|
+
}
|
|
37
|
+
if (!Array.isArray(lead.allowed_skills) || !lead.allowed_skills.every((s) => typeof s === "string" && ALLOWED_SKILL_RE.test(s))) {
|
|
38
|
+
return { ok: false, reason: "invalid_allowed_skills" };
|
|
39
|
+
}
|
|
40
|
+
const additionsRaw = b.daemonConfigAdditions;
|
|
41
|
+
if (typeof additionsRaw !== "object" || additionsRaw === null) {
|
|
42
|
+
return { ok: false, reason: "invalid_daemon_config_additions" };
|
|
43
|
+
}
|
|
44
|
+
const additions = additionsRaw;
|
|
45
|
+
if (typeof additions.path !== "string" ||
|
|
46
|
+
!path.isAbsolute(additions.path) ||
|
|
47
|
+
typeof additions.actionId !== "string" ||
|
|
48
|
+
!Array.isArray(additions.pluginDirs) ||
|
|
49
|
+
!additions.pluginDirs.every((d) => typeof d === "string" && path.isAbsolute(d))) {
|
|
50
|
+
return { ok: false, reason: "daemon_config_additions_must_be_absolute" };
|
|
51
|
+
}
|
|
52
|
+
if (typeof b.charterContent !== "string")
|
|
53
|
+
return { ok: false, reason: "charter_content_required" };
|
|
54
|
+
if (typeof b.expectedProposalDigest !== "string" || b.expectedProposalDigest.length === 0) {
|
|
55
|
+
return { ok: false, reason: "expected_proposal_digest_required" };
|
|
56
|
+
}
|
|
57
|
+
return { ok: true, value: body };
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=commit-validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-validate.js","sourceRoot":"","sources":["../../../src/external/org/commit-validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { withOrgFileLock, type LstatFn, type OrgFileLockOptions } from "./org-file-lock.js";
|
|
2
|
+
import { type DaemonConfigAdditions } from "./leadwright-proposal-merge.js";
|
|
3
|
+
import type { PreflightLead, PreflightOrgChart } from "../../types/leadwright-preflight.js";
|
|
4
|
+
export type WithOrgFileLockFn = typeof withOrgFileLock;
|
|
5
|
+
export type { LstatFn };
|
|
6
|
+
/** charter.md is a brand-new file under a brand-new leadId — no concurrent
|
|
7
|
+
* WRITER can exist for a path that did not exist a moment ago, so this
|
|
8
|
+
* needs no LOCK (mirrors file-write.ts's documented "no lock" posture for
|
|
9
|
+
* charter files; the concurrency story there is If-Match, which has no
|
|
10
|
+
* meaning for a CREATE). It IS symlink-checked, same as the other two
|
|
11
|
+
* writes: `<leadsRoot>/<leadId>` and the charter.md path itself are each
|
|
12
|
+
* checked immediately before the syscall that would follow them, closing
|
|
13
|
+
* the escape a pre-planted symlink (or a retry landing on one) would
|
|
14
|
+
* otherwise open. */
|
|
15
|
+
export declare function writeNewCharterFile(leadsRoot: string, leadId: string, content: string, lstat?: LstatFn): void;
|
|
16
|
+
export type DaemonConfigWriteResult = {
|
|
17
|
+
status: "written";
|
|
18
|
+
} | {
|
|
19
|
+
status: "missing";
|
|
20
|
+
fragment: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* ADD-ONLY merge — reads the CURRENT on-disk daemon-config.json fresh
|
|
24
|
+
* (inside the lock, never the pre-commit snapshot) and writes back with
|
|
25
|
+
* ONLY this lead's three entries added to leadProjectRoots/leadActionIds/
|
|
26
|
+
* leadPluginDirs. Every existing key — other leads' entries, every
|
|
27
|
+
* unrelated top-level field — passes through untouched. A file that does
|
|
28
|
+
* not exist on disk is never guessed into existence — the caller gets a
|
|
29
|
+
* copy-paste fragment instead (W14's "home is <leadsRoot>/daemon-config.json,
|
|
30
|
+
* if absent show a fragment instead of guessing a location").
|
|
31
|
+
*
|
|
32
|
+
* External-review fix (GLM, medium): the "does it exist" decision now comes
|
|
33
|
+
* from the `mustExist: true` lock ACQUISITION's own ENOENT, not a boolean
|
|
34
|
+
* the caller read before taking the lock — a pre-lock snapshot is a TOCTOU
|
|
35
|
+
* window (the file could be deleted between that read and this call).
|
|
36
|
+
*/
|
|
37
|
+
export declare function writeDaemonConfigAddition(leadsRoot: string, leadId: string, additions: DaemonConfigAdditions, withOrgFileLockFn?: WithOrgFileLockFn, lockOptions?: Omit<OrgFileLockOptions, "mustExist">): Promise<DaemonConfigWriteResult>;
|
|
38
|
+
export type OrgChartWriteResult = {
|
|
39
|
+
status: "written";
|
|
40
|
+
} | {
|
|
41
|
+
status: "already_committed";
|
|
42
|
+
} | {
|
|
43
|
+
status: "conflict";
|
|
44
|
+
};
|
|
45
|
+
/** Pure decision for adding `leadId` -> `lead` to an org-chart snapshot —
|
|
46
|
+
* idempotent when the roster ALREADY carries this exact lead (a safe retry
|
|
47
|
+
* after an earlier commit attempt crashed between this write and its HTTP
|
|
48
|
+
* response reaching the client); a DIFFERING existing entry is refused,
|
|
49
|
+
* never silently overwritten or reordered. Exported so `commit.ts` can
|
|
50
|
+
* reuse it INSIDE an org-chart.json lock it already holds (the
|
|
51
|
+
* concurrent-same-leadId-commit race fix) rather than acquiring a second,
|
|
52
|
+
* nested lock on the same file via `writeOrgChartLead`. */
|
|
53
|
+
export declare function applyOrgChartLead(current: PreflightOrgChart, leadId: string, lead: PreflightLead): {
|
|
54
|
+
status: "written";
|
|
55
|
+
next: PreflightOrgChart;
|
|
56
|
+
} | {
|
|
57
|
+
status: "already_committed";
|
|
58
|
+
} | {
|
|
59
|
+
status: "conflict";
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Adds `leadId` -> `lead` to org-chart.json's `leads` map, re-reading fresh
|
|
63
|
+
* inside the lock. Thin wrapper over `applyOrgChartLead` for callers that
|
|
64
|
+
* don't already hold this file's lock (`commit.ts` does, and calls
|
|
65
|
+
* `applyOrgChartLead` directly instead — see that file).
|
|
66
|
+
*/
|
|
67
|
+
export declare function writeOrgChartLead(leadsRoot: string, leadId: string, lead: PreflightLead, withOrgFileLockFn?: WithOrgFileLockFn, lockOptions?: Omit<OrgFileLockOptions, "mustExist">): Promise<OrgChartWriteResult>;
|
|
68
|
+
//# sourceMappingURL=commit-writes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-writes.d.ts","sourceRoot":"","sources":["../../../src/external/org/commit-writes.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAoB,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAsB,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,KAAK,EAAyB,aAAa,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAEnH,MAAM,MAAM,iBAAiB,GAAG,OAAO,eAAe,CAAC;AACvD,YAAY,EAAE,OAAO,EAAE,CAAC;AAExB;;;;;;;;sBAQsB;AACtB,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,OAAmB,GACzB,IAAI,CAON;AAED,MAAM,MAAM,uBAAuB,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AActG;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,qBAAqB,EAChC,iBAAiB,GAAE,iBAAmC,EACtD,WAAW,GAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAM,GACtD,OAAO,CAAC,uBAAuB,CAAC,CAoBlC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEnH;;;;;;;4DAO4D;AAC5D,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,GAClB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAQ3G;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,iBAAiB,GAAE,iBAAmC,EACtD,WAAW,GAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAM,GACtD,OAAO,CAAC,mBAAmB,CAAC,CAQ9B"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* commit-writes.ts — the three ordered, lock-protected writes the leads
|
|
3
|
+
* commit route performs (iterate-2026-09-07-leadwright-setup-wizard, W14).
|
|
4
|
+
* Order (enforced by commit.ts's call sequence, not here):
|
|
5
|
+
* charter.md -> daemon-config.json -> org-chart.json
|
|
6
|
+
* org-chart.json is what "activates" a lead (leadwright's daemon reads the
|
|
7
|
+
* roster from there), so writing it LAST means a failure at any earlier
|
|
8
|
+
* step leaves only harmless, retry-safe residue (an orphan charter.md, or
|
|
9
|
+
* a daemon-config.json entry pointing at a lead the roster doesn't list
|
|
10
|
+
* yet) rather than a half-activated lead.
|
|
11
|
+
*/
|
|
12
|
+
import { lstatSync, mkdirSync, writeFileSync } from "node:fs";
|
|
13
|
+
import path from "node:path";
|
|
14
|
+
import { withOrgFileLock, assertNotSymlink } from "./org-file-lock.js";
|
|
15
|
+
import { canonicalStringify } from "./leadwright-proposal-merge.js";
|
|
16
|
+
/** charter.md is a brand-new file under a brand-new leadId — no concurrent
|
|
17
|
+
* WRITER can exist for a path that did not exist a moment ago, so this
|
|
18
|
+
* needs no LOCK (mirrors file-write.ts's documented "no lock" posture for
|
|
19
|
+
* charter files; the concurrency story there is If-Match, which has no
|
|
20
|
+
* meaning for a CREATE). It IS symlink-checked, same as the other two
|
|
21
|
+
* writes: `<leadsRoot>/<leadId>` and the charter.md path itself are each
|
|
22
|
+
* checked immediately before the syscall that would follow them, closing
|
|
23
|
+
* the escape a pre-planted symlink (or a retry landing on one) would
|
|
24
|
+
* otherwise open. */
|
|
25
|
+
export function writeNewCharterFile(leadsRoot, leadId, content, lstat = lstatSync) {
|
|
26
|
+
const dir = path.join(leadsRoot, leadId);
|
|
27
|
+
assertNotSymlink(dir, lstat);
|
|
28
|
+
mkdirSync(dir, { recursive: true });
|
|
29
|
+
const filePath = path.join(dir, "charter.md");
|
|
30
|
+
assertNotSymlink(filePath, lstat);
|
|
31
|
+
writeFileSync(filePath, content, "utf8");
|
|
32
|
+
}
|
|
33
|
+
function buildDaemonConfigFragment(leadId, additions) {
|
|
34
|
+
return JSON.stringify({
|
|
35
|
+
leadProjectRoots: { [leadId]: additions.path },
|
|
36
|
+
leadActionIds: { [leadId]: additions.actionId },
|
|
37
|
+
leadPluginDirs: { [leadId]: additions.pluginDirs },
|
|
38
|
+
}, null, 2);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* ADD-ONLY merge — reads the CURRENT on-disk daemon-config.json fresh
|
|
42
|
+
* (inside the lock, never the pre-commit snapshot) and writes back with
|
|
43
|
+
* ONLY this lead's three entries added to leadProjectRoots/leadActionIds/
|
|
44
|
+
* leadPluginDirs. Every existing key — other leads' entries, every
|
|
45
|
+
* unrelated top-level field — passes through untouched. A file that does
|
|
46
|
+
* not exist on disk is never guessed into existence — the caller gets a
|
|
47
|
+
* copy-paste fragment instead (W14's "home is <leadsRoot>/daemon-config.json,
|
|
48
|
+
* if absent show a fragment instead of guessing a location").
|
|
49
|
+
*
|
|
50
|
+
* External-review fix (GLM, medium): the "does it exist" decision now comes
|
|
51
|
+
* from the `mustExist: true` lock ACQUISITION's own ENOENT, not a boolean
|
|
52
|
+
* the caller read before taking the lock — a pre-lock snapshot is a TOCTOU
|
|
53
|
+
* window (the file could be deleted between that read and this call).
|
|
54
|
+
*/
|
|
55
|
+
export async function writeDaemonConfigAddition(leadsRoot, leadId, additions, withOrgFileLockFn = withOrgFileLock, lockOptions = {}) {
|
|
56
|
+
const target = path.join(leadsRoot, "daemon-config.json");
|
|
57
|
+
try {
|
|
58
|
+
await withOrgFileLockFn(target, { ...lockOptions, mustExist: true }, (ctx) => {
|
|
59
|
+
const current = JSON.parse(ctx.read());
|
|
60
|
+
const next = {
|
|
61
|
+
...current,
|
|
62
|
+
leadProjectRoots: { ...(current.leadProjectRoots ?? {}), [leadId]: additions.path },
|
|
63
|
+
leadActionIds: { ...(current.leadActionIds ?? {}), [leadId]: additions.actionId },
|
|
64
|
+
leadPluginDirs: { ...(current.leadPluginDirs ?? {}), [leadId]: additions.pluginDirs },
|
|
65
|
+
};
|
|
66
|
+
ctx.write(JSON.stringify(next, null, 2));
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
if (err?.code === "ENOENT") {
|
|
71
|
+
return { status: "missing", fragment: buildDaemonConfigFragment(leadId, additions) };
|
|
72
|
+
}
|
|
73
|
+
throw err;
|
|
74
|
+
}
|
|
75
|
+
return { status: "written" };
|
|
76
|
+
}
|
|
77
|
+
/** Pure decision for adding `leadId` -> `lead` to an org-chart snapshot —
|
|
78
|
+
* idempotent when the roster ALREADY carries this exact lead (a safe retry
|
|
79
|
+
* after an earlier commit attempt crashed between this write and its HTTP
|
|
80
|
+
* response reaching the client); a DIFFERING existing entry is refused,
|
|
81
|
+
* never silently overwritten or reordered. Exported so `commit.ts` can
|
|
82
|
+
* reuse it INSIDE an org-chart.json lock it already holds (the
|
|
83
|
+
* concurrent-same-leadId-commit race fix) rather than acquiring a second,
|
|
84
|
+
* nested lock on the same file via `writeOrgChartLead`. */
|
|
85
|
+
export function applyOrgChartLead(current, leadId, lead) {
|
|
86
|
+
const existing = current.leads[leadId];
|
|
87
|
+
if (existing) {
|
|
88
|
+
return canonicalStringify(existing) === canonicalStringify(lead)
|
|
89
|
+
? { status: "already_committed" }
|
|
90
|
+
: { status: "conflict" };
|
|
91
|
+
}
|
|
92
|
+
return { status: "written", next: { ...current, leads: { ...current.leads, [leadId]: lead } } };
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Adds `leadId` -> `lead` to org-chart.json's `leads` map, re-reading fresh
|
|
96
|
+
* inside the lock. Thin wrapper over `applyOrgChartLead` for callers that
|
|
97
|
+
* don't already hold this file's lock (`commit.ts` does, and calls
|
|
98
|
+
* `applyOrgChartLead` directly instead — see that file).
|
|
99
|
+
*/
|
|
100
|
+
export async function writeOrgChartLead(leadsRoot, leadId, lead, withOrgFileLockFn = withOrgFileLock, lockOptions = {}) {
|
|
101
|
+
const target = path.join(leadsRoot, "org-chart.json");
|
|
102
|
+
return withOrgFileLockFn(target, { ...lockOptions, mustExist: true }, (ctx) => {
|
|
103
|
+
const current = JSON.parse(ctx.read());
|
|
104
|
+
const result = applyOrgChartLead(current, leadId, lead);
|
|
105
|
+
if (result.status === "written")
|
|
106
|
+
ctx.write(JSON.stringify(result.next, null, 2));
|
|
107
|
+
return { status: result.status };
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=commit-writes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-writes.js","sourceRoot":"","sources":["../../../src/external/org/commit-writes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { Hono } from "hono";
|
|
2
|
+
import { type OrgChartFullReadResult } from "./org-chart-full-read.js";
|
|
3
|
+
import { type DaemonConfigReadCoreResult } from "./daemon-config-read.js";
|
|
4
|
+
import { writeNewCharterFile, type WithOrgFileLockFn } from "./commit-writes.js";
|
|
5
|
+
import { type ReadOrgFileFn } from "./existing-charters-read.js";
|
|
6
|
+
import { runLeadwrightPreflight } from "../../core/leadwright-preflight-transport.js";
|
|
7
|
+
import { type CommitRequestBody } from "./commit-validate.js";
|
|
8
|
+
/** Not a dismissable toast — the client renders this string prominently and
|
|
9
|
+
* blocks the "done" state on it (W14: "restart the daemon" must be
|
|
10
|
+
* explicit, because daemon-config.json loads once at boot). */
|
|
11
|
+
export declare const RESTART_NOTICE = "leadwright's daemon reads daemon-config.json once at startup. This new lead will not run until you restart the leadwright daemon.";
|
|
12
|
+
export type { CommitRequestBody };
|
|
13
|
+
export interface CommitCoreDeps {
|
|
14
|
+
leadsRoot: string;
|
|
15
|
+
leadwrightCheckoutRoot: string | undefined;
|
|
16
|
+
webuiBaseUrl: string;
|
|
17
|
+
readOrgChartFullFn: (deps: {
|
|
18
|
+
leadsRoot: string;
|
|
19
|
+
}) => OrgChartFullReadResult;
|
|
20
|
+
daemonConfigReadFn: (deps: {
|
|
21
|
+
leadsRoot: string;
|
|
22
|
+
webuiBaseUrl: string;
|
|
23
|
+
}) => DaemonConfigReadCoreResult;
|
|
24
|
+
withOrgFileLockFn?: WithOrgFileLockFn;
|
|
25
|
+
writeCharterFn?: typeof writeNewCharterFile;
|
|
26
|
+
readOrgFileFn?: ReadOrgFileFn;
|
|
27
|
+
runLeadwrightPreflightFn?: typeof runLeadwrightPreflight;
|
|
28
|
+
}
|
|
29
|
+
export type CommitCoreResult = {
|
|
30
|
+
status: 200;
|
|
31
|
+
body: {
|
|
32
|
+
committed: true;
|
|
33
|
+
leadId: string;
|
|
34
|
+
restartRequired: true;
|
|
35
|
+
restartNotice: string;
|
|
36
|
+
};
|
|
37
|
+
} | {
|
|
38
|
+
status: 200;
|
|
39
|
+
body: {
|
|
40
|
+
committed: false;
|
|
41
|
+
stage: "daemon-config";
|
|
42
|
+
fragment: string;
|
|
43
|
+
};
|
|
44
|
+
} | {
|
|
45
|
+
status: 400;
|
|
46
|
+
body: {
|
|
47
|
+
error: string;
|
|
48
|
+
};
|
|
49
|
+
} | {
|
|
50
|
+
status: 403 | 404 | 500 | 502;
|
|
51
|
+
body: {
|
|
52
|
+
error: string;
|
|
53
|
+
detail?: string;
|
|
54
|
+
};
|
|
55
|
+
} | {
|
|
56
|
+
status: 409;
|
|
57
|
+
body: {
|
|
58
|
+
error: "verdict_stale" | "org_chart_lead_exists" | "daemon_config_locked" | "org_chart_locked" | "verdict_not_ok";
|
|
59
|
+
findings?: unknown;
|
|
60
|
+
};
|
|
61
|
+
} | {
|
|
62
|
+
status: 503;
|
|
63
|
+
body: {
|
|
64
|
+
error: "leadwright_not_configured";
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
export declare function commitCore(deps: CommitCoreDeps, requestBody: unknown): Promise<CommitCoreResult>;
|
|
68
|
+
export interface CommitRouteDeps extends Omit<CommitCoreDeps, "readOrgChartFullFn" | "daemonConfigReadFn"> {
|
|
69
|
+
readOrgChartFullFn?: CommitCoreDeps["readOrgChartFullFn"];
|
|
70
|
+
daemonConfigReadFn?: CommitCoreDeps["daemonConfigReadFn"];
|
|
71
|
+
}
|
|
72
|
+
export declare function registerCommitRoute(app: Hono, deps: CommitRouteDeps): void;
|
|
73
|
+
//# sourceMappingURL=commit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../../src/external/org/commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { readOrgChartFull } from "./org-chart-full-read.js";
|
|
3
|
+
import { daemonConfigReadCore } from "./daemon-config-read.js";
|
|
4
|
+
import { mergeLeadProposal, computeProposalDigest, canonicalStringify } from "./leadwright-proposal-merge.js";
|
|
5
|
+
import { writeNewCharterFile, writeDaemonConfigAddition, applyOrgChartLead } from "./commit-writes.js";
|
|
6
|
+
import { withOrgFileLock, OrgFileSymlinkEscapeError } from "./org-file-lock.js";
|
|
7
|
+
import { readExistingLeadCharters } from "./existing-charters-read.js";
|
|
8
|
+
import { runLeadwrightPreflight } from "../../core/leadwright-preflight-transport.js";
|
|
9
|
+
import { validateCommitBody } from "./commit-validate.js";
|
|
10
|
+
/** Not a dismissable toast — the client renders this string prominently and
|
|
11
|
+
* blocks the "done" state on it (W14: "restart the daemon" must be
|
|
12
|
+
* explicit, because daemon-config.json loads once at boot). */
|
|
13
|
+
export const RESTART_NOTICE = "leadwright's daemon reads daemon-config.json once at startup. This new lead will not run until you restart the leadwright daemon.";
|
|
14
|
+
export async function commitCore(deps, requestBody) {
|
|
15
|
+
if (!deps.leadwrightCheckoutRoot) {
|
|
16
|
+
return { status: 503, body: { error: "leadwright_not_configured" } };
|
|
17
|
+
}
|
|
18
|
+
const validated = validateCommitBody(requestBody);
|
|
19
|
+
if (!validated.ok) {
|
|
20
|
+
return { status: 400, body: { error: validated.reason } };
|
|
21
|
+
}
|
|
22
|
+
const { leadId, lead, daemonConfigAdditions, charterContent, expectedProposalDigest } = validated.value;
|
|
23
|
+
const orgChartResult = deps.readOrgChartFullFn({ leadsRoot: deps.leadsRoot });
|
|
24
|
+
if (orgChartResult.status !== 200)
|
|
25
|
+
return orgChartResult;
|
|
26
|
+
const daemonConfigResult = deps.daemonConfigReadFn({ leadsRoot: deps.leadsRoot, webuiBaseUrl: deps.webuiBaseUrl });
|
|
27
|
+
if (daemonConfigResult.status !== 200)
|
|
28
|
+
return daemonConfigResult;
|
|
29
|
+
const existingCharters = readExistingLeadCharters(deps.leadsRoot, orgChartResult.body, leadId, deps.readOrgFileFn);
|
|
30
|
+
const { proposal } = mergeLeadProposal({
|
|
31
|
+
orgChart: orgChartResult.body,
|
|
32
|
+
daemonConfig: daemonConfigResult.body,
|
|
33
|
+
leadId,
|
|
34
|
+
lead,
|
|
35
|
+
daemonConfigAdditions,
|
|
36
|
+
charterContent,
|
|
37
|
+
existingCharters,
|
|
38
|
+
});
|
|
39
|
+
const actualDigest = computeProposalDigest(proposal);
|
|
40
|
+
if (actualDigest !== expectedProposalDigest) {
|
|
41
|
+
return { status: 409, body: { error: "verdict_stale" } };
|
|
42
|
+
}
|
|
43
|
+
// External-review fix (openai, high — security): `expectedProposalDigest`
|
|
44
|
+
// is a PLAIN, unsigned SHA-256 of the proposal — proving nothing about
|
|
45
|
+
// WHETHER leadwright's actual verdict was green, only that the client's
|
|
46
|
+
// claimed digest matches what a fresh server-side merge produces for the
|
|
47
|
+
// SAME proposal shape. Any caller able to compute that same hash (no
|
|
48
|
+
// secret is involved) could submit a proposal with unsatisfied MUSS
|
|
49
|
+
// findings and have it accepted without ever running /verdict. The digest
|
|
50
|
+
// check above stays (it's still the right UX for "your answers changed
|
|
51
|
+
// since you last checked"); this re-runs leadwright's REAL check-setup.ts
|
|
52
|
+
// against the exact proposal about to be written, so the write can never
|
|
53
|
+
// happen without a genuinely fresh, server-observed green verdict.
|
|
54
|
+
const runPreflight = deps.runLeadwrightPreflightFn ?? runLeadwrightPreflight;
|
|
55
|
+
const reverify = await runPreflight(deps.leadwrightCheckoutRoot, proposal);
|
|
56
|
+
if (!reverify.ranOk) {
|
|
57
|
+
return { status: 502, body: { error: "leadwright_transport_failed", detail: reverify.reason } };
|
|
58
|
+
}
|
|
59
|
+
if (!reverify.result.ok) {
|
|
60
|
+
return { status: 409, body: { error: "verdict_not_ok", findings: reverify.result.findings } };
|
|
61
|
+
}
|
|
62
|
+
// Cheap fast-path (not the authoritative check — see below): a leadId
|
|
63
|
+
// collision visible on the PRE-LOCK snapshot lets an obvious duplicate
|
|
64
|
+
// 409 without ever touching the filesystem lock. mergeLeadProposal always
|
|
65
|
+
// overwrites orgChart.leads[leadId] with the submitted lead before
|
|
66
|
+
// hashing (so computeProposalDigest is identical whether or not that id
|
|
67
|
+
// already exists on disk) — the digest check above can never see this
|
|
68
|
+
// collision on its own.
|
|
69
|
+
const existingLead = orgChartResult.body.leads[leadId];
|
|
70
|
+
if (existingLead && canonicalStringify(existingLead) !== canonicalStringify(lead)) {
|
|
71
|
+
return { status: 409, body: { error: "org_chart_lead_exists" } };
|
|
72
|
+
}
|
|
73
|
+
// External-review fix (openai, high — "regression"): the fast-path check
|
|
74
|
+
// above reads a PRE-LOCK snapshot, so two genuinely concurrent commits
|
|
75
|
+
// for the SAME NEW leadId can both pass it, then both race past the
|
|
76
|
+
// unlocked charter.md write and the (once-)unconditional daemon-config
|
|
77
|
+
// merge before org-chart.json's own conflict check catches only one —
|
|
78
|
+
// the exact corruption shape the doubt-review fix closed for SEQUENTIAL
|
|
79
|
+
// resubmission, but not for true concurrency. The fix: hold ONE lock on
|
|
80
|
+
// org-chart.json (leadwright's activation source of truth) across the
|
|
81
|
+
// ENTIRE write sequence, with a FRESH re-read + re-check as the first
|
|
82
|
+
// thing inside it. A second racer simply cannot enter this critical
|
|
83
|
+
// section until the first's full commit (all three writes) has finished
|
|
84
|
+
// and released the lock — at which point its own fresh check correctly
|
|
85
|
+
// sees the collision and 409s before writing anything.
|
|
86
|
+
const withOrgFileLockFn = deps.withOrgFileLockFn ?? withOrgFileLock;
|
|
87
|
+
const orgChartTarget = path.join(deps.leadsRoot, "org-chart.json");
|
|
88
|
+
try {
|
|
89
|
+
return await withOrgFileLockFn(orgChartTarget, { mustExist: true }, async (ctx) => {
|
|
90
|
+
const freshOrgChart = JSON.parse(ctx.read());
|
|
91
|
+
const freshExisting = freshOrgChart.leads[leadId];
|
|
92
|
+
if (freshExisting && canonicalStringify(freshExisting) !== canonicalStringify(lead)) {
|
|
93
|
+
return { status: 409, body: { error: "org_chart_lead_exists" } };
|
|
94
|
+
}
|
|
95
|
+
const writeCharter = deps.writeCharterFn ?? writeNewCharterFile;
|
|
96
|
+
try {
|
|
97
|
+
writeCharter(deps.leadsRoot, leadId, charterContent);
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
if (err instanceof OrgFileSymlinkEscapeError) {
|
|
101
|
+
return { status: 403, body: { error: "symlink_forbidden", detail: err.path } };
|
|
102
|
+
}
|
|
103
|
+
throw err;
|
|
104
|
+
}
|
|
105
|
+
// Lock-contention error convention (CLAUDE.md rule 6 / DO-NOT #6),
|
|
106
|
+
// mirrored from beat-register-release-request.ts: a genuine
|
|
107
|
+
// cross-process lock conflict (proper-lockfile's ELOCKED, retries
|
|
108
|
+
// exhausted) maps to its OWN named 409 rather than falling through to
|
|
109
|
+
// the app-wide error handler's generic (and wrong-resource) message.
|
|
110
|
+
let daemonConfigWrite;
|
|
111
|
+
try {
|
|
112
|
+
daemonConfigWrite = await writeDaemonConfigAddition(deps.leadsRoot, leadId, daemonConfigAdditions, deps.withOrgFileLockFn);
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
if (err instanceof OrgFileSymlinkEscapeError) {
|
|
116
|
+
return { status: 403, body: { error: "symlink_forbidden", detail: err.path } };
|
|
117
|
+
}
|
|
118
|
+
if (err?.code === "ELOCKED") {
|
|
119
|
+
return { status: 409, body: { error: "daemon_config_locked" } };
|
|
120
|
+
}
|
|
121
|
+
throw err;
|
|
122
|
+
}
|
|
123
|
+
if (daemonConfigWrite.status === "missing") {
|
|
124
|
+
return {
|
|
125
|
+
status: 200,
|
|
126
|
+
body: { committed: false, stage: "daemon-config", fragment: daemonConfigWrite.fragment },
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
// Applies directly against the ALREADY-OPEN ctx from this same lock
|
|
130
|
+
// acquisition — never a second, nested lock() call on org-chart.json.
|
|
131
|
+
const applied = applyOrgChartLead(freshOrgChart, leadId, lead);
|
|
132
|
+
if (applied.status === "conflict") {
|
|
133
|
+
return { status: 409, body: { error: "org_chart_lead_exists" } };
|
|
134
|
+
}
|
|
135
|
+
if (applied.status === "written") {
|
|
136
|
+
ctx.write(JSON.stringify(applied.next, null, 2));
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
status: 200,
|
|
140
|
+
body: { committed: true, leadId, restartRequired: true, restartNotice: RESTART_NOTICE },
|
|
141
|
+
};
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
if (err instanceof OrgFileSymlinkEscapeError) {
|
|
146
|
+
return { status: 403, body: { error: "symlink_forbidden", detail: err.path } };
|
|
147
|
+
}
|
|
148
|
+
if (err?.code === "ELOCKED") {
|
|
149
|
+
return { status: 409, body: { error: "org_chart_locked" } };
|
|
150
|
+
}
|
|
151
|
+
if (err?.code === "ENOENT") {
|
|
152
|
+
return { status: 404, body: { error: "org_chart_missing" } };
|
|
153
|
+
}
|
|
154
|
+
throw err;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
export function registerCommitRoute(app, deps) {
|
|
158
|
+
const coreDeps = {
|
|
159
|
+
leadsRoot: deps.leadsRoot,
|
|
160
|
+
leadwrightCheckoutRoot: deps.leadwrightCheckoutRoot,
|
|
161
|
+
webuiBaseUrl: deps.webuiBaseUrl,
|
|
162
|
+
readOrgChartFullFn: deps.readOrgChartFullFn ?? readOrgChartFull,
|
|
163
|
+
daemonConfigReadFn: deps.daemonConfigReadFn ?? daemonConfigReadCore,
|
|
164
|
+
withOrgFileLockFn: deps.withOrgFileLockFn,
|
|
165
|
+
writeCharterFn: deps.writeCharterFn,
|
|
166
|
+
readOrgFileFn: deps.readOrgFileFn,
|
|
167
|
+
runLeadwrightPreflightFn: deps.runLeadwrightPreflightFn,
|
|
168
|
+
};
|
|
169
|
+
app.post("/api/external/org/leads/commit", async (c) => {
|
|
170
|
+
let requestBody;
|
|
171
|
+
try {
|
|
172
|
+
requestBody = await c.req.json();
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return c.json({ error: "invalid_request_body" }, 400);
|
|
176
|
+
}
|
|
177
|
+
const result = await commitCore(coreDeps, requestBody);
|
|
178
|
+
return c.json(result.body, result.status);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../src/external/org/commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { CommitCoreDeps } from "./commit.js";
|
|
2
|
+
import type { CommitRequestBody } from "./commit-validate.js";
|
|
3
|
+
import type { PreflightOrgChart } from "../../types/leadwright-preflight.js";
|
|
4
|
+
export declare const EMPTY_ORG_CHART: PreflightOrgChart;
|
|
5
|
+
export declare const VALID_LEAD: {
|
|
6
|
+
name: string;
|
|
7
|
+
domain: string;
|
|
8
|
+
reports_to: null;
|
|
9
|
+
manages: never[];
|
|
10
|
+
charter_path: string;
|
|
11
|
+
learnings_path: string;
|
|
12
|
+
triggers: {
|
|
13
|
+
cron: string;
|
|
14
|
+
on: never[];
|
|
15
|
+
};
|
|
16
|
+
max_concurrent_tasks: number;
|
|
17
|
+
budget: {
|
|
18
|
+
window: "rolling-7d";
|
|
19
|
+
usd: null;
|
|
20
|
+
pause_at: number;
|
|
21
|
+
hard_stop_at: number;
|
|
22
|
+
};
|
|
23
|
+
projects: string[];
|
|
24
|
+
allowed_skills: string[];
|
|
25
|
+
allowed_tools: never[];
|
|
26
|
+
escalation_target: string;
|
|
27
|
+
model: "balanced";
|
|
28
|
+
paused: false;
|
|
29
|
+
};
|
|
30
|
+
export declare const ADDITIONS: {
|
|
31
|
+
path: string;
|
|
32
|
+
actionId: string;
|
|
33
|
+
pluginDirs: string[];
|
|
34
|
+
};
|
|
35
|
+
export declare function correctDigest(): string;
|
|
36
|
+
export declare function validBody(overrides?: Partial<CommitRequestBody>): CommitRequestBody;
|
|
37
|
+
export declare function baseDeps(overrides?: Partial<CommitCoreDeps>): CommitCoreDeps;
|
|
38
|
+
//# sourceMappingURL=commit.test-fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.test-fixtures.d.ts","sourceRoot":"","sources":["../../../src/external/org/commit.test-fixtures.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAiB,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE5F,eAAO,MAAM,eAAe,EAAE,iBAAyD,CAAC;AAExF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;CAgBE,CAAC;AAE1B,eAAO,MAAM,SAAS;;;;CAAoE,CAAC;AAE3F,wBAAgB,aAAa,IAAI,MAAM,CAatC;AAED,wBAAgB,SAAS,CAAC,SAAS,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAAG,iBAAiB,CASvF;AAED,wBAAgB,QAAQ,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CAchF"}
|