@unbrained/pm-cli 2026.6.30 → 2026.7.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/AGENTS.md +2 -0
- package/CHANGELOG.md +20 -0
- package/dist/cli/bootstrap-args.js +89 -79
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commands/calendar.js +63 -62
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/create.js +483 -434
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/extension/bundled-catalog.js +59 -46
- package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
- package/dist/cli/commands/extension/doctor.js +129 -78
- package/dist/cli/commands/extension/doctor.js.map +1 -1
- package/dist/cli/commands/extension/managed-state.js +101 -57
- package/dist/cli/commands/extension/managed-state.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.d.ts +7 -0
- package/dist/cli/commands/extension/scaffold.js +214 -186
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +6 -1
- package/dist/cli/commands/extension.js +1034 -902
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/list-filter-shared.js +55 -48
- package/dist/cli/commands/list-filter-shared.js.map +1 -1
- package/dist/cli/commands/search.js +94 -68
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/test.js +108 -122
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update.js +27 -77
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/extension-command-options.js +48 -21
- package/dist/cli/extension-command-options.js.map +1 -1
- package/dist/cli/registration-helpers.js +117 -122
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-AW6XVFH6.js +16 -0
- package/dist/cli-bundle/chunks/{activity-MVSEND6D.js → activity-DBLQVIP6.js} +9 -9
- package/dist/cli-bundle/chunks/{aggregate-MOC4TR2G.js → aggregate-JTEF4BP7.js} +9 -9
- package/dist/cli-bundle/chunks/{aggregate-XJHLZQ5X.js → aggregate-SDF7DUOD.js} +9 -9
- package/dist/cli-bundle/chunks/{append-LEDBAM3K.js → append-LOVPGVPT.js} +6 -6
- package/dist/cli-bundle/chunks/{append-KDHT4GHI.js → append-QCFJSDFL.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-FBZ5XAAF.js → chunk-22WKIL3H.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-EVWYAG46.js → chunk-2466X6E4.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-3JWQCLR5.js → chunk-27BXPBAY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-WTRUDJ3R.js → chunk-2D4HATP2.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-DORJSBGJ.js → chunk-3J6JRJ3I.js} +127 -125
- package/dist/cli-bundle/chunks/chunk-3J6JRJ3I.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-LBH7UYKY.js → chunk-3K2M5OYU.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-KTMMTOIP.js → chunk-3S2KT7NG.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-FDEVKXC4.js → chunk-3VGN2UWE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-K46GQ265.js → chunk-3XZCOZ5J.js} +107 -117
- package/dist/cli-bundle/chunks/chunk-3XZCOZ5J.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-4A3BJ675.js +799 -0
- package/dist/cli-bundle/chunks/chunk-4A3BJ675.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-4BU75MF4.js +87 -0
- package/dist/cli-bundle/chunks/chunk-4BU75MF4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KYDYQMNW.js → chunk-4DSGXSBL.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-7L6TXOOC.js → chunk-4DUVCVLZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UB3V5WUI.js → chunk-4XOIEKSD.js} +351 -330
- package/dist/cli-bundle/chunks/chunk-4XOIEKSD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-DJDXAU74.js → chunk-55SNVXRQ.js} +68 -69
- package/dist/cli-bundle/chunks/chunk-55SNVXRQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ZIE6WXJ2.js → chunk-5CGRF3L5.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-7WDETKGP.js → chunk-5QFDBI4F.js} +1105 -965
- package/dist/cli-bundle/chunks/chunk-5QFDBI4F.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-IBU2LLWM.js → chunk-64HNBBFQ.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-T7ZMQI4J.js → chunk-6AQZPVHQ.js} +198 -189
- package/dist/cli-bundle/chunks/chunk-6AQZPVHQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-CY5IJMUM.js → chunk-7R4QEMZZ.js} +361 -322
- package/dist/cli-bundle/chunks/chunk-7R4QEMZZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-WFJZDUM7.js → chunk-A7FPBAQS.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-74PUWBGN.js → chunk-AVEE5EHK.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-KRASIL6M.js → chunk-AXIDKKAT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CHRNYKNI.js → chunk-BDTISOSD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZFIEEDTJ.js → chunk-BHO33VBQ.js} +509 -363
- package/dist/cli-bundle/chunks/chunk-BHO33VBQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RM6MHL6A.js → chunk-BZCEN4JA.js} +98 -74
- package/dist/cli-bundle/chunks/chunk-BZCEN4JA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RPRW26NG.js → chunk-CF7RL6FR.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-NIBP3I7A.js → chunk-CWFNTKQJ.js} +128 -126
- package/dist/cli-bundle/chunks/chunk-CWFNTKQJ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-BN3CWK6G.js → chunk-DDPTYJIM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4YIMPANT.js → chunk-EJUDVUYZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-73PTKMAE.js → chunk-EVMTBV6V.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-6YRAMXRS.js → chunk-FFMQB7WR.js} +99 -75
- package/dist/cli-bundle/chunks/chunk-FFMQB7WR.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-E2Q2ULMR.js → chunk-G7I7DEZA.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-IDYCAK35.js → chunk-GJ326ZKX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-JJ4SG243.js → chunk-HPPFYYOV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5IRVSKPS.js → chunk-HXTQJXWT.js} +150 -224
- package/dist/cli-bundle/chunks/chunk-HXTQJXWT.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JIP67N2K.js → chunk-HYTGA6GI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7RIJGN4R.js → chunk-HZZEHPRG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4TXTVZL3.js → chunk-IJYK2T43.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GF7EAR22.js → chunk-IPYBJWTE.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-AWN4PPH5.js → chunk-IZBR4NRW.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-IF4ERU6A.js → chunk-JLM7BHI7.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-DU66JUGT.js → chunk-JMP4E6D7.js} +106 -116
- package/dist/cli-bundle/chunks/chunk-JMP4E6D7.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-HUYYMTGW.js → chunk-JPECA746.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KGQ3W65B.js → chunk-JSU5P7VS.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-HIBK6H4S.js → chunk-JWXRETDF.js} +69 -70
- package/dist/cli-bundle/chunks/chunk-JWXRETDF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-Z5BM2FKQ.js → chunk-KNPEF7QG.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-DLDCPF5X.js → chunk-L5OEFZQG.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-DRPF274X.js → chunk-LB6TP6MC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YEDFE4DC.js → chunk-MAUKX7JC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6T5ZIWBS.js → chunk-MDPEOIGN.js} +150 -224
- package/dist/cli-bundle/chunks/chunk-MDPEOIGN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-OB3RJV5F.js → chunk-N74UMG5H.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZEATCVAC.js → chunk-NFDPYAIP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OUQ5JEFM.js → chunk-NKZAN7BD.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-5ABGFWR4.js → chunk-NOLPZMSV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JZG5ADVE.js → chunk-NU2UEROZ.js} +1103 -963
- package/dist/cli-bundle/chunks/chunk-NU2UEROZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-A3UNLXNJ.js → chunk-NUHHPVVS.js} +36 -86
- package/dist/cli-bundle/chunks/chunk-NUHHPVVS.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QE5UFCCO.js → chunk-NWMZWYYB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VMY7MZEM.js → chunk-OGXLACHC.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-IHXXUIXS.js → chunk-OTUHB4HS.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-V3KLX7U7.js → chunk-QCWF6IYD.js} +510 -364
- package/dist/cli-bundle/chunks/chunk-QCWF6IYD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UFKNF23C.js → chunk-RGEMWD6Q.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-RH5ZBYFD.js +809 -0
- package/dist/cli-bundle/chunks/chunk-RH5ZBYFD.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-Z55WX4IQ.js → chunk-RLDHZHQS.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-NO6Y6FB2.js → chunk-RMMQ74TG.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-SNUK7H5J.js → chunk-RVUALSJF.js} +361 -322
- package/dist/cli-bundle/chunks/chunk-RVUALSJF.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-IZQOJR2B.js → chunk-SDR5J34Q.js} +198 -189
- package/dist/cli-bundle/chunks/chunk-SDR5J34Q.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SJZTPVFT.js → chunk-SLMUGTK3.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-BOWQWXLI.js → chunk-TP5Q5ZD3.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-D5LYZVGB.js → chunk-UYUYDGIB.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-JVQ7UOYC.js → chunk-UZIWVBE6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JTRKME24.js → chunk-V3NOKJF2.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-5T6WPLRO.js → chunk-VARHOHYV.js} +350 -329
- package/dist/cli-bundle/chunks/chunk-VARHOHYV.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-F7G53BOA.js → chunk-VICZWYGZ.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js +84 -0
- package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-TQ6E76BE.js → chunk-W4ULYO7Z.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-MLHX6DN5.js → chunk-WYDHYJPO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-53ARXF2O.js → chunk-YITK2PJ6.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-VD3LKZFX.js → chunk-ZETXE4SE.js} +37 -87
- package/dist/cli-bundle/chunks/chunk-ZETXE4SE.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-D6USKAMA.js → chunk-ZRP4VG5U.js} +2 -2
- package/dist/cli-bundle/chunks/{claim-6NINZYB3.js → claim-EMQLYPRW.js} +8 -8
- package/dist/cli-bundle/chunks/{claim-HMCLSLUE.js → claim-T3GCKV7C.js} +8 -8
- package/dist/cli-bundle/chunks/close-E6ZZGCJY.js +14 -0
- package/dist/cli-bundle/chunks/{close-OP3LK7Z2.js → close-TQYAAFJP.js} +7 -7
- package/dist/cli-bundle/chunks/{close-many-BFMP6HHK.js → close-many-BG5QQIDQ.js} +15 -15
- package/dist/cli-bundle/chunks/{close-many-CXJBOWWY.js → close-many-LDRVEQY2.js} +15 -15
- package/dist/cli-bundle/chunks/{comments-MU2WMBUY.js → comments-QCKR2YY2.js} +8 -8
- package/dist/cli-bundle/chunks/{comments-ETHABIY6.js → comments-YUXJRZPQ.js} +8 -8
- package/dist/cli-bundle/chunks/{config-FIXJZEQK.js → config-DMSU64QO.js} +7 -7
- package/dist/cli-bundle/chunks/{config-X3ZVCUUG.js → config-QH2DICD6.js} +7 -7
- package/dist/cli-bundle/chunks/{context-XDI4DKKT.js → context-B6275WPX.js} +12 -12
- package/dist/cli-bundle/chunks/{context-7ZEZV3BV.js → context-OCZ3FJ4Z.js} +12 -12
- package/dist/cli-bundle/chunks/{contracts-SMOAN5NF.js → contracts-HN7ABKLP.js} +3 -3
- package/dist/cli-bundle/chunks/{contracts-KP4QAGVW.js → contracts-W4FZVVD6.js} +3 -3
- package/dist/cli-bundle/chunks/{copy-CWM6SBY6.js → copy-BTJOSKKT.js} +5 -5
- package/dist/cli-bundle/chunks/{copy-JJ3KOQW2.js → copy-DEM4DATS.js} +5 -5
- package/dist/cli-bundle/chunks/create-OH3BDGBB.js +28 -0
- package/dist/cli-bundle/chunks/{create-J5Q2ELZT.js → create-RLRJMRTM.js} +12 -12
- package/dist/cli-bundle/chunks/{delete-OOQS4KVD.js → delete-BHK7VB2Z.js} +5 -5
- package/dist/cli-bundle/chunks/{delete-2GZLQEUQ.js → delete-LSVHAB4Y.js} +5 -5
- package/dist/cli-bundle/chunks/{deps-ZVGGCRR6.js → deps-4UDFJRUA.js} +5 -5
- package/dist/cli-bundle/chunks/{deps-IF4IGL4R.js → deps-XHYXWEPT.js} +5 -5
- package/dist/cli-bundle/chunks/{docs-2TIFR62T.js → docs-26S44RXU.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-NFTBCQQC.js → docs-GYZNVS26.js} +7 -7
- package/dist/cli-bundle/chunks/{eval-2F6EH4XN.js → eval-PGRVIJQU.js} +10 -10
- package/dist/cli-bundle/chunks/{eval-PFKXQR3B.js → eval-UYF3ZPVO.js} +10 -10
- package/dist/cli-bundle/chunks/{extension-GMVOIP4O.js → extension-CPSLJQVE.js} +11 -10
- package/dist/cli-bundle/chunks/{extension-3LRYX7SW.js → extension-CXJ6RELI.js} +11 -10
- package/dist/cli-bundle/chunks/{files-T5ODMETM.js → files-MBNICQFM.js} +7 -7
- package/dist/cli-bundle/chunks/{files-DF3HO6XK.js → files-NQHEXUZD.js} +7 -7
- package/dist/cli-bundle/chunks/{focus-DLXKK4AH.js → focus-DWYIG7GU.js} +6 -6
- package/dist/cli-bundle/chunks/{focus-MY5ARIEK.js → focus-XZW5423D.js} +6 -6
- package/dist/cli-bundle/chunks/{gc-FULIVYR4.js → gc-7GQYOS2G.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-MDGRR2SU.js → gc-LPVMKJQJ.js} +3 -3
- package/dist/cli-bundle/chunks/{get-AWK324RS.js → get-A7MAOHCU.js} +9 -9
- package/dist/cli-bundle/chunks/{get-VYPIICPC.js → get-DSDEKJ3L.js} +9 -9
- package/dist/cli-bundle/chunks/{health-Q66C43GN.js → health-3IPFLKXB.js} +17 -16
- package/dist/cli-bundle/chunks/{health-Q66C43GN.js.map → health-3IPFLKXB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{health-FBCVZGSX.js → health-GZXGBZ36.js} +15 -14
- package/dist/cli-bundle/chunks/{health-FBCVZGSX.js.map → health-GZXGBZ36.js.map} +1 -1
- package/dist/cli-bundle/chunks/{history-X4OSES6K.js → history-NERDJNUB.js} +8 -8
- package/dist/cli-bundle/chunks/history-WSZHY3PN.js +18 -0
- package/dist/cli-bundle/chunks/{history-compact-WLCQEKXS.js → history-compact-2WRZ2WK4.js} +10 -10
- package/dist/cli-bundle/chunks/{history-compact-2GHT32UX.js → history-compact-HR7BB4LR.js} +10 -10
- package/dist/cli-bundle/chunks/history-redact-MP6CH7U5.js +19 -0
- package/dist/cli-bundle/chunks/{history-redact-45YW65BK.js → history-redact-O3NBCNWC.js} +9 -9
- package/dist/cli-bundle/chunks/{history-repair-GABSDSVD.js → history-repair-LCMOS45X.js} +10 -10
- package/dist/cli-bundle/chunks/{history-repair-FY75IC26.js → history-repair-XA3LC4GA.js} +10 -10
- package/dist/cli-bundle/chunks/{init-KO7CGIRQ.js → init-64XDLQJB.js} +12 -11
- package/dist/cli-bundle/chunks/init-PAX32BJA.js +22 -0
- package/dist/cli-bundle/chunks/{learnings-3F7YLI45.js → learnings-JR6MA5TI.js} +8 -8
- package/dist/cli-bundle/chunks/{learnings-LHZT5BHW.js → learnings-LPKCSJX7.js} +8 -8
- package/dist/cli-bundle/chunks/{list-ROT7JF62.js → list-DNBJVO3E.js} +8 -8
- package/dist/cli-bundle/chunks/{list-Y6AU5BJS.js → list-G5Y65VF6.js} +8 -8
- package/dist/cli-bundle/chunks/{next-66BJB4N2.js → next-BCERKDUR.js} +13 -13
- package/dist/cli-bundle/chunks/{next-N5MWJTBY.js → next-FYTQF6HG.js} +13 -13
- package/dist/cli-bundle/chunks/{notes-FW6YFLND.js → notes-2BMU3VVQ.js} +8 -8
- package/dist/cli-bundle/chunks/{notes-EVJZ3VAB.js → notes-6KTGO2OJ.js} +8 -8
- package/dist/cli-bundle/chunks/{plan-DQ7G4EDC.js → plan-4WXEQCTN.js} +12 -12
- package/dist/cli-bundle/chunks/{plan-ZHKZ7JVF.js → plan-RKZHQVXR.js} +12 -12
- package/dist/cli-bundle/chunks/{profile-UPZGCDOG.js → profile-4OMM32CD.js} +8 -8
- package/dist/cli-bundle/chunks/{profile-CHAW6SEA.js → profile-QLER5ENE.js} +8 -8
- package/dist/cli-bundle/chunks/{register-list-query-Y2VRHPCL.js → register-list-query-7LV46VAU.js} +18 -18
- package/dist/cli-bundle/chunks/{register-list-query-KY6Z6WV7.js → register-list-query-SNG5PGA4.js} +18 -18
- package/dist/cli-bundle/chunks/{register-mutation-PCARIGZS.js → register-mutation-ENNDUAZG.js} +35 -35
- package/dist/cli-bundle/chunks/{register-mutation-N6AYSKPM.js → register-mutation-KK7PHYYU.js} +35 -35
- package/dist/cli-bundle/chunks/{register-operations-YAT6FUUB.js → register-operations-C6OWLDSH.js} +30 -30
- package/dist/cli-bundle/chunks/{register-operations-L6CYTOIH.js → register-operations-HZ6XERQG.js} +30 -30
- package/dist/cli-bundle/chunks/{register-setup-N7UGXYJC.js → register-setup-P67EMBDJ.js} +15 -15
- package/dist/cli-bundle/chunks/{register-setup-MPANILQF.js → register-setup-ZKJ53RS7.js} +15 -15
- package/dist/cli-bundle/chunks/{restore-DKMCLPI5.js → restore-4MHZFJ2E.js} +9 -9
- package/dist/cli-bundle/chunks/restore-YALDGTQR.js +17 -0
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-3F4QUEDH.js → scheduling-shortcuts-LB6DOLRL.js} +12 -12
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-BNZLQK36.js → scheduling-shortcuts-UTOYKLXQ.js} +12 -12
- package/dist/cli-bundle/chunks/{schema-OLT6LVKH.js → schema-73HR2OJW.js} +7 -7
- package/dist/cli-bundle/chunks/{schema-XJXKJQF5.js → schema-U6LJKSIR.js} +7 -7
- package/dist/cli-bundle/chunks/{search-CX5UMV4H.js → search-AXPXKZER.js} +10 -10
- package/dist/cli-bundle/chunks/{search-KP6H7COV.js → search-KILGT37L.js} +10 -10
- package/dist/cli-bundle/chunks/{stats-QZUG6MX5.js → stats-PSYVVTNZ.js} +6 -6
- package/dist/cli-bundle/chunks/{stats-7XW4OEMK.js → stats-W5KNVJWQ.js} +6 -6
- package/dist/cli-bundle/chunks/{telemetry-WTYFUPRL.js → telemetry-BZUF6H7G.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-DIFPXCAT.js → telemetry-GAHHQTOS.js} +4 -4
- package/dist/cli-bundle/chunks/{test-QNDXZQCW.js → test-ACD52Z3S.js} +15 -14
- package/dist/cli-bundle/chunks/{test-HU2BS7EY.js → test-PWDIZ255.js} +15 -14
- package/dist/cli-bundle/chunks/{test-all-XLPI4USF.js → test-all-L2MDDUCA.js} +17 -16
- package/dist/cli-bundle/chunks/{test-all-XLPI4USF.js.map → test-all-L2MDDUCA.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-all-PZTBLLQ6.js → test-all-RBZ6DLU2.js} +15 -14
- package/dist/cli-bundle/chunks/{test-all-PZTBLLQ6.js.map → test-all-RBZ6DLU2.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-runs-LANLLPVO.js → test-runs-PLRAZEFW.js} +4 -4
- package/dist/cli-bundle/chunks/{test-runs-CA6K32RD.js → test-runs-UXIXPDKU.js} +4 -4
- package/dist/cli-bundle/chunks/update-AMRSOIWP.js +24 -0
- package/dist/cli-bundle/chunks/{update-DJKWLBWJ.js → update-KFX2SIAC.js} +15 -15
- package/dist/cli-bundle/chunks/{update-many-VW5DGF3S.js → update-many-RNSBX2TA.js} +23 -23
- package/dist/cli-bundle/chunks/{update-many-LU3SCNK5.js → update-many-Z5GJS5LC.js} +23 -23
- package/dist/cli-bundle/chunks/{upgrade-77FRUAXN.js → upgrade-BRL6KCOJ.js} +13 -12
- package/dist/cli-bundle/chunks/{upgrade-77FRUAXN.js.map → upgrade-BRL6KCOJ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-ICXY244R.js → upgrade-HAK6JG2O.js} +11 -10
- package/dist/cli-bundle/chunks/{upgrade-ICXY244R.js.map → upgrade-HAK6JG2O.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-2G566PKQ.js → validate-MTUVL5VC.js} +20 -19
- package/dist/cli-bundle/chunks/{validate-2G566PKQ.js.map → validate-MTUVL5VC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-BDPVXHHH.js → validate-X5W76YJL.js} +22 -21
- package/dist/cli-bundle/chunks/{validate-BDPVXHHH.js.map → validate-X5W76YJL.js.map} +1 -1
- package/dist/cli-bundle/main.js +55 -702
- package/dist/cli-bundle/main.js.map +4 -4
- package/dist/core/extensions/activation-summary-markdown.js +23 -12
- package/dist/core/extensions/activation-summary-markdown.js.map +1 -1
- package/dist/core/extensions/extension-policy.d.ts +18 -3
- package/dist/core/extensions/extension-policy.js +116 -106
- package/dist/core/extensions/extension-policy.js.map +1 -1
- package/dist/core/extensions/loader.js +310 -232
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/item/item-format.js +523 -410
- package/dist/core/item/item-format.js.map +1 -1
- package/dist/mcp/server.js +387 -367
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +111 -180
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +76 -45
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
- package/dist/sdk/compose.d.ts +4 -1
- package/dist/sdk/compose.js +181 -115
- package/dist/sdk/compose.js.map +1 -1
- package/docs/RELEASING.md +2 -3
- package/package.json +1 -1
- package/dist/cli-bundle/chunks/activity-EJBMXUBH.js +0 -16
- package/dist/cli-bundle/chunks/chunk-5IRVSKPS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5T6WPLRO.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6T5ZIWBS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6YRAMXRS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7WDETKGP.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-A3UNLXNJ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-C2KCIZKZ.js +0 -115
- package/dist/cli-bundle/chunks/chunk-C2KCIZKZ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-CY5IJMUM.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-DJDXAU74.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-DORJSBGJ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-DU66JUGT.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-F6VH3LFC.js +0 -118
- package/dist/cli-bundle/chunks/chunk-F6VH3LFC.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HIBK6H4S.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ISEKN64V.js +0 -35
- package/dist/cli-bundle/chunks/chunk-ISEKN64V.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-IZQOJR2B.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JZG5ADVE.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-K46GQ265.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-NIBP3I7A.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RM6MHL6A.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SNUK7H5J.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-T7ZMQI4J.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UB3V5WUI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-V3KLX7U7.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-VD3LKZFX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js +0 -32
- package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ZFIEEDTJ.js.map +0 -7
- package/dist/cli-bundle/chunks/close-37KEHLYM.js +0 -14
- package/dist/cli-bundle/chunks/create-DFMNBKBS.js +0 -28
- package/dist/cli-bundle/chunks/history-5XUSLAJA.js +0 -18
- package/dist/cli-bundle/chunks/history-redact-BVHWDXPR.js +0 -19
- package/dist/cli-bundle/chunks/init-TRYJELH4.js +0 -21
- package/dist/cli-bundle/chunks/restore-IRAKSWIW.js +0 -17
- package/dist/cli-bundle/chunks/update-UXDLTEOZ.js +0 -24
- /package/dist/cli-bundle/chunks/{activity-EJBMXUBH.js.map → activity-AW6XVFH6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-MVSEND6D.js.map → activity-DBLQVIP6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-MOC4TR2G.js.map → aggregate-JTEF4BP7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-XJHLZQ5X.js.map → aggregate-SDF7DUOD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-LEDBAM3K.js.map → append-LOVPGVPT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-KDHT4GHI.js.map → append-QCFJSDFL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FBZ5XAAF.js.map → chunk-22WKIL3H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EVWYAG46.js.map → chunk-2466X6E4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3JWQCLR5.js.map → chunk-27BXPBAY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WTRUDJ3R.js.map → chunk-2D4HATP2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LBH7UYKY.js.map → chunk-3K2M5OYU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KTMMTOIP.js.map → chunk-3S2KT7NG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FDEVKXC4.js.map → chunk-3VGN2UWE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KYDYQMNW.js.map → chunk-4DSGXSBL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7L6TXOOC.js.map → chunk-4DUVCVLZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZIE6WXJ2.js.map → chunk-5CGRF3L5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IBU2LLWM.js.map → chunk-64HNBBFQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WFJZDUM7.js.map → chunk-A7FPBAQS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-74PUWBGN.js.map → chunk-AVEE5EHK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KRASIL6M.js.map → chunk-AXIDKKAT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CHRNYKNI.js.map → chunk-BDTISOSD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RPRW26NG.js.map → chunk-CF7RL6FR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BN3CWK6G.js.map → chunk-DDPTYJIM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4YIMPANT.js.map → chunk-EJUDVUYZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-73PTKMAE.js.map → chunk-EVMTBV6V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-E2Q2ULMR.js.map → chunk-G7I7DEZA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IDYCAK35.js.map → chunk-GJ326ZKX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JJ4SG243.js.map → chunk-HPPFYYOV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JIP67N2K.js.map → chunk-HYTGA6GI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7RIJGN4R.js.map → chunk-HZZEHPRG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4TXTVZL3.js.map → chunk-IJYK2T43.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GF7EAR22.js.map → chunk-IPYBJWTE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AWN4PPH5.js.map → chunk-IZBR4NRW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IF4ERU6A.js.map → chunk-JLM7BHI7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HUYYMTGW.js.map → chunk-JPECA746.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KGQ3W65B.js.map → chunk-JSU5P7VS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z5BM2FKQ.js.map → chunk-KNPEF7QG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DLDCPF5X.js.map → chunk-L5OEFZQG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DRPF274X.js.map → chunk-LB6TP6MC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YEDFE4DC.js.map → chunk-MAUKX7JC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OB3RJV5F.js.map → chunk-N74UMG5H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZEATCVAC.js.map → chunk-NFDPYAIP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OUQ5JEFM.js.map → chunk-NKZAN7BD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5ABGFWR4.js.map → chunk-NOLPZMSV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QE5UFCCO.js.map → chunk-NWMZWYYB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VMY7MZEM.js.map → chunk-OGXLACHC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IHXXUIXS.js.map → chunk-OTUHB4HS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UFKNF23C.js.map → chunk-RGEMWD6Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z55WX4IQ.js.map → chunk-RLDHZHQS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NO6Y6FB2.js.map → chunk-RMMQ74TG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SJZTPVFT.js.map → chunk-SLMUGTK3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BOWQWXLI.js.map → chunk-TP5Q5ZD3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D5LYZVGB.js.map → chunk-UYUYDGIB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JVQ7UOYC.js.map → chunk-UZIWVBE6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JTRKME24.js.map → chunk-V3NOKJF2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-F7G53BOA.js.map → chunk-VICZWYGZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TQ6E76BE.js.map → chunk-W4ULYO7Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MLHX6DN5.js.map → chunk-WYDHYJPO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-53ARXF2O.js.map → chunk-YITK2PJ6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D6USKAMA.js.map → chunk-ZRP4VG5U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-6NINZYB3.js.map → claim-EMQLYPRW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-HMCLSLUE.js.map → claim-T3GCKV7C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-37KEHLYM.js.map → close-E6ZZGCJY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-OP3LK7Z2.js.map → close-TQYAAFJP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-BFMP6HHK.js.map → close-many-BG5QQIDQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-CXJBOWWY.js.map → close-many-LDRVEQY2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-MU2WMBUY.js.map → comments-QCKR2YY2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-ETHABIY6.js.map → comments-YUXJRZPQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-FIXJZEQK.js.map → config-DMSU64QO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-X3ZVCUUG.js.map → config-QH2DICD6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-XDI4DKKT.js.map → context-B6275WPX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-7ZEZV3BV.js.map → context-OCZ3FJ4Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-SMOAN5NF.js.map → contracts-HN7ABKLP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-KP4QAGVW.js.map → contracts-W4FZVVD6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-CWM6SBY6.js.map → copy-BTJOSKKT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-JJ3KOQW2.js.map → copy-DEM4DATS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-DFMNBKBS.js.map → create-OH3BDGBB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-J5Q2ELZT.js.map → create-RLRJMRTM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-OOQS4KVD.js.map → delete-BHK7VB2Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-2GZLQEUQ.js.map → delete-LSVHAB4Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-ZVGGCRR6.js.map → deps-4UDFJRUA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-IF4IGL4R.js.map → deps-XHYXWEPT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-2TIFR62T.js.map → docs-26S44RXU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-NFTBCQQC.js.map → docs-GYZNVS26.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-2F6EH4XN.js.map → eval-PGRVIJQU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-PFKXQR3B.js.map → eval-UYF3ZPVO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-GMVOIP4O.js.map → extension-CPSLJQVE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-3LRYX7SW.js.map → extension-CXJ6RELI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-T5ODMETM.js.map → files-MBNICQFM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-DF3HO6XK.js.map → files-NQHEXUZD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-DLXKK4AH.js.map → focus-DWYIG7GU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-MY5ARIEK.js.map → focus-XZW5423D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-FULIVYR4.js.map → gc-7GQYOS2G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-MDGRR2SU.js.map → gc-LPVMKJQJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-AWK324RS.js.map → get-A7MAOHCU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-VYPIICPC.js.map → get-DSDEKJ3L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-X4OSES6K.js.map → history-NERDJNUB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-5XUSLAJA.js.map → history-WSZHY3PN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-WLCQEKXS.js.map → history-compact-2WRZ2WK4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-2GHT32UX.js.map → history-compact-HR7BB4LR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-BVHWDXPR.js.map → history-redact-MP6CH7U5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-45YW65BK.js.map → history-redact-O3NBCNWC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-GABSDSVD.js.map → history-repair-LCMOS45X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-FY75IC26.js.map → history-repair-XA3LC4GA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-KO7CGIRQ.js.map → init-64XDLQJB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-TRYJELH4.js.map → init-PAX32BJA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-3F7YLI45.js.map → learnings-JR6MA5TI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-LHZT5BHW.js.map → learnings-LPKCSJX7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-ROT7JF62.js.map → list-DNBJVO3E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-Y6AU5BJS.js.map → list-G5Y65VF6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{next-66BJB4N2.js.map → next-BCERKDUR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{next-N5MWJTBY.js.map → next-FYTQF6HG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-FW6YFLND.js.map → notes-2BMU3VVQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-EVJZ3VAB.js.map → notes-6KTGO2OJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-DQ7G4EDC.js.map → plan-4WXEQCTN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-ZHKZ7JVF.js.map → plan-RKZHQVXR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-UPZGCDOG.js.map → profile-4OMM32CD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-CHAW6SEA.js.map → profile-QLER5ENE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-Y2VRHPCL.js.map → register-list-query-7LV46VAU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-KY6Z6WV7.js.map → register-list-query-SNG5PGA4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-PCARIGZS.js.map → register-mutation-ENNDUAZG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-N6AYSKPM.js.map → register-mutation-KK7PHYYU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-YAT6FUUB.js.map → register-operations-C6OWLDSH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-L6CYTOIH.js.map → register-operations-HZ6XERQG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-N7UGXYJC.js.map → register-setup-P67EMBDJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-MPANILQF.js.map → register-setup-ZKJ53RS7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-DKMCLPI5.js.map → restore-4MHZFJ2E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-IRAKSWIW.js.map → restore-YALDGTQR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-3F4QUEDH.js.map → scheduling-shortcuts-LB6DOLRL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-BNZLQK36.js.map → scheduling-shortcuts-UTOYKLXQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-OLT6LVKH.js.map → schema-73HR2OJW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-XJXKJQF5.js.map → schema-U6LJKSIR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-CX5UMV4H.js.map → search-AXPXKZER.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-KP6H7COV.js.map → search-KILGT37L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-QZUG6MX5.js.map → stats-PSYVVTNZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-7XW4OEMK.js.map → stats-W5KNVJWQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-WTYFUPRL.js.map → telemetry-BZUF6H7G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-DIFPXCAT.js.map → telemetry-GAHHQTOS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-QNDXZQCW.js.map → test-ACD52Z3S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-HU2BS7EY.js.map → test-PWDIZ255.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-LANLLPVO.js.map → test-runs-PLRAZEFW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-CA6K32RD.js.map → test-runs-UXIXPDKU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-UXDLTEOZ.js.map → update-AMRSOIWP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-DJKWLBWJ.js.map → update-KFX2SIAC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-VW5DGF3S.js.map → update-many-RNSBX2TA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-LU3SCNK5.js.map → update-many-Z5GJS5LC.js.map} +0 -0
|
@@ -4,12 +4,14 @@
|
|
|
4
4
|
* Implements extension package-management support for Scaffold.
|
|
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]="
|
|
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]="9cc4cb5f-313d-5e8c-8c63-545a7a8d2a03")}catch(e){}}();
|
|
8
8
|
import fs from "node:fs/promises";
|
|
9
9
|
import path from "node:path";
|
|
10
|
+
import { EXECUTABLE_COMMAND_ALIASES } from "../../bootstrap-args.js";
|
|
10
11
|
import { pathExists } from "../../../core/fs/fs-utils.js";
|
|
11
12
|
import { EXIT_CODE } from "../../../core/shared/constants.js";
|
|
12
13
|
import { PmCliError } from "../../../core/shared/errors.js";
|
|
14
|
+
import { PM_CORE_COMMAND_NAMES } from "../../../sdk/cli-contracts.js";
|
|
13
15
|
import { normalizeManagedDirectoryName } from "./shared.js";
|
|
14
16
|
// Safe compatibility floor emitted into scaffolded manifests. The current
|
|
15
17
|
// starters are loaded as TypeScript and use the SDK define*/testing helpers; the
|
|
@@ -26,6 +28,13 @@ const SCAFFOLD_DECLARED_PERMISSIONS = {
|
|
|
26
28
|
env_write: false,
|
|
27
29
|
process_spawn: false,
|
|
28
30
|
};
|
|
31
|
+
const RESERVED_SCAFFOLD_COMMAND_ROOTS = new Set([
|
|
32
|
+
...PM_CORE_COMMAND_NAMES.map((commandName) => commandName.split("-")[0].toLowerCase()),
|
|
33
|
+
...Object.keys(EXECUTABLE_COMMAND_ALIASES).map((alias) => alias.toLowerCase()),
|
|
34
|
+
// "scaffold" is a Commander command that currently lives outside both
|
|
35
|
+
// PM_CORE_COMMAND_NAMES and EXECUTABLE_COMMAND_ALIASES.
|
|
36
|
+
"scaffold",
|
|
37
|
+
]);
|
|
29
38
|
// TypeScript dev-dependency floor for scaffolded packages, matching the CLI's own
|
|
30
39
|
// toolchain so generated packages compile against the same compiler generation.
|
|
31
40
|
const SCAFFOLD_TYPESCRIPT_VERSION = "^6.0.0";
|
|
@@ -34,6 +43,25 @@ const SCAFFOLD_TYPESCRIPT_VERSION = "^6.0.0";
|
|
|
34
43
|
// to type-check. Pinned to the engines floor (Node >=22.18), matching the CLI
|
|
35
44
|
// itself — the version where Node strips TypeScript types on load by default.
|
|
36
45
|
const SCAFFOLD_TYPES_NODE_VERSION = "^22.0.0";
|
|
46
|
+
const SAMPLE_HARNESS_CLEANUP_LINES = [
|
|
47
|
+
"type StarterHarness = Awaited<ReturnType<typeof createExtensionTestHarness>>;",
|
|
48
|
+
"",
|
|
49
|
+
"async function deactivateIfNeeded(ext: StarterHarness, deactivated: boolean): Promise<void> {",
|
|
50
|
+
" if (!deactivated) {",
|
|
51
|
+
" try {",
|
|
52
|
+
" await ext.deactivate();",
|
|
53
|
+
" } catch {",
|
|
54
|
+
" // Preserve the original assertion error; cleanup is best effort.",
|
|
55
|
+
" }",
|
|
56
|
+
" }",
|
|
57
|
+
"}",
|
|
58
|
+
"",
|
|
59
|
+
];
|
|
60
|
+
const SAMPLE_HARNESS_FINALLY_LINES = [
|
|
61
|
+
" } finally {",
|
|
62
|
+
" await deactivateIfNeeded(ext, deactivated);",
|
|
63
|
+
" }",
|
|
64
|
+
];
|
|
37
65
|
// Strict NodeNext tsconfig emitted into every scaffold (ADR pm-2c28 / pm-m1uz:
|
|
38
66
|
// extensions are authored AND loaded as TypeScript). It is a type-check-only
|
|
39
67
|
// config (`noEmit`): there is no compile step — pm loads the `./index.ts`
|
|
@@ -448,6 +476,33 @@ function buildScaffoldActivationReadmeSection(capability, vocabulary) {
|
|
|
448
476
|
}
|
|
449
477
|
return LAZY_ACTIVATION_README_SECTION[vocabulary];
|
|
450
478
|
}
|
|
479
|
+
/**
|
|
480
|
+
* Builds the starter command path from the normalized package/extension name.
|
|
481
|
+
* Names that start with a built-in pm command or executable alias are prefixed
|
|
482
|
+
* with `starter` so the generated command dispatches to the package instead of
|
|
483
|
+
* being consumed by core command parsing.
|
|
484
|
+
*/
|
|
485
|
+
export function buildScaffoldCommandName(extensionName) {
|
|
486
|
+
const commandWords = extensionName
|
|
487
|
+
.replace(/-/g, " ")
|
|
488
|
+
.trim()
|
|
489
|
+
.split(/\s+/)
|
|
490
|
+
.filter((word) => word.length > 0);
|
|
491
|
+
if (commandWords.length === 0) {
|
|
492
|
+
return "starter ping";
|
|
493
|
+
}
|
|
494
|
+
const firstWordLower = commandWords[0].toLowerCase();
|
|
495
|
+
let leadingStarterWords = 0;
|
|
496
|
+
while (commandWords[leadingStarterWords]?.toLowerCase() === "starter") {
|
|
497
|
+
leadingStarterWords += 1;
|
|
498
|
+
}
|
|
499
|
+
const nextStarterWord = commandWords[leadingStarterWords]?.toLowerCase();
|
|
500
|
+
const starterRootCollision = leadingStarterWords > 0 &&
|
|
501
|
+
(leadingStarterWords === commandWords.length || (nextStarterWord !== undefined && RESERVED_SCAFFOLD_COMMAND_ROOTS.has(nextStarterWord)));
|
|
502
|
+
const reservedRoot = RESERVED_SCAFFOLD_COMMAND_ROOTS.has(firstWordLower) || starterRootCollision;
|
|
503
|
+
const resolvedWords = reservedRoot ? ["starter", ...commandWords] : commandWords;
|
|
504
|
+
return `${resolvedWords.join(" ")} ping`;
|
|
505
|
+
}
|
|
451
506
|
/**
|
|
452
507
|
* Build the project-profile archetype object literal the `profile` starter
|
|
453
508
|
* registers — a complete {@link ProjectProfileDefinition} derived from the package
|
|
@@ -905,13 +960,7 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
905
960
|
" const teardown = await ext.deactivate();",
|
|
906
961
|
" assertExtensionDeactivated(teardown);",
|
|
907
962
|
" deactivated = true;",
|
|
908
|
-
|
|
909
|
-
" if (!deactivated) {",
|
|
910
|
-
" try {",
|
|
911
|
-
" await ext.deactivate();",
|
|
912
|
-
" } catch {}",
|
|
913
|
-
" }",
|
|
914
|
-
" }",
|
|
963
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
915
964
|
"});",
|
|
916
965
|
"",
|
|
917
966
|
]
|
|
@@ -963,13 +1012,7 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
963
1012
|
" const teardown = await ext.deactivate();",
|
|
964
1013
|
" assertExtensionDeactivated(teardown);",
|
|
965
1014
|
" deactivated = true;",
|
|
966
|
-
|
|
967
|
-
" if (!deactivated) {",
|
|
968
|
-
" try {",
|
|
969
|
-
" await ext.deactivate();",
|
|
970
|
-
" } catch {}",
|
|
971
|
-
" }",
|
|
972
|
-
" }",
|
|
1015
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
973
1016
|
"});",
|
|
974
1017
|
"",
|
|
975
1018
|
]
|
|
@@ -1004,13 +1047,7 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
1004
1047
|
" const teardown = await ext.deactivate();",
|
|
1005
1048
|
" assertExtensionDeactivated(teardown);",
|
|
1006
1049
|
" deactivated = true;",
|
|
1007
|
-
|
|
1008
|
-
" if (!deactivated) {",
|
|
1009
|
-
" try {",
|
|
1010
|
-
" await ext.deactivate();",
|
|
1011
|
-
" } catch {}",
|
|
1012
|
-
" }",
|
|
1013
|
-
" }",
|
|
1050
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
1014
1051
|
"});",
|
|
1015
1052
|
"",
|
|
1016
1053
|
]
|
|
@@ -1041,13 +1078,7 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
1041
1078
|
" const teardown = await ext.deactivate();",
|
|
1042
1079
|
" assertExtensionDeactivated(teardown);",
|
|
1043
1080
|
" deactivated = true;",
|
|
1044
|
-
|
|
1045
|
-
" if (!deactivated) {",
|
|
1046
|
-
" try {",
|
|
1047
|
-
" await ext.deactivate();",
|
|
1048
|
-
" } catch {}",
|
|
1049
|
-
" }",
|
|
1050
|
-
" }",
|
|
1081
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
1051
1082
|
"});",
|
|
1052
1083
|
"",
|
|
1053
1084
|
]
|
|
@@ -1071,13 +1102,7 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
1071
1102
|
" const teardown = await ext.deactivate();",
|
|
1072
1103
|
" assertExtensionDeactivated(teardown);",
|
|
1073
1104
|
" deactivated = true;",
|
|
1074
|
-
|
|
1075
|
-
" if (!deactivated) {",
|
|
1076
|
-
" try {",
|
|
1077
|
-
" await ext.deactivate();",
|
|
1078
|
-
" } catch {}",
|
|
1079
|
-
" }",
|
|
1080
|
-
" }",
|
|
1105
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
1081
1106
|
"});",
|
|
1082
1107
|
"",
|
|
1083
1108
|
]
|
|
@@ -1117,13 +1142,7 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
1117
1142
|
" const teardown = await ext.deactivate();",
|
|
1118
1143
|
" assertExtensionDeactivated(teardown);",
|
|
1119
1144
|
" deactivated = true;",
|
|
1120
|
-
|
|
1121
|
-
" if (!deactivated) {",
|
|
1122
|
-
" try {",
|
|
1123
|
-
" await ext.deactivate();",
|
|
1124
|
-
" } catch {}",
|
|
1125
|
-
" }",
|
|
1126
|
-
" }",
|
|
1145
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
1127
1146
|
"});",
|
|
1128
1147
|
"",
|
|
1129
1148
|
]
|
|
@@ -1169,13 +1188,7 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
1169
1188
|
" const teardown = await ext.deactivate();",
|
|
1170
1189
|
" assertExtensionDeactivated(teardown);",
|
|
1171
1190
|
" deactivated = true;",
|
|
1172
|
-
|
|
1173
|
-
" if (!deactivated) {",
|
|
1174
|
-
" try {",
|
|
1175
|
-
" await ext.deactivate();",
|
|
1176
|
-
" } catch {}",
|
|
1177
|
-
" }",
|
|
1178
|
-
" }",
|
|
1191
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
1179
1192
|
"});",
|
|
1180
1193
|
"",
|
|
1181
1194
|
]
|
|
@@ -1215,13 +1228,7 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
1215
1228
|
" const teardown = await ext.deactivate();",
|
|
1216
1229
|
" assertExtensionDeactivated(teardown);",
|
|
1217
1230
|
" deactivated = true;",
|
|
1218
|
-
|
|
1219
|
-
" if (!deactivated) {",
|
|
1220
|
-
" try {",
|
|
1221
|
-
" await ext.deactivate();",
|
|
1222
|
-
" } catch {}",
|
|
1223
|
-
" }",
|
|
1224
|
-
" }",
|
|
1231
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
1225
1232
|
"});",
|
|
1226
1233
|
"",
|
|
1227
1234
|
]
|
|
@@ -1260,13 +1267,7 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
1260
1267
|
" const teardown = await ext.deactivate();",
|
|
1261
1268
|
" assertExtensionDeactivated(teardown);",
|
|
1262
1269
|
" deactivated = true;",
|
|
1263
|
-
|
|
1264
|
-
" if (!deactivated) {",
|
|
1265
|
-
" try {",
|
|
1266
|
-
" await ext.deactivate();",
|
|
1267
|
-
" } catch {}",
|
|
1268
|
-
" }",
|
|
1269
|
-
" }",
|
|
1270
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
1270
1271
|
"});",
|
|
1271
1272
|
"",
|
|
1272
1273
|
]
|
|
@@ -1282,6 +1283,7 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
1282
1283
|
...(searchEnabled ? ['import type { ItemDocument, PmSettings } from "@unbrained/pm-cli/sdk";'] : []),
|
|
1283
1284
|
'import extension from "./index.ts";',
|
|
1284
1285
|
"",
|
|
1286
|
+
...SAMPLE_HARNESS_CLEANUP_LINES,
|
|
1285
1287
|
`test(${JSON.stringify(`${extensionName} registers its starter command`)}, async () => {`,
|
|
1286
1288
|
" // `capabilities` mirrors manifest.json so the in-memory activation grants",
|
|
1287
1289
|
" // the capabilities the entrypoint relies on.",
|
|
@@ -1321,13 +1323,7 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
1321
1323
|
" const teardown = await ext.deactivate();",
|
|
1322
1324
|
" assertExtensionDeactivated(teardown);",
|
|
1323
1325
|
" deactivated = true;",
|
|
1324
|
-
|
|
1325
|
-
" if (!deactivated) {",
|
|
1326
|
-
" try {",
|
|
1327
|
-
" await ext.deactivate();",
|
|
1328
|
-
" } catch {}",
|
|
1329
|
-
" }",
|
|
1330
|
-
" }",
|
|
1326
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
1331
1327
|
"});",
|
|
1332
1328
|
"",
|
|
1333
1329
|
...hookTestLines,
|
|
@@ -1629,13 +1625,7 @@ function buildDeclarativeCapabilityTestBlock(extensionName, commandName, capabil
|
|
|
1629
1625
|
" const teardown = await ext.deactivate();",
|
|
1630
1626
|
" assertExtensionDeactivated(teardown);",
|
|
1631
1627
|
" deactivated = true;",
|
|
1632
|
-
|
|
1633
|
-
" if (!deactivated) {",
|
|
1634
|
-
" try {",
|
|
1635
|
-
" await ext.deactivate();",
|
|
1636
|
-
" } catch {}",
|
|
1637
|
-
" }",
|
|
1638
|
-
" }",
|
|
1628
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
1639
1629
|
];
|
|
1640
1630
|
switch (capability) {
|
|
1641
1631
|
case "hooks":
|
|
@@ -1928,6 +1918,7 @@ function buildDeclarativeSampleTestSource(extensionName, commandName, capability
|
|
|
1928
1918
|
...(capability === "search" ? ['import type { ItemDocument, PmSettings } from "@unbrained/pm-cli/sdk";'] : []),
|
|
1929
1919
|
'import extension, { blueprint } from "./index.ts";',
|
|
1930
1920
|
"",
|
|
1921
|
+
...SAMPLE_HARNESS_CLEANUP_LINES,
|
|
1931
1922
|
`test(${JSON.stringify(`${extensionName} passes author-time preflight`)}, () => {`,
|
|
1932
1923
|
" // assertExtensionPreflight is the author-time capstone: it lints the blueprint,",
|
|
1933
1924
|
" // synthesizes the least-privilege manifest from `identity`, and checks the version",
|
|
@@ -1986,13 +1977,7 @@ function buildDeclarativeSampleTestSource(extensionName, commandName, capability
|
|
|
1986
1977
|
" const teardown = await ext.deactivate();",
|
|
1987
1978
|
" assertExtensionDeactivated(teardown);",
|
|
1988
1979
|
" deactivated = true;",
|
|
1989
|
-
|
|
1990
|
-
" if (!deactivated) {",
|
|
1991
|
-
" try {",
|
|
1992
|
-
" await ext.deactivate();",
|
|
1993
|
-
" } catch {}",
|
|
1994
|
-
" }",
|
|
1995
|
-
" }",
|
|
1980
|
+
...SAMPLE_HARNESS_FINALLY_LINES,
|
|
1996
1981
|
"});",
|
|
1997
1982
|
"",
|
|
1998
1983
|
...buildDeclarativeCapabilityTestBlock(extensionName, commandName, capability, capabilitiesLiteral),
|
|
@@ -2088,6 +2073,133 @@ function buildDeclarativePackageReadme(packageName, commandName, capability) {
|
|
|
2088
2073
|
"",
|
|
2089
2074
|
].join("\n");
|
|
2090
2075
|
}
|
|
2076
|
+
/**
|
|
2077
|
+
* Project the {@link ScaffoldSnippetNames} for `extensionName`, omitting a
|
|
2078
|
+
* redundant self-alias when the de-hyphenated form already equals the type name.
|
|
2079
|
+
*/
|
|
2080
|
+
function buildScaffoldSnippetNames(extensionName) {
|
|
2081
|
+
const itemTypeName = extensionName;
|
|
2082
|
+
const itemTypeAlias = extensionName.replace(/-/g, "");
|
|
2083
|
+
return {
|
|
2084
|
+
searchProviderName: `${extensionName}-search`,
|
|
2085
|
+
vectorAdapterName: `${extensionName}-vector`,
|
|
2086
|
+
adapterName: `${extensionName.replace(/-/g, " ")} items`,
|
|
2087
|
+
itemTypeName,
|
|
2088
|
+
itemTypeFolder: `${extensionName}s`,
|
|
2089
|
+
itemTypeAliases: itemTypeAlias === itemTypeName ? [] : [itemTypeAlias],
|
|
2090
|
+
fieldName: `${extensionName.replace(/-/g, "_")}_note`,
|
|
2091
|
+
migrationId: `${extensionName}-0001-init`,
|
|
2092
|
+
};
|
|
2093
|
+
}
|
|
2094
|
+
/**
|
|
2095
|
+
* Build the comma-separated `define*` builder import list for the README
|
|
2096
|
+
* snippet, including only the builders the chosen capability demonstrates.
|
|
2097
|
+
*/
|
|
2098
|
+
function buildDefineBuilderImports(capability) {
|
|
2099
|
+
return [
|
|
2100
|
+
"defineCommand",
|
|
2101
|
+
...(capability === "hooks" ? ["defineAfterCommandHook"] : []),
|
|
2102
|
+
...(capability === "search" ? ["defineSearchProvider", "defineVectorStoreAdapter"] : []),
|
|
2103
|
+
...(capability === "importers" ? ["defineImporter", "defineExporter"] : []),
|
|
2104
|
+
...(capability === "schema" ? ["defineItemType", "defineItemField", "defineMigration"] : []),
|
|
2105
|
+
...(capability === "profile" ? ["defineProjectProfile"] : []),
|
|
2106
|
+
...(capability === "renderers" ? ["defineRendererOverride"] : []),
|
|
2107
|
+
...(capability === "parser" ? ["defineParserOverride"] : []),
|
|
2108
|
+
...(capability === "preflight" ? ["definePreflightOverride"] : []),
|
|
2109
|
+
...(capability === "services" ? ["defineServiceOverride"] : []),
|
|
2110
|
+
].join(", ");
|
|
2111
|
+
}
|
|
2112
|
+
/**
|
|
2113
|
+
* Build the exported `define*` declarations for the README snippet: the base
|
|
2114
|
+
* `pingCommand` (with parser flags for the parser capability) plus the one
|
|
2115
|
+
* capability-specific export the chosen capability demonstrates.
|
|
2116
|
+
*/
|
|
2117
|
+
function buildDefineBuilderExports(extensionName, commandName, capability, names) {
|
|
2118
|
+
const lines = [
|
|
2119
|
+
"export const pingCommand = defineCommand({",
|
|
2120
|
+
` name: ${JSON.stringify(commandName)},`,
|
|
2121
|
+
' description: "Starter scaffold command. Replace with your own behavior.",',
|
|
2122
|
+
// The parser starter's command declares the flags its override normalizes so
|
|
2123
|
+
// the demo is runnable through `pm <command> --shout`, and surfaces the
|
|
2124
|
+
// canonical `upper` flag in the result.
|
|
2125
|
+
...(capability === "parser"
|
|
2126
|
+
? [
|
|
2127
|
+
" flags: [",
|
|
2128
|
+
' { long: "--shout", value_type: "boolean", description: "Deprecated alias for --upper." },',
|
|
2129
|
+
' { long: "--upper", value_type: "boolean", description: "Canonical flag the parser produces." },',
|
|
2130
|
+
" ],",
|
|
2131
|
+
" run: (context) => ({ ok: true, command: context.command, upper: context.options.upper === true }),",
|
|
2132
|
+
]
|
|
2133
|
+
: [" run: (context) => ({ ok: true, command: context.command }),"]),
|
|
2134
|
+
"});",
|
|
2135
|
+
];
|
|
2136
|
+
if (capability === "hooks") {
|
|
2137
|
+
lines.push("", "export const afterCommandHook = defineAfterCommandHook((context) => {", " if (!context.ok) return;", " // React to context.affected here as your package grows.", "});");
|
|
2138
|
+
}
|
|
2139
|
+
if (capability === "search") {
|
|
2140
|
+
lines.push("", "export const searchProvider = defineSearchProvider({", ` name: ${JSON.stringify(names.searchProviderName)},`, " query: async (context) => ({", " hits: context.documents", " .filter((document) => String(document.metadata.title ?? \"\").toLowerCase().includes(context.query.toLowerCase()))", " .map((document) => ({ id: document.metadata.id, score: 1, matched_fields: [\"title\"] })),", " }),", " embed: async (context) => [context.input.length],", "});", "", "export const vectorStoreAdapter = defineVectorStoreAdapter({", ` name: ${JSON.stringify(names.vectorAdapterName)},`, " query: async (context) => [{ id: \"starter-vector-hit\", score: context.limit }],", " upsert: async (context) => ({ upserted: context.points.length }),", " delete: async (context) => ({ deleted: context.ids.length }),", "});");
|
|
2141
|
+
}
|
|
2142
|
+
if (capability === "importers") {
|
|
2143
|
+
lines.push("", "export const importer = defineImporter(async (context) => ({", " imported: 1,", " source: context.options.source ?? \"starter\",", " args: context.args,", "}));", "", "export const exporter = defineExporter(async (context) => ({", " exported: true,", " destination: context.options.destination ?? \"stdout\",", " args: context.args,", "}));");
|
|
2144
|
+
}
|
|
2145
|
+
if (capability === "schema") {
|
|
2146
|
+
lines.push("", `export const noteField = defineItemField({ name: ${JSON.stringify(names.fieldName)}, type: "string", optional: true });`, "", "export const itemType = defineItemType({", ` name: ${JSON.stringify(names.itemTypeName)},`, ` folder: ${JSON.stringify(names.itemTypeFolder)},`, ` aliases: ${JSON.stringify(names.itemTypeAliases)},`, " required_create_fields: [],", "});", "", "export const initMigration = defineMigration({", ` id: ${JSON.stringify(names.migrationId)},`, ` description: ${JSON.stringify(`Initialize ${extensionName} schema state.`)},`, " mandatory: false,", " run: async (context) => ({ migrated: true, id: context.id }),", "});");
|
|
2147
|
+
}
|
|
2148
|
+
if (capability === "profile") {
|
|
2149
|
+
// Abbreviated illustration; the generated index.ts populates every archetype
|
|
2150
|
+
// dimension (types, statuses, fields, workflow, config, template, packages).
|
|
2151
|
+
lines.push("", "export const starterProfile = defineProjectProfile({", ` name: ${JSON.stringify(extensionName)},`, ` title: ${JSON.stringify(`${extensionName} archetype`)},`, ' summary: "Starter project profile. Replace these dimensions with your own archetype.",', " types: [", ` { name: ${JSON.stringify(names.itemTypeName)}, folder: ${JSON.stringify(names.itemTypeFolder)} },`, " ],", " // ...plus statuses, fields, workflows, config, templates, and packages.", "});");
|
|
2152
|
+
}
|
|
2153
|
+
if (capability === "renderers") {
|
|
2154
|
+
lines.push("", "export const toonRenderer = defineRendererOverride((context) => {", ` if (context.command !== ${JSON.stringify(commandName)}) return null;`, ` return ${JSON.stringify(`${extensionName}: `)} + JSON.stringify(context.result);`, "});");
|
|
2155
|
+
}
|
|
2156
|
+
if (capability === "parser") {
|
|
2157
|
+
lines.push("", "export const pingParser = defineParserOverride((context) => {", " const options = { ...context.options };", " if (options.shout === true) options.upper = true;", " delete options.shout;", " return { options };", "});");
|
|
2158
|
+
}
|
|
2159
|
+
if (capability === "preflight") {
|
|
2160
|
+
lines.push("", "// Return a delta of the gate-decision keys you want to change; returning", "// context.decision unchanged is a safe no-op (e.g. { run_extension_migrations: false }).", "export const preflightOverride = definePreflightOverride((context) => context.decision);");
|
|
2161
|
+
}
|
|
2162
|
+
if (capability === "services") {
|
|
2163
|
+
lines.push("", "export const outputService = defineServiceOverride((context) => {", ` if (context.command !== ${JSON.stringify(commandName)}) return context.payload;`, ` return { rendered_by: ${JSON.stringify(extensionName)}, payload: context.payload };`, "});");
|
|
2164
|
+
}
|
|
2165
|
+
return lines;
|
|
2166
|
+
}
|
|
2167
|
+
/**
|
|
2168
|
+
* Build the `activate` body registrations for the README snippet: one
|
|
2169
|
+
* `api.register*`/`api.hooks.*` call wiring the capability-specific exports
|
|
2170
|
+
* produced by {@link buildDefineBuilderExports}.
|
|
2171
|
+
*/
|
|
2172
|
+
function buildDefineBuilderActivate(commandName, capability, names) {
|
|
2173
|
+
const lines = [];
|
|
2174
|
+
if (capability === "renderers") {
|
|
2175
|
+
lines.push(' api.registerRenderer("toon", toonRenderer);');
|
|
2176
|
+
}
|
|
2177
|
+
if (capability === "parser") {
|
|
2178
|
+
lines.push(` api.registerParser(${JSON.stringify(commandName)}, pingParser);`);
|
|
2179
|
+
}
|
|
2180
|
+
if (capability === "preflight") {
|
|
2181
|
+
lines.push(" api.registerPreflight(preflightOverride);");
|
|
2182
|
+
}
|
|
2183
|
+
if (capability === "services") {
|
|
2184
|
+
lines.push(' api.registerService("output_format", outputService);');
|
|
2185
|
+
}
|
|
2186
|
+
if (capability === "hooks") {
|
|
2187
|
+
lines.push(" api.hooks.afterCommand(afterCommandHook);");
|
|
2188
|
+
}
|
|
2189
|
+
if (capability === "search") {
|
|
2190
|
+
lines.push(" api.registerSearchProvider(searchProvider);", " api.registerVectorStoreAdapter(vectorStoreAdapter);");
|
|
2191
|
+
}
|
|
2192
|
+
if (capability === "schema") {
|
|
2193
|
+
lines.push(" api.registerItemFields([noteField]);", " api.registerItemTypes([itemType]);", " api.registerMigration(initMigration);");
|
|
2194
|
+
}
|
|
2195
|
+
if (capability === "profile") {
|
|
2196
|
+
lines.push(" api.registerProfile(starterProfile);");
|
|
2197
|
+
}
|
|
2198
|
+
if (capability === "importers") {
|
|
2199
|
+
lines.push(` api.registerImporter(${JSON.stringify(names.adapterName)}, importer, {`, ` action: ${JSON.stringify(`${names.adapterName} import`)},`, ' description: "Import starter records into pm context.",', " flags: [", " {", ' long: "--source",', ' value_name: "name",', ' value_type: "string",', ' description: "Source name or path to import from.",', " },", " ],", " });", ` api.registerExporter(${JSON.stringify(names.adapterName)}, exporter, {`, ` action: ${JSON.stringify(`${names.adapterName} export`)},`, ' description: "Export pm context into starter records.",', " flags: [", " {", ' long: "--destination",', ' value_name: "name",', ' value_type: "string",', ' description: "Destination name or path to export to.",', " },", " ],", " });");
|
|
2200
|
+
}
|
|
2201
|
+
return lines;
|
|
2202
|
+
}
|
|
2091
2203
|
/**
|
|
2092
2204
|
* Implements build starter extension scaffold files for the public runtime surface of this module.
|
|
2093
2205
|
*/
|
|
@@ -2204,108 +2316,25 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
2204
2316
|
"*.tsbuildinfo",
|
|
2205
2317
|
"",
|
|
2206
2318
|
].join("\n");
|
|
2207
|
-
const
|
|
2208
|
-
const
|
|
2209
|
-
const adapterName = `${extensionName.replace(/-/g, " ")} items`;
|
|
2210
|
-
const itemTypeName = extensionName;
|
|
2211
|
-
const itemTypeFolder = `${extensionName}s`;
|
|
2212
|
-
const itemTypeAlias = extensionName.replace(/-/g, "");
|
|
2213
|
-
// Omit a redundant self-alias when the de-hyphenated form equals the type name.
|
|
2214
|
-
const itemTypeAliases = itemTypeAlias === itemTypeName ? [] : [itemTypeAlias];
|
|
2215
|
-
const fieldName = `${extensionName.replace(/-/g, "_")}_note`;
|
|
2216
|
-
const migrationId = `${extensionName}-0001-init`;
|
|
2217
|
-
const defineBuilderImports = [
|
|
2218
|
-
"defineCommand",
|
|
2219
|
-
...(capability === "hooks" ? ["defineAfterCommandHook"] : []),
|
|
2220
|
-
...(capability === "search" ? ["defineSearchProvider", "defineVectorStoreAdapter"] : []),
|
|
2221
|
-
...(capability === "importers" ? ["defineImporter", "defineExporter"] : []),
|
|
2222
|
-
...(capability === "schema" ? ["defineItemType", "defineItemField", "defineMigration"] : []),
|
|
2223
|
-
...(capability === "profile" ? ["defineProjectProfile"] : []),
|
|
2224
|
-
...(capability === "renderers" ? ["defineRendererOverride"] : []),
|
|
2225
|
-
...(capability === "parser" ? ["defineParserOverride"] : []),
|
|
2226
|
-
...(capability === "preflight" ? ["definePreflightOverride"] : []),
|
|
2227
|
-
...(capability === "services" ? ["defineServiceOverride"] : []),
|
|
2228
|
-
].join(", ");
|
|
2319
|
+
const names = buildScaffoldSnippetNames(extensionName);
|
|
2320
|
+
const defineBuilderImports = buildDefineBuilderImports(capability);
|
|
2229
2321
|
const defineBuilderSnippet = [
|
|
2230
2322
|
"```ts",
|
|
2231
2323
|
`import { ${defineBuilderImports} } from "@unbrained/pm-cli/sdk";`,
|
|
2232
2324
|
'import type { ExtensionApi } from "@unbrained/pm-cli/sdk";',
|
|
2233
2325
|
"",
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
" ],",
|
|
2246
|
-
" run: (context) => ({ ok: true, command: context.command, upper: context.options.upper === true }),",
|
|
2247
|
-
]
|
|
2248
|
-
: [" run: (context) => ({ ok: true, command: context.command }),"]),
|
|
2249
|
-
"});",
|
|
2326
|
+
...buildDefineBuilderExports(extensionName, commandName, capability, names),
|
|
2327
|
+
"",
|
|
2328
|
+
"export function activate(api: ExtensionApi): void {",
|
|
2329
|
+
" api.registerCommand(pingCommand);",
|
|
2330
|
+
...buildDefineBuilderActivate(commandName, capability, names),
|
|
2331
|
+
"}",
|
|
2332
|
+
"",
|
|
2333
|
+
"export function deactivate(): void {}",
|
|
2334
|
+
"",
|
|
2335
|
+
"export default { activate, deactivate };",
|
|
2336
|
+
"```",
|
|
2250
2337
|
];
|
|
2251
|
-
if (capability === "hooks") {
|
|
2252
|
-
defineBuilderSnippet.push("", "export const afterCommandHook = defineAfterCommandHook((context) => {", " if (!context.ok) return;", " // React to context.affected here as your package grows.", "});");
|
|
2253
|
-
}
|
|
2254
|
-
if (capability === "search") {
|
|
2255
|
-
defineBuilderSnippet.push("", "export const searchProvider = defineSearchProvider({", ` name: ${JSON.stringify(searchProviderName)},`, " query: async (context) => ({", " hits: context.documents", " .filter((document) => String(document.metadata.title ?? \"\").toLowerCase().includes(context.query.toLowerCase()))", " .map((document) => ({ id: document.metadata.id, score: 1, matched_fields: [\"title\"] })),", " }),", " embed: async (context) => [context.input.length],", "});", "", "export const vectorStoreAdapter = defineVectorStoreAdapter({", ` name: ${JSON.stringify(vectorAdapterName)},`, " query: async (context) => [{ id: \"starter-vector-hit\", score: context.limit }],", " upsert: async (context) => ({ upserted: context.points.length }),", " delete: async (context) => ({ deleted: context.ids.length }),", "});");
|
|
2256
|
-
}
|
|
2257
|
-
if (capability === "importers") {
|
|
2258
|
-
defineBuilderSnippet.push("", "export const importer = defineImporter(async (context) => ({", " imported: 1,", " source: context.options.source ?? \"starter\",", " args: context.args,", "}));", "", "export const exporter = defineExporter(async (context) => ({", " exported: true,", " destination: context.options.destination ?? \"stdout\",", " args: context.args,", "}));");
|
|
2259
|
-
}
|
|
2260
|
-
if (capability === "schema") {
|
|
2261
|
-
defineBuilderSnippet.push("", `export const noteField = defineItemField({ name: ${JSON.stringify(fieldName)}, type: "string", optional: true });`, "", "export const itemType = defineItemType({", ` name: ${JSON.stringify(itemTypeName)},`, ` folder: ${JSON.stringify(itemTypeFolder)},`, ` aliases: ${JSON.stringify(itemTypeAliases)},`, " required_create_fields: [],", "});", "", "export const initMigration = defineMigration({", ` id: ${JSON.stringify(migrationId)},`, ` description: ${JSON.stringify(`Initialize ${extensionName} schema state.`)},`, " mandatory: false,", " run: async (context) => ({ migrated: true, id: context.id }),", "});");
|
|
2262
|
-
}
|
|
2263
|
-
if (capability === "profile") {
|
|
2264
|
-
// Abbreviated illustration; the generated index.ts populates every archetype
|
|
2265
|
-
// dimension (types, statuses, fields, workflow, config, template, packages).
|
|
2266
|
-
defineBuilderSnippet.push("", "export const starterProfile = defineProjectProfile({", ` name: ${JSON.stringify(extensionName)},`, ` title: ${JSON.stringify(`${extensionName} archetype`)},`, ' summary: "Starter project profile. Replace these dimensions with your own archetype.",', " types: [", ` { name: ${JSON.stringify(itemTypeName)}, folder: ${JSON.stringify(itemTypeFolder)} },`, " ],", " // ...plus statuses, fields, workflows, config, templates, and packages.", "});");
|
|
2267
|
-
}
|
|
2268
|
-
if (capability === "renderers") {
|
|
2269
|
-
defineBuilderSnippet.push("", "export const toonRenderer = defineRendererOverride((context) => {", ` if (context.command !== ${JSON.stringify(commandName)}) return null;`, ` return ${JSON.stringify(`${extensionName}: `)} + JSON.stringify(context.result);`, "});");
|
|
2270
|
-
}
|
|
2271
|
-
if (capability === "parser") {
|
|
2272
|
-
defineBuilderSnippet.push("", "export const pingParser = defineParserOverride((context) => {", " const options = { ...context.options };", " if (options.shout === true) options.upper = true;", " delete options.shout;", " return { options };", "});");
|
|
2273
|
-
}
|
|
2274
|
-
if (capability === "preflight") {
|
|
2275
|
-
defineBuilderSnippet.push("", "// Return a delta of the gate-decision keys you want to change; returning", "// context.decision unchanged is a safe no-op (e.g. { run_extension_migrations: false }).", "export const preflightOverride = definePreflightOverride((context) => context.decision);");
|
|
2276
|
-
}
|
|
2277
|
-
if (capability === "services") {
|
|
2278
|
-
defineBuilderSnippet.push("", "export const outputService = defineServiceOverride((context) => {", ` if (context.command !== ${JSON.stringify(commandName)}) return context.payload;`, ` return { rendered_by: ${JSON.stringify(extensionName)}, payload: context.payload };`, "});");
|
|
2279
|
-
}
|
|
2280
|
-
defineBuilderSnippet.push("", "export function activate(api: ExtensionApi): void {", " api.registerCommand(pingCommand);");
|
|
2281
|
-
if (capability === "renderers") {
|
|
2282
|
-
defineBuilderSnippet.push(' api.registerRenderer("toon", toonRenderer);');
|
|
2283
|
-
}
|
|
2284
|
-
if (capability === "parser") {
|
|
2285
|
-
defineBuilderSnippet.push(` api.registerParser(${JSON.stringify(commandName)}, pingParser);`);
|
|
2286
|
-
}
|
|
2287
|
-
if (capability === "preflight") {
|
|
2288
|
-
defineBuilderSnippet.push(" api.registerPreflight(preflightOverride);");
|
|
2289
|
-
}
|
|
2290
|
-
if (capability === "services") {
|
|
2291
|
-
defineBuilderSnippet.push(' api.registerService("output_format", outputService);');
|
|
2292
|
-
}
|
|
2293
|
-
if (capability === "hooks") {
|
|
2294
|
-
defineBuilderSnippet.push(" api.hooks.afterCommand(afterCommandHook);");
|
|
2295
|
-
}
|
|
2296
|
-
if (capability === "search") {
|
|
2297
|
-
defineBuilderSnippet.push(" api.registerSearchProvider(searchProvider);", " api.registerVectorStoreAdapter(vectorStoreAdapter);");
|
|
2298
|
-
}
|
|
2299
|
-
if (capability === "schema") {
|
|
2300
|
-
defineBuilderSnippet.push(" api.registerItemFields([noteField]);", " api.registerItemTypes([itemType]);", " api.registerMigration(initMigration);");
|
|
2301
|
-
}
|
|
2302
|
-
if (capability === "profile") {
|
|
2303
|
-
defineBuilderSnippet.push(" api.registerProfile(starterProfile);");
|
|
2304
|
-
}
|
|
2305
|
-
if (capability === "importers") {
|
|
2306
|
-
defineBuilderSnippet.push(` api.registerImporter(${JSON.stringify(adapterName)}, importer, {`, ` action: ${JSON.stringify(`${adapterName} import`)},`, ' description: "Import starter records into pm context.",', " flags: [", " {", ' long: "--source",', ' value_name: "name",', ' value_type: "string",', ' description: "Source name or path to import from.",', " },", " ],", " });", ` api.registerExporter(${JSON.stringify(adapterName)}, exporter, {`, ` action: ${JSON.stringify(`${adapterName} export`)},`, ' description: "Export pm context into starter records.",', " flags: [", " {", ' long: "--destination",', ' value_name: "name",', ' value_type: "string",', ' description: "Destination name or path to export to.",', " },", " ],", " });");
|
|
2307
|
-
}
|
|
2308
|
-
defineBuilderSnippet.push("}", "", "export function deactivate(): void {}", "", "export default { activate, deactivate };", "```");
|
|
2309
2338
|
const packageReadme = [
|
|
2310
2339
|
`# ${packageName}`,
|
|
2311
2340
|
"",
|
|
@@ -2450,10 +2479,9 @@ export async function scaffoldExtensionProject(target, vocabulary = "extension",
|
|
|
2450
2479
|
const normalizedTarget = target.trim();
|
|
2451
2480
|
const targetPath = path.resolve(process.cwd(), normalizedTarget);
|
|
2452
2481
|
const extensionName = normalizeManagedDirectoryName(path.basename(targetPath));
|
|
2453
|
-
// Hyphenated
|
|
2454
|
-
//
|
|
2455
|
-
|
|
2456
|
-
const commandName = `${extensionName.replace(/-/g, " ")} ping`;
|
|
2482
|
+
// Hyphenated names become space-separated command words; reserved roots get a
|
|
2483
|
+
// `starter` prefix so core commands and aliases cannot intercept dispatch.
|
|
2484
|
+
const commandName = buildScaffoldCommandName(extensionName);
|
|
2457
2485
|
const scaffoldFiles = buildStarterExtensionScaffoldFiles(extensionName, commandName, vocabulary, resolvedCapability, declarative);
|
|
2458
2486
|
let createdDirectory = false;
|
|
2459
2487
|
if (await pathExists(targetPath)) {
|
|
@@ -2504,4 +2532,4 @@ export async function scaffoldExtensionProject(target, vocabulary = "extension",
|
|
|
2504
2532
|
};
|
|
2505
2533
|
}
|
|
2506
2534
|
//# sourceMappingURL=scaffold.js.map
|
|
2507
|
-
//# debugId=
|
|
2535
|
+
//# debugId=9cc4cb5f-313d-5e8c-8c63-545a7a8d2a03
|