strikethroo 4.0.0 → 4.1.1
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/README.md +16 -2
- package/dist/__tests__/fixtures/blueprint-trailing-summary.d.ts +14 -0
- package/dist/__tests__/fixtures/blueprint-trailing-summary.d.ts.map +1 -0
- package/dist/__tests__/fixtures/blueprint-trailing-summary.js +54 -0
- package/dist/__tests__/fixtures/blueprint-trailing-summary.js.map +1 -0
- package/dist/cli.js +23 -1
- package/dist/cli.js.map +1 -1
- package/dist/conflict-detector.d.ts +28 -12
- package/dist/conflict-detector.d.ts.map +1 -1
- package/dist/conflict-detector.js +45 -53
- package/dist/conflict-detector.js.map +1 -1
- package/dist/export-profile.d.ts +6 -0
- package/dist/export-profile.d.ts.map +1 -1
- package/dist/export-profile.js +46 -4
- package/dist/export-profile.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +97 -86
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +12 -1
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +76 -11
- package/dist/metadata.js.map +1 -1
- package/dist/profiles.d.ts.map +1 -1
- package/dist/profiles.js +52 -7
- package/dist/profiles.js.map +1 -1
- package/dist/prompts.d.ts +6 -0
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +47 -3
- package/dist/prompts.js.map +1 -1
- package/dist/serve/config-write.d.ts +6 -3
- package/dist/serve/config-write.d.ts.map +1 -1
- package/dist/serve/config-write.js +20 -21
- package/dist/serve/config-write.js.map +1 -1
- package/dist/serve/derivation.d.ts +17 -19
- package/dist/serve/derivation.d.ts.map +1 -1
- package/dist/serve/derivation.js +43 -82
- package/dist/serve/derivation.js.map +1 -1
- package/dist/serve/events.d.ts +37 -8
- package/dist/serve/events.d.ts.map +1 -1
- package/dist/serve/events.js +114 -28
- package/dist/serve/events.js.map +1 -1
- package/dist/serve/self-review.d.ts +37 -7
- package/dist/serve/self-review.d.ts.map +1 -1
- package/dist/serve/self-review.js +93 -33
- package/dist/serve/self-review.js.map +1 -1
- package/dist/serve/server.d.ts +107 -0
- package/dist/serve/server.d.ts.map +1 -1
- package/dist/serve/server.js +502 -135
- package/dist/serve/server.js.map +1 -1
- package/dist/serve/workspace-model.d.ts +11 -17
- package/dist/serve/workspace-model.d.ts.map +1 -1
- package/dist/serve/workspace-model.js +84 -83
- package/dist/serve/workspace-model.js.map +1 -1
- package/dist/skill-scripts/shared/blueprint-parse.d.ts +16 -0
- package/dist/skill-scripts/shared/blueprint-parse.d.ts.map +1 -0
- package/dist/skill-scripts/shared/blueprint-parse.js +66 -0
- package/dist/skill-scripts/shared/blueprint-parse.js.map +1 -0
- package/dist/skill-scripts/shared/root.d.ts +6 -0
- package/dist/skill-scripts/shared/root.d.ts.map +1 -1
- package/dist/skill-scripts/shared/root.js +10 -4
- package/dist/skill-scripts/shared/root.js.map +1 -1
- package/dist/skill-scripts/shared/safe-fs.d.ts +89 -0
- package/dist/skill-scripts/shared/safe-fs.d.ts.map +1 -0
- package/dist/skill-scripts/shared/safe-fs.js +324 -0
- package/dist/skill-scripts/shared/safe-fs.js.map +1 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +13 -1
- package/dist/types.js.map +1 -1
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +15 -1
- package/dist/update.js.map +1 -1
- package/dist/validation/graph-checks.d.ts +6 -14
- package/dist/validation/graph-checks.d.ts.map +1 -1
- package/dist/validation/graph-checks.js +8 -15
- package/dist/validation/graph-checks.js.map +1 -1
- package/dist/validation/metadata-gate.d.ts +2 -6
- package/dist/validation/metadata-gate.d.ts.map +1 -1
- package/dist/validation/metadata-gate.js +17 -6
- package/dist/validation/metadata-gate.js.map +1 -1
- package/dist/validation/strict-pass.d.ts.map +1 -1
- package/dist/validation/strict-pass.js +50 -6
- package/dist/validation/strict-pass.js.map +1 -1
- package/dist-web/assets/abnfDiagram-VCTEODGH-CY8QEBrj.js +1 -0
- package/dist-web/assets/apl-gfMMiTNf.js +1 -0
- package/dist-web/assets/arc-Pry-7G1_.js +1 -0
- package/dist-web/assets/architecture-7GRP2DOG-drIky86B.js +1 -0
- package/dist-web/assets/architectureDiagram-5GKGNRK7-YZUSf-Fx.js +36 -0
- package/dist-web/assets/array-BifhSqXX.js +1 -0
- package/dist-web/assets/asciiarmor-C_eisQCp.js +1 -0
- package/dist-web/assets/asn1-DCl_8MCW.js +1 -0
- package/dist-web/assets/asterisk-BEn0Cwpx.js +1 -0
- package/dist-web/assets/blockDiagram-I7D4REHJ-ByyeaYP7.js +129 -0
- package/dist-web/assets/brainfuck-D5EjA2JK.js +1 -0
- package/dist-web/assets/c4Diagram-7LVT6UL2-YSA0IA7A.js +38 -0
- package/dist-web/assets/channel-DEeX8XvW.js +1 -0
- package/dist-web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist-web/assets/chunk-4HAMMTFA-8VzDhfwy.js +62 -0
- package/dist-web/assets/{chunk-FMBD7UC4-zW3dYoIJ.js → chunk-5VM5RSS4-ZNzvKenW.js} +2 -2
- package/dist-web/assets/chunk-75Z2AOVW-D3fZto5-.js +2 -0
- package/dist-web/assets/chunk-DU6HZSFF-vtUmBAxv.js +125 -0
- package/dist-web/assets/chunk-F27PBJKO-BMcZVmbf.js +1 -0
- package/dist-web/assets/chunk-FOHPRMQF-DzxwRta7.js +161 -0
- package/dist-web/assets/chunk-GMAD6QVW-C5gwfNkR.js +72 -0
- package/dist-web/assets/chunk-GVQU2GXP-CqFZMp6I.js +1 -0
- package/dist-web/assets/chunk-IMKFNOWR-CJDfPbiX.js +231 -0
- package/dist-web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist-web/assets/chunk-L3NEJ4N5-CHeJ2XSW.js +1 -0
- package/dist-web/assets/chunk-OSK3NFVY-CXOClbf5.js +10 -0
- package/dist-web/assets/chunk-P2QGCYS3-C9Wc2Z2I.js +1 -0
- package/dist-web/assets/chunk-POPQ4Y6H-CfiiGKfO.js +1 -0
- package/dist-web/assets/chunk-PWAF6VOD-CtZ4gx65.js +1 -0
- package/dist-web/assets/chunk-SHT3W25Y-C50-QCrR.js +168 -0
- package/dist-web/assets/chunk-SVP7TREG-EIHQbPfX.js +88 -0
- package/dist-web/assets/chunk-TICWLB2K-DOB5NZ4R.js +206 -0
- package/dist-web/assets/chunk-XXDRQBXY-DqAYeljN.js +1 -0
- package/dist-web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist-web/assets/classDiagram-ZZMXUADV-H5H_txsg.js +1 -0
- package/dist-web/assets/classDiagram-v2-VYDZK3BY-H5H_txsg.js +1 -0
- package/dist-web/assets/clike-D_6L3tnO.js +1 -0
- package/dist-web/assets/clojure-BflJGmDX.js +1 -0
- package/dist-web/assets/cmake-84nbDH0I.js +1 -0
- package/dist-web/assets/cobol-DHLQUbN7.js +1 -0
- package/dist-web/assets/coffeescript-De_zI4J0.js +1 -0
- package/dist-web/assets/commonlisp-DgAKBe0r.js +1 -0
- package/dist-web/assets/cose-bilkent-JH36ORCC-BEpcWcmK.js +1 -0
- package/dist-web/assets/crystal-Bsdphhtm.js +1 -0
- package/dist-web/assets/css-CnaYoQib.js +1 -0
- package/dist-web/assets/cynefin-OW5HDTMX-mR6pfDSH.js +1 -0
- package/dist-web/assets/cynefinDiagram-5FMLGOSQ-6-2oQdEg.js +62 -0
- package/dist-web/assets/cypher-p9eYesGn.js +1 -0
- package/dist-web/assets/cytoscape.esm-Yq6u8L66.js +321 -0
- package/dist-web/assets/d-DWkQyNnU.js +1 -0
- package/dist-web/assets/dagre-C-rnJpZF.js +1 -0
- package/dist-web/assets/dagre-GXQ25YYZ-Cm1zvIWj.js +4 -0
- package/dist-web/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dist-web/assets/diagram-S7CK7UJ4-D6mECnyP.js +30 -0
- package/dist-web/assets/diagram-UQ7AKVKN-CzmXABVS.js +41 -0
- package/dist-web/assets/diagram-VSXAHHWV-CpEauecU.js +3 -0
- package/dist-web/assets/diagram-VX7I27RA-CXPYrCgX.js +24 -0
- package/dist-web/assets/diagram-Z3DM3KII-RcMIMVWZ.js +24 -0
- package/dist-web/assets/diff-ChtP43wD.js +1 -0
- package/dist-web/assets/dist--eYrBgi0.js +2 -0
- package/dist-web/assets/dist-B-O4eZD_.js +1 -0
- package/dist-web/assets/dist-B27L6oW0.js +1 -0
- package/dist-web/assets/dist-BKXbBuAc.js +1 -0
- package/dist-web/assets/dist-BPcC0hnc.js +9 -0
- package/dist-web/assets/dist-BgwxV8e_.js +1 -0
- package/dist-web/assets/dist-BlG40nRw.js +1 -0
- package/dist-web/assets/dist-Bqc6e86z.js +1 -0
- package/dist-web/assets/dist-BsvASXHG.js +1 -0
- package/dist-web/assets/dist-C15GN054.js +1 -0
- package/dist-web/assets/dist-C4QRmcTO.js +1 -0
- package/dist-web/assets/dist-C4lZy0XG.js +6 -0
- package/dist-web/assets/dist-CFLbFzpB.js +23 -0
- package/dist-web/assets/dist-CP6AUVtv.js +1 -0
- package/dist-web/assets/dist-CpYnHHz6.js +1 -0
- package/dist-web/assets/dist-DHnGmK79.js +1 -0
- package/dist-web/assets/dist-DYmIHv0n.js +13 -0
- package/dist-web/assets/dist-DauRO0RO.js +1 -0
- package/dist-web/assets/dist-Day7i26p.js +1 -0
- package/dist-web/assets/dist-Do_t70vA.js +1 -0
- package/dist-web/assets/dist-G8nWWSie.js +11 -0
- package/dist-web/assets/dist-QfYLz_N1.js +1 -0
- package/dist-web/assets/dist-TZhb2tj2.js +1 -0
- package/dist-web/assets/dist-Wr2Wo_KE.js +1 -0
- package/dist-web/assets/dist-kYRo7Db1.js +1 -0
- package/dist-web/assets/dist-kfqV1Lu-.js +2 -0
- package/dist-web/assets/dist-v5Q1xZ2K.js +1 -0
- package/dist-web/assets/dockerfile-DJkHQgkl.js +1 -0
- package/dist-web/assets/dtd-DTF72YNO.js +1 -0
- package/dist-web/assets/dylan-BCDoL_-p.js +1 -0
- package/dist-web/assets/ebnf-D4c0_ac3.js +1 -0
- package/dist-web/assets/ebnfDiagram-PWID7BFC-MZpZ_VnU.js +1 -0
- package/dist-web/assets/ecl-BVIeWmwY.js +1 -0
- package/dist-web/assets/eiffel-BEjRio4Q.js +1 -0
- package/dist-web/assets/elm-Cshzl8qu.js +1 -0
- package/dist-web/assets/erDiagram-RLTQ6QDP-BcZ7Ctxy.js +99 -0
- package/dist-web/assets/erlang-BV0c4Hdn.js +1 -0
- package/dist-web/assets/esm-CQW0DO89.js +2 -0
- package/dist-web/assets/eventmodeling-NTZA5JFV-BwLlQZcI.js +1 -0
- package/dist-web/assets/factor-LKH5gN8L.js +1 -0
- package/dist-web/assets/fcl-ClOhbFR7.js +1 -0
- package/dist-web/assets/flowDiagram-HODETNUW-DGqUYaRC.js +1 -0
- package/dist-web/assets/forth-D6RzAl64.js +1 -0
- package/dist-web/assets/fortran-Bt6PBEDR.js +1 -0
- package/dist-web/assets/ganttDiagram-EL5Y4UJY-CcJ72sCU.js +292 -0
- package/dist-web/assets/gas-BHEdbvp9.js +1 -0
- package/dist-web/assets/gherkin-oBAE_ms0.js +1 -0
- package/dist-web/assets/gitGraph-4MIJSDKK-BheSjO6S.js +1 -0
- package/dist-web/assets/gitGraphDiagram-WWUBYQGX-Qv13SyYh.js +106 -0
- package/dist-web/assets/graphlib-DS17s2tU.js +1 -0
- package/dist-web/assets/groovy-CUpZ7dEl.js +1 -0
- package/dist-web/assets/haskell-BRsoo5mP.js +1 -0
- package/dist-web/assets/haxe-DjVOVvNP.js +1 -0
- package/dist-web/assets/http-CLVgA2GD.js +1 -0
- package/dist-web/assets/idl-BUZw3wgd.js +1 -0
- package/dist-web/assets/index-D0npIBvI.css +2 -0
- package/dist-web/assets/index-DsQxKERJ.js +103 -0
- package/dist-web/assets/info-A6RAGUB7-BemnwZ_B.js +1 -0
- package/dist-web/assets/infoDiagram-27XIBGKW-otpjj8PV.js +2 -0
- package/dist-web/assets/init-C-OQMol4.js +1 -0
- package/dist-web/assets/ishikawaDiagram-5VMMS53U-BuZBZkYN.js +70 -0
- package/dist-web/assets/javascript-Bu8mWwtz.js +1 -0
- package/dist-web/assets/journeyDiagram-3NMN7TZE-D-uflaQS.js +139 -0
- package/dist-web/assets/julia-CQfgDRfP.js +1 -0
- package/dist-web/assets/kanban-definition-UXKFOSKX-BI643rxH.js +89 -0
- package/dist-web/assets/katex-ZlcWpGUi.js +257 -0
- package/dist-web/assets/line-fay7lQM4.js +1 -0
- package/dist-web/assets/linear-SzVmGSw4.js +1 -0
- package/dist-web/assets/livescript-BXxG0Yva.js +1 -0
- package/dist-web/assets/lua-DPCEkfD_.js +1 -0
- package/dist-web/assets/mathematica-u8YMmbU0.js +1 -0
- package/dist-web/assets/mbox-BEMVcqjs.js +1 -0
- package/dist-web/assets/mermaid-parser.core-CI9Bt8lf.js +7 -0
- package/dist-web/assets/mermaid.core-CpvTzp9Q.js +44 -0
- package/dist-web/assets/mindmap-definition-YA3MSWOX-Dw-DFKfU.js +96 -0
- package/dist-web/assets/{mirc-CjQqDB4T.js → mirc-C9zpzAZU.js} +1 -1
- package/dist-web/assets/mllike-B45xgp2S.js +1 -0
- package/dist-web/assets/modelica-CqHI_q-D.js +1 -0
- package/dist-web/assets/mscgen-qgSLujhx.js +1 -0
- package/dist-web/assets/mumps-BSzj6Xyz.js +1 -0
- package/dist-web/assets/{nginx-DdIZxoE0.js → nginx-8H7HVH4w.js} +1 -1
- package/dist-web/assets/nsis-CfSuhXs5.js +1 -0
- package/dist-web/assets/ntriples-B9h1VB_g.js +1 -0
- package/dist-web/assets/octave-D2Q8cUp1.js +1 -0
- package/dist-web/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dist-web/assets/oz-BwTct_5T.js +1 -0
- package/dist-web/assets/packet-AYTQ26CC-CsBrScsn.js +1 -0
- package/dist-web/assets/pascal-Dp_KdFgX.js +1 -0
- package/dist-web/assets/path-fybaL0A-.js +1 -0
- package/dist-web/assets/pegDiagram-XKGWAZYB-BVal7Apj.js +1 -0
- package/dist-web/assets/perl-BkSkiI9m.js +1 -0
- package/dist-web/assets/pie-WAS4IAKB-DZFMDceO.js +1 -0
- package/dist-web/assets/pieDiagram-E7YTZNPT-B3QEKixf.js +39 -0
- package/dist-web/assets/pig-AF4Hwhju.js +1 -0
- package/dist-web/assets/powershell-BcIto6Sf.js +1 -0
- package/dist-web/assets/properties-C357ku5U.js +1 -0
- package/dist-web/assets/protobuf-D1ij_kNL.js +1 -0
- package/dist-web/assets/pug-3K-JMW4g.js +1 -0
- package/dist-web/assets/puppet-BZyAS7I4.js +1 -0
- package/dist-web/assets/python-B_1Jd8HM.js +1 -0
- package/dist-web/assets/q-B9NhS7L_.js +1 -0
- package/dist-web/assets/quadrantDiagram-AXDQQJYC-CRgAf_p-.js +7 -0
- package/dist-web/assets/r-CxDmU1I4.js +1 -0
- package/dist-web/assets/radar-RG4KPBEZ-BkOoPAbJ.js +1 -0
- package/dist-web/assets/railroad-74A4TZTK-BgIna4sT.js +1 -0
- package/dist-web/assets/railroad-abnf-HS5TGJTU-CVlFeN1b.js +1 -0
- package/dist-web/assets/railroad-ebnf-LZEXJU2U-DCEa0WVT.js +1 -0
- package/dist-web/assets/railroad-peg-WCYAUIDC-BHX1T-4x.js +1 -0
- package/dist-web/assets/railroadDiagram-O6MQD6OU-BZwRaQM3.js +1 -0
- package/dist-web/assets/requirementDiagram-BXWQKSXE-BN3nmFpY.js +84 -0
- package/dist-web/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/dist-web/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/dist-web/assets/rpm-gpDK5sbt.js +1 -0
- package/dist-web/assets/ruby-BjXV7-Qa.js +1 -0
- package/dist-web/assets/sankeyDiagram-P5KCCOFB-DBhFOKcq.js +40 -0
- package/dist-web/assets/{sas-B4kiWyti.js → sas-C2OyD2Y6.js} +1 -1
- package/dist-web/assets/scheme-D9qYN0V5.js +1 -0
- package/dist-web/assets/sequenceDiagram-WJ2MYXX4-CBc9y9xq.js +162 -0
- package/dist-web/assets/shell-DwuoZtxw.js +1 -0
- package/dist-web/assets/sieve-tLWDfEkZ.js +1 -0
- package/dist-web/assets/simple-mode-DXiLM1-G.js +1 -0
- package/dist-web/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
- package/dist-web/assets/smalltalk-BLp5-jwC.js +1 -0
- package/dist-web/assets/solr-B78wSQJQ.js +1 -0
- package/dist-web/assets/sparql-Dz-mlCAC.js +1 -0
- package/dist-web/assets/spreadsheet-CTIncYxj.js +1 -0
- package/dist-web/assets/sql-DuQMFDvy.js +1 -0
- package/dist-web/assets/src-B6xuSHsQ.js +1 -0
- package/dist-web/assets/stateDiagram-D77RDMKH-BDdsXTTr.js +1 -0
- package/dist-web/assets/stateDiagram-v2-MP3YSRHH-C04o4SeT.js +1 -0
- package/dist-web/assets/stex-DNzd62Q_.js +1 -0
- package/dist-web/assets/stylus-BOVgKnng.js +1 -0
- package/dist-web/assets/swift-DKB6_1j6.js +1 -0
- package/dist-web/assets/swimlanes-42K2YHIH-1QXV5L5H.js +1 -0
- package/dist-web/assets/swimlanesDiagram-VR7AAH4N-CQ46EU90.js +8 -0
- package/dist-web/assets/tcl-BGfruO1u.js +1 -0
- package/dist-web/assets/textile-C4jVoHG1.js +1 -0
- package/dist-web/assets/tiddlywiki-VlUiK86J.js +1 -0
- package/dist-web/assets/tiki-AK6FwT8q.js +1 -0
- package/dist-web/assets/timeline-definition-24CTP7MA-D9CdAGEV.js +120 -0
- package/dist-web/assets/toml-BPTmHmyx.js +1 -0
- package/dist-web/assets/treeView-Q6P3EWNA-CxKfpZsz.js +1 -0
- package/dist-web/assets/treemap-WGGIJYW6-Bg5-PJ6G.js +1 -0
- package/dist-web/assets/troff-C2dAgh7P.js +1 -0
- package/dist-web/assets/ttcn-PPSTk1ow.js +1 -0
- package/dist-web/assets/ttcn-cfg-2b4Gb5sE.js +1 -0
- package/dist-web/assets/turtle-Cx3rYX2g.js +1 -0
- package/dist-web/assets/vb-BthdM_4N.js +1 -0
- package/dist-web/assets/vbscript-D9f6rSsU.js +1 -0
- package/dist-web/assets/velocity-CqftRsjg.js +1 -0
- package/dist-web/assets/vennDiagram-4TSXK5OY-DIlZEQm_.js +34 -0
- package/dist-web/assets/verilog-CjI9Y6RI.js +1 -0
- package/dist-web/assets/vhdl-kS471soi.js +1 -0
- package/dist-web/assets/wardley-WFR3VGLG-DCKFxH5V.js +1 -0
- package/dist-web/assets/wardleyDiagram-VM6X3IG4-D8O8WtAP.js +78 -0
- package/dist-web/assets/webidl-D5jiJvOU.js +1 -0
- package/dist-web/assets/xquery-BKJx4mf9.js +1 -0
- package/dist-web/assets/xychartDiagram-S5SC5T6Z-Dz9bYgtE.js +7 -0
- package/dist-web/assets/yacas-CXXgtw0p.js +1 -0
- package/dist-web/assets/z80-Co3PbHdE.js +1 -0
- package/dist-web/index.html +6 -18
- package/dist-web/theme-guard.js +21 -0
- package/package.json +34 -26
- package/templates/strikethroo/config/config.yaml +2 -2
- package/templates/strikethroo/config/templates/TASK_TEMPLATE.md +1 -1
- package/dist-web/assets/apl-B4CMkyY2.js +0 -1
- package/dist-web/assets/arc-DA6tr0lU.js +0 -1
- package/dist-web/assets/architectureDiagram-3BPJPVTR-BEH2YihV.js +0 -36
- package/dist-web/assets/asciiarmor-Df11BRmG.js +0 -1
- package/dist-web/assets/asn1-EdZsLKOL.js +0 -1
- package/dist-web/assets/asterisk-B-8jnY81.js +0 -1
- package/dist-web/assets/blockDiagram-GPEHLZMM-jgUyFGxx.js +0 -132
- package/dist-web/assets/brainfuck-C4LP7Hcl.js +0 -1
- package/dist-web/assets/c4Diagram-AAUBKEIU-Do-n7I5O.js +0 -10
- package/dist-web/assets/channel-DJ33z8Wx.js +0 -1
- package/dist-web/assets/chunk-2J33WTMH-CgMvCn22.js +0 -1
- package/dist-web/assets/chunk-4BX2VUAB-FO8RQkkL.js +0 -1
- package/dist-web/assets/chunk-55IACEB6-DL_6pZjw.js +0 -1
- package/dist-web/assets/chunk-727SXJPM-DW7J3hiD.js +0 -206
- package/dist-web/assets/chunk-AQP2D5EJ-TPWnvFSC.js +0 -231
- package/dist-web/assets/chunk-ND2GUHAM-D0Nmkz3P.js +0 -1
- package/dist-web/assets/chunk-QZHKN3VN-BxgxRNWB.js +0 -1
- package/dist-web/assets/classDiagram-4FO5ZUOK--tqQjy0s.js +0 -1
- package/dist-web/assets/classDiagram-v2-Q7XG4LA2--tqQjy0s.js +0 -1
- package/dist-web/assets/clike-B9uivgTg.js +0 -1
- package/dist-web/assets/clojure-BMjYHr_A.js +0 -1
- package/dist-web/assets/cmake-BQqOBYOt.js +0 -1
- package/dist-web/assets/cobol-CWcv1MsR.js +0 -1
- package/dist-web/assets/coffeescript-S37ZYGWr.js +0 -1
- package/dist-web/assets/commonlisp-DBKNyK5s.js +0 -1
- package/dist-web/assets/cose-bilkent-S5V4N54A-ysHXC5GT.js +0 -1
- package/dist-web/assets/crystal-SjHAIU92.js +0 -1
- package/dist-web/assets/css-BnMrqG3P.js +0 -1
- package/dist-web/assets/cypher-C_CwsFkJ.js +0 -1
- package/dist-web/assets/cytoscape.esm-BHYC38rz.js +0 -331
- package/dist-web/assets/d-pRatUO7H.js +0 -1
- package/dist-web/assets/dagre-BM42HDAG-G_XIk8Dj.js +0 -4
- package/dist-web/assets/defaultLocale-CrowFXzY.js +0 -1
- package/dist-web/assets/diagram-2AECGRRQ-7HG2PLhr.js +0 -43
- package/dist-web/assets/diagram-5GNKFQAL-BdS1bF_R.js +0 -10
- package/dist-web/assets/diagram-KO2AKTUF-AFaiXGZQ.js +0 -3
- package/dist-web/assets/diagram-LMA3HP47-CTWrauj7.js +0 -24
- package/dist-web/assets/diagram-OG6HWLK6-BmBckGLa.js +0 -24
- package/dist-web/assets/diff-DbItnlRl.js +0 -1
- package/dist-web/assets/dockerfile-BKs6k2Af.js +0 -1
- package/dist-web/assets/dtd-DF_7sFjM.js +0 -1
- package/dist-web/assets/dylan-DwRh75JA.js +0 -1
- package/dist-web/assets/ebnf-CDyGwa7X.js +0 -1
- package/dist-web/assets/ecl-Cabwm37j.js +0 -1
- package/dist-web/assets/eiffel-CnydiIhH.js +0 -1
- package/dist-web/assets/elm-vLlmbW-K.js +0 -1
- package/dist-web/assets/erDiagram-TEJ5UH35-C0B2cXE-.js +0 -85
- package/dist-web/assets/erlang-BNw1qcRV.js +0 -1
- package/dist-web/assets/factor-kuTfRLto.js +0 -1
- package/dist-web/assets/fcl-Kvtd6kyn.js +0 -1
- package/dist-web/assets/flowDiagram-I6XJVG4X-CZ70tn_Q.js +0 -162
- package/dist-web/assets/forth-Ffai-XNe.js +0 -1
- package/dist-web/assets/fortran-DYz_wnZ1.js +0 -1
- package/dist-web/assets/ganttDiagram-6RSMTGT7-h7O-Xh-D.js +0 -292
- package/dist-web/assets/gas-Bneqetm1.js +0 -1
- package/dist-web/assets/gherkin-heZmZLOM.js +0 -1
- package/dist-web/assets/gitGraphDiagram-PVQCEYII-BDZixURw.js +0 -106
- package/dist-web/assets/graph-Dqkl27Ch.js +0 -1
- package/dist-web/assets/groovy-D9Dt4D0W.js +0 -1
- package/dist-web/assets/haskell-BWDZoCOh.js +0 -1
- package/dist-web/assets/haxe-H-WmDvRZ.js +0 -1
- package/dist-web/assets/http-DBlCnlav.js +0 -1
- package/dist-web/assets/idl-BEugSyMb.js +0 -1
- package/dist-web/assets/index-B-KlYMEI.js +0 -1
- package/dist-web/assets/index-B0a4C4Lb.js +0 -1
- package/dist-web/assets/index-B90tvIxG.js +0 -3
- package/dist-web/assets/index-BLXIwDvb.js +0 -1
- package/dist-web/assets/index-BjZYUODU.js +0 -1
- package/dist-web/assets/index-BmsczLPZ.js +0 -1
- package/dist-web/assets/index-BpU7RpGz.js +0 -1
- package/dist-web/assets/index-BwFIiA6J.js +0 -2
- package/dist-web/assets/index-C53NKwQ5.js +0 -1
- package/dist-web/assets/index-C73riuQN.js +0 -1
- package/dist-web/assets/index-C9RcHSPW.js +0 -1
- package/dist-web/assets/index-CEBV-m_B.js +0 -1
- package/dist-web/assets/index-CG1O2Vjg.js +0 -1
- package/dist-web/assets/index-CRL66wiY.js +0 -169
- package/dist-web/assets/index-CddJufqj.js +0 -1
- package/dist-web/assets/index-CrzBaw1K.css +0 -1
- package/dist-web/assets/index-CuBsNWzH.js +0 -13
- package/dist-web/assets/index-CuCAyRTw.js +0 -7
- package/dist-web/assets/index-CuUh3dvS.js +0 -1
- package/dist-web/assets/index-CwPWc9jQ.js +0 -1
- package/dist-web/assets/index-DHBbud_j.js +0 -1
- package/dist-web/assets/index-LLaxWDbg.js +0 -1
- package/dist-web/assets/index-XOpAvr0E.js +0 -13
- package/dist-web/assets/index-aX67gnlS.js +0 -2
- package/dist-web/assets/index-lkaAPBmM.js +0 -6
- package/dist-web/assets/index-pUkuW0EP.js +0 -1
- package/dist-web/assets/index-sbfqG9cy.js +0 -1
- package/dist-web/assets/index-udFbjSlZ.js +0 -2
- package/dist-web/assets/index-yjEPVwyN.js +0 -1
- package/dist-web/assets/infoDiagram-5YYISTIA-CKXHxMh_.js +0 -2
- package/dist-web/assets/init-Gi6I4Gst.js +0 -1
- package/dist-web/assets/ishikawaDiagram-YF4QCWOH-DGancylI.js +0 -70
- package/dist-web/assets/javascript-qCveANmP.js +0 -1
- package/dist-web/assets/journeyDiagram-JHISSGLW-DifvKy-w.js +0 -139
- package/dist-web/assets/julia-DuME0IfC.js +0 -1
- package/dist-web/assets/kanban-definition-UN3LZRKU-ByC-4YyY.js +0 -89
- package/dist-web/assets/katex-C5jXJg4s.js +0 -257
- package/dist-web/assets/layout-DO9UvE1P.js +0 -1
- package/dist-web/assets/linear-Cm0Y2OWD.js +0 -1
- package/dist-web/assets/livescript-BwQOo05w.js +0 -1
- package/dist-web/assets/lua-VAEuO923.js +0 -1
- package/dist-web/assets/mathematica-DTrFuWx2.js +0 -1
- package/dist-web/assets/mbox-CNhZ1qSd.js +0 -1
- package/dist-web/assets/mermaid.core-DBlLt9sa.js +0 -307
- package/dist-web/assets/mindmap-definition-RKZ34NQL-tkThiQWd.js +0 -96
- package/dist-web/assets/mllike-CXdrOF99.js +0 -1
- package/dist-web/assets/modelica-Dc1JOy9r.js +0 -1
- package/dist-web/assets/mscgen-BA5vi2Kp.js +0 -1
- package/dist-web/assets/mumps-BT43cFF4.js +0 -1
- package/dist-web/assets/nsis-LdVXkNf5.js +0 -1
- package/dist-web/assets/ntriples-BfvgReVJ.js +0 -1
- package/dist-web/assets/octave-Ck1zUtKM.js +0 -1
- package/dist-web/assets/ordinal-Cboi1Yqb.js +0 -1
- package/dist-web/assets/oz-BzwKVEFT.js +0 -1
- package/dist-web/assets/pascal--L3eBynH.js +0 -1
- package/dist-web/assets/perl-CdXCOZ3F.js +0 -1
- package/dist-web/assets/pieDiagram-4H26LBE5-BXGBVjcj.js +0 -30
- package/dist-web/assets/pig-CevX1Tat.js +0 -1
- package/dist-web/assets/powershell-CFHJl5sT.js +0 -1
- package/dist-web/assets/properties-C78fOPTZ.js +0 -1
- package/dist-web/assets/protobuf-ChK-085T.js +0 -1
- package/dist-web/assets/pug-DukmZTjD.js +0 -1
- package/dist-web/assets/puppet-DMA9R1ak.js +0 -1
- package/dist-web/assets/python-BuPzkPfP.js +0 -1
- package/dist-web/assets/q-pXgVlZs6.js +0 -1
- package/dist-web/assets/quadrantDiagram-W4KKPZXB-DnF0iEBo.js +0 -7
- package/dist-web/assets/r-DUYO_cvP.js +0 -1
- package/dist-web/assets/requirementDiagram-4Y6WPE33-BooGjmPb.js +0 -84
- package/dist-web/assets/rpm-CTu-6PCP.js +0 -1
- package/dist-web/assets/ruby-B2Rjki9n.js +0 -1
- package/dist-web/assets/sankeyDiagram-5OEKKPKP-7le5uaC7.js +0 -40
- package/dist-web/assets/scheme-C41bIUwD.js +0 -1
- package/dist-web/assets/sequenceDiagram-3UESZ5HK-B9GCKMDd.js +0 -162
- package/dist-web/assets/shell-CjFT_Tl9.js +0 -1
- package/dist-web/assets/sieve-C3Gn_uJK.js +0 -1
- package/dist-web/assets/simple-mode-GW_nhZxv.js +0 -1
- package/dist-web/assets/smalltalk-CnHTOXQT.js +0 -1
- package/dist-web/assets/solr-DehyRSwq.js +0 -1
- package/dist-web/assets/sparql-DkYu6x3z.js +0 -1
- package/dist-web/assets/spreadsheet-BCZA_wO0.js +0 -1
- package/dist-web/assets/sql-D0XecflT.js +0 -1
- package/dist-web/assets/stateDiagram-AJRCARHV-CO2qL8R6.js +0 -1
- package/dist-web/assets/stateDiagram-v2-BHNVJYJU-DUkgqBTd.js +0 -1
- package/dist-web/assets/stex-C3f8Ysf7.js +0 -1
- package/dist-web/assets/stylus-B533Al4x.js +0 -1
- package/dist-web/assets/swift-BzpIVaGY.js +0 -1
- package/dist-web/assets/tcl-DVfN8rqt.js +0 -1
- package/dist-web/assets/textile-CnDTJFAw.js +0 -1
- package/dist-web/assets/tiddlywiki-DO-Gjzrf.js +0 -1
- package/dist-web/assets/tiki-DGYXhP31.js +0 -1
- package/dist-web/assets/timeline-definition-PNZ67QCA-FLzWM85F.js +0 -120
- package/dist-web/assets/toml-Bm5Em-hy.js +0 -1
- package/dist-web/assets/troff-wAsdV37c.js +0 -1
- package/dist-web/assets/ttcn-CfJYG6tj.js +0 -1
- package/dist-web/assets/ttcn-cfg-B9xdYoR4.js +0 -1
- package/dist-web/assets/turtle-B1tBg_DP.js +0 -1
- package/dist-web/assets/vb-CmGdzxic.js +0 -1
- package/dist-web/assets/vbscript-BuJXcnF6.js +0 -1
- package/dist-web/assets/velocity-D8B20fx6.js +0 -1
- package/dist-web/assets/vennDiagram-CIIHVFJN-Dt6p6Ib1.js +0 -34
- package/dist-web/assets/verilog-C6RDOZhf.js +0 -1
- package/dist-web/assets/vhdl-lSbBsy5d.js +0 -1
- package/dist-web/assets/wardley-L42UT6IY-D6k_B5It.js +0 -173
- package/dist-web/assets/wardleyDiagram-YWT4CUSO-jT3ItNLi.js +0 -78
- package/dist-web/assets/webidl-ZXfAyPTL.js +0 -1
- package/dist-web/assets/xquery-CQfU5ijd.js +0 -1
- package/dist-web/assets/xychartDiagram-2RQKCTM6-CpM6UhUO.js +0 -7
- package/dist-web/assets/yacas-BJ4BC0dw.js +0 -1
- package/dist-web/assets/z80-Hz9HOZM7.js +0 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filesystem containment for reads and writes under a selected workspace root.
|
|
3
|
+
*
|
|
4
|
+
* Shared by serve, the CLI domain, and the skill bundles. Every entry point
|
|
5
|
+
* takes the workspace root plus a path and refuses to touch anything that is
|
|
6
|
+
* not a plain file (or directory) reached through plain directories below the
|
|
7
|
+
* canonical root. Links above the root (a symlinked home directory, a
|
|
8
|
+
* canonicalized temp dir) are fine: only the components below it are walked.
|
|
9
|
+
*
|
|
10
|
+
* What this module guarantees and what it does not:
|
|
11
|
+
*
|
|
12
|
+
* - The component walk is `lstat`-based and therefore racy on its own: a link
|
|
13
|
+
* planted between the walk and the operation is not seen by the walk. Reads
|
|
14
|
+
* close that window with `O_NOFOLLOW` on the final open plus an `fstat` of
|
|
15
|
+
* the descriptor; writes close it with `O_EXCL` on the temp file (which never
|
|
16
|
+
* follows a link) and a re-check of the target immediately before `rename`.
|
|
17
|
+
* A pre-write `realpath` alone is never treated as evidence of containment.
|
|
18
|
+
* - Hard links are not detected and are out of scope.
|
|
19
|
+
* - On Windows `O_NOFOLLOW` is undefined, so the read path relies on the
|
|
20
|
+
* `lstat` walk plus a `dev`/`ino` comparison between the `lstat` result and
|
|
21
|
+
* the `fstat` of the opened descriptor. That narrows the race but does not
|
|
22
|
+
* eliminate it.
|
|
23
|
+
*/
|
|
24
|
+
import * as fs from 'fs';
|
|
25
|
+
/** Why a path was refused. Callers map these to their own result unions. */
|
|
26
|
+
export type SafeFsErrorCode = 'invalid-path' | 'outside-root' | 'symlink' | 'not-found' | 'not-a-directory' | 'not-a-file' | 'too-large' | 'fs-error';
|
|
27
|
+
/** The failure shape every export returns; never thrown. */
|
|
28
|
+
export interface SafeFsError {
|
|
29
|
+
error: SafeFsErrorCode;
|
|
30
|
+
message: string;
|
|
31
|
+
}
|
|
32
|
+
export interface ResolveContainedOptions {
|
|
33
|
+
/** Accept a leaf that does not exist yet (its parents must still exist). */
|
|
34
|
+
allowMissingLeaf?: boolean;
|
|
35
|
+
/** Required kind of an existing leaf. Defaults to `file`. */
|
|
36
|
+
expect?: 'file' | 'directory';
|
|
37
|
+
}
|
|
38
|
+
export interface ContainedPath {
|
|
39
|
+
/** Canonical absolute path: the canonical root joined with the checked components. */
|
|
40
|
+
path: string;
|
|
41
|
+
/** Path relative to the canonical root, with platform separators. */
|
|
42
|
+
relative: string;
|
|
43
|
+
/** `false` only when `allowMissingLeaf` was set and the leaf is absent. */
|
|
44
|
+
exists: boolean;
|
|
45
|
+
/** `lstat` of the leaf when it exists. */
|
|
46
|
+
stats?: fs.Stats;
|
|
47
|
+
}
|
|
48
|
+
export interface ReadContainedOptions {
|
|
49
|
+
/** Maximum bytes accepted. Defaults to {@link DEFAULT_MAX_READ_BYTES}. */
|
|
50
|
+
maxBytes?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface WriteFileAtomicOptions {
|
|
53
|
+
/** Refuse to create the file; it must already exist as a regular file. */
|
|
54
|
+
mustExist?: boolean;
|
|
55
|
+
/** Mode for the written file. Defaults to the existing file's mode, else 0o600. */
|
|
56
|
+
mode?: number;
|
|
57
|
+
}
|
|
58
|
+
export declare const DEFAULT_MAX_READ_BYTES: number;
|
|
59
|
+
/**
|
|
60
|
+
* Checks every component of `input` below `root` with `lstat` and returns the
|
|
61
|
+
* canonical path, or a typed error. Rejects any symbolic link below the root,
|
|
62
|
+
* any non-directory intermediate, and any existing leaf that is not of the
|
|
63
|
+
* expected kind (FIFOs, sockets, devices, and directories for `file`).
|
|
64
|
+
*/
|
|
65
|
+
export declare const resolveContained: (root: string, input: string, options?: ResolveContainedOptions) => ContainedPath | SafeFsError;
|
|
66
|
+
/**
|
|
67
|
+
* Reads a contained regular file as UTF-8 with a size bound. Opens with
|
|
68
|
+
* `O_NOFOLLOW` where available and `O_NONBLOCK` so a FIFO cannot block the
|
|
69
|
+
* process, then requires the descriptor to be a regular file.
|
|
70
|
+
*/
|
|
71
|
+
export declare const readContainedFile: (root: string, input: string, options?: ReadContainedOptions) => {
|
|
72
|
+
path: string;
|
|
73
|
+
content: string;
|
|
74
|
+
} | SafeFsError;
|
|
75
|
+
/**
|
|
76
|
+
* Writes `content` to a contained path atomically: an exclusive, randomly
|
|
77
|
+
* named temp file in the same directory is written, `fsync`ed, and renamed
|
|
78
|
+
* over the target. The temp file is removed on every failure path. With
|
|
79
|
+
* `mustExist` the target has to be a regular file already; otherwise a
|
|
80
|
+
* missing leaf is created with `mode` (default 0o600).
|
|
81
|
+
*/
|
|
82
|
+
export declare const writeFileAtomic: (root: string, input: string, content: string | Buffer, options?: WriteFileAtomicOptions) => Promise<{
|
|
83
|
+
path: string;
|
|
84
|
+
} | SafeFsError>;
|
|
85
|
+
/** Synchronous {@link writeFileAtomic}, with the same guarantees, for callers that cannot await. */
|
|
86
|
+
export declare const writeFileAtomicSync: (root: string, input: string, content: string | Buffer, options?: WriteFileAtomicOptions) => {
|
|
87
|
+
path: string;
|
|
88
|
+
} | SafeFsError;
|
|
89
|
+
//# sourceMappingURL=safe-fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-fs.d.ts","sourceRoot":"","sources":["../../../src/skill-scripts/shared/safe-fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAIzB,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,cAAc,GACd,SAAS,GACT,WAAW,GACX,iBAAiB,GACjB,YAAY,GACZ,WAAW,GACX,UAAU,CAAC;AAEf,4DAA4D;AAC5D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,sFAAsF;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,MAAM,EAAE,OAAO,CAAC;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,sBAAsB,QAAkB,CAAC;AAiBtD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,UAAS,uBAA4B,KACpC,aAAa,GAAG,WAgElB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,UAAS,oBAAyB,KACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,WA6CtC,CAAC;AAgDF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,SAAS,MAAM,GAAG,MAAM,EACxB,UAAS,sBAA2B,KACnC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CA4BxC,CAAC;AAEF,oGAAoG;AACpG,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,SAAS,MAAM,GAAG,MAAM,EACxB,UAAS,sBAA2B,KACnC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,WAuCrB,CAAC"}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Filesystem containment for reads and writes under a selected workspace root.
|
|
4
|
+
*
|
|
5
|
+
* Shared by serve, the CLI domain, and the skill bundles. Every entry point
|
|
6
|
+
* takes the workspace root plus a path and refuses to touch anything that is
|
|
7
|
+
* not a plain file (or directory) reached through plain directories below the
|
|
8
|
+
* canonical root. Links above the root (a symlinked home directory, a
|
|
9
|
+
* canonicalized temp dir) are fine: only the components below it are walked.
|
|
10
|
+
*
|
|
11
|
+
* What this module guarantees and what it does not:
|
|
12
|
+
*
|
|
13
|
+
* - The component walk is `lstat`-based and therefore racy on its own: a link
|
|
14
|
+
* planted between the walk and the operation is not seen by the walk. Reads
|
|
15
|
+
* close that window with `O_NOFOLLOW` on the final open plus an `fstat` of
|
|
16
|
+
* the descriptor; writes close it with `O_EXCL` on the temp file (which never
|
|
17
|
+
* follows a link) and a re-check of the target immediately before `rename`.
|
|
18
|
+
* A pre-write `realpath` alone is never treated as evidence of containment.
|
|
19
|
+
* - Hard links are not detected and are out of scope.
|
|
20
|
+
* - On Windows `O_NOFOLLOW` is undefined, so the read path relies on the
|
|
21
|
+
* `lstat` walk plus a `dev`/`ino` comparison between the `lstat` result and
|
|
22
|
+
* the `fstat` of the opened descriptor. That narrows the race but does not
|
|
23
|
+
* eliminate it.
|
|
24
|
+
*/
|
|
25
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
26
|
+
if (k2 === undefined) k2 = k;
|
|
27
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
28
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
29
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
30
|
+
}
|
|
31
|
+
Object.defineProperty(o, k2, desc);
|
|
32
|
+
}) : (function(o, m, k, k2) {
|
|
33
|
+
if (k2 === undefined) k2 = k;
|
|
34
|
+
o[k2] = m[k];
|
|
35
|
+
}));
|
|
36
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
37
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
38
|
+
}) : function(o, v) {
|
|
39
|
+
o["default"] = v;
|
|
40
|
+
});
|
|
41
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
42
|
+
var ownKeys = function(o) {
|
|
43
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
44
|
+
var ar = [];
|
|
45
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
46
|
+
return ar;
|
|
47
|
+
};
|
|
48
|
+
return ownKeys(o);
|
|
49
|
+
};
|
|
50
|
+
return function (mod) {
|
|
51
|
+
if (mod && mod.__esModule) return mod;
|
|
52
|
+
var result = {};
|
|
53
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
54
|
+
__setModuleDefault(result, mod);
|
|
55
|
+
return result;
|
|
56
|
+
};
|
|
57
|
+
})();
|
|
58
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
|
+
exports.writeFileAtomicSync = exports.writeFileAtomic = exports.readContainedFile = exports.resolveContained = exports.DEFAULT_MAX_READ_BYTES = void 0;
|
|
60
|
+
const fs = __importStar(require("fs"));
|
|
61
|
+
const path = __importStar(require("path"));
|
|
62
|
+
const crypto_1 = require("crypto");
|
|
63
|
+
exports.DEFAULT_MAX_READ_BYTES = 8 * 1024 * 1024;
|
|
64
|
+
const fail = (error, message) => ({ error, message });
|
|
65
|
+
const errno = (err) => typeof err === 'object' && err !== null && 'code' in err
|
|
66
|
+
? String(err.code)
|
|
67
|
+
: undefined;
|
|
68
|
+
const canonicalRootOf = (root) => {
|
|
69
|
+
try {
|
|
70
|
+
return fs.realpathSync.native(path.resolve(root));
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return fail('not-found', 'Workspace root does not exist.');
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Checks every component of `input` below `root` with `lstat` and returns the
|
|
78
|
+
* canonical path, or a typed error. Rejects any symbolic link below the root,
|
|
79
|
+
* any non-directory intermediate, and any existing leaf that is not of the
|
|
80
|
+
* expected kind (FIFOs, sockets, devices, and directories for `file`).
|
|
81
|
+
*/
|
|
82
|
+
const resolveContained = (root, input, options = {}) => {
|
|
83
|
+
if (typeof input !== 'string' || input.includes('\0')) {
|
|
84
|
+
return fail('invalid-path', 'Path is not valid.');
|
|
85
|
+
}
|
|
86
|
+
const givenRoot = path.resolve(root);
|
|
87
|
+
const canonicalRoot = canonicalRootOf(givenRoot);
|
|
88
|
+
if (typeof canonicalRoot !== 'string')
|
|
89
|
+
return canonicalRoot;
|
|
90
|
+
// Absolute inputs are usually spelled through the root as the caller knows
|
|
91
|
+
// it, which may be a non-canonical alias; re-base them on the given root
|
|
92
|
+
// before joining onto the canonical one.
|
|
93
|
+
const rel = path.isAbsolute(input) ? path.relative(givenRoot, input) : input;
|
|
94
|
+
const target = path.resolve(canonicalRoot, rel);
|
|
95
|
+
const relative = path.relative(canonicalRoot, target);
|
|
96
|
+
if (path.isAbsolute(relative) ||
|
|
97
|
+
relative === '..' ||
|
|
98
|
+
relative.startsWith(`..${path.sep}`) ||
|
|
99
|
+
relative.includes('\0')) {
|
|
100
|
+
return fail('outside-root', 'Path is outside the workspace root.');
|
|
101
|
+
}
|
|
102
|
+
const kind = options.expect ?? 'file';
|
|
103
|
+
const parts = relative === '' ? [] : relative.split(path.sep);
|
|
104
|
+
let current = canonicalRoot;
|
|
105
|
+
// Seeded with the root so an empty `parts` (the root itself) has leaf stats.
|
|
106
|
+
let stats;
|
|
107
|
+
try {
|
|
108
|
+
stats = fs.lstatSync(canonicalRoot);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return fail('fs-error', 'Could not inspect path.');
|
|
112
|
+
}
|
|
113
|
+
for (let i = 0; i < parts.length; i += 1) {
|
|
114
|
+
const isLeaf = i === parts.length - 1;
|
|
115
|
+
current = path.join(current, parts[i]);
|
|
116
|
+
try {
|
|
117
|
+
stats = fs.lstatSync(current);
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
const code = errno(err);
|
|
121
|
+
if (code === 'ENOENT' || code === 'ENOTDIR') {
|
|
122
|
+
if (isLeaf && options.allowMissingLeaf) {
|
|
123
|
+
return { path: current, relative, exists: false };
|
|
124
|
+
}
|
|
125
|
+
return fail('not-found', 'Path does not exist.');
|
|
126
|
+
}
|
|
127
|
+
return fail('fs-error', 'Could not inspect path.');
|
|
128
|
+
}
|
|
129
|
+
if (stats.isSymbolicLink()) {
|
|
130
|
+
return fail('symlink', 'Symbolic links inside the workspace are not allowed.');
|
|
131
|
+
}
|
|
132
|
+
if (!isLeaf && !stats.isDirectory()) {
|
|
133
|
+
return fail('not-a-directory', 'A path component is not a directory.');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (kind === 'directory' && !stats.isDirectory()) {
|
|
137
|
+
return fail('not-a-directory', 'Path is not a directory.');
|
|
138
|
+
}
|
|
139
|
+
if (kind === 'file' && !stats.isFile()) {
|
|
140
|
+
return fail('not-a-file', 'Path is not a regular file.');
|
|
141
|
+
}
|
|
142
|
+
return { path: current, relative, exists: true, stats };
|
|
143
|
+
};
|
|
144
|
+
exports.resolveContained = resolveContained;
|
|
145
|
+
/**
|
|
146
|
+
* Reads a contained regular file as UTF-8 with a size bound. Opens with
|
|
147
|
+
* `O_NOFOLLOW` where available and `O_NONBLOCK` so a FIFO cannot block the
|
|
148
|
+
* process, then requires the descriptor to be a regular file.
|
|
149
|
+
*/
|
|
150
|
+
const readContainedFile = (root, input, options = {}) => {
|
|
151
|
+
const resolved = (0, exports.resolveContained)(root, input);
|
|
152
|
+
if ('error' in resolved)
|
|
153
|
+
return resolved;
|
|
154
|
+
const maxBytes = options.maxBytes ?? exports.DEFAULT_MAX_READ_BYTES;
|
|
155
|
+
const { O_RDONLY, O_NOFOLLOW, O_NONBLOCK } = fs.constants;
|
|
156
|
+
const flags = (O_RDONLY ?? 0) | (O_NOFOLLOW ?? 0) | (O_NONBLOCK ?? 0);
|
|
157
|
+
let fd;
|
|
158
|
+
try {
|
|
159
|
+
fd = fs.openSync(resolved.path, flags);
|
|
160
|
+
}
|
|
161
|
+
catch (err) {
|
|
162
|
+
const code = errno(err);
|
|
163
|
+
if (code === 'ELOOP')
|
|
164
|
+
return fail('symlink', 'Symbolic links inside the workspace are not allowed.');
|
|
165
|
+
if (code === 'ENOENT')
|
|
166
|
+
return fail('not-found', 'Path does not exist.');
|
|
167
|
+
return fail('fs-error', 'Could not open file.');
|
|
168
|
+
}
|
|
169
|
+
try {
|
|
170
|
+
const opened = fs.fstatSync(fd);
|
|
171
|
+
if (!opened.isFile())
|
|
172
|
+
return fail('not-a-file', 'Path is not a regular file.');
|
|
173
|
+
if (O_NOFOLLOW === undefined && resolved.stats) {
|
|
174
|
+
// Windows: no O_NOFOLLOW, so require the opened file to be the one lstat saw.
|
|
175
|
+
if (opened.dev !== resolved.stats.dev || opened.ino !== resolved.stats.ino) {
|
|
176
|
+
return fail('symlink', 'Path changed between inspection and open.');
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (opened.size > maxBytes)
|
|
180
|
+
return fail('too-large', 'File exceeds the size limit.');
|
|
181
|
+
const chunks = [];
|
|
182
|
+
let total = 0;
|
|
183
|
+
const chunk = Buffer.alloc(64 * 1024);
|
|
184
|
+
for (;;) {
|
|
185
|
+
const read = fs.readSync(fd, chunk, 0, chunk.length, null);
|
|
186
|
+
if (read === 0)
|
|
187
|
+
break;
|
|
188
|
+
total += read;
|
|
189
|
+
if (total > maxBytes)
|
|
190
|
+
return fail('too-large', 'File exceeds the size limit.');
|
|
191
|
+
chunks.push(Buffer.from(chunk.subarray(0, read)));
|
|
192
|
+
}
|
|
193
|
+
return { path: resolved.path, content: Buffer.concat(chunks, total).toString('utf8') };
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
return fail('fs-error', 'Could not read file.');
|
|
197
|
+
}
|
|
198
|
+
finally {
|
|
199
|
+
fs.closeSync(fd);
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
exports.readContainedFile = readContainedFile;
|
|
203
|
+
/** Containment check plus the target mode and the random temp path, shared by both write variants. */
|
|
204
|
+
const planAtomicWrite = (root, input, options) => {
|
|
205
|
+
const mustExist = options.mustExist === true;
|
|
206
|
+
const resolved = (0, exports.resolveContained)(root, input, { allowMissingLeaf: !mustExist });
|
|
207
|
+
if ('error' in resolved)
|
|
208
|
+
return resolved;
|
|
209
|
+
if (mustExist && !resolved.exists)
|
|
210
|
+
return fail('not-found', 'Path does not exist.');
|
|
211
|
+
const target = resolved.path;
|
|
212
|
+
const mode = options.mode ?? (resolved.exists && resolved.stats ? resolved.stats.mode & 0o777 : 0o600);
|
|
213
|
+
const temp = path.join(path.dirname(target), `.${path.basename(target)}.${(0, crypto_1.randomBytes)(8).toString('hex')}.tmp`);
|
|
214
|
+
return { target, temp, mode, mustExist };
|
|
215
|
+
};
|
|
216
|
+
/**
|
|
217
|
+
* Re-check the target right before the rename; see the module comment for
|
|
218
|
+
* what this does and does not close.
|
|
219
|
+
*/
|
|
220
|
+
const recheckTarget = (target, mustExist) => {
|
|
221
|
+
try {
|
|
222
|
+
const again = fs.lstatSync(target);
|
|
223
|
+
if (again.isSymbolicLink()) {
|
|
224
|
+
return fail('symlink', 'Symbolic links inside the workspace are not allowed.');
|
|
225
|
+
}
|
|
226
|
+
if (!again.isFile())
|
|
227
|
+
return fail('not-a-file', 'Path is not a regular file.');
|
|
228
|
+
}
|
|
229
|
+
catch (err) {
|
|
230
|
+
if (errno(err) !== 'ENOENT')
|
|
231
|
+
return fail('fs-error', 'Could not inspect path.');
|
|
232
|
+
if (mustExist)
|
|
233
|
+
return fail('not-found', 'Path does not exist.');
|
|
234
|
+
}
|
|
235
|
+
return undefined;
|
|
236
|
+
};
|
|
237
|
+
/**
|
|
238
|
+
* Writes `content` to a contained path atomically: an exclusive, randomly
|
|
239
|
+
* named temp file in the same directory is written, `fsync`ed, and renamed
|
|
240
|
+
* over the target. The temp file is removed on every failure path. With
|
|
241
|
+
* `mustExist` the target has to be a regular file already; otherwise a
|
|
242
|
+
* missing leaf is created with `mode` (default 0o600).
|
|
243
|
+
*/
|
|
244
|
+
const writeFileAtomic = async (root, input, content, options = {}) => {
|
|
245
|
+
const plan = planAtomicWrite(root, input, options);
|
|
246
|
+
if ('error' in plan)
|
|
247
|
+
return plan;
|
|
248
|
+
const { target, temp, mode, mustExist } = plan;
|
|
249
|
+
let handle;
|
|
250
|
+
let renamed = false;
|
|
251
|
+
try {
|
|
252
|
+
// 'wx' is O_CREAT|O_EXCL: it fails rather than follow a link at `temp`.
|
|
253
|
+
handle = await fs.promises.open(temp, 'wx', 0o600);
|
|
254
|
+
await handle.writeFile(content);
|
|
255
|
+
await handle.sync();
|
|
256
|
+
if (mode !== 0o600)
|
|
257
|
+
await handle.chmod(mode);
|
|
258
|
+
await handle.close();
|
|
259
|
+
handle = undefined;
|
|
260
|
+
const refused = recheckTarget(target, mustExist);
|
|
261
|
+
if (refused)
|
|
262
|
+
return refused;
|
|
263
|
+
await fs.promises.rename(temp, target);
|
|
264
|
+
renamed = true;
|
|
265
|
+
return { path: target };
|
|
266
|
+
}
|
|
267
|
+
catch {
|
|
268
|
+
return fail('fs-error', 'Could not write file.');
|
|
269
|
+
}
|
|
270
|
+
finally {
|
|
271
|
+
if (handle)
|
|
272
|
+
await handle.close().catch(() => undefined);
|
|
273
|
+
if (!renamed)
|
|
274
|
+
await fs.promises.unlink(temp).catch(() => undefined);
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
exports.writeFileAtomic = writeFileAtomic;
|
|
278
|
+
/** Synchronous {@link writeFileAtomic}, with the same guarantees, for callers that cannot await. */
|
|
279
|
+
const writeFileAtomicSync = (root, input, content, options = {}) => {
|
|
280
|
+
const plan = planAtomicWrite(root, input, options);
|
|
281
|
+
if ('error' in plan)
|
|
282
|
+
return plan;
|
|
283
|
+
const { target, temp, mode, mustExist } = plan;
|
|
284
|
+
let fd;
|
|
285
|
+
let renamed = false;
|
|
286
|
+
try {
|
|
287
|
+
fd = fs.openSync(temp, 'wx', 0o600);
|
|
288
|
+
fs.writeFileSync(fd, content);
|
|
289
|
+
fs.fsyncSync(fd);
|
|
290
|
+
if (mode !== 0o600)
|
|
291
|
+
fs.fchmodSync(fd, mode);
|
|
292
|
+
fs.closeSync(fd);
|
|
293
|
+
fd = undefined;
|
|
294
|
+
const refused = recheckTarget(target, mustExist);
|
|
295
|
+
if (refused)
|
|
296
|
+
return refused;
|
|
297
|
+
fs.renameSync(temp, target);
|
|
298
|
+
renamed = true;
|
|
299
|
+
return { path: target };
|
|
300
|
+
}
|
|
301
|
+
catch {
|
|
302
|
+
return fail('fs-error', 'Could not write file.');
|
|
303
|
+
}
|
|
304
|
+
finally {
|
|
305
|
+
if (fd !== undefined) {
|
|
306
|
+
try {
|
|
307
|
+
fs.closeSync(fd);
|
|
308
|
+
}
|
|
309
|
+
catch {
|
|
310
|
+
// already closed or never opened
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
if (!renamed) {
|
|
314
|
+
try {
|
|
315
|
+
fs.unlinkSync(temp);
|
|
316
|
+
}
|
|
317
|
+
catch {
|
|
318
|
+
// nothing to clean up
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
exports.writeFileAtomicSync = writeFileAtomicSync;
|
|
324
|
+
//# sourceMappingURL=safe-fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-fs.js","sourceRoot":"","sources":["../../../src/skill-scripts/shared/safe-fs.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -332,6 +332,14 @@ export type ConflictResolution = 'keep' | 'overwrite' | 'keep-all' | 'overwrite-
|
|
|
332
332
|
* Thrown before any workspace mutation so a failed import never leaves a
|
|
333
333
|
* partially applied profile behind.
|
|
334
334
|
*/
|
|
335
|
+
/**
|
|
336
|
+
* A filesystem operation was refused because a path is not what the CLI
|
|
337
|
+
* expects on disk: a symbolic link where a regular file or directory must be,
|
|
338
|
+
* or a write that would leave its containment root.
|
|
339
|
+
*/
|
|
340
|
+
export declare class FileSystemError extends Error {
|
|
341
|
+
constructor(message: string);
|
|
342
|
+
}
|
|
335
343
|
export declare class ProfileError extends Error {
|
|
336
344
|
/**
|
|
337
345
|
* Underlying error that triggered this failure, when one exists
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* used throughout the Strikethroo CLI application
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.ProfileError = exports.SUPPORTED_HARNESSES = void 0;
|
|
9
|
+
exports.ProfileError = exports.FileSystemError = exports.SUPPORTED_HARNESSES = void 0;
|
|
10
10
|
/**
|
|
11
11
|
* Supported AI harnesses for task management
|
|
12
12
|
*/
|
|
@@ -24,6 +24,18 @@ exports.SUPPORTED_HARNESSES = [
|
|
|
24
24
|
* Thrown before any workspace mutation so a failed import never leaves a
|
|
25
25
|
* partially applied profile behind.
|
|
26
26
|
*/
|
|
27
|
+
/**
|
|
28
|
+
* A filesystem operation was refused because a path is not what the CLI
|
|
29
|
+
* expects on disk: a symbolic link where a regular file or directory must be,
|
|
30
|
+
* or a write that would leave its containment root.
|
|
31
|
+
*/
|
|
32
|
+
class FileSystemError extends Error {
|
|
33
|
+
constructor(message) {
|
|
34
|
+
super(message);
|
|
35
|
+
this.name = 'FileSystemError';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.FileSystemError = FileSystemError;
|
|
27
39
|
class ProfileError extends Error {
|
|
28
40
|
constructor(message, cause) {
|
|
29
41
|
super(message);
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;GAEG;AACU,QAAA,mBAAmB,GAAG;IACjC,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,UAAU;CACF,CAAC;AAgVX;;;;;GAKG;AACH,MAAa,YAAa,SAAQ,KAAK;IAOrC,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAZD,oCAYC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;GAEG;AACU,QAAA,mBAAmB,GAAG;IACjC,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,UAAU;CACF,CAAC;AAgVX;;;;;GAKG;AACH;;;;GAIG;AACH,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AALD,0CAKC;AAED,MAAa,YAAa,SAAQ,KAAK;IAOrC,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAZD,oCAYC"}
|
package/dist/update.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,aAAa,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAC;AAErE,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,qJAQ9B,CAAC;AAEX,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AACjD,eAAO,MAAM,sBAAsB,sCAAuC,CAAC;AAE3E;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAEnD;AAUD,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAoCjG;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAsI1E"}
|
package/dist/update.js
CHANGED
|
@@ -114,7 +114,21 @@ async function update(options) {
|
|
|
114
114
|
const baseDir = options.destinationDirectory || '.';
|
|
115
115
|
const resolvedBaseDir = resolvePath(baseDir);
|
|
116
116
|
const metadataPath = resolvePath(baseDir, '.ai/strikethroo/.init-metadata.json');
|
|
117
|
-
|
|
117
|
+
let existingMetadata;
|
|
118
|
+
try {
|
|
119
|
+
existingMetadata = await (0, metadata_1.loadMetadata)(metadataPath);
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
const message = error instanceof Error ? error.message : 'Failed to read workspace metadata.';
|
|
123
|
+
console.error(chalk_1.default.red(`\n✗ Update failed: ${message}\n`));
|
|
124
|
+
return {
|
|
125
|
+
success: false,
|
|
126
|
+
workspaceSuccess: false,
|
|
127
|
+
skillsSuccess: false,
|
|
128
|
+
message,
|
|
129
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
118
132
|
if (!existingMetadata) {
|
|
119
133
|
const message = 'Workspace is not initialized. Run `strikethroo init --harnesses <harnesses>` first.';
|
|
120
134
|
console.error(chalk_1.default.red(`\n✗ Update failed: ${message}\n`));
|
package/dist/update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BH,4DAEC;AAkBD,gDAoCC;AAKD,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,20 +18,12 @@
|
|
|
18
18
|
* `collectTaskReadinessIssues` — which is why naming the participating task ids
|
|
19
19
|
* in the message is the point of the check, not a nicety.
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
* `
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* Known limitation, deliberately not fixed here: that parser's `TASK_REF_RE`
|
|
29
|
-
* matches the first `Task NN` in *any* bulleted line, so ordinary prose in a
|
|
30
|
-
* blueprint bullet is indistinguishable from a phase assignment and can yield a
|
|
31
|
-
* phantom reference. Hardening it belongs to whoever deduplicates the two
|
|
32
|
-
* parsers. The `blueprint/reference-unresolved` message therefore spells the
|
|
33
|
-
* false-positive case out, so a human meets it as a known limitation instead of
|
|
34
|
-
* a mystery.
|
|
21
|
+
* The blueprint parser is `parseBlueprintPhases` in
|
|
22
|
+
* `src/skill-scripts/shared/blueprint-parse.ts`, the one implementation the
|
|
23
|
+
* viewer and the readiness check also use. Its `TASK_REF_RE` matches the first
|
|
24
|
+
* `Task NN` in any bulleted line, so prose in a blueprint bullet can yield a
|
|
25
|
+
* phantom reference; the `blueprint/reference-unresolved` message spells that
|
|
26
|
+
* case out.
|
|
35
27
|
*
|
|
36
28
|
* `findStrikethrooRoot` is never imported: it terminates the process on a
|
|
37
29
|
* schema-version mismatch. The root arrives already resolved.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-checks.d.ts","sourceRoot":"","sources":["../../src/validation/graph-checks.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"graph-checks.d.ts","sourceRoot":"","sources":["../../src/validation/graph-checks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAQH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAmUlC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAQnD"}
|
|
@@ -19,20 +19,12 @@
|
|
|
19
19
|
* `collectTaskReadinessIssues` — which is why naming the participating task ids
|
|
20
20
|
* in the message is the point of the check, not a nicety.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
* `
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* Known limitation, deliberately not fixed here: that parser's `TASK_REF_RE`
|
|
30
|
-
* matches the first `Task NN` in *any* bulleted line, so ordinary prose in a
|
|
31
|
-
* blueprint bullet is indistinguishable from a phase assignment and can yield a
|
|
32
|
-
* phantom reference. Hardening it belongs to whoever deduplicates the two
|
|
33
|
-
* parsers. The `blueprint/reference-unresolved` message therefore spells the
|
|
34
|
-
* false-positive case out, so a human meets it as a known limitation instead of
|
|
35
|
-
* a mystery.
|
|
22
|
+
* The blueprint parser is `parseBlueprintPhases` in
|
|
23
|
+
* `src/skill-scripts/shared/blueprint-parse.ts`, the one implementation the
|
|
24
|
+
* viewer and the readiness check also use. Its `TASK_REF_RE` matches the first
|
|
25
|
+
* `Task NN` in any bulleted line, so prose in a blueprint bullet can yield a
|
|
26
|
+
* phantom reference; the `blueprint/reference-unresolved` message spells that
|
|
27
|
+
* case out.
|
|
36
28
|
*
|
|
37
29
|
* `findStrikethrooRoot` is never imported: it terminates the process on a
|
|
38
30
|
* schema-version mismatch. The root arrives already resolved.
|
|
@@ -76,6 +68,7 @@ const fs = __importStar(require("fs"));
|
|
|
76
68
|
const path = __importStar(require("path"));
|
|
77
69
|
const markdown_1 = require("../serve/markdown");
|
|
78
70
|
const derivation_1 = require("../serve/derivation");
|
|
71
|
+
const blueprint_parse_1 = require("../skill-scripts/shared/blueprint-parse");
|
|
79
72
|
const plan_scan_1 = require("../skill-scripts/shared/plan-scan");
|
|
80
73
|
/** Leading `NN--` numeric prefix of a task filename — the id notion `findTaskFile` uses. */
|
|
81
74
|
const FILENAME_PREFIX_RE = /^(\d+)--/;
|
|
@@ -269,7 +262,7 @@ const dependencyFindings = (plan) => {
|
|
|
269
262
|
};
|
|
270
263
|
/** Blueprint <-> task consistency, in both directions, for one plan. */
|
|
271
264
|
const blueprintFindings = (plan) => {
|
|
272
|
-
const phases = (0,
|
|
265
|
+
const phases = (0, blueprint_parse_1.parseBlueprintPhases)(plan.body);
|
|
273
266
|
// No blueprint section (or one with no phase headings) is a legitimate state
|
|
274
267
|
// for a drafted plan, not a defect. Nothing to reconcile against.
|
|
275
268
|
if (!phases || phases.length === 0)
|