@unbrained/pm-cli 2026.7.15 → 2026.7.17
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/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +23 -2
- package/CONTRIBUTING.md +2 -2
- package/dist/cli/bootstrap-args.d.ts +2 -115
- package/dist/cli/bootstrap-args.js +4 -831
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commands/eval.d.ts +4 -64
- package/dist/cli/commands/eval.js +4 -153
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/linked-test-entry.d.ts +6 -6
- package/dist/cli/commands/linked-test-entry.js +4 -65
- package/dist/cli/commands/linked-test-entry.js.map +1 -1
- package/dist/cli/commands/linked-test-parsers.d.ts +3 -45
- package/dist/cli/commands/linked-test-parsers.js +4 -516
- package/dist/cli/commands/linked-test-parsers.js.map +1 -1
- package/dist/cli/commands/list.d.ts +3 -210
- package/dist/cli/commands/list.js +4 -1068
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/search.d.ts +3 -464
- package/dist/cli/commands/search.js +4 -2236
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/stats.d.ts +6 -66
- package/dist/cli/commands/stats.js +4 -157
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/telemetry.d.ts +6 -14
- package/dist/cli/commands/telemetry.js +4 -349
- package/dist/cli/commands/telemetry.js.map +1 -1
- package/dist/cli/commands/test-all.d.ts +6 -95
- package/dist/cli/commands/test-all.js +4 -439
- package/dist/cli/commands/test-all.js.map +1 -1
- package/dist/cli/commands/test-runs.d.ts +6 -92
- package/dist/cli/commands/test-runs.js +4 -189
- package/dist/cli/commands/test-runs.js.map +1 -1
- package/dist/cli/commands/test.d.ts +6 -244
- package/dist/cli/commands/test.js +4 -1780
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update-many.d.ts +15 -29
- package/dist/cli/commands/update-many.js +355 -259
- package/dist/cli/commands/update-many.js.map +1 -1
- package/dist/cli/main.js +140 -133
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/search-refresh.js +4 -9
- package/dist/cli/search-refresh.js.map +1 -1
- package/dist/cli/shared-parsers.d.ts +6 -9
- package/dist/cli/shared-parsers.js +4 -37
- package/dist/cli/shared-parsers.js.map +1 -1
- package/dist/cli/telemetry-flush.js +4 -4
- package/dist/cli/telemetry-flush.js.map +1 -1
- package/dist/cli-bundle/bundle-manifest.json +341 -341
- package/dist/cli-bundle/chunks/{append-OJQFUQ4T.js → append-5YF3TO7I.js} +5 -5
- package/dist/cli-bundle/chunks/append-JHO5K6RP.js +11 -0
- package/dist/cli-bundle/chunks/{chunk-WT3ZEOGH.js → chunk-23TCGBRK.js} +16 -7
- package/dist/cli-bundle/chunks/{chunk-WT3ZEOGH.js.map → chunk-23TCGBRK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-BCOFWYW4.js → chunk-2BX74BAS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-APRVSW2O.js → chunk-2CXL335K.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-KG44YSKD.js → chunk-2FUOXSRN.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-HDH3JUGG.js → chunk-2IPNL3DR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-J6364LFM.js → chunk-2MPMKJF2.js} +9 -18
- package/dist/cli-bundle/chunks/{chunk-J6364LFM.js.map → chunk-2MPMKJF2.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-GM5QHQU6.js → chunk-2XOSFSTH.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-K3WII2ME.js → chunk-37DRDP2B.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-2WSE6PO2.js → chunk-37V5MXAU.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UWQHLMEB.js → chunk-3D4YVTNG.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-PMOSXADO.js → chunk-47HXN6RX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-6CFNAVTF.js → chunk-5HGZKQUL.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-2IFFUZLC.js → chunk-5UKQLQM2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DM4H7FP4.js → chunk-633PKXLT.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-XSJUSQAE.js → chunk-646MQXFW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZI6VQWQ7.js → chunk-66MKH7SZ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-S6MQESFR.js → chunk-67RO3H4N.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-34L5OT3Y.js → chunk-6DYOZS6C.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RRM5JYJC.js → chunk-6O44IN44.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ONG5V5CI.js → chunk-6XAZB6SE.js} +97 -69
- package/dist/cli-bundle/chunks/chunk-6XAZB6SE.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-PENXZX3U.js → chunk-74FKFFXO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LPYWLWDS.js → chunk-7CTQ7WW5.js} +37 -37
- package/dist/cli-bundle/chunks/chunk-7CTQ7WW5.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HO4KXD6I.js → chunk-7H5NNCJ5.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-XXXF6PAQ.js → chunk-7LTCLTRG.js} +69 -61
- package/dist/cli-bundle/chunks/chunk-7LTCLTRG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TQSZFPIS.js → chunk-AFGKSHAM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-JXQUXVMI.js → chunk-AFSV5HBB.js} +77 -7
- package/dist/cli-bundle/chunks/{chunk-JXQUXVMI.js.map → chunk-AFSV5HBB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-6N2VXVTQ.js → chunk-ARGDWQ4J.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3U7ZR6M4.js → chunk-B57RJHBZ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-7B67ZL4N.js → chunk-B6SH2YNN.js} +75 -5
- package/dist/cli-bundle/chunks/{chunk-7B67ZL4N.js.map → chunk-B6SH2YNN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-YCQET3OT.js → chunk-BAP7G3N2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QKXHFPYM.js → chunk-BIRYX32V.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-RMLWNPH2.js → chunk-BVLOMU6O.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YBLZ2VE7.js → chunk-CFSUNEL7.js} +320 -239
- package/dist/cli-bundle/chunks/chunk-CFSUNEL7.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2VPAVL7O.js → chunk-CKX4WOPC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TKOVBP6C.js → chunk-D52ZN3BF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KPMKHGEA.js → chunk-D53RTYVI.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-ODALILG3.js → chunk-D5XHO4Q7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-E2OJMKML.js → chunk-DCC2AQBD.js} +18 -9
- package/dist/cli-bundle/chunks/{chunk-E2OJMKML.js.map → chunk-DCC2AQBD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-YAQEBNY7.js → chunk-DDFGYUCQ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-EAB64KLB.js → chunk-DG2EQRIH.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-IG3SWA4A.js → chunk-EHJFUOXL.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ONREO4ST.js → chunk-EY7ZE3TG.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-EJEXHTY5.js → chunk-FHOBCGQO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-H3EIEWGR.js → chunk-FL4D53ND.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WUJQK4YV.js → chunk-FVNWHUME.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-INU6DKT5.js → chunk-FXFCFL73.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-QEHQ2GVG.js → chunk-FY4RLHSC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-EACOH7AU.js → chunk-FZGM3PNA.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-FNSPG7MU.js → chunk-G6KM4YKY.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-AHVTB5I5.js → chunk-G6MYGULG.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-TSMHDIW4.js → chunk-GLZKZON6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2JKGO6QX.js → chunk-H5IOT54C.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5ZSLZLDN.js → chunk-HF63SBLC.js} +585 -456
- package/dist/cli-bundle/chunks/chunk-HF63SBLC.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SELVXEZK.js → chunk-HO4DLBNK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3CLU2XZO.js → chunk-HSYV4ZYT.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-EH2OPHBI.js → chunk-HTXXXF45.js} +23 -19
- package/dist/cli-bundle/chunks/chunk-HTXXXF45.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-CRVF2JDM.js → chunk-HXVHBERL.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-NU3IMIEA.js → chunk-I7DIDUSP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2NCIPMQP.js → chunk-I7GY4X6Y.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JYFOV7FC.js → chunk-IE5KRAKN.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UY2ACEMF.js → chunk-ILVOOAT4.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-GOSLKLFE.js → chunk-KH6QAHME.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-J6EY5V4N.js → chunk-KOEZCHRF.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-QKECXBBG.js → chunk-KX62NMZC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QKECXBBG.js.map → chunk-KX62NMZC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-WQPUU7XD.js → chunk-L337QKWJ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-LSG2U345.js → chunk-L6FVNR7X.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-ILX33QXL.js → chunk-LLODAQMP.js} +706 -532
- package/dist/cli-bundle/chunks/chunk-LLODAQMP.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-FMBNM2EN.js → chunk-LSOWTLEM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4223PVZT.js → chunk-M7MVOKVV.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-MNV226E4.js +834 -0
- package/dist/cli-bundle/chunks/chunk-MNV226E4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UMOPHQSU.js → chunk-MR4SHYR4.js} +41 -19
- package/dist/cli-bundle/chunks/chunk-MR4SHYR4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-BKVG6XOA.js → chunk-MSGETE6I.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-3WM75PWC.js → chunk-N33FD2UI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UFXU44HV.js → chunk-N7I2DGLP.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-3S5QVM5H.js → chunk-NCAFUBJX.js} +13 -13
- package/dist/cli-bundle/chunks/chunk-NCAFUBJX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-6S3YSUYG.js → chunk-NNANAWFH.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-IJIICKVW.js → chunk-NTRQLE2R.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SDQLJWBO.js → chunk-NVZ6NVHJ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-H2Z3FYXQ.js → chunk-OWP6QFBV.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-Q7A43DS4.js → chunk-P22HGFFI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NLDFBC6J.js → chunk-P56LKFQX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NVPZIJVR.js → chunk-PT7MCCGD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-P74IZQ7A.js → chunk-QKVVV6QO.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-5JLUII3O.js → chunk-QNUAZYGW.js} +321 -240
- package/dist/cli-bundle/chunks/chunk-QNUAZYGW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-QIPLHNP7.js → chunk-QWBKN3QC.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-7PIWCHTW.js → chunk-R5XTTZSJ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-JOUQZENX.js → chunk-RC4UOUXA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-BEP7WJA2.js → chunk-RGMWJLXF.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-NP22ERDF.js → chunk-RTBX3C4C.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-HYB5AZ63.js → chunk-S46R2M3W.js} +117 -71
- package/dist/cli-bundle/chunks/chunk-S46R2M3W.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-H5APFTHZ.js → chunk-S6FF7VW6.js} +18 -18
- package/dist/cli-bundle/chunks/chunk-S6FF7VW6.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UXONS674.js → chunk-SIJV365F.js} +54 -55
- package/dist/cli-bundle/chunks/chunk-SIJV365F.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7Z4LKRS4.js → chunk-SPFZV2GR.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-ULTHRDBP.js → chunk-TM5CIO3F.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4XQ3BDV4.js → chunk-V3VBXQQV.js} +36 -36
- package/dist/cli-bundle/chunks/chunk-V3VBXQQV.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YAROI3PD.js → chunk-V7MP6YTN.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-OW4JWD5M.js → chunk-VAHZIPWS.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-DYH63FX7.js → chunk-VE6ZSTQW.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-3AUGG2DP.js → chunk-W5E2UUSH.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-BSEQUTQP.js → chunk-WACRQ26A.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BSEQUTQP.js.map → chunk-WACRQ26A.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-UOHFKBUV.js → chunk-WL3SS45P.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QKJGPFAF.js → chunk-WU3KAN6A.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-IA5FKNII.js → chunk-X2MGQMZO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TD3LVC7D.js → chunk-X5YCTFKT.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-B7PE22W6.js → chunk-XC2HEEOV.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-J5AOEGDC.js → chunk-XNPMDSQQ.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-K2X6U4UA.js → chunk-XXLXJL7V.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-XYJK6GIQ.js +851 -0
- package/dist/cli-bundle/chunks/chunk-XYJK6GIQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RLCHOOHC.js → chunk-YJSURTBB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PGY23YTC.js → chunk-YKFHF37B.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-JFTKLTEF.js → chunk-YQCWK2MB.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-EYLCSJAI.js → chunk-YQEZWI3R.js} +2 -2
- package/dist/cli-bundle/chunks/close-BEP7MHF3.js +12 -0
- package/dist/cli-bundle/chunks/{close-CWODTPKG.js → close-Y6QFUJQN.js} +5 -5
- package/dist/cli-bundle/chunks/{close-many-CQFUY7MR.js → close-many-JJFW7KTT.js} +14 -14
- package/dist/cli-bundle/chunks/close-many-QJ6FKJUE.js +23 -0
- package/dist/cli-bundle/chunks/comments-2AOZQ5D2.js +13 -0
- package/dist/cli-bundle/chunks/{comments-WGLHR7LB.js → comments-TMHMALA5.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-LXVDXH7B.js → copy-FWQA5OU4.js} +4 -4
- package/dist/cli-bundle/chunks/copy-N3LCQBMC.js +9 -0
- package/dist/cli-bundle/chunks/{create-LBVCYMEG.js → create-AQ5SIGZC.js} +9 -9
- package/dist/cli-bundle/chunks/{create-J5U6ND4K.js → create-KOGQ3JKD.js} +9 -9
- package/dist/cli-bundle/chunks/delete-6G3MBZ6S.js +10 -0
- package/dist/cli-bundle/chunks/{delete-PMJBNY5G.js → delete-YYYFOSEA.js} +4 -4
- package/dist/cli-bundle/chunks/{deps-OA26IS25.js → deps-5NC4IZH7.js} +5 -5
- package/dist/cli-bundle/chunks/{deps-JZ7TMVCB.js → deps-EVTOQMKW.js} +5 -5
- package/dist/cli-bundle/chunks/{docs-FEWB2DQB.js → docs-53NUGMIQ.js} +6 -6
- package/dist/cli-bundle/chunks/docs-OWRGDMNY.js +14 -0
- package/dist/cli-bundle/chunks/{files-EFIWKFTM.js → files-3PXGXYDB.js} +6 -6
- package/dist/cli-bundle/chunks/{files-6YFBJRBG.js → files-EGLKHD7O.js} +6 -6
- package/dist/cli-bundle/chunks/focus-KZLIA6WS.js +10 -0
- package/dist/cli-bundle/chunks/{focus-4QJR7FOQ.js → focus-SRPASFTN.js} +5 -5
- package/dist/cli-bundle/chunks/{history-compact-CKRPDTJN.js → history-compact-G4DULDCX.js} +6 -6
- package/dist/cli-bundle/chunks/history-compact-HHIUOMZ7.js +16 -0
- package/dist/cli-bundle/chunks/{history-redact-BB3TGDAE.js → history-redact-IUSJ6X3E.js} +4 -4
- package/dist/cli-bundle/chunks/{history-redact-D225BHOZ.js → history-redact-THHGRQXV.js} +4 -4
- package/dist/cli-bundle/chunks/history-repair-KG7SWXI6.js +16 -0
- package/dist/cli-bundle/chunks/{history-repair-RQXKQHL4.js → history-repair-LUQWRS7X.js} +6 -6
- package/dist/cli-bundle/chunks/{learnings-JLNLCOL5.js → learnings-2MRNBFJF.js} +7 -7
- package/dist/cli-bundle/chunks/learnings-ZVHSALJY.js +13 -0
- package/dist/cli-bundle/chunks/{notes-GB47XXQQ.js → notes-73JWKWUD.js} +7 -7
- package/dist/cli-bundle/chunks/notes-BAKUL5DJ.js +13 -0
- package/dist/cli-bundle/chunks/{plan-VDCJ2PCN.js → plan-AZPMCG37.js} +10 -10
- package/dist/cli-bundle/chunks/plan-LEAGLPGP.js +24 -0
- package/dist/cli-bundle/chunks/{profile-IVXQEL3D.js → profile-AGUKS52S.js} +9 -9
- package/dist/cli-bundle/chunks/{profile-FAU7NZML.js → profile-U2B6Y7GE.js} +9 -9
- package/dist/cli-bundle/chunks/{register-list-query-UL4UKBBN.js → register-list-query-A5KRJ5J2.js} +16 -16
- package/dist/cli-bundle/chunks/{register-list-query-DKA3EH5D.js → register-list-query-NEYP3TXO.js} +16 -16
- package/dist/cli-bundle/chunks/{register-mutation-RBBJ52DK.js → register-mutation-6LOPBAHC.js} +29 -29
- package/dist/cli-bundle/chunks/{register-mutation-ARFHRW55.js → register-mutation-GCZOALNJ.js} +29 -29
- package/dist/cli-bundle/chunks/{register-operations-ZIBBRSED.js → register-operations-6ZZIF27A.js} +35 -35
- package/dist/cli-bundle/chunks/{register-operations-ZUJ5JWPE.js → register-operations-REDIAEGI.js} +35 -35
- package/dist/cli-bundle/chunks/{register-setup-TDCGWIOS.js → register-setup-BHPMN5SK.js} +15 -15
- package/dist/cli-bundle/chunks/{register-setup-BCVLFEYS.js → register-setup-J3JS2ZVT.js} +15 -15
- package/dist/cli-bundle/chunks/{restore-25DLT2Q2.js → restore-E3PRGDN3.js} +6 -6
- package/dist/cli-bundle/chunks/restore-KIUYTAEJ.js +14 -0
- package/dist/cli-bundle/chunks/{schema-FNU3WE4O.js → schema-5JNFQFUW.js} +6 -6
- package/dist/cli-bundle/chunks/{schema-NBCM3RAD.js → schema-TMIW4XZC.js} +6 -6
- package/dist/cli-bundle/chunks/update-PQQHLYCC.js +21 -0
- package/dist/cli-bundle/chunks/{update-XHSIAIXE.js → update-SA6AG23P.js} +12 -12
- package/dist/cli-bundle/chunks/update-many-RQVTFJPD.js +36 -0
- package/dist/cli-bundle/chunks/update-many-TV3L3KBX.js +32 -0
- package/dist/cli-bundle/main.js +153 -855
- package/dist/cli-bundle/main.js.map +4 -4
- package/dist/cli-bundle/sdk-runtime.js +54 -54
- package/dist/cli-bundle/sdk-testing.js +6 -6
- package/dist/cli-bundle/sdk.js +195 -59
- package/dist/cli-bundle/sdk.js.map +3 -3
- package/dist/core/extensions/item-fields.js +2 -2
- package/dist/core/extensions/item-fields.js.map +1 -1
- package/dist/sdk/cli-bootstrap.d.ts +122 -0
- package/dist/sdk/cli-bootstrap.js +879 -0
- package/dist/sdk/cli-bootstrap.js.map +1 -0
- package/dist/sdk/eval.d.ts +66 -0
- package/dist/sdk/eval.js +186 -0
- package/dist/sdk/eval.js.map +1 -0
- package/dist/sdk/index.d.ts +16 -4
- package/dist/sdk/index.js +18 -6
- package/dist/sdk/index.js.map +1 -1
- package/dist/{cli/commands → sdk/query}/item-filter-options.d.ts +1 -1
- package/dist/{cli/commands → sdk/query}/item-filter-options.js +3 -3
- package/dist/sdk/query/item-filter-options.js.map +1 -0
- package/dist/sdk/query/list.d.ts +254 -0
- package/dist/sdk/query/list.js +1073 -0
- package/dist/sdk/query/list.js.map +1 -0
- package/dist/sdk/query/parsers.d.ts +9 -0
- package/dist/sdk/query/parsers.js +45 -0
- package/dist/sdk/query/parsers.js.map +1 -0
- package/dist/{cli/commands → sdk/query}/search-pagination.js +4 -4
- package/dist/sdk/query/search-pagination.js.map +1 -0
- package/dist/{cli/commands → sdk/query}/search-rendering.js +3 -3
- package/dist/sdk/query/search-rendering.js.map +1 -0
- package/dist/sdk/query/search.d.ts +469 -0
- package/dist/sdk/query/search.js +2247 -0
- package/dist/sdk/query/search.js.map +1 -0
- package/dist/sdk/runtime.d.ts +7 -7
- package/dist/sdk/runtime.js +13 -7
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/search-refresh-worker.d.ts +2 -0
- package/dist/sdk/search-refresh-worker.js +19 -0
- package/dist/sdk/search-refresh-worker.js.map +1 -0
- package/dist/sdk/stats.d.ts +66 -0
- package/dist/sdk/stats.js +151 -0
- package/dist/sdk/stats.js.map +1 -0
- package/dist/sdk/telemetry-flush.d.ts +2 -0
- package/dist/sdk/telemetry-flush.js +14 -0
- package/dist/sdk/telemetry-flush.js.map +1 -0
- package/dist/sdk/telemetry.d.ts +14 -0
- package/dist/sdk/telemetry.js +398 -0
- package/dist/sdk/telemetry.js.map +1 -0
- package/dist/sdk/test/batch.d.ts +94 -0
- package/dist/sdk/test/batch.js +492 -0
- package/dist/sdk/test/batch.js.map +1 -0
- package/dist/sdk/test/entry.d.ts +6 -0
- package/dist/sdk/test/entry.js +74 -0
- package/dist/sdk/test/entry.js.map +1 -0
- package/dist/sdk/test/execution.d.ts +282 -0
- package/dist/sdk/test/execution.js +1817 -0
- package/dist/sdk/test/execution.js.map +1 -0
- package/dist/sdk/test/parsers.d.ts +48 -0
- package/dist/sdk/test/parsers.js +522 -0
- package/dist/sdk/test/parsers.js.map +1 -0
- package/dist/sdk/test/runs.d.ts +92 -0
- package/dist/sdk/test/runs.js +195 -0
- package/dist/sdk/test/runs.js.map +1 -0
- package/docs/SDK.md +122 -0
- package/docs/SDK_PRIMITIVE_INVENTORY.md +5 -3
- package/docs/examples/sdk-custom-tool/README.md +27 -0
- package/docs/examples/sdk-custom-tool/package.json +13 -0
- package/docs/examples/sdk-custom-tool/src/cli.ts +36 -0
- package/docs/examples/sdk-custom-tool/src/entry.ts +15 -0
- package/docs/examples/sdk-custom-tool/src/index.ts +223 -0
- package/marketplace.json +2 -2
- package/package.json +4 -4
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-governance-audit/extensions/governance-audit/comments-audit.ts +77 -57
- package/packages/pm-governance-audit/extensions/governance-audit/dedupe-audit.ts +202 -194
- package/packages/pm-governance-audit/extensions/governance-audit/dedupe-merge.ts +227 -153
- package/packages/pm-governance-audit/extensions/governance-audit/normalize.ts +169 -125
- package/packages/pm-governance-audit/extensions/governance-audit/runtime-utils.ts +130 -81
- package/packages/pm-governance-audit/extensions/governance-audit/sdk.ts +53 -4
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/dist/cli/commands/item-filter-options.js.map +0 -1
- package/dist/cli/commands/search-pagination.js.map +0 -1
- package/dist/cli/commands/search-rendering.js.map +0 -1
- package/dist/cli-bundle/chunks/append-UZVHUO74.js +0 -11
- package/dist/cli-bundle/chunks/chunk-3S5QVM5H.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-4XQ3BDV4.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5JLUII3O.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5ZSLZLDN.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-EH2OPHBI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-H5APFTHZ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HYB5AZ63.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ILX33QXL.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-LPYWLWDS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ONG5V5CI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UMOPHQSU.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-UXONS674.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-XXXF6PAQ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-YBLZ2VE7.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-YXSHIAUJ.js +0 -58
- package/dist/cli-bundle/chunks/chunk-YXSHIAUJ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ZKRZY773.js +0 -68
- package/dist/cli-bundle/chunks/chunk-ZKRZY773.js.map +0 -7
- package/dist/cli-bundle/chunks/close-W6LI2PKM.js +0 -12
- package/dist/cli-bundle/chunks/close-many-DLDDVSH5.js +0 -23
- package/dist/cli-bundle/chunks/comments-E3TNTK24.js +0 -13
- package/dist/cli-bundle/chunks/copy-Q5ZJPUKR.js +0 -9
- package/dist/cli-bundle/chunks/delete-WNHB3LYW.js +0 -10
- package/dist/cli-bundle/chunks/docs-HA2AIDBB.js +0 -14
- package/dist/cli-bundle/chunks/focus-POIW5LTJ.js +0 -10
- package/dist/cli-bundle/chunks/history-compact-FWG2C7FZ.js +0 -16
- package/dist/cli-bundle/chunks/history-repair-6GEAM7HE.js +0 -16
- package/dist/cli-bundle/chunks/learnings-RSNLSWDC.js +0 -13
- package/dist/cli-bundle/chunks/notes-2WDH6DXU.js +0 -13
- package/dist/cli-bundle/chunks/plan-DOVI2VMW.js +0 -24
- package/dist/cli-bundle/chunks/restore-YPMVUUEX.js +0 -14
- package/dist/cli-bundle/chunks/update-WWBYOPXO.js +0 -21
- package/dist/cli-bundle/chunks/update-many-OUGIU5SF.js +0 -32
- package/dist/cli-bundle/chunks/update-many-TA7NGQBO.js +0 -36
- /package/dist/cli-bundle/chunks/{append-OJQFUQ4T.js.map → append-5YF3TO7I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-UZVHUO74.js.map → append-JHO5K6RP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BCOFWYW4.js.map → chunk-2BX74BAS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-APRVSW2O.js.map → chunk-2CXL335K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KG44YSKD.js.map → chunk-2FUOXSRN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HDH3JUGG.js.map → chunk-2IPNL3DR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GM5QHQU6.js.map → chunk-2XOSFSTH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K3WII2ME.js.map → chunk-37DRDP2B.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2WSE6PO2.js.map → chunk-37V5MXAU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UWQHLMEB.js.map → chunk-3D4YVTNG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PMOSXADO.js.map → chunk-47HXN6RX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6CFNAVTF.js.map → chunk-5HGZKQUL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2IFFUZLC.js.map → chunk-5UKQLQM2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DM4H7FP4.js.map → chunk-633PKXLT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XSJUSQAE.js.map → chunk-646MQXFW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZI6VQWQ7.js.map → chunk-66MKH7SZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S6MQESFR.js.map → chunk-67RO3H4N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-34L5OT3Y.js.map → chunk-6DYOZS6C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RRM5JYJC.js.map → chunk-6O44IN44.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PENXZX3U.js.map → chunk-74FKFFXO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HO4KXD6I.js.map → chunk-7H5NNCJ5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TQSZFPIS.js.map → chunk-AFGKSHAM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6N2VXVTQ.js.map → chunk-ARGDWQ4J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3U7ZR6M4.js.map → chunk-B57RJHBZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YCQET3OT.js.map → chunk-BAP7G3N2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QKXHFPYM.js.map → chunk-BIRYX32V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RMLWNPH2.js.map → chunk-BVLOMU6O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2VPAVL7O.js.map → chunk-CKX4WOPC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TKOVBP6C.js.map → chunk-D52ZN3BF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KPMKHGEA.js.map → chunk-D53RTYVI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ODALILG3.js.map → chunk-D5XHO4Q7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YAQEBNY7.js.map → chunk-DDFGYUCQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EAB64KLB.js.map → chunk-DG2EQRIH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IG3SWA4A.js.map → chunk-EHJFUOXL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ONREO4ST.js.map → chunk-EY7ZE3TG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EJEXHTY5.js.map → chunk-FHOBCGQO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H3EIEWGR.js.map → chunk-FL4D53ND.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WUJQK4YV.js.map → chunk-FVNWHUME.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-INU6DKT5.js.map → chunk-FXFCFL73.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QEHQ2GVG.js.map → chunk-FY4RLHSC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EACOH7AU.js.map → chunk-FZGM3PNA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FNSPG7MU.js.map → chunk-G6KM4YKY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AHVTB5I5.js.map → chunk-G6MYGULG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TSMHDIW4.js.map → chunk-GLZKZON6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2JKGO6QX.js.map → chunk-H5IOT54C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SELVXEZK.js.map → chunk-HO4DLBNK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3CLU2XZO.js.map → chunk-HSYV4ZYT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CRVF2JDM.js.map → chunk-HXVHBERL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NU3IMIEA.js.map → chunk-I7DIDUSP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2NCIPMQP.js.map → chunk-I7GY4X6Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JYFOV7FC.js.map → chunk-IE5KRAKN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UY2ACEMF.js.map → chunk-ILVOOAT4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GOSLKLFE.js.map → chunk-KH6QAHME.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J6EY5V4N.js.map → chunk-KOEZCHRF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WQPUU7XD.js.map → chunk-L337QKWJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LSG2U345.js.map → chunk-L6FVNR7X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FMBNM2EN.js.map → chunk-LSOWTLEM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4223PVZT.js.map → chunk-M7MVOKVV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BKVG6XOA.js.map → chunk-MSGETE6I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3WM75PWC.js.map → chunk-N33FD2UI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UFXU44HV.js.map → chunk-N7I2DGLP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6S3YSUYG.js.map → chunk-NNANAWFH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IJIICKVW.js.map → chunk-NTRQLE2R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SDQLJWBO.js.map → chunk-NVZ6NVHJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H2Z3FYXQ.js.map → chunk-OWP6QFBV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q7A43DS4.js.map → chunk-P22HGFFI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NLDFBC6J.js.map → chunk-P56LKFQX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NVPZIJVR.js.map → chunk-PT7MCCGD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P74IZQ7A.js.map → chunk-QKVVV6QO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QIPLHNP7.js.map → chunk-QWBKN3QC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7PIWCHTW.js.map → chunk-R5XTTZSJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JOUQZENX.js.map → chunk-RC4UOUXA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BEP7WJA2.js.map → chunk-RGMWJLXF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NP22ERDF.js.map → chunk-RTBX3C4C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7Z4LKRS4.js.map → chunk-SPFZV2GR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ULTHRDBP.js.map → chunk-TM5CIO3F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YAROI3PD.js.map → chunk-V7MP6YTN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OW4JWD5M.js.map → chunk-VAHZIPWS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DYH63FX7.js.map → chunk-VE6ZSTQW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3AUGG2DP.js.map → chunk-W5E2UUSH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UOHFKBUV.js.map → chunk-WL3SS45P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QKJGPFAF.js.map → chunk-WU3KAN6A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IA5FKNII.js.map → chunk-X2MGQMZO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TD3LVC7D.js.map → chunk-X5YCTFKT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B7PE22W6.js.map → chunk-XC2HEEOV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J5AOEGDC.js.map → chunk-XNPMDSQQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K2X6U4UA.js.map → chunk-XXLXJL7V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RLCHOOHC.js.map → chunk-YJSURTBB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PGY23YTC.js.map → chunk-YKFHF37B.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JFTKLTEF.js.map → chunk-YQCWK2MB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EYLCSJAI.js.map → chunk-YQEZWI3R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-W6LI2PKM.js.map → close-BEP7MHF3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-CWODTPKG.js.map → close-Y6QFUJQN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-CQFUY7MR.js.map → close-many-JJFW7KTT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-DLDDVSH5.js.map → close-many-QJ6FKJUE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-E3TNTK24.js.map → comments-2AOZQ5D2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-WGLHR7LB.js.map → comments-TMHMALA5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-LXVDXH7B.js.map → copy-FWQA5OU4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-Q5ZJPUKR.js.map → copy-N3LCQBMC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-LBVCYMEG.js.map → create-AQ5SIGZC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-J5U6ND4K.js.map → create-KOGQ3JKD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-WNHB3LYW.js.map → delete-6G3MBZ6S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-PMJBNY5G.js.map → delete-YYYFOSEA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-OA26IS25.js.map → deps-5NC4IZH7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-JZ7TMVCB.js.map → deps-EVTOQMKW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-FEWB2DQB.js.map → docs-53NUGMIQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-HA2AIDBB.js.map → docs-OWRGDMNY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-EFIWKFTM.js.map → files-3PXGXYDB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-6YFBJRBG.js.map → files-EGLKHD7O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-POIW5LTJ.js.map → focus-KZLIA6WS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-4QJR7FOQ.js.map → focus-SRPASFTN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-CKRPDTJN.js.map → history-compact-G4DULDCX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-FWG2C7FZ.js.map → history-compact-HHIUOMZ7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-BB3TGDAE.js.map → history-redact-IUSJ6X3E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-D225BHOZ.js.map → history-redact-THHGRQXV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-6GEAM7HE.js.map → history-repair-KG7SWXI6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-RQXKQHL4.js.map → history-repair-LUQWRS7X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-JLNLCOL5.js.map → learnings-2MRNBFJF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-RSNLSWDC.js.map → learnings-ZVHSALJY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-GB47XXQQ.js.map → notes-73JWKWUD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-2WDH6DXU.js.map → notes-BAKUL5DJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-VDCJ2PCN.js.map → plan-AZPMCG37.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-DOVI2VMW.js.map → plan-LEAGLPGP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-IVXQEL3D.js.map → profile-AGUKS52S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-FAU7NZML.js.map → profile-U2B6Y7GE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-UL4UKBBN.js.map → register-list-query-A5KRJ5J2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-DKA3EH5D.js.map → register-list-query-NEYP3TXO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-RBBJ52DK.js.map → register-mutation-6LOPBAHC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-ARFHRW55.js.map → register-mutation-GCZOALNJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-ZIBBRSED.js.map → register-operations-6ZZIF27A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-ZUJ5JWPE.js.map → register-operations-REDIAEGI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-TDCGWIOS.js.map → register-setup-BHPMN5SK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-BCVLFEYS.js.map → register-setup-J3JS2ZVT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-25DLT2Q2.js.map → restore-E3PRGDN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-YPMVUUEX.js.map → restore-KIUYTAEJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-FNU3WE4O.js.map → schema-5JNFQFUW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-NBCM3RAD.js.map → schema-TMIW4XZC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-WWBYOPXO.js.map → update-PQQHLYCC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-XHSIAIXE.js.map → update-SA6AG23P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-TA7NGQBO.js.map → update-many-RQVTFJPD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-OUGIU5SF.js.map → update-many-TV3L3KBX.js.map} +0 -0
- /package/dist/{cli/commands → sdk/query}/search-pagination.d.ts +0 -0
- /package/dist/{cli/commands → sdk/query}/search-rendering.d.ts +0 -0
|
@@ -1,837 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module cli/bootstrap-args
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Preserves the CLI compatibility path for SDK-owned bootstrap primitives.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
8
|
-
|
|
9
|
-
export { EXECUTABLE_COMMAND_ALIASES };
|
|
10
|
-
import { levenshteinDistanceWithinLimit } from "../core/shared/levenshtein.js";
|
|
11
|
-
const GLOBAL_VALUE_CONSUMING_FLAGS = new Set([
|
|
12
|
-
"--pm-path",
|
|
13
|
-
"--path",
|
|
14
|
-
"--author",
|
|
15
|
-
]);
|
|
16
|
-
/** Whether a global value-consuming flag uses its inline `--flag=value` form. */
|
|
17
|
-
const isInlineGlobalValueToken = (token) => {
|
|
18
|
-
const equalsIndex = token.indexOf("=");
|
|
19
|
-
return (equalsIndex > 0 &&
|
|
20
|
-
GLOBAL_VALUE_CONSUMING_FLAGS.has(token.slice(0, equalsIndex)));
|
|
21
|
-
};
|
|
22
|
-
/** Whether optional bootstrap author syntax consumes the following token. */
|
|
23
|
-
const consumesBootstrapAuthorValue = (next) => {
|
|
24
|
-
return typeof next === "string" && !next.startsWith("-");
|
|
25
|
-
};
|
|
26
|
-
function parseBootstrapPathToken(token, next) {
|
|
27
|
-
if (token === "--path" || token === "--pm-path") {
|
|
28
|
-
if (typeof next === "string" && next.length > 0) {
|
|
29
|
-
return {
|
|
30
|
-
consumed: 2,
|
|
31
|
-
pathValue: next,
|
|
32
|
-
preferred: token === "--pm-path",
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
consumed: 1,
|
|
37
|
-
preferred: token === "--pm-path",
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
const inlinePrefix = token.startsWith("--path=")
|
|
41
|
-
? "--path="
|
|
42
|
-
: token.startsWith("--pm-path=")
|
|
43
|
-
? "--pm-path="
|
|
44
|
-
: undefined;
|
|
45
|
-
if (!inlinePrefix) {
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
const value = token.slice(inlinePrefix.length);
|
|
49
|
-
if (value.length > 0) {
|
|
50
|
-
return {
|
|
51
|
-
consumed: 1,
|
|
52
|
-
pathValue: value,
|
|
53
|
-
preferred: inlinePrefix === "--pm-path=",
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
consumed: 1,
|
|
58
|
-
preferred: inlinePrefix === "--pm-path=",
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
/** Implements parse bootstrap global options for the public runtime surface of this module. */
|
|
62
|
-
export function parseBootstrapGlobalOptions(argv) {
|
|
63
|
-
let legacyPathValue;
|
|
64
|
-
let pmPathValue;
|
|
65
|
-
let noExtensions = false;
|
|
66
|
-
let noPager = false;
|
|
67
|
-
let json = false;
|
|
68
|
-
let quiet = false;
|
|
69
|
-
let author;
|
|
70
|
-
let authorMissingValue = false;
|
|
71
|
-
let index = 0;
|
|
72
|
-
while (index < argv.length) {
|
|
73
|
-
const token = argv[index];
|
|
74
|
-
if (token === "--") {
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
if (token === "--no-extensions") {
|
|
78
|
-
noExtensions = true;
|
|
79
|
-
index += 1;
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
if (token === "--no-pager") {
|
|
83
|
-
noPager = true;
|
|
84
|
-
index += 1;
|
|
85
|
-
continue;
|
|
86
|
-
}
|
|
87
|
-
if (token === "--json") {
|
|
88
|
-
json = true;
|
|
89
|
-
index += 1;
|
|
90
|
-
continue;
|
|
91
|
-
}
|
|
92
|
-
if (token === "--quiet") {
|
|
93
|
-
quiet = true;
|
|
94
|
-
index += 1;
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
97
|
-
const parsedPath = parseBootstrapPathToken(token, argv[index + 1]);
|
|
98
|
-
if (parsedPath) {
|
|
99
|
-
if (parsedPath.pathValue !== undefined) {
|
|
100
|
-
if (parsedPath.preferred) {
|
|
101
|
-
pmPathValue = parsedPath.pathValue;
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
legacyPathValue = parsedPath.pathValue;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
index += parsedPath.consumed;
|
|
108
|
-
continue;
|
|
109
|
-
}
|
|
110
|
-
if (token === "--author") {
|
|
111
|
-
if (consumesBootstrapAuthorValue(argv[index + 1])) {
|
|
112
|
-
author = argv[index + 1];
|
|
113
|
-
index += 2;
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
authorMissingValue = true;
|
|
117
|
-
index += 1;
|
|
118
|
-
}
|
|
119
|
-
continue;
|
|
120
|
-
}
|
|
121
|
-
if (token.startsWith("--author=")) {
|
|
122
|
-
author = token.slice("--author=".length);
|
|
123
|
-
index += 1;
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
index += 1;
|
|
127
|
-
}
|
|
128
|
-
return {
|
|
129
|
-
path: pmPathValue ?? legacyPathValue,
|
|
130
|
-
noExtensions,
|
|
131
|
-
noPager,
|
|
132
|
-
json,
|
|
133
|
-
quiet,
|
|
134
|
-
...(author !== undefined ? { author } : {}),
|
|
135
|
-
...(authorMissingValue ? { authorMissingValue: true } : {}),
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
/** Implements strip global bootstrap tokens for the public runtime surface of this module. */
|
|
139
|
-
export function stripGlobalBootstrapTokens(argv) {
|
|
140
|
-
const remaining = [];
|
|
141
|
-
let index = 0;
|
|
142
|
-
while (index < argv.length) {
|
|
143
|
-
const token = argv[index];
|
|
144
|
-
if (token === "--") {
|
|
145
|
-
break;
|
|
146
|
-
}
|
|
147
|
-
if (token === "--json" ||
|
|
148
|
-
token === "--quiet" ||
|
|
149
|
-
token === "--no-extensions" ||
|
|
150
|
-
token === "--no-pager" ||
|
|
151
|
-
token === "--profile" ||
|
|
152
|
-
token === "--id-only" ||
|
|
153
|
-
token === "--explain") {
|
|
154
|
-
index += 1;
|
|
155
|
-
continue;
|
|
156
|
-
}
|
|
157
|
-
if (token === "--author") {
|
|
158
|
-
index += consumesBootstrapAuthorValue(argv[index + 1]) ? 2 : 1;
|
|
159
|
-
continue;
|
|
160
|
-
}
|
|
161
|
-
if (GLOBAL_VALUE_CONSUMING_FLAGS.has(token)) {
|
|
162
|
-
index += 2;
|
|
163
|
-
continue;
|
|
164
|
-
}
|
|
165
|
-
if (isInlineGlobalValueToken(token)) {
|
|
166
|
-
index += 1;
|
|
167
|
-
continue;
|
|
168
|
-
}
|
|
169
|
-
remaining.push(token);
|
|
170
|
-
index += 1;
|
|
171
|
-
}
|
|
172
|
-
return remaining;
|
|
173
|
-
}
|
|
174
|
-
/** Implements parse bootstrap help request for the public runtime surface of this module. */
|
|
175
|
-
export function parseBootstrapHelpRequest(argv) {
|
|
176
|
-
const stripped = stripGlobalBootstrapTokens(argv);
|
|
177
|
-
const first = stripped[0]?.trim().toLowerCase();
|
|
178
|
-
if (first === "help") {
|
|
179
|
-
const commandPathTokens = [];
|
|
180
|
-
for (let index = 1; index < stripped.length; index += 1) {
|
|
181
|
-
const token = stripped[index];
|
|
182
|
-
if (token.startsWith("-")) {
|
|
183
|
-
break;
|
|
184
|
-
}
|
|
185
|
-
commandPathTokens.push(token.trim().toLowerCase());
|
|
186
|
-
}
|
|
187
|
-
return {
|
|
188
|
-
requested: true,
|
|
189
|
-
commandPathTokens,
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
const helpFlagIndex = stripped.findIndex((token) => token === "--help" || token === "-h");
|
|
193
|
-
if (helpFlagIndex < 0) {
|
|
194
|
-
return {
|
|
195
|
-
requested: false,
|
|
196
|
-
commandPathTokens: [],
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
const commandPathTokens = [];
|
|
200
|
-
for (const token of stripped) {
|
|
201
|
-
if (token.startsWith("-")) {
|
|
202
|
-
break;
|
|
203
|
-
}
|
|
204
|
-
commandPathTokens.push(token.trim().toLowerCase());
|
|
205
|
-
}
|
|
206
|
-
return {
|
|
207
|
-
requested: true,
|
|
208
|
-
commandPathTokens,
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Index of the command token in argv — the first non-flag token, skipping the
|
|
213
|
-
* value-consuming/global bootstrap flags. Returns undefined when there is none
|
|
214
|
-
* (bare invocation, only global flags, or a leading `--`). Single source of truth
|
|
215
|
-
* for command-position scanning shared by {@link parseBootstrapCommandName} and the
|
|
216
|
-
* command-alias rewrite so their precedence rules can never drift apart.
|
|
217
|
-
*/
|
|
218
|
-
function findCommandTokenIndex(argv) {
|
|
219
|
-
for (let index = 0; index < argv.length; index += 1) {
|
|
220
|
-
const token = argv[index];
|
|
221
|
-
if (token === "--") {
|
|
222
|
-
return undefined;
|
|
223
|
-
}
|
|
224
|
-
if (token === "--author") {
|
|
225
|
-
index += consumesBootstrapAuthorValue(argv[index + 1]) ? 1 : 0;
|
|
226
|
-
continue;
|
|
227
|
-
}
|
|
228
|
-
if (GLOBAL_VALUE_CONSUMING_FLAGS.has(token)) {
|
|
229
|
-
index += 1;
|
|
230
|
-
continue;
|
|
231
|
-
}
|
|
232
|
-
if (isInlineGlobalValueToken(token) ||
|
|
233
|
-
token === "--json" ||
|
|
234
|
-
token === "--quiet" ||
|
|
235
|
-
token === "--no-extensions" ||
|
|
236
|
-
token === "--no-pager" ||
|
|
237
|
-
token === "--profile" ||
|
|
238
|
-
token === "--id-only" ||
|
|
239
|
-
token === "--explain") {
|
|
240
|
-
continue;
|
|
241
|
-
}
|
|
242
|
-
if (token.startsWith("-")) {
|
|
243
|
-
continue;
|
|
244
|
-
}
|
|
245
|
-
return index;
|
|
246
|
-
}
|
|
247
|
-
return undefined;
|
|
248
|
-
}
|
|
249
|
-
/** Implements parse bootstrap command name for the public runtime surface of this module. */
|
|
250
|
-
export function parseBootstrapCommandName(argv) {
|
|
251
|
-
const index = findCommandTokenIndex(argv);
|
|
252
|
-
return index === undefined ? undefined : argv[index].trim().toLowerCase();
|
|
253
|
-
}
|
|
254
|
-
function shouldDisablePagerForInvocation(argv, bootstrapGlobal) {
|
|
255
|
-
if (bootstrapGlobal.noPager) {
|
|
256
|
-
return true;
|
|
257
|
-
}
|
|
258
|
-
if (process.stdout.isTTY === true) {
|
|
259
|
-
return false;
|
|
260
|
-
}
|
|
261
|
-
const helpRequest = parseBootstrapHelpRequest(argv);
|
|
262
|
-
return helpRequest.requested;
|
|
263
|
-
}
|
|
264
|
-
/** Implements apply bootstrap pager policy for the public runtime surface of this module. */
|
|
265
|
-
export function applyBootstrapPagerPolicy(argv) {
|
|
266
|
-
const bootstrapGlobal = parseBootstrapGlobalOptions(argv);
|
|
267
|
-
if (!shouldDisablePagerForInvocation(argv, bootstrapGlobal)) {
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
process.env.PAGER = "cat";
|
|
271
|
-
process.env.MANPAGER = "cat";
|
|
272
|
-
process.env.GIT_PAGER = "cat";
|
|
273
|
-
if (typeof process.env.LESS !== "string" ||
|
|
274
|
-
process.env.LESS.trim().length === 0) {
|
|
275
|
-
process.env.LESS = "FRX";
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
const EXTENSION_ACTION_SYNTAX_TOKENS = new Set([
|
|
279
|
-
"install",
|
|
280
|
-
"uninstall",
|
|
281
|
-
"explore",
|
|
282
|
-
"manage",
|
|
283
|
-
"doctor",
|
|
284
|
-
"adopt",
|
|
285
|
-
"adopt-all",
|
|
286
|
-
"activate",
|
|
287
|
-
"deactivate",
|
|
288
|
-
]);
|
|
289
|
-
/** Implements normalize legacy extension action syntax for the public runtime surface of this module. */
|
|
290
|
-
export function normalizeLegacyExtensionActionSyntax(argv) {
|
|
291
|
-
const extensionIndex = argv.findIndex((token) => token === "extension");
|
|
292
|
-
if (extensionIndex < 0) {
|
|
293
|
-
return [...argv];
|
|
294
|
-
}
|
|
295
|
-
const actionToken = argv[extensionIndex + 1];
|
|
296
|
-
if (!actionToken || actionToken.startsWith("-")) {
|
|
297
|
-
return [...argv];
|
|
298
|
-
}
|
|
299
|
-
if (!EXTENSION_ACTION_SYNTAX_TOKENS.has(actionToken)) {
|
|
300
|
-
return [...argv];
|
|
301
|
-
}
|
|
302
|
-
if (argv.includes("--help") || argv.includes("-h")) {
|
|
303
|
-
return [...argv];
|
|
304
|
-
}
|
|
305
|
-
const forcedActionFlag = `--${actionToken}`;
|
|
306
|
-
if (argv.includes(forcedActionFlag)) {
|
|
307
|
-
return [...argv];
|
|
308
|
-
}
|
|
309
|
-
return [
|
|
310
|
-
...argv.slice(0, extensionIndex + 1),
|
|
311
|
-
forcedActionFlag,
|
|
312
|
-
...argv.slice(extensionIndex + 2),
|
|
313
|
-
];
|
|
314
|
-
}
|
|
315
|
-
/** Executable command aliases: a leading command token here is rewritten to its canonical command BEFORE commander parses, so the alias actually runs instead of merely being suggested. These are the highest-frequency aliases real agents type (telemetry: `pm show <id>` alone is the single most common unknown-command) and each target takes the same positional/flags as the alias (with `--comment`/ `--note`/`--learning` flag-aliased to `--add` on the target command). Keeping this in one place means the alias is consistent across registration, commander dispatch, telemetry, and error handling — all of which read the normalized argv. */
|
|
316
|
-
/**
|
|
317
|
-
* Rewrite a leading command-alias token (e.g. `show` -> `get`) in place. Only the
|
|
318
|
-
* command position is considered — the same token appearing later as an argument
|
|
319
|
-
* (`pm get show`) is left untouched — and only when it is not preceded by `--` or a
|
|
320
|
-
* value-consuming global flag, mirroring {@link parseBootstrapCommandName}.
|
|
321
|
-
*/
|
|
322
|
-
function rewriteCommandAlias(argv, trace) {
|
|
323
|
-
const index = findCommandTokenIndex(argv);
|
|
324
|
-
if (index === undefined) {
|
|
325
|
-
return argv;
|
|
326
|
-
}
|
|
327
|
-
const token = argv[index];
|
|
328
|
-
const canonical = EXECUTABLE_COMMAND_ALIASES[token.trim().toLowerCase()];
|
|
329
|
-
if (!canonical) {
|
|
330
|
-
return argv;
|
|
331
|
-
}
|
|
332
|
-
const rewritten = [...argv];
|
|
333
|
-
rewritten[index] = canonical;
|
|
334
|
-
trace.push({
|
|
335
|
-
from: token,
|
|
336
|
-
to: [canonical],
|
|
337
|
-
reason: "command_alias",
|
|
338
|
-
confidence: "high",
|
|
339
|
-
});
|
|
340
|
-
return rewritten;
|
|
341
|
-
}
|
|
342
|
-
function normalizeFlagKeyToken(raw) {
|
|
343
|
-
const withoutPrefix = raw.replace(/^--?/, "");
|
|
344
|
-
return withoutPrefix
|
|
345
|
-
.replace(/_/g, "-")
|
|
346
|
-
.replace(/([a-z0-9])([A-Z])/g, "$1-$2")
|
|
347
|
-
.toLowerCase();
|
|
348
|
-
}
|
|
349
|
-
function toComparableFlagKey(raw) {
|
|
350
|
-
return normalizeFlagKeyToken(raw).replace(/-/g, "");
|
|
351
|
-
}
|
|
352
|
-
function markUnambiguousFlag(map, key, canonicalFlag) {
|
|
353
|
-
const existing = map.get(key);
|
|
354
|
-
if (existing === undefined) {
|
|
355
|
-
map.set(key, canonicalFlag);
|
|
356
|
-
return;
|
|
357
|
-
}
|
|
358
|
-
if (existing !== canonicalFlag) {
|
|
359
|
-
map.set(key, null);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
function collectLongFlagCandidates(contract) {
|
|
363
|
-
const candidates = [];
|
|
364
|
-
const pushLongFlag = (value) => {
|
|
365
|
-
if (typeof value !== "string") {
|
|
366
|
-
return;
|
|
367
|
-
}
|
|
368
|
-
if (!value.startsWith("--")) {
|
|
369
|
-
return;
|
|
370
|
-
}
|
|
371
|
-
candidates.push(value);
|
|
372
|
-
};
|
|
373
|
-
pushLongFlag(contract.flag);
|
|
374
|
-
for (const alias of contract.aliases ?? []) {
|
|
375
|
-
pushLongFlag(alias);
|
|
376
|
-
}
|
|
377
|
-
return candidates;
|
|
378
|
-
}
|
|
379
|
-
function buildFlagLookup(commandName, contractsOverride) {
|
|
380
|
-
const contracts = contractsOverride ?? resolveSubcommandFlagContractsForCommand(commandName);
|
|
381
|
-
const canonicalByNormalized = new Map();
|
|
382
|
-
const canonicalByCompact = new Map();
|
|
383
|
-
const canonicalComparablesMap = new Map();
|
|
384
|
-
const listCanonicalFlags = new Set();
|
|
385
|
-
for (const contract of contracts) {
|
|
386
|
-
const longCandidates = collectLongFlagCandidates(contract);
|
|
387
|
-
if (longCandidates.length === 0) {
|
|
388
|
-
continue;
|
|
389
|
-
}
|
|
390
|
-
const canonicalFlag = `--${normalizeFlagKeyToken(longCandidates[0])}`;
|
|
391
|
-
for (const candidate of longCandidates) {
|
|
392
|
-
markUnambiguousFlag(canonicalByNormalized, normalizeFlagKeyToken(candidate), canonicalFlag);
|
|
393
|
-
markUnambiguousFlag(canonicalByCompact, toComparableFlagKey(candidate), canonicalFlag);
|
|
394
|
-
}
|
|
395
|
-
const comparable = toComparableFlagKey(canonicalFlag);
|
|
396
|
-
if (!canonicalComparablesMap.has(canonicalFlag)) {
|
|
397
|
-
canonicalComparablesMap.set(canonicalFlag, comparable);
|
|
398
|
-
}
|
|
399
|
-
if (contract.list === true) {
|
|
400
|
-
listCanonicalFlags.add(canonicalFlag);
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
return {
|
|
404
|
-
canonicalByNormalized,
|
|
405
|
-
canonicalByCompact,
|
|
406
|
-
canonicalComparables: [...canonicalComparablesMap.entries()].map(([canonicalFlag, comparable]) => ({
|
|
407
|
-
canonicalFlag,
|
|
408
|
-
comparable,
|
|
409
|
-
})),
|
|
410
|
-
listCanonicalFlags,
|
|
411
|
-
};
|
|
412
|
-
}
|
|
413
|
-
function resolveCanonicalFlag(rawKey, lookup) {
|
|
414
|
-
const normalizedKey = normalizeFlagKeyToken(rawKey);
|
|
415
|
-
const direct = lookup.canonicalByNormalized.get(normalizedKey);
|
|
416
|
-
if (typeof direct === "string") {
|
|
417
|
-
return {
|
|
418
|
-
flag: direct,
|
|
419
|
-
reason: "flag_alias",
|
|
420
|
-
confidence: "high",
|
|
421
|
-
};
|
|
422
|
-
}
|
|
423
|
-
const comparableKey = normalizedKey.replace(/-/g, "");
|
|
424
|
-
const compactMatch = lookup.canonicalByCompact.get(comparableKey);
|
|
425
|
-
if (typeof compactMatch === "string") {
|
|
426
|
-
return {
|
|
427
|
-
flag: compactMatch,
|
|
428
|
-
reason: "flag_alias",
|
|
429
|
-
confidence: "high",
|
|
430
|
-
};
|
|
431
|
-
}
|
|
432
|
-
const maxDistance = comparableKey.length >= 8 ? 2 : 1;
|
|
433
|
-
let bestDistance = Number.POSITIVE_INFINITY;
|
|
434
|
-
let bestFlag;
|
|
435
|
-
let tied = false;
|
|
436
|
-
for (const candidate of lookup.canonicalComparables) {
|
|
437
|
-
const distance = levenshteinDistanceWithinLimit(comparableKey, candidate.comparable, maxDistance);
|
|
438
|
-
if (distance === null) {
|
|
439
|
-
continue;
|
|
440
|
-
}
|
|
441
|
-
if (distance < bestDistance) {
|
|
442
|
-
bestDistance = distance;
|
|
443
|
-
bestFlag = candidate.canonicalFlag;
|
|
444
|
-
tied = false;
|
|
445
|
-
continue;
|
|
446
|
-
}
|
|
447
|
-
if (distance === bestDistance && bestFlag !== candidate.canonicalFlag) {
|
|
448
|
-
tied = true;
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
if (!bestFlag ||
|
|
452
|
-
tied ||
|
|
453
|
-
!Number.isFinite(bestDistance) ||
|
|
454
|
-
bestDistance <= 0) {
|
|
455
|
-
return null;
|
|
456
|
-
}
|
|
457
|
-
return {
|
|
458
|
-
flag: bestFlag,
|
|
459
|
-
reason: "flag_typo",
|
|
460
|
-
confidence: bestDistance >= 2 ? "medium" : "high",
|
|
461
|
-
};
|
|
462
|
-
}
|
|
463
|
-
/** Implements list alias plural keys for the public runtime surface of this module. */
|
|
464
|
-
export function listAliasPluralKeys(normalizedKey) {
|
|
465
|
-
const candidates = [`${normalizedKey}s`];
|
|
466
|
-
if (normalizedKey.endsWith("y") && normalizedKey.length > 1) {
|
|
467
|
-
candidates.push(`${normalizedKey.slice(0, -1)}ies`);
|
|
468
|
-
}
|
|
469
|
-
return candidates;
|
|
470
|
-
}
|
|
471
|
-
function parseBareKeyValueToken(token) {
|
|
472
|
-
if (token.includes("://")) {
|
|
473
|
-
return null;
|
|
474
|
-
}
|
|
475
|
-
const match = token.match(/^([A-Za-z][A-Za-z0-9_-]{1,63})([:=])(.*)$/);
|
|
476
|
-
if (!match) {
|
|
477
|
-
return null;
|
|
478
|
-
}
|
|
479
|
-
const key = match[1];
|
|
480
|
-
const value = match[3];
|
|
481
|
-
if (value.length === 0) {
|
|
482
|
-
return null;
|
|
483
|
-
}
|
|
484
|
-
return {
|
|
485
|
-
key,
|
|
486
|
-
value,
|
|
487
|
-
};
|
|
488
|
-
}
|
|
489
|
-
function normalizeLongOptionToken(token, lookup) {
|
|
490
|
-
if (!token.startsWith("--")) {
|
|
491
|
-
return { tokens: [token] };
|
|
492
|
-
}
|
|
493
|
-
const equalsIndex = token.indexOf("=");
|
|
494
|
-
const key = equalsIndex >= 0 ? token.slice(0, equalsIndex) : token;
|
|
495
|
-
const inlineValue = equalsIndex >= 0 ? token.slice(equalsIndex + 1) : undefined;
|
|
496
|
-
const resolution = resolveCanonicalFlag(key, lookup);
|
|
497
|
-
if (!resolution) {
|
|
498
|
-
return { tokens: [token] };
|
|
499
|
-
}
|
|
500
|
-
const normalizedToken = inlineValue === undefined
|
|
501
|
-
? resolution.flag
|
|
502
|
-
: `${resolution.flag}=${inlineValue}`;
|
|
503
|
-
if (normalizedToken === token) {
|
|
504
|
-
return { tokens: [token] };
|
|
505
|
-
}
|
|
506
|
-
return {
|
|
507
|
-
tokens: [normalizedToken],
|
|
508
|
-
event: {
|
|
509
|
-
from: token,
|
|
510
|
-
to: [normalizedToken],
|
|
511
|
-
reason: resolution.reason,
|
|
512
|
-
confidence: resolution.confidence,
|
|
513
|
-
},
|
|
514
|
-
};
|
|
515
|
-
}
|
|
516
|
-
// Global option flags whose value may legitimately begin with "--" (commander
|
|
517
|
-
// accepts such values). Their value token must not be reinterpreted as a list
|
|
518
|
-
// flag during coalescing. `--pm-path <dir>` and its legacy `--path <dir>`
|
|
519
|
-
// alias are the documented cases; other globals
|
|
520
|
-
// (--json/--quiet/--no-extensions/--no-pager/--profile) are boolean.
|
|
521
|
-
function splitCanonicalListToken(token) {
|
|
522
|
-
if (!token.startsWith("--")) {
|
|
523
|
-
return null;
|
|
524
|
-
}
|
|
525
|
-
const equalsIndex = token.indexOf("=");
|
|
526
|
-
if (equalsIndex < 0) {
|
|
527
|
-
return { flag: token };
|
|
528
|
-
}
|
|
529
|
-
return {
|
|
530
|
-
flag: token.slice(0, equalsIndex),
|
|
531
|
-
inlineValue: token.slice(equalsIndex + 1),
|
|
532
|
-
};
|
|
533
|
-
}
|
|
534
|
-
function copyValueConsumingFlag(argv, index, result) {
|
|
535
|
-
result.push(argv[index]);
|
|
536
|
-
const next = argv[index + 1];
|
|
537
|
-
if (typeof next === "string" && next !== "--") {
|
|
538
|
-
result.push(next);
|
|
539
|
-
return index + 2;
|
|
540
|
-
}
|
|
541
|
-
return index + 1;
|
|
542
|
-
}
|
|
543
|
-
function readListFlagOccurrence(argv, index, parsed, multiValueListFlags) {
|
|
544
|
-
if (parsed.inlineValue !== undefined) {
|
|
545
|
-
return {
|
|
546
|
-
originalTokens: [argv[index]],
|
|
547
|
-
value: parsed.inlineValue,
|
|
548
|
-
consumed: 1,
|
|
549
|
-
};
|
|
550
|
-
}
|
|
551
|
-
const values = [];
|
|
552
|
-
let valueIndex = index + 1;
|
|
553
|
-
while (valueIndex < argv.length &&
|
|
554
|
-
argv[valueIndex] !== "--" &&
|
|
555
|
-
!argv[valueIndex].startsWith("-") &&
|
|
556
|
-
(values.length === 0 || multiValueListFlags.has(parsed.flag))) {
|
|
557
|
-
values.push(argv[valueIndex]);
|
|
558
|
-
valueIndex += 1;
|
|
559
|
-
}
|
|
560
|
-
const consumed = values.length === 0 ? 1 : 1 + values.length;
|
|
561
|
-
return {
|
|
562
|
-
originalTokens: argv.slice(index, index + consumed),
|
|
563
|
-
value: values.length === 0 ? undefined : values.join(","),
|
|
564
|
-
consumed,
|
|
565
|
-
};
|
|
566
|
-
}
|
|
567
|
-
function recordListFlagOccurrence(slots, result, flag, occurrence) {
|
|
568
|
-
const existing = slots.get(flag);
|
|
569
|
-
if (existing) {
|
|
570
|
-
existing.values.push(occurrence.value);
|
|
571
|
-
existing.occurrences += 1;
|
|
572
|
-
return;
|
|
573
|
-
}
|
|
574
|
-
slots.set(flag, {
|
|
575
|
-
outputIndex: result.length,
|
|
576
|
-
originalTokens: occurrence.originalTokens,
|
|
577
|
-
values: [occurrence.value],
|
|
578
|
-
occurrences: 1,
|
|
579
|
-
});
|
|
580
|
-
// Reserve the anchor position; finalized after the walk so we know the full
|
|
581
|
-
// merged value or can restore the original token form for single uses.
|
|
582
|
-
result.push(null);
|
|
583
|
-
}
|
|
584
|
-
function buildListFlagCoalescingSplices(slots, multiValueListFlags) {
|
|
585
|
-
const events = [];
|
|
586
|
-
const splices = [];
|
|
587
|
-
for (const [flag, slot] of slots) {
|
|
588
|
-
const shouldMerge = slot.occurrences >= 2 ||
|
|
589
|
-
(multiValueListFlags.has(flag) && slot.originalTokens.length > 2);
|
|
590
|
-
if (!shouldMerge) {
|
|
591
|
-
splices.push({
|
|
592
|
-
outputIndex: slot.outputIndex,
|
|
593
|
-
tokens: slot.originalTokens,
|
|
594
|
-
});
|
|
595
|
-
continue;
|
|
596
|
-
}
|
|
597
|
-
const mergedToken = `${flag}=${slot.values.join(",")}`;
|
|
598
|
-
splices.push({ outputIndex: slot.outputIndex, tokens: [mergedToken] });
|
|
599
|
-
events.push({
|
|
600
|
-
from: `${flag} (x${slot.occurrences})`,
|
|
601
|
-
to: [mergedToken],
|
|
602
|
-
reason: "list_merge",
|
|
603
|
-
confidence: "high",
|
|
604
|
-
});
|
|
605
|
-
}
|
|
606
|
-
return { events, splices };
|
|
607
|
-
}
|
|
608
|
-
function applyListFlagSplices(result, splices) {
|
|
609
|
-
splices.sort((a, b) => b.outputIndex - a.outputIndex);
|
|
610
|
-
for (const splice of splices) {
|
|
611
|
-
result.splice(splice.outputIndex, 1, ...splice.tokens);
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
/**
|
|
615
|
-
* Coalesce repeated occurrences of comma-separated list flags into a single
|
|
616
|
-
* `--flag=v1,v2,v3` token anchored at the FIRST occurrence. Without this,
|
|
617
|
-
* Commander treats these flags as scalars and silently keeps only the last
|
|
618
|
-
* value (data loss). Both `--flag value` and `--flag=value` forms are merged;
|
|
619
|
-
* a value-less occurrence is preserved untouched, and a `--` terminator stops
|
|
620
|
-
* coalescing (remainder is passed through verbatim).
|
|
621
|
-
*
|
|
622
|
-
* `valueConsumingFlags` lists option flags (e.g. global `--path`) whose value
|
|
623
|
-
* may itself begin with `--`. Their value token is emitted verbatim so a
|
|
624
|
-
* list-flag-looking value (`--path --tags`) is never reinterpreted as a flag
|
|
625
|
-
* nor allowed to swallow the following command/positional token.
|
|
626
|
-
*/
|
|
627
|
-
export function coalesceRepeatedListFlags(argv, listFlags, valueConsumingFlags = new Set(), multiValueListFlags = new Set()) {
|
|
628
|
-
if (listFlags.size === 0) {
|
|
629
|
-
return { argv: [...argv], events: [] };
|
|
630
|
-
}
|
|
631
|
-
const result = [];
|
|
632
|
-
const slots = new Map();
|
|
633
|
-
let index = 0;
|
|
634
|
-
while (index < argv.length) {
|
|
635
|
-
const token = argv[index];
|
|
636
|
-
if (token === "--") {
|
|
637
|
-
result.push(...argv.slice(index));
|
|
638
|
-
break;
|
|
639
|
-
}
|
|
640
|
-
// A value-consuming option in space form owns the next token as its value,
|
|
641
|
-
// even when that value begins with "--". Emit both verbatim so the value is
|
|
642
|
-
// never misread as a list-flag occurrence.
|
|
643
|
-
if (valueConsumingFlags.has(token)) {
|
|
644
|
-
index = copyValueConsumingFlag(argv, index, result);
|
|
645
|
-
continue;
|
|
646
|
-
}
|
|
647
|
-
const parsed = splitCanonicalListToken(token);
|
|
648
|
-
if (!parsed || !listFlags.has(parsed.flag)) {
|
|
649
|
-
result.push(token);
|
|
650
|
-
index += 1;
|
|
651
|
-
continue;
|
|
652
|
-
}
|
|
653
|
-
const occurrence = readListFlagOccurrence(argv, index, parsed, multiValueListFlags);
|
|
654
|
-
if (occurrence.value === undefined) {
|
|
655
|
-
// Value-less occurrence: leave untouched, do not coalesce.
|
|
656
|
-
result.push(token);
|
|
657
|
-
index += occurrence.consumed;
|
|
658
|
-
continue;
|
|
659
|
-
}
|
|
660
|
-
recordListFlagOccurrence(slots, result, parsed.flag, {
|
|
661
|
-
originalTokens: occurrence.originalTokens,
|
|
662
|
-
value: occurrence.value,
|
|
663
|
-
});
|
|
664
|
-
index += occurrence.consumed;
|
|
665
|
-
}
|
|
666
|
-
// Apply anchor splices from the end so earlier indices stay valid when a
|
|
667
|
-
// single-occurrence anchor expands back into two tokens.
|
|
668
|
-
const { events, splices } = buildListFlagCoalescingSplices(slots, multiValueListFlags);
|
|
669
|
-
applyListFlagSplices(result, splices);
|
|
670
|
-
return { argv: result, events };
|
|
671
|
-
}
|
|
672
|
-
/** Linked-test entry keys accepted in the two-token form `pm test <id> --add command "npm test -- parser"` (GH-191). Only entry-identity keys are merged: `command`/`cmd` name the shell command and `path` names the test file, so a single key=value entry is meaningful for them. Other structured keys (scope, env_set, assertions, ...) cannot form a valid standalone entry and are left for the normal parser to reject. `--remove` matches existing entries by `command=`/`path=` only, so `cmd` is excluded there. Key names mirror STRUCTURED_LINKED_TEST_KEYS in src/cli/commands/linked-test-entry.ts. */
|
|
673
|
-
const LINKED_TEST_TWO_TOKEN_KEYS_BY_FLAG = new Map([
|
|
674
|
-
["--add", new Set(["command", "cmd", "path"])],
|
|
675
|
-
["--remove", new Set(["command", "path"])],
|
|
676
|
-
]);
|
|
677
|
-
/** Sandbox-safe linked-test commands legitimately start with env assignments (`PM_PATH=... PM_GLOBAL_PATH=... vitest run -- parser`), which look like bare key=value settings tokens. When the two preceding tokens are a linked-test flag plus a bare two-token key (`--add command <value>`), the value must be left intact for mergeLinkedTestTwoTokenEntries instead of being rewritten into a canonical flag (e.g. PM_PATH= -> --pm-path), which would silently corrupt the command into `--add command --pm-path ...`. */
|
|
678
|
-
function isLinkedTestTwoTokenValuePosition(commandName, emittedTokens) {
|
|
679
|
-
if (commandName !== "test" || emittedTokens.length < 2) {
|
|
680
|
-
return false;
|
|
681
|
-
}
|
|
682
|
-
const key = emittedTokens[emittedTokens.length - 1];
|
|
683
|
-
const flag = emittedTokens[emittedTokens.length - 2];
|
|
684
|
-
const keys = LINKED_TEST_TWO_TOKEN_KEYS_BY_FLAG.get(flag);
|
|
685
|
-
return keys !== undefined && keys.has(key);
|
|
686
|
-
}
|
|
687
|
-
function shouldPreserveBareKeyValueToken(commandName, emittedTokens) {
|
|
688
|
-
return (commandName === "search" ||
|
|
689
|
-
isLinkedTestTwoTokenValuePosition(commandName, emittedTokens));
|
|
690
|
-
}
|
|
691
|
-
/** Accept the two-token linked-test form `pm test <id> --add command "npm test -- parser"` by merging the bare key token and its single quoted value into the documented `--add command=...` shape. Without this merge Commander binds the bare key as the option value and treats the quoted command as an excess positional, failing with "too many arguments" (GH-191). The merge only fires when EXACTLY ONE non-flag token follows the bare key, i.e. the value was quoted into one shell token — an unquoted multi-token value stays ambiguous (it may swallow the item id), still fails fast, and is routed to targeted quoting guidance by the commander error classifier instead. */
|
|
692
|
-
export function mergeLinkedTestTwoTokenEntries(argv, commandName, trace) {
|
|
693
|
-
if (commandName !== "test") {
|
|
694
|
-
return argv;
|
|
695
|
-
}
|
|
696
|
-
const result = [];
|
|
697
|
-
let index = 0;
|
|
698
|
-
while (index < argv.length) {
|
|
699
|
-
const token = argv[index];
|
|
700
|
-
if (token === "--") {
|
|
701
|
-
result.push(...argv.slice(index));
|
|
702
|
-
return result;
|
|
703
|
-
}
|
|
704
|
-
const keys = LINKED_TEST_TWO_TOKEN_KEYS_BY_FLAG.get(token);
|
|
705
|
-
const key = keys ? argv[index + 1] : undefined;
|
|
706
|
-
if (!keys || typeof key !== "string" || !keys.has(key)) {
|
|
707
|
-
result.push(token);
|
|
708
|
-
index += 1;
|
|
709
|
-
continue;
|
|
710
|
-
}
|
|
711
|
-
let runEnd = index + 2;
|
|
712
|
-
while (runEnd < argv.length && !argv[runEnd].startsWith("-")) {
|
|
713
|
-
runEnd += 1;
|
|
714
|
-
}
|
|
715
|
-
if (runEnd - (index + 2) !== 1) {
|
|
716
|
-
result.push(token);
|
|
717
|
-
index += 1;
|
|
718
|
-
continue;
|
|
719
|
-
}
|
|
720
|
-
const value = argv[index + 2];
|
|
721
|
-
const mergedValue = `${key}=${value}`;
|
|
722
|
-
result.push(token, mergedValue);
|
|
723
|
-
trace.push({
|
|
724
|
-
from: `${token} ${key} ${value}`,
|
|
725
|
-
to: [token, mergedValue],
|
|
726
|
-
reason: "bare_key_value",
|
|
727
|
-
confidence: "high",
|
|
728
|
-
});
|
|
729
|
-
index += 3;
|
|
730
|
-
}
|
|
731
|
-
return result;
|
|
732
|
-
}
|
|
733
|
-
/** Implements normalize bootstrap invocation for the public runtime surface of this module. */
|
|
734
|
-
export function normalizeBootstrapInvocation(argv) {
|
|
735
|
-
const trace = [];
|
|
736
|
-
const legacyNormalized = normalizeLegacyExtensionActionSyntax(argv);
|
|
737
|
-
if (legacyNormalized.length !== argv.length ||
|
|
738
|
-
legacyNormalized.some((token, index) => token !== argv[index])) {
|
|
739
|
-
trace.push({
|
|
740
|
-
from: argv.join(" "),
|
|
741
|
-
to: [...legacyNormalized],
|
|
742
|
-
reason: "legacy_extension_action",
|
|
743
|
-
confidence: "high",
|
|
744
|
-
});
|
|
745
|
-
}
|
|
746
|
-
const aliasNormalized = rewriteCommandAlias(legacyNormalized, trace);
|
|
747
|
-
const commandName = parseBootstrapCommandName(aliasNormalized);
|
|
748
|
-
const commandPathName = parseBootstrapCommandPathName(aliasNormalized);
|
|
749
|
-
const lookup = buildFlagLookup(commandPathName ?? commandName);
|
|
750
|
-
const normalizedArgv = [];
|
|
751
|
-
for (let index = 0; index < aliasNormalized.length; index += 1) {
|
|
752
|
-
const token = aliasNormalized[index];
|
|
753
|
-
if (token === "--") {
|
|
754
|
-
normalizedArgv.push(...aliasNormalized.slice(index));
|
|
755
|
-
break;
|
|
756
|
-
}
|
|
757
|
-
const previous = normalizedArgv[normalizedArgv.length - 1];
|
|
758
|
-
if (token.startsWith("--")) {
|
|
759
|
-
const normalizedToken = normalizeLongOptionToken(token, lookup);
|
|
760
|
-
normalizedArgv.push(...normalizedToken.tokens);
|
|
761
|
-
if (normalizedToken.event) {
|
|
762
|
-
trace.push(normalizedToken.event);
|
|
763
|
-
}
|
|
764
|
-
continue;
|
|
765
|
-
}
|
|
766
|
-
const bareKeyValue = parseBareKeyValueToken(token);
|
|
767
|
-
if (bareKeyValue &&
|
|
768
|
-
!(typeof previous === "string" && previous.startsWith("-")) &&
|
|
769
|
-
!shouldPreserveBareKeyValueToken(commandName, normalizedArgv)) {
|
|
770
|
-
const resolution = resolveCanonicalFlag(bareKeyValue.key, lookup);
|
|
771
|
-
if (resolution) {
|
|
772
|
-
const replacement = [resolution.flag, bareKeyValue.value];
|
|
773
|
-
normalizedArgv.push(...replacement);
|
|
774
|
-
trace.push({
|
|
775
|
-
from: token,
|
|
776
|
-
to: replacement,
|
|
777
|
-
reason: "bare_key_value",
|
|
778
|
-
confidence: resolution.confidence,
|
|
779
|
-
});
|
|
780
|
-
continue;
|
|
781
|
-
}
|
|
782
|
-
}
|
|
783
|
-
normalizedArgv.push(token);
|
|
784
|
-
}
|
|
785
|
-
const linkedTestNormalized = mergeLinkedTestTwoTokenEntries(normalizedArgv, commandName, trace);
|
|
786
|
-
const coalesced = coalesceRepeatedListFlags(linkedTestNormalized, lookup.listCanonicalFlags, GLOBAL_VALUE_CONSUMING_FLAGS, commandName === "create" ? new Set(["--tags"]) : new Set());
|
|
787
|
-
for (const event of coalesced.events) {
|
|
788
|
-
trace.push(event);
|
|
789
|
-
}
|
|
790
|
-
return {
|
|
791
|
-
argv: coalesced.argv,
|
|
792
|
-
commandName,
|
|
793
|
-
trace,
|
|
794
|
-
};
|
|
795
|
-
}
|
|
796
|
-
function parseBootstrapCommandPathName(argv) {
|
|
797
|
-
const stripped = stripGlobalBootstrapTokens(argv);
|
|
798
|
-
const first = stripped[0]?.trim().toLowerCase();
|
|
799
|
-
const second = stripped[1]?.trim().toLowerCase();
|
|
800
|
-
if ((first === "extension" || first === "package" || first === "packages") &&
|
|
801
|
-
typeof second === "string" &&
|
|
802
|
-
second.length > 0 &&
|
|
803
|
-
!second.startsWith("-")) {
|
|
804
|
-
return `${first} ${second}`;
|
|
805
|
-
}
|
|
806
|
-
return first;
|
|
807
|
-
}
|
|
808
|
-
/** Implements parse bootstrap type value for the public runtime surface of this module. */
|
|
809
|
-
export function parseBootstrapTypeValue(argv) {
|
|
810
|
-
for (let index = 0; index < argv.length; index += 1) {
|
|
811
|
-
const token = argv[index];
|
|
812
|
-
if (token === "--type") {
|
|
813
|
-
const candidate = argv[index + 1];
|
|
814
|
-
if (typeof candidate === "string" && candidate.trim().length > 0) {
|
|
815
|
-
return candidate.trim();
|
|
816
|
-
}
|
|
817
|
-
continue;
|
|
818
|
-
}
|
|
819
|
-
if (token.startsWith("--type=")) {
|
|
820
|
-
const candidate = token.slice("--type=".length).trim();
|
|
821
|
-
if (candidate.length > 0) {
|
|
822
|
-
return candidate;
|
|
823
|
-
}
|
|
824
|
-
}
|
|
825
|
-
}
|
|
826
|
-
return undefined;
|
|
827
|
-
}
|
|
828
|
-
/** Public contract for test only, shared by SDK and presentation-layer consumers. */
|
|
829
|
-
export const _testOnly = {
|
|
830
|
-
buildFlagLookup,
|
|
831
|
-
collectLongFlagCandidates,
|
|
832
|
-
markUnambiguousFlag,
|
|
833
|
-
normalizeLongOptionToken,
|
|
834
|
-
resolveCanonicalFlag,
|
|
835
|
-
};
|
|
7
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7ea0ba9e-0857-5090-9568-3432d518ac25")}catch(e){}}();
|
|
8
|
+
export * from "../sdk/cli-bootstrap.js";
|
|
836
9
|
//# sourceMappingURL=bootstrap-args.js.map
|
|
837
|
-
//# debugId=
|
|
10
|
+
//# debugId=7ea0ba9e-0857-5090-9568-3432d518ac25
|