@svenroth-ai/shipwright 0.27.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-CqCQUDtp.js → EmbeddedTerminal-4xgNUBUu.js} +19 -19
- package/client/dist/assets/{abnfDiagram-VRR7QNED-DX2objTP.js → abnfDiagram-VRR7QNED-BdCNbaqc.js} +1 -1
- package/client/dist/assets/{arc-DQmjbsFU.js → arc-DoZTTE1N.js} +1 -1
- package/client/dist/assets/{architectureDiagram-ZJ3FMSHR-DAvCsPCW.js → architectureDiagram-ZJ3FMSHR-DFTG4KtO.js} +1 -1
- package/client/dist/assets/{blockDiagram-677ZJIJ3-DC-dlyYI.js → blockDiagram-677ZJIJ3-C34UBjOB.js} +1 -1
- package/client/dist/assets/{c4Diagram-LMCZKHZV-DSlmXfhE.js → c4Diagram-LMCZKHZV-CbqAB1Ou.js} +1 -1
- package/client/dist/assets/channel-DBcZw7Kn.js +1 -0
- package/client/dist/assets/{chunk-2Q5K7J3B-C111EHL6.js → chunk-2Q5K7J3B-4N6AnmBJ.js} +1 -1
- package/client/dist/assets/{chunk-32BRIVSS-DrCYs2XG.js → chunk-32BRIVSS-Cs67LiCy.js} +1 -1
- package/client/dist/assets/{chunk-5VM5RSS4-DIejoaXS.js → chunk-5VM5RSS4-Bwd7rtD3.js} +1 -1
- package/client/dist/assets/{chunk-EX3LRPZG-CGWNeH2g.js → chunk-EX3LRPZG-CQqGfptD.js} +1 -1
- package/client/dist/assets/{chunk-JWPE2WC7-CCH0SRFY.js → chunk-JWPE2WC7-ClvKd4PN.js} +1 -1
- package/client/dist/assets/{chunk-MOJQB5TN-B3OpZGRv.js → chunk-MOJQB5TN-Cwvj8GE1.js} +1 -1
- package/client/dist/assets/{chunk-RYQCIY6F-BKhdp_8v.js → chunk-RYQCIY6F-DrWMx37d.js} +1 -1
- package/client/dist/assets/{chunk-V7JOEXUC-B6Bu8x1y.js → chunk-V7JOEXUC-CYFfa4PY.js} +1 -1
- package/client/dist/assets/{chunk-VR4S4FIN-OgFi2_iB.js → chunk-VR4S4FIN-B5eWtesm.js} +1 -1
- package/client/dist/assets/{chunk-XXDRQBXY-xyjuuhxl.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-BQIH3SCK.js → cose-bilkent-JH36ORCC-C76Yia6h.js} +1 -1
- package/client/dist/assets/{cynefin-VYW2F7L2-oyLAz8te.js → cynefin-VYW2F7L2-pJe7rdTi.js} +1 -1
- package/client/dist/assets/{cynefinDiagram-TSTJHNR4-DoLCsH0l.js → cynefinDiagram-TSTJHNR4-EeHQ7dYV.js} +1 -1
- package/client/dist/assets/{dagre-VKFMJZFB-D7djx1_Y.js → dagre-VKFMJZFB-VXOY6IHR.js} +1 -1
- package/client/dist/assets/{diagram-FQU43EPY-DFuYE0Vf.js → diagram-FQU43EPY-DW_-leqw.js} +1 -1
- package/client/dist/assets/{diagram-G47NLZAW-CffCZVXk.js → diagram-G47NLZAW-C_hsLD4u.js} +1 -1
- package/client/dist/assets/{diagram-NH7WQ7WH-BhrHtUlt.js → diagram-NH7WQ7WH-CbeQuO_f.js} +1 -1
- package/client/dist/assets/{diagram-OA4YK3LP-CwQPbOn0.js → diagram-OA4YK3LP-DRHY5d_c.js} +1 -1
- package/client/dist/assets/{diagram-WEI45ONY-abtYnYqH.js → diagram-WEI45ONY-B87OYR_S.js} +1 -1
- package/client/dist/assets/{ebnfDiagram-CCIWWBDH-DfV7gT4m.js → ebnfDiagram-CCIWWBDH-B8Z8WHF6.js} +1 -1
- package/client/dist/assets/{erDiagram-Q63AITRT-vtbCprgH.js → erDiagram-Q63AITRT-DaD7oa9H.js} +1 -1
- package/client/dist/assets/{flowDiagram-23GEKE2U-CVCgcyDF.js → flowDiagram-23GEKE2U-GrMVpsea.js} +1 -1
- package/client/dist/assets/{ganttDiagram-NO4QXBWP-BclyOgMb.js → ganttDiagram-NO4QXBWP-K3X0DYBa.js} +1 -1
- package/client/dist/assets/{gitGraphDiagram-IHSO6WYX-BXT4rIKj.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-Dr4mN24J.js → infoDiagram-FWYZ7A6U-Fi8fQ95G.js} +1 -1
- package/client/dist/assets/{ishikawaDiagram-FXEZZL3T-BBUFWq5C.js → ishikawaDiagram-FXEZZL3T-CrN7QJzt.js} +1 -1
- package/client/dist/assets/{journeyDiagram-5HDEW3XC-CmclipcQ.js → journeyDiagram-5HDEW3XC-XHIsl7rM.js} +1 -1
- package/client/dist/assets/{kanban-definition-HUTT4EX6-eIzUeZ03.js → kanban-definition-HUTT4EX6-A6HJqHw7.js} +1 -1
- package/client/dist/assets/{linear-DGiT7uKK.js → linear-D1vF9IQB.js} +1 -1
- package/client/dist/assets/{mermaid.core-BcLNGbxW.js → mermaid.core-D6w9zlA0.js} +4 -4
- package/client/dist/assets/{mindmap-definition-LN4V7U3C-C4ANnNiP.js → mindmap-definition-LN4V7U3C-CxRkUj6Z.js} +1 -1
- package/client/dist/assets/{pegDiagram-2B236MQR-DnMeh3Yh.js → pegDiagram-2B236MQR-Bs9dp-8a.js} +1 -1
- package/client/dist/assets/{pieDiagram-ENE6RG2P-CKV_rkhF.js → pieDiagram-ENE6RG2P-DBWILzB8.js} +1 -1
- package/client/dist/assets/{quadrantDiagram-ABIIQ3AL-BuUsGwHh.js → quadrantDiagram-ABIIQ3AL-DrCVJJx6.js} +1 -1
- package/client/dist/assets/{railroadDiagram-RFXS5EU6-BwwdKnFL.js → railroadDiagram-RFXS5EU6-BdPW2dNf.js} +1 -1
- package/client/dist/assets/{requirementDiagram-TGXJPOKE-CpQZouJV.js → requirementDiagram-TGXJPOKE-Bj_g3tC5.js} +1 -1
- package/client/dist/assets/{sankeyDiagram-HTMAVEWB-4fnDUNVa.js → sankeyDiagram-HTMAVEWB-BGL9NnsS.js} +1 -1
- package/client/dist/assets/{sequenceDiagram-DBY2YBRQ-BOcaWlM0.js → sequenceDiagram-DBY2YBRQ-DEirxTZY.js} +1 -1
- package/client/dist/assets/{sizeCapture-X5ZJPWSS-_pv-9R0c.js → sizeCapture-X5ZJPWSS-BtLrvrea.js} +1 -1
- package/client/dist/assets/{stateDiagram-2N3HPSRC-CFwCOonY.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-DFa2tzxu.js → swimlanes-5IMT3BWC-PMRQzNhU.js} +2 -2
- package/client/dist/assets/swimlanesDiagram-G3AALYLV-DMLbRFiO.js +8 -0
- package/client/dist/assets/{timeline-definition-FHXFAJF6-rhGYElgn.js → timeline-definition-FHXFAJF6-CnBKJtD_.js} +1 -1
- package/client/dist/assets/{vennDiagram-L72KCM5P-BoGjRxyA.js → vennDiagram-L72KCM5P-BYmiJYoh.js} +1 -1
- package/client/dist/assets/{wardleyDiagram-EHGQE667-D-IGv5bH.js → wardleyDiagram-EHGQE667-DU7vW8q3.js} +1 -1
- package/client/dist/assets/{xychartDiagram-FW5EYKEG-D9PFTCfm.js → xychartDiagram-FW5EYKEG-BEtPvBSU.js} +1 -1
- package/client/dist/index.html +2 -2
- package/lib/preflight.mjs +24 -5
- 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-store.d.ts +46 -0
- package/server/dist/core/sdk-sessions-store.d.ts.map +1 -1
- package/server/dist/core/sdk-sessions-store.js +1 -0
- 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/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.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/_types.d.ts +23 -0
- package/server/dist/external/inbox/_types.d.ts.map +1 -1
- package/server/dist/external/inbox/_types.js +8 -5
- package/server/dist/external/inbox/_types.js.map +1 -1
- 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 +15 -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 +9 -0
- package/server/dist/external/launch/claim-holder-gate.d.ts.map +1 -1
- package/server/dist/external/launch/claim-holder-gate.js +10 -2
- package/server/dist/external/launch/claim-holder-gate.js.map +1 -1
- 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 +76 -109
- 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/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 +10 -2
- package/server/dist/external/org/mount.d.ts.map +1 -1
- package/server/dist/external/org/mount.js +6 -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/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 +19 -4
- 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 +15 -0
- package/server/dist/routes/diagnostics.d.ts.map +1 -1
- package/server/dist/routes/diagnostics.js +1 -0
- 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-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 +11 -2
- package/server/dist/routes/org.d.ts.map +1 -1
- package/server/dist/routes/org.js +50 -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 +14 -0
- package/server/dist/terminal/pty-manager.d.ts.map +1 -1
- package/server/dist/terminal/pty-manager.js +11 -0
- package/server/dist/terminal/pty-manager.js.map +1 -1
- 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 +57 -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-BfmIcrp7.js +0 -1
- package/client/dist/assets/classDiagram-OUVF2IWQ-HfUQZ6Uc.js +0 -1
- package/client/dist/assets/classDiagram-v2-EOCWNBFH-HfUQZ6Uc.js +0 -1
- package/client/dist/assets/index-CKU9dY18.css +0 -1
- package/client/dist/assets/index-DOMl6atu.js +0 -847
- package/client/dist/assets/stateDiagram-v2-6OUMAXLB-srkiu3Ib.js +0 -1
- package/client/dist/assets/swimlanesDiagram-G3AALYLV-Dq-0K9Zm.js +0 -8
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* event-test-counts-fixtures.ts — the effective-event-log reader shared by
|
|
3
|
+
* `event-test-counts-executed.test.ts` (the D4 ratchet). Split out purely
|
|
4
|
+
* to stay inside the 300-line source guideline — see that file's header for
|
|
5
|
+
* the full D4 history and convention-epoch rationale; this module owns only
|
|
6
|
+
* the I/O + amendment-overlay mechanics, no assertions.
|
|
7
|
+
*/
|
|
8
|
+
import fs from "node:fs";
|
|
9
|
+
import path from "node:path";
|
|
10
|
+
import { fileURLToPath } from "node:url";
|
|
11
|
+
import { parseJsonlRecords } from "../core/jsonl-records.js";
|
|
12
|
+
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
13
|
+
const repoRoot = path.resolve(here, "../../../");
|
|
14
|
+
const eventsPath = path.join(repoRoot, "shipwright_events.jsonl");
|
|
15
|
+
/**
|
|
16
|
+
* The convention starts with the run that introduced it. Events at or after
|
|
17
|
+
* this instant must satisfy the invariant; earlier ones are out of scope (see
|
|
18
|
+
* `event-test-counts-executed.test.ts`'s header). Anchored to the amendment
|
|
19
|
+
* batch that corrected the seven.
|
|
20
|
+
*
|
|
21
|
+
* Compared as an INSTANT, not lexically: 70 records in this log carry `+02:00`
|
|
22
|
+
* rather than `Z`, so string ordering and chronological ordering are not the
|
|
23
|
+
* same relation. (No record currently sorts differently either way, but the
|
|
24
|
+
* assumption has already been false once in this file's history.)
|
|
25
|
+
*/
|
|
26
|
+
export const CONVENTION_EPOCH_MS = Date.parse("2026-07-21T00:00:00Z");
|
|
27
|
+
/**
|
|
28
|
+
* Effective events: `event_amended` rows overlay their target, as every
|
|
29
|
+
* compliance consumer sees them (shared `events_amend.apply_amendments`).
|
|
30
|
+
*
|
|
31
|
+
* LAST AMENDMENT WINS PER TARGET — deliberately, and it mirrors the shared
|
|
32
|
+
* implementation exactly (`amendments[amends] = fields` replaces, it does not
|
|
33
|
+
* deep-merge). DO NOT "fix" this into a cumulative merge: that would make this
|
|
34
|
+
* guard read a different effective log than the audit does. The convention is
|
|
35
|
+
* that a second amendment RESTATES everything it wants to keep — the
|
|
36
|
+
* 2026-06-29 amendment of `evt-2646f4da` re-lists `FR-01.01` alongside the
|
|
37
|
+
* `FR-01.42` it adds, precisely because the earlier overlay is discarded.
|
|
38
|
+
*/
|
|
39
|
+
export function effectiveEvents() {
|
|
40
|
+
// Read the log the way the audit does — via the tolerant record reader, NOT a
|
|
41
|
+
// per-line `JSON.parse`. `merge=union` on an append-only log can put two
|
|
42
|
+
// records on one physical line (the whole reason `jsonl-records.ts` exists),
|
|
43
|
+
// and a plain parse drops BOTH, which would make an offending record
|
|
44
|
+
// invisible to this guard while the audit still judged it.
|
|
45
|
+
const rows = parseJsonlRecords(fs.readFileSync(eventsPath, "utf-8"))
|
|
46
|
+
.records;
|
|
47
|
+
const amendments = new Map();
|
|
48
|
+
for (const row of rows) {
|
|
49
|
+
if (row.type === "event_amended")
|
|
50
|
+
amendments.set(row.amends, row.fields ?? {});
|
|
51
|
+
}
|
|
52
|
+
return rows
|
|
53
|
+
.filter((row) => row.type !== "event_amended")
|
|
54
|
+
.map((row) => (amendments.has(row.id) ? { ...row, ...amendments.get(row.id) } : row));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=event-test-counts-fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-test-counts-fixtures.js","sourceRoot":"","sources":["../../src/test/event-test-counts-fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;AAElE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAkBtE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe;IAC7B,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,qEAAqE;IACrE,2DAA2D;IAC3D,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;SACjE,OAAwB,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC/D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe;YAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,eAAe,CAAC;SAC7C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1F,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const BEAT_STEP_BANDS: readonly ["bugfix", "maintenance", "feature", "architecture"];
|
|
2
|
+
export type BeatStepBand = (typeof BEAT_STEP_BANDS)[number];
|
|
3
|
+
export type BeatStepEffect = {
|
|
4
|
+
kind: "card";
|
|
5
|
+
taskId: string;
|
|
6
|
+
} | {
|
|
7
|
+
kind: "decision";
|
|
8
|
+
decisionKey: string;
|
|
9
|
+
} | {
|
|
10
|
+
kind: "none";
|
|
11
|
+
};
|
|
12
|
+
export interface BeatStep {
|
|
13
|
+
at: string;
|
|
14
|
+
band: BeatStepBand;
|
|
15
|
+
summary: string;
|
|
16
|
+
effect: BeatStepEffect;
|
|
17
|
+
}
|
|
18
|
+
export declare function isValidBeatStep(v: unknown): v is BeatStep;
|
|
19
|
+
//# sourceMappingURL=leadwright-beat-step.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leadwright-beat-step.d.ts","sourceRoot":"","sources":["../../src/types/leadwright-beat-step.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,eAAe,+DAAgE,CAAC;AAE7F,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;CACxB;AAWD,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,QAAQ,CAYzD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* leadwright-beat-step.ts — hand-typed mirror of leadwright's published
|
|
3
|
+
* beat-step contract (iterate-2026-09-08-lead-inventory-page). Vendored
|
|
4
|
+
* source: server/src/vendor/leadwright/beat-step.schema.json, copied
|
|
5
|
+
* byte-for-byte from leadwright origin/main @
|
|
6
|
+
* db2938b308899b8cbca017b291c18696a54844b5 (PR #75 added steps.jsonl +
|
|
7
|
+
* this schema; PR #78 wired the production writer). Verified on
|
|
8
|
+
* origin/main, not a local-only commit.
|
|
9
|
+
*
|
|
10
|
+
* CLAUDE.md rule 7 (ADR-080): no cross-package import — this is a verbatim
|
|
11
|
+
* mirror kept in fidelity-test sync (leadwright-beat-step.test.ts), which
|
|
12
|
+
* reads the vendored JSON fresh off disk rather than diffing bytes against
|
|
13
|
+
* a live leadwright checkout (no such dependency exists here).
|
|
14
|
+
*
|
|
15
|
+
* `isValidBeatStep` deliberately validates ONLY the fields this viewer
|
|
16
|
+
* consumes and TOLERATES unknown properties — looser than the vendored
|
|
17
|
+
* schema's own `additionalProperties: false`. A future leadwright field
|
|
18
|
+
* addition should degrade to "ignored", not "every line in every
|
|
19
|
+
* steps.jsonl rejected" (Internal Plan Review finding #6).
|
|
20
|
+
*
|
|
21
|
+
* Cross-repo drift cannot be caught by any test in this repo — this repo
|
|
22
|
+
* has no build-time dependency on a leadwright checkout, so a schema change
|
|
23
|
+
* on leadwright's main after the pinned commit above is silent here until a
|
|
24
|
+
* human re-vendors deliberately and bumps the pin.
|
|
25
|
+
*/
|
|
26
|
+
/** Mirrors the vendored schema's own `at` pattern exactly (external code
|
|
27
|
+
* review, low/bug): `isValidBeatStep` previously accepted any string for
|
|
28
|
+
* `at`, so a malformed timestamp (`"not-a-time"`) rendered as a valid
|
|
29
|
+
* logged step instead of being counted as an unreadable line. */
|
|
30
|
+
const BEAT_STEP_AT_RE = /^\d{4}-\d{2}-\d{2}T/;
|
|
31
|
+
export const BEAT_STEP_BANDS = ["bugfix", "maintenance", "feature", "architecture"];
|
|
32
|
+
function isValidEffect(v) {
|
|
33
|
+
if (typeof v !== "object" || v === null)
|
|
34
|
+
return false;
|
|
35
|
+
const e = v;
|
|
36
|
+
if (e.kind === "card")
|
|
37
|
+
return typeof e.taskId === "string" && e.taskId.length > 0;
|
|
38
|
+
if (e.kind === "decision")
|
|
39
|
+
return typeof e.decisionKey === "string" && e.decisionKey.length > 0;
|
|
40
|
+
if (e.kind === "none")
|
|
41
|
+
return true;
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
export function isValidBeatStep(v) {
|
|
45
|
+
if (typeof v !== "object" || v === null)
|
|
46
|
+
return false;
|
|
47
|
+
const s = v;
|
|
48
|
+
return (typeof s.at === "string" &&
|
|
49
|
+
BEAT_STEP_AT_RE.test(s.at) &&
|
|
50
|
+
typeof s.band === "string" &&
|
|
51
|
+
BEAT_STEP_BANDS.includes(s.band) &&
|
|
52
|
+
typeof s.summary === "string" &&
|
|
53
|
+
s.summary.length > 0 &&
|
|
54
|
+
isValidEffect(s.effect));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=leadwright-beat-step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leadwright-beat-step.js","sourceRoot":"","sources":["../../src/types/leadwright-beat-step.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;kEAGkE;AAClE,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,CAAU,CAAC;AAgB7F,SAAS,aAAa,CAAC,CAAU;IAC/B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAClF,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAChG,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAU;IACxC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,OAAO,CACL,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;QACxB,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QACzB,eAAqC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAC7B,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QACpB,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CACxB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export declare const PREFLIGHT_INPUT_CONTRACT_VERSION = 1;
|
|
2
|
+
export declare const PREFLIGHT_RESULT_CONTRACT_VERSION = 1;
|
|
3
|
+
/** Same pattern webui's own `_helpers.ts` LEAD_ID_RE uses — confirmed
|
|
4
|
+
* identical to leadwright's own lead-id/domain pattern by the fidelity
|
|
5
|
+
* test. One regex, reused for kebab-case validation everywhere. */
|
|
6
|
+
export declare const LEAD_ID_RE: RegExp;
|
|
7
|
+
/** charter_path / learnings_path: relative, no leading '/', no '..'
|
|
8
|
+
* substring anywhere. These stay RELATIVE (resolved by leadwright against
|
|
9
|
+
* leadsRoot) — never touched by the absolute-path rule below. */
|
|
10
|
+
export declare const CHARTER_LEARNINGS_PATH_RE: RegExp;
|
|
11
|
+
/** allowed_skills entries: a leading '/' then kebab-case. */
|
|
12
|
+
export declare const ALLOWED_SKILL_RE: RegExp;
|
|
13
|
+
export declare const PREFLIGHT_INPUT_REQUIRED_FIELDS: readonly ["orgChart", "charters", "daemonConfig"];
|
|
14
|
+
export declare const LEAD_REQUIRED_FIELDS: readonly ["name", "domain", "reports_to", "manages", "charter_path", "learnings_path", "triggers", "max_concurrent_tasks", "budget", "projects", "allowed_skills", "escalation_target", "model"];
|
|
15
|
+
export declare const PREFLIGHT_RESULT_REQUIRED_FIELDS: readonly ["ok", "findings"];
|
|
16
|
+
export declare const PREFLIGHT_FINDING_REQUIRED_FIELDS: readonly ["key", "layer", "satisfied", "message"];
|
|
17
|
+
/** The 5 daemonConfig fields the absolute-path rule (finding
|
|
18
|
+
* `proposal-paths-absolute`) binds. Deliberately excludes `orgChartPath`
|
|
19
|
+
* (submitted inline via the top-level `orgChart` field, never read from
|
|
20
|
+
* `daemonConfig.orgChartPath`) and charter_path/learnings_path (those stay
|
|
21
|
+
* relative — see CHARTER_LEARNINGS_PATH_RE above). */
|
|
22
|
+
export declare const ABSOLUTE_PATH_BOUND_DAEMON_CONFIG_FIELDS: readonly ["leadsRoot", "sdkSessionsPath", "pluginDirs", "leadProjectRoots", "leadPluginDirs"];
|
|
23
|
+
export type PreflightTriggerEventType = "answer_received" | "chat_session_ended";
|
|
24
|
+
export type PreflightModel = "fast" | "balanced" | "deep";
|
|
25
|
+
export interface PreflightLead {
|
|
26
|
+
name: string;
|
|
27
|
+
domain: string;
|
|
28
|
+
reports_to: string | null;
|
|
29
|
+
manages: string[];
|
|
30
|
+
charter_path: string;
|
|
31
|
+
learnings_path: string;
|
|
32
|
+
triggers: {
|
|
33
|
+
cron: string;
|
|
34
|
+
on: PreflightTriggerEventType[];
|
|
35
|
+
};
|
|
36
|
+
max_concurrent_tasks: number;
|
|
37
|
+
budget: {
|
|
38
|
+
window: "rolling-7d";
|
|
39
|
+
usd: number | null;
|
|
40
|
+
pause_at: number;
|
|
41
|
+
hard_stop_at: number;
|
|
42
|
+
};
|
|
43
|
+
projects: string[];
|
|
44
|
+
allowed_skills: string[];
|
|
45
|
+
allowed_tools: string[];
|
|
46
|
+
escalation_target: string;
|
|
47
|
+
model: PreflightModel;
|
|
48
|
+
paused: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface PreflightOrgChart {
|
|
51
|
+
version: 2;
|
|
52
|
+
po: string;
|
|
53
|
+
leads: Record<string, PreflightLead>;
|
|
54
|
+
}
|
|
55
|
+
export interface PreflightCharter {
|
|
56
|
+
leadId: string;
|
|
57
|
+
content: string;
|
|
58
|
+
}
|
|
59
|
+
export interface PreflightDaemonConfig {
|
|
60
|
+
orgChartPath: string;
|
|
61
|
+
leadsRoot?: string;
|
|
62
|
+
sdkSessionsPath?: string;
|
|
63
|
+
webuiBaseUrl: string;
|
|
64
|
+
leadProjectRoots?: Record<string, string>;
|
|
65
|
+
leadActionIds?: Record<string, string>;
|
|
66
|
+
pluginDirs?: string[];
|
|
67
|
+
leadPluginDirs?: Record<string, string[]>;
|
|
68
|
+
pollIntervalMs?: number;
|
|
69
|
+
beatTimeoutMs?: number;
|
|
70
|
+
}
|
|
71
|
+
/** The full `--stdin` document — what the verdict/commit transport writes
|
|
72
|
+
* to the child's stdin, JSON-stringified. */
|
|
73
|
+
export interface PreflightStdinInput {
|
|
74
|
+
orgChart: PreflightOrgChart;
|
|
75
|
+
charters: PreflightCharter[];
|
|
76
|
+
daemonConfig: PreflightDaemonConfig;
|
|
77
|
+
}
|
|
78
|
+
export type PreflightFindingLayer = "MUSS" | "KANN" | "advisory";
|
|
79
|
+
export interface PreflightFinding {
|
|
80
|
+
key: string;
|
|
81
|
+
layer: PreflightFindingLayer;
|
|
82
|
+
satisfied: boolean;
|
|
83
|
+
unverifiable?: boolean;
|
|
84
|
+
message: string;
|
|
85
|
+
}
|
|
86
|
+
export interface PreflightResult {
|
|
87
|
+
ok: boolean;
|
|
88
|
+
findings: PreflightFinding[];
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=leadwright-preflight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leadwright-preflight.d.ts","sourceRoot":"","sources":["../../src/types/leadwright-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* leadwright-preflight.ts — hand-typed mirror of leadwright's published
|
|
3
|
+
* setup-preflight transport contract (iterate-2026-09-07-leadwright-setup-
|
|
4
|
+
* wizard, W14). Vendored source: server/src/vendor/leadwright/
|
|
5
|
+
* preflight-{input,result}.schema.json, re-vendored from leadwright main
|
|
6
|
+
* @ df2c5f6 (2026-09-09, iterate-2026-09-09-leadwright-schema-drift).
|
|
7
|
+
* PreflightTriggerEventType stays a closed 2-value union on purpose even
|
|
8
|
+
* though leadwright #79 opened the wire schema's triggers.on to an open
|
|
9
|
+
* lowercase-snake-case pattern — this mirror types only what webui itself
|
|
10
|
+
* ever emits, not the full breadth the wire contract now allows.
|
|
11
|
+
*
|
|
12
|
+
* CLAUDE.md rule 7 (ADR-080): no cross-package import — this is a verbatim
|
|
13
|
+
* mirror kept in fidelity-test sync (leadwright-preflight.test.ts), same
|
|
14
|
+
* posture as core/claim-record-lock.ts's relationship to
|
|
15
|
+
* vendor/leadwright/claim-record-lock-contract.json.
|
|
16
|
+
*
|
|
17
|
+
* "Never compute a verdict here" (the card's own instruction): these types
|
|
18
|
+
* describe the wire shape ONLY. No validation logic beyond the regexes a
|
|
19
|
+
* caller needs to avoid submitting something leadwright will report as a
|
|
20
|
+
* named finding anyway — leadwright's own `--stdin` zod gate remains the
|
|
21
|
+
* sole judge of a proposal's correctness.
|
|
22
|
+
*/
|
|
23
|
+
export const PREFLIGHT_INPUT_CONTRACT_VERSION = 1;
|
|
24
|
+
export const PREFLIGHT_RESULT_CONTRACT_VERSION = 1;
|
|
25
|
+
/** Same pattern webui's own `_helpers.ts` LEAD_ID_RE uses — confirmed
|
|
26
|
+
* identical to leadwright's own lead-id/domain pattern by the fidelity
|
|
27
|
+
* test. One regex, reused for kebab-case validation everywhere. */
|
|
28
|
+
export const LEAD_ID_RE = /^[a-z0-9][a-z0-9-]*$/;
|
|
29
|
+
/** charter_path / learnings_path: relative, no leading '/', no '..'
|
|
30
|
+
* substring anywhere. These stay RELATIVE (resolved by leadwright against
|
|
31
|
+
* leadsRoot) — never touched by the absolute-path rule below. */
|
|
32
|
+
export const CHARTER_LEARNINGS_PATH_RE = /^(?!\/)(?!.*\.\.).+$/;
|
|
33
|
+
/** allowed_skills entries: a leading '/' then kebab-case. */
|
|
34
|
+
export const ALLOWED_SKILL_RE = /^\/[a-z0-9][a-z0-9-]*$/;
|
|
35
|
+
export const PREFLIGHT_INPUT_REQUIRED_FIELDS = ["orgChart", "charters", "daemonConfig"];
|
|
36
|
+
export const LEAD_REQUIRED_FIELDS = [
|
|
37
|
+
"name",
|
|
38
|
+
"domain",
|
|
39
|
+
"reports_to",
|
|
40
|
+
"manages",
|
|
41
|
+
"charter_path",
|
|
42
|
+
"learnings_path",
|
|
43
|
+
"triggers",
|
|
44
|
+
"max_concurrent_tasks",
|
|
45
|
+
"budget",
|
|
46
|
+
"projects",
|
|
47
|
+
"allowed_skills",
|
|
48
|
+
"escalation_target",
|
|
49
|
+
"model",
|
|
50
|
+
];
|
|
51
|
+
export const PREFLIGHT_RESULT_REQUIRED_FIELDS = ["ok", "findings"];
|
|
52
|
+
export const PREFLIGHT_FINDING_REQUIRED_FIELDS = ["key", "layer", "satisfied", "message"];
|
|
53
|
+
/** The 5 daemonConfig fields the absolute-path rule (finding
|
|
54
|
+
* `proposal-paths-absolute`) binds. Deliberately excludes `orgChartPath`
|
|
55
|
+
* (submitted inline via the top-level `orgChart` field, never read from
|
|
56
|
+
* `daemonConfig.orgChartPath`) and charter_path/learnings_path (those stay
|
|
57
|
+
* relative — see CHARTER_LEARNINGS_PATH_RE above). */
|
|
58
|
+
export const ABSOLUTE_PATH_BOUND_DAEMON_CONFIG_FIELDS = [
|
|
59
|
+
"leadsRoot",
|
|
60
|
+
"sdkSessionsPath",
|
|
61
|
+
"pluginDirs",
|
|
62
|
+
"leadProjectRoots",
|
|
63
|
+
"leadPluginDirs",
|
|
64
|
+
];
|
|
65
|
+
//# sourceMappingURL=leadwright-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leadwright-preflight.js","sourceRoot":"","sources":["../../src/types/leadwright-preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAEnD;;oEAEoE;AACpE,MAAM,CAAC,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAEjD;;kEAEkE;AAClE,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAEhE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,CAAU,CAAC;AAEjG,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,UAAU;IACV,sBAAsB;IACtB,QAAQ;IACR,UAAU;IACV,gBAAgB;IAChB,mBAAmB;IACnB,OAAO;CACC,CAAC;AAEX,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAU,CAAC;AAE5E,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AAEnG;;;;uDAIuD;AACvD,MAAM,CAAC,MAAM,wCAAwC,GAAG;IACtD,WAAW;IACX,iBAAiB;IACjB,YAAY;IACZ,kBAAkB;IAClB,gBAAgB;CACR,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Lists the basenames of every regular file directly inside `dir`
|
|
2
|
+
* (non-recursive, alphabetically sorted). Directory-driven on purpose —
|
|
3
|
+
* the caller must never hardcode a filename list, or a newly vendored file
|
|
4
|
+
* silently falls outside the check. */
|
|
5
|
+
export declare function listVendorFiles(dir: string): string[];
|
|
6
|
+
/** Deep-compares two parsed JSON values and returns a pointer-like path
|
|
7
|
+
* (not RFC-6901-escaped — diagnostic-only, never parsed back) to the first
|
|
8
|
+
* difference found, or `undefined` when they're equal. Object key order
|
|
9
|
+
* never matters; array element order does. */
|
|
10
|
+
export declare function findFirstJsonDiff(a: unknown, b: unknown, pointer?: string): string | undefined;
|
|
11
|
+
export interface SchemaDriftResult {
|
|
12
|
+
file: string;
|
|
13
|
+
matches: boolean;
|
|
14
|
+
/** JSON-pointer path to the first differing key; set only when matches is false. */
|
|
15
|
+
diffPath?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface CompareVendoredFileOptions {
|
|
18
|
+
/** Directory holding our vendored copy. */
|
|
19
|
+
vendorDir: string;
|
|
20
|
+
/** Directory holding the upstream source-of-truth copy (e.g. `<leadwright checkout>/schemas`). */
|
|
21
|
+
sourceDir: string;
|
|
22
|
+
/** Basename shared by both directories. */
|
|
23
|
+
file: string;
|
|
24
|
+
}
|
|
25
|
+
/** Compares one vendored file against its counterpart in `sourceDir`, JSON
|
|
26
|
+
* parsed on both sides (never bytes — see file header). */
|
|
27
|
+
export declare function compareVendoredFile({ vendorDir, sourceDir, file }: CompareVendoredFileOptions): SchemaDriftResult;
|
|
28
|
+
//# sourceMappingURL=leadwright-schema-drift.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leadwright-schema-drift.d.ts","sourceRoot":"","sources":["../../src/types/leadwright-schema-drift.ts"],"names":[],"mappings":"AAoBA;;;wCAGwC;AACxC,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrD;AAmBD;;;+CAG+C;AAC/C,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,SAAK,GAAG,MAAM,GAAG,SAAS,CA4B1F;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,kGAAkG;IAClG,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;4DAC4D;AAC5D,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,0BAA0B,GAAG,iBAAiB,CAKjH"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* leadwright-schema-drift.ts — comparison primitives for
|
|
3
|
+
* leadwright-schema-drift.test.ts (iterate-2026-09-09-leadwright-schema-
|
|
4
|
+
* drift). Lives in types/, not vendor/leadwright/, on purpose: that
|
|
5
|
+
* directory's contract is "runtime JSON only, safe for copy-assets.mjs to
|
|
6
|
+
* blanket-cpSync into dist/" — a logic-plus-test module dropped in there
|
|
7
|
+
* would ride along into the production build unnoticed.
|
|
8
|
+
*
|
|
9
|
+
* leadwright's `.gitattributes` marks `schemas/*.schema.json` as `eol=lf`,
|
|
10
|
+
* but a Windows checkout can still leave those files CRLF-dirty in the
|
|
11
|
+
* working tree (attributes only apply at checkout time — a clone that
|
|
12
|
+
* already had them as CRLF keeps them until re-checked-out) while `git
|
|
13
|
+
* diff`/`git status` stay clean. Comparing bytes or a hash would therefore
|
|
14
|
+
* fail spuriously on every Windows machine. Everything here compares
|
|
15
|
+
* PARSED JSON instead.
|
|
16
|
+
*/
|
|
17
|
+
import { readFileSync, readdirSync } from "node:fs";
|
|
18
|
+
import path from "node:path";
|
|
19
|
+
/** Lists the basenames of every regular file directly inside `dir`
|
|
20
|
+
* (non-recursive, alphabetically sorted). Directory-driven on purpose —
|
|
21
|
+
* the caller must never hardcode a filename list, or a newly vendored file
|
|
22
|
+
* silently falls outside the check. */
|
|
23
|
+
export function listVendorFiles(dir) {
|
|
24
|
+
return readdirSync(dir, { withFileTypes: true })
|
|
25
|
+
.filter((entry) => entry.isFile())
|
|
26
|
+
.map((entry) => entry.name)
|
|
27
|
+
.sort();
|
|
28
|
+
}
|
|
29
|
+
/** Reads + parses `filePath`, rethrowing with `label` (e.g. "vendor" /
|
|
30
|
+
* "checkout") so a missing-file failure reads as "vendor copy of X is
|
|
31
|
+
* missing" rather than a bare Node ENOENT with no side attached. */
|
|
32
|
+
function readJson(filePath, label) {
|
|
33
|
+
let raw;
|
|
34
|
+
try {
|
|
35
|
+
raw = readFileSync(filePath, "utf-8");
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
throw new Error(`${label} file not found: ${filePath}`, { cause: err });
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
return JSON.parse(raw);
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
throw new Error(`${label} file is not valid JSON: ${filePath}`, { cause: err });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/** Deep-compares two parsed JSON values and returns a pointer-like path
|
|
48
|
+
* (not RFC-6901-escaped — diagnostic-only, never parsed back) to the first
|
|
49
|
+
* difference found, or `undefined` when they're equal. Object key order
|
|
50
|
+
* never matters; array element order does. */
|
|
51
|
+
export function findFirstJsonDiff(a, b, pointer = "") {
|
|
52
|
+
if (a === b)
|
|
53
|
+
return undefined;
|
|
54
|
+
const aIsObj = a !== null && typeof a === "object";
|
|
55
|
+
const bIsObj = b !== null && typeof b === "object";
|
|
56
|
+
if (!aIsObj || !bIsObj)
|
|
57
|
+
return pointer || "/";
|
|
58
|
+
const aIsArr = Array.isArray(a);
|
|
59
|
+
const bIsArr = Array.isArray(b);
|
|
60
|
+
if (aIsArr !== bIsArr)
|
|
61
|
+
return pointer || "/";
|
|
62
|
+
if (aIsArr && bIsArr) {
|
|
63
|
+
const len = Math.max(a.length, b.length);
|
|
64
|
+
for (let i = 0; i < len; i++) {
|
|
65
|
+
const diff = findFirstJsonDiff(a[i], b[i], `${pointer}/${i}`);
|
|
66
|
+
if (diff !== undefined)
|
|
67
|
+
return diff;
|
|
68
|
+
}
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
const aRec = a;
|
|
72
|
+
const bRec = b;
|
|
73
|
+
const keys = new Set([...Object.keys(aRec), ...Object.keys(bRec)]);
|
|
74
|
+
for (const key of keys) {
|
|
75
|
+
const diff = findFirstJsonDiff(aRec[key], bRec[key], `${pointer}/${key}`);
|
|
76
|
+
if (diff !== undefined)
|
|
77
|
+
return diff;
|
|
78
|
+
}
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
/** Compares one vendored file against its counterpart in `sourceDir`, JSON
|
|
82
|
+
* parsed on both sides (never bytes — see file header). */
|
|
83
|
+
export function compareVendoredFile({ vendorDir, sourceDir, file }) {
|
|
84
|
+
const vendored = readJson(path.join(vendorDir, file), "vendor");
|
|
85
|
+
const source = readJson(path.join(sourceDir, file), "checkout");
|
|
86
|
+
const diffPath = findFirstJsonDiff(vendored, source);
|
|
87
|
+
return diffPath === undefined ? { file, matches: true } : { file, matches: false, diffPath };
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=leadwright-schema-drift.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leadwright-schema-drift.js","sourceRoot":"","sources":["../../src/types/leadwright-schema-drift.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { CharterAuthorityResult } from "../external/org/charter-authority-read.js";
|
|
2
|
+
import type { BeatStep } from "./leadwright-beat-step.js";
|
|
3
|
+
export type StepsView = {
|
|
4
|
+
status: "ok";
|
|
5
|
+
steps: BeatStep[];
|
|
6
|
+
unreadableLines: number;
|
|
7
|
+
} | {
|
|
8
|
+
status: "unreadable";
|
|
9
|
+
};
|
|
10
|
+
/** `"clear"` = the audit lookup ran and found nothing for this beat;
|
|
11
|
+
* `"found"` = a `beat_effect_not_claimed` entry names this beat;
|
|
12
|
+
* `"unknown"` = the audit lookup itself degraded (a genuine read failure,
|
|
13
|
+
* AC-9) — NEVER collapsed into `"clear"`. `"found"` always wins outright
|
|
14
|
+
* over `"unknown"`, even from a scan that later failed. */
|
|
15
|
+
export type UnclaimedEffectView = {
|
|
16
|
+
status: "clear" | "found" | "unknown";
|
|
17
|
+
};
|
|
18
|
+
/** `"ok"` = the register file was read (present-and-valid, or legitimately
|
|
19
|
+
* absent — a lead that has simply never run); `"unreadable"` = a genuine
|
|
20
|
+
* read failure (corrupt JSON, invalid leadId, symlink, containment
|
|
21
|
+
* breach) — NEVER collapsed into "zero beats" (code review, Stage 2:
|
|
22
|
+
* that collapse read exactly like a lead that has never had a beat). */
|
|
23
|
+
export type RegisterView = {
|
|
24
|
+
status: "ok" | "unreadable";
|
|
25
|
+
};
|
|
26
|
+
export interface BeatInventoryView {
|
|
27
|
+
beatId: string;
|
|
28
|
+
/** The register's own `startedAt` (always a string field — but its VALUE
|
|
29
|
+
* may be unparseable; see `beats` below). */
|
|
30
|
+
startedAt: string;
|
|
31
|
+
closedAt: string | null;
|
|
32
|
+
steps: StepsView;
|
|
33
|
+
unclaimedEffect: UnclaimedEffectView;
|
|
34
|
+
}
|
|
35
|
+
/** Verbatim alias — the AuthorityPanel's shape IS `charterAuthorityCore`'s
|
|
36
|
+
* result, not a re-derivation of it. */
|
|
37
|
+
export type AuthorityPanelView = CharterAuthorityResult;
|
|
38
|
+
export interface LeadInventoryEntry {
|
|
39
|
+
leadId: string;
|
|
40
|
+
/** Cheap `entries.length` over the full register — lets the client tell
|
|
41
|
+
* "never had a beat" apart from "has history, none in this window"
|
|
42
|
+
* (AC-8). */
|
|
43
|
+
totalBeatsInRegister: number;
|
|
44
|
+
/** Server-side bounded to `startedAt >= now - 48h` (an unparseable
|
|
45
|
+
* `startedAt` value is INCLUDED, never dropped); ordered `startedAt`
|
|
46
|
+
* ascending (AC-11). The client narrows further to the exact "last
|
|
47
|
+
* night" window. */
|
|
48
|
+
beats: BeatInventoryView[];
|
|
49
|
+
register: RegisterView;
|
|
50
|
+
authority: AuthorityPanelView;
|
|
51
|
+
}
|
|
52
|
+
export type LeadInventoryResponse = Record<string, LeadInventoryEntry>;
|
|
53
|
+
//# sourceMappingURL=org-inventory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-inventory.d.ts","sourceRoot":"","sources":["../../src/types/org-inventory.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,MAAM,SAAS,GACjB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC;AAE7B;;;;4DAI4D;AAC5D,MAAM,MAAM,mBAAmB,GAAG;IAAE,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;CAAE,CAAC;AAE5E;;;;yEAIyE;AACzE,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,IAAI,GAAG,YAAY,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf;kDAC8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,mBAAmB,CAAC;CACtC;AAED;yCACyC;AACzC,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf;;kBAEc;IACd,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;yBAGqB;IACrB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* types/org-inventory.ts — wire shapes for `GET /api/org/inventory`
|
|
3
|
+
* (iterate-2026-09-08-lead-inventory-page). New file rather than an edit to
|
|
4
|
+
* `types/org.ts` (already at its 300-line convention ceiling) — same reason
|
|
5
|
+
* `org-schema-sync.test.ts`'s sibling files stay split by route family.
|
|
6
|
+
*
|
|
7
|
+
* Client-side mirrors live in `client/src/lib/leadInventoryApi.ts` (CLAUDE.md
|
|
8
|
+
* rule 7 — verbatim copy, no cross-package import).
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=org-inventory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-inventory.js","sourceRoot":"","sources":["../../src/types/org-inventory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -65,18 +65,35 @@ export type BeatRegisterHealthResponse = {
|
|
|
65
65
|
sessionId: string;
|
|
66
66
|
entries: BeatRegisterEntryView[];
|
|
67
67
|
};
|
|
68
|
+
/**
|
|
69
|
+
* `resting`'s last-run sub-shape — a NAMED type (not inlined into
|
|
70
|
+
* `LeadNowState`) so `org-schema-sync.test.ts`'s per-arm comparison, which
|
|
71
|
+
* only walks TOP-LEVEL arm fields, actually checks it: an inlined nested
|
|
72
|
+
* object is invisible to that guard (internal-plan-review finding,
|
|
73
|
+
* iterate-2026-09-06-org-lead-staleness-register).
|
|
74
|
+
*
|
|
75
|
+
* Carries the SAME staleness verdict `lastRunCore` already computes —
|
|
76
|
+
* `staleness`/`cadenceUnresolvedReason` are taken verbatim, never
|
|
77
|
+
* recomputed from `lastRunAt` + a cron string client-side (two
|
|
78
|
+
* implementations of one rule drift). `staleness: "unknown"` is a THIRD
|
|
79
|
+
* state, not a synonym for fresh or stale — it must never render as if the
|
|
80
|
+
* cadence were resolved.
|
|
81
|
+
*/
|
|
82
|
+
export type LeadLastRunView = {
|
|
83
|
+
measured: false;
|
|
84
|
+
} | {
|
|
85
|
+
measured: true;
|
|
86
|
+
lastRunAt: string;
|
|
87
|
+
staleness: Staleness | "unknown";
|
|
88
|
+
cadenceUnresolvedReason?: CadenceUnresolvedReason;
|
|
89
|
+
};
|
|
68
90
|
/** The Now block's four states (iterate spec AC-2) — "waiting on you" is
|
|
69
91
|
* deliberately absent, see the iterate spec's Design Notes. */
|
|
70
92
|
export type LeadNowState = {
|
|
71
93
|
state: "running";
|
|
72
94
|
} | {
|
|
73
95
|
state: "resting";
|
|
74
|
-
lastRun:
|
|
75
|
-
measured: false;
|
|
76
|
-
} | {
|
|
77
|
-
measured: true;
|
|
78
|
-
lastRunAt: string;
|
|
79
|
-
};
|
|
96
|
+
lastRun: LeadLastRunView;
|
|
80
97
|
} | {
|
|
81
98
|
state: "needs-attention";
|
|
82
99
|
reason: "duplicate-session";
|
|
@@ -96,6 +113,36 @@ export type LeadCadenceView = {
|
|
|
96
113
|
text: string;
|
|
97
114
|
cron: string;
|
|
98
115
|
};
|
|
116
|
+
/**
|
|
117
|
+
* The roster's OWN register-health view — deliberately NOT
|
|
118
|
+
* `BeatRegisterHealthResponse` (that type's `clear`/`open`/`fault` are
|
|
119
|
+
* exactly what `evaluateRegisterHealth` returns for the secret-gated route,
|
|
120
|
+
* and stays that way). This adds a FOURTH arm, `unknown`, for a genuine
|
|
121
|
+
* read failure (symlink refusal, corrupt file, path traversal, read
|
|
122
|
+
* error) — internal-plan-review finding: those failures are not "no open
|
|
123
|
+
* entry", and collapsing them into `clear` would fabricate a health claim
|
|
124
|
+
* for exactly the fault cases that matter. Arms are spelled out literally
|
|
125
|
+
* (not `BeatRegisterHealthResponse | {...unknown}`) because
|
|
126
|
+
* `org-schema-sync.test.ts`'s arm parser requires each union member to be
|
|
127
|
+
* its own `{ ... }` literal with a discriminant, not a bare type reference.
|
|
128
|
+
*/
|
|
129
|
+
export type LeadRegisterView = {
|
|
130
|
+
leadId: string;
|
|
131
|
+
status: "clear";
|
|
132
|
+
} | {
|
|
133
|
+
leadId: string;
|
|
134
|
+
status: "open";
|
|
135
|
+
entry: BeatRegisterEntryView;
|
|
136
|
+
} | {
|
|
137
|
+
leadId: string;
|
|
138
|
+
status: "fault";
|
|
139
|
+
reason: "duplicate-session-id";
|
|
140
|
+
sessionId: string;
|
|
141
|
+
entries: BeatRegisterEntryView[];
|
|
142
|
+
} | {
|
|
143
|
+
leadId: string;
|
|
144
|
+
status: "unknown";
|
|
145
|
+
};
|
|
99
146
|
export interface LeadRosterEntry {
|
|
100
147
|
leadId: string;
|
|
101
148
|
domain: string;
|
|
@@ -105,6 +152,10 @@ export interface LeadRosterEntry {
|
|
|
105
152
|
now: LeadNowState;
|
|
106
153
|
cadence: LeadCadenceView;
|
|
107
154
|
usage: UsageResponse;
|
|
155
|
+
/** FR-04.41 — the beat-register's own classification. See
|
|
156
|
+
* `LeadRegisterView`'s doc comment for why a read failure is `unknown`,
|
|
157
|
+
* never silently `clear`. */
|
|
158
|
+
register: LeadRegisterView;
|
|
108
159
|
}
|
|
109
160
|
export interface LeadsRosterResponse {
|
|
110
161
|
leads: LeadRosterEntry[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../src/types/org.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAS7E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACzC;AAMD,MAAM,MAAM,aAAa,GACrB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAA;CAAE,GACnC;IACE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb;8EAC0E;IAC1E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;+EAC2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAMN,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG,cAAc,CAAC;AAEzE,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAA;CAAE,GACnC;IACE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACnD,CAAC;AAMN,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,0BAA0B,GAClC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,GAChE;IACE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC;AAWN;
|
|
1
|
+
{"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../src/types/org.ts"],"names":[],"mappings":"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"}
|