@unbrained/pm-cli 2026.6.23 → 2026.6.24
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/CHANGELOG.md +28 -0
- package/dist/cli/commands/extension/scaffold.js +142 -54
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension.js +10 -3
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-54TXGJ2T.js +18 -0
- package/dist/cli-bundle/chunks/{activity-H2LMOSSW.js → activity-N7RVTLBQ.js} +11 -11
- package/dist/cli-bundle/chunks/{aggregate-R725FC3S.js → aggregate-63NWNIBR.js} +10 -10
- package/dist/cli-bundle/chunks/{aggregate-EGJLZQBI.js → aggregate-YHCYX2EV.js} +10 -10
- package/dist/cli-bundle/chunks/{append-5J345QGU.js → append-PUKREFV5.js} +8 -8
- package/dist/cli-bundle/chunks/{append-O5HPBMRN.js → append-VLQQDHMJ.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-3VY3YQO6.js → chunk-2WCYE3IF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WZQWHN4R.js → chunk-3BKH2CL3.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7UGEAPRY.js → chunk-4XDGYFHL.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-H4IIJDE4.js → chunk-5BBEWX6C.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2CKH2LMV.js → chunk-5S4ZGDB2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4KD54S3Z.js → chunk-6EBNFQOR.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-QL5RVYOA.js → chunk-6EL7SW5C.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-MJTINN54.js → chunk-6W3Y65PL.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-U2Z5YUSO.js → chunk-A66VYUOV.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-Q2KNGP7C.js → chunk-ABYCA5VX.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-VFAQ4LMN.js → chunk-AEACLRVH.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-7AUB5HNA.js → chunk-ALKFCIIB.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-H2IP4QLJ.js → chunk-ALQKV6U7.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-G6N5VEOK.js → chunk-AYPQUFCX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7MRQ4HMK.js → chunk-B74BP6IS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7SV63ZHD.js → chunk-BFFO3AIB.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-NCVCO3NZ.js → chunk-C4C3EJCJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UVC5LOR7.js → chunk-CG3KP6I5.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-FXR67XVQ.js → chunk-CZIFFMZI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XVF4YARA.js → chunk-DTABLLVE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7XGQXHFB.js → chunk-EOGBMLCE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TQZH6OD6.js → chunk-EWRSXOIZ.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-MJTSZKK5.js → chunk-EYPINTFR.js} +131 -97
- package/dist/cli-bundle/chunks/chunk-EYPINTFR.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-IB3GYLQE.js → chunk-F32L4HR6.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-SBQTAVJZ.js → chunk-F4BNR2IN.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-S2RUQSX2.js → chunk-FBLT6WGK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2T3JG6V4.js → chunk-FMWW2JDU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-W72GHSJE.js → chunk-GDUMGZK3.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-Y4SUQQYH.js → chunk-GQYJEEFX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-AONIHR2C.js → chunk-HBAEFWX3.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-YUDJD3XO.js → chunk-HC2S36NB.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-DT5LPYOD.js → chunk-HZF5RLKX.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-P77P2ILI.js → chunk-I6QMJ2XT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZRK4O56R.js → chunk-IAP5KYBQ.js} +13 -13
- package/dist/cli-bundle/chunks/{chunk-MVKFOLLM.js → chunk-INPHFO33.js} +119 -49
- package/dist/cli-bundle/chunks/chunk-INPHFO33.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SKH7OGE5.js → chunk-IOT6WRL5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-66MEDTUD.js → chunk-IXAZI443.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4BHT5VDC.js → chunk-J3NMWFIN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HFFUQR73.js → chunk-J7I4C5ZB.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-G6PYHBBR.js → chunk-JKL6HRMV.js} +12 -7
- package/dist/cli-bundle/chunks/chunk-JKL6HRMV.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-NK3UPBVG.js → chunk-JPJDP4VU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-T5472OMV.js → chunk-JV27C7OZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ZQ3ZVXX2.js → chunk-KIEAK7YE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5UVVASSA.js → chunk-KJZOSF7J.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-CIIK67GW.js → chunk-KKX4Z2SE.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-KQMUV6LX.js → chunk-L7UXKP2I.js} +13 -8
- package/dist/cli-bundle/chunks/chunk-L7UXKP2I.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-GAJVRGGA.js → chunk-LNEDHJNQ.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-BB6MDVNQ.js → chunk-LU36E6GU.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-CE5P2NQR.js → chunk-M6TUBOGW.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-55ISXAQH.js → chunk-MEXZ5XUM.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-AD3A7ZD6.js → chunk-MWMHZOZZ.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-46G6RSB6.js → chunk-N5B6WZC5.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-C5AOG6D2.js → chunk-NJ73ALW2.js} +120 -50
- package/dist/cli-bundle/chunks/chunk-NJ73ALW2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-S26C36QC.js → chunk-NVXGVEFD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2BFPAUAF.js → chunk-OF7V47P3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-IPKJ6B36.js → chunk-OHDQNKJB.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-2RDVQEWV.js → chunk-OQ2E64FH.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5VOINNKT.js → chunk-PEL2NLQE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SKN7LC5W.js → chunk-PRVTGX64.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-34EONI5F.js → chunk-QOUOMPHO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QH3PJYON.js → chunk-RAWA3Y7O.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-LRKKONT2.js → chunk-RRP6D345.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-FIGAZ4Y7.js → chunk-SKC4UTRP.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-CKGNPJAG.js → chunk-SMXSDY7J.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KFWBJPSG.js → chunk-SUREE24M.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-O6LLO73I.js → chunk-TIM4OD74.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YDEXO24S.js → chunk-TKPP4GOO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-T72AZDBA.js → chunk-TSI32UEL.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7K2XXO4I.js → chunk-UACWNBL2.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-WBRKK5QR.js → chunk-V4UYNSEM.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-M4T5DXD5.js → chunk-VFJYVXHL.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-UELRKQQU.js → chunk-VSAABFGQ.js} +125 -98
- package/dist/cli-bundle/chunks/chunk-VSAABFGQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-WM5ZVBPE.js → chunk-WB5BYQMF.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-SR3EKWZG.js → chunk-XVYKWZNL.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-JR2LV3M4.js → chunk-XXKV4UWE.js} +13 -13
- package/dist/cli-bundle/chunks/{chunk-2A34E3BA.js → chunk-YV2OSAMS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VAYA4XFX.js → chunk-ZLWRPBOW.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-YJ3SUEPD.js → chunk-ZV7IQ23N.js} +2 -2
- package/dist/cli-bundle/chunks/{claim-4KHAA2RN.js → claim-FZZZCAY6.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-CSPJFLNH.js → claim-XK5QBZE3.js} +10 -10
- package/dist/cli-bundle/chunks/close-JEBZXONN.js +15 -0
- package/dist/cli-bundle/chunks/{close-W56IOGYG.js → close-QHMVWM7M.js} +8 -8
- package/dist/cli-bundle/chunks/{close-many-BX5DCSVV.js → close-many-OIXJE2JZ.js} +15 -15
- package/dist/cli-bundle/chunks/{close-many-TQU5F4E4.js → close-many-SUU5BS2C.js} +15 -15
- package/dist/cli-bundle/chunks/{comments-U5KUC4EU.js → comments-5YM62D75.js} +10 -10
- package/dist/cli-bundle/chunks/{comments-VRECH75R.js → comments-RH3IBIRH.js} +10 -10
- package/dist/cli-bundle/chunks/{config-D3OKQO52.js → config-NCNNWF6R.js} +8 -8
- package/dist/cli-bundle/chunks/{config-MMJA4LLK.js → config-SW3U7XP2.js} +8 -8
- package/dist/cli-bundle/chunks/{context-DHLVPXN3.js → context-55VEOYI3.js} +13 -13
- package/dist/cli-bundle/chunks/{context-BLBD3PUB.js → context-5LB7UGKE.js} +13 -13
- package/dist/cli-bundle/chunks/{contracts-XGVMMPC5.js → contracts-JXFGBOYT.js} +4 -4
- package/dist/cli-bundle/chunks/{contracts-C3SZCXXG.js → contracts-SY6PDFIK.js} +4 -4
- package/dist/cli-bundle/chunks/{copy-5D5DX3VK.js → copy-IEDBJOOX.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-HHL3K4QP.js → copy-N3GE6FYS.js} +7 -7
- package/dist/cli-bundle/chunks/create-CLSCHGJJ.js +30 -0
- package/dist/cli-bundle/chunks/{create-IXY43O4H.js → create-O4VONGPG.js} +14 -14
- package/dist/cli-bundle/chunks/{delete-IBUR3M42.js → delete-724EQ6OS.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-QQC2FGUH.js → delete-LPEIF7RU.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-VTPO4BSE.js → deps-RSBU4SIU.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-KWKRHXIN.js → deps-T3Y6Y7RT.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-7CHFHXLN.js → docs-75ZLCO3G.js} +9 -9
- package/dist/cli-bundle/chunks/{docs-IIO3FEUO.js → docs-IFS7HZPP.js} +9 -9
- package/dist/cli-bundle/chunks/{eval-IO7LREOL.js → eval-L2KD7W3M.js} +12 -12
- package/dist/cli-bundle/chunks/{eval-CEYYEPSX.js → eval-QGR7JCQO.js} +12 -12
- package/dist/cli-bundle/chunks/{extension-KCPUWSY2.js → extension-3JYWJ5K2.js} +6 -6
- package/dist/cli-bundle/chunks/{extension-UTTQDUYI.js → extension-YQF4CPIR.js} +6 -6
- package/dist/cli-bundle/chunks/{files-Z2HHEFGP.js → files-5BQWDRDT.js} +9 -9
- package/dist/cli-bundle/chunks/{files-TPUL6KWB.js → files-EPEJMJHQ.js} +9 -9
- package/dist/cli-bundle/chunks/{focus-JVJCGC2D.js → focus-DQVJAPOE.js} +8 -8
- package/dist/cli-bundle/chunks/{focus-YRNNH7IP.js → focus-RWGKD76E.js} +8 -8
- package/dist/cli-bundle/chunks/{gc-O5GUO3SU.js → gc-BEJMQT64.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-PYVVEELM.js → gc-JEFQDJPA.js} +3 -3
- package/dist/cli-bundle/chunks/{get-X4O3HBEY.js → get-LQG6PEVG.js} +11 -11
- package/dist/cli-bundle/chunks/{get-ENLTEGTX.js → get-WVN75H42.js} +11 -11
- package/dist/cli-bundle/chunks/{health-BOTB7YSU.js → health-JJJOY7DJ.js} +14 -14
- package/dist/cli-bundle/chunks/{health-5EXTY44Q.js → health-P67NZ6TT.js} +14 -14
- package/dist/cli-bundle/chunks/history-ALTM2RRP.js +20 -0
- package/dist/cli-bundle/chunks/{history-AJTXLT6S.js → history-RUKPKNY7.js} +10 -10
- package/dist/cli-bundle/chunks/{history-compact-43OOUAWD.js → history-compact-NQ7VPRVT.js} +12 -12
- package/dist/cli-bundle/chunks/{history-compact-46MRHW3I.js → history-compact-ZAOWR7GD.js} +12 -12
- package/dist/cli-bundle/chunks/history-redact-5YGLWUDH.js +21 -0
- package/dist/cli-bundle/chunks/{history-redact-KUUUVUFM.js → history-redact-YY4XYVEP.js} +11 -11
- package/dist/cli-bundle/chunks/{history-repair-VQTYOSRS.js → history-repair-EHL4ODQY.js} +12 -12
- package/dist/cli-bundle/chunks/{history-repair-B5PZBOPU.js → history-repair-YSQH6SY6.js} +12 -12
- package/dist/cli-bundle/chunks/init-C4CRHW22.js +21 -0
- package/dist/cli-bundle/chunks/{init-BNLVFPRG.js → init-HBFGYS66.js} +11 -11
- package/dist/cli-bundle/chunks/{learnings-XSGX52S7.js → learnings-J555ZFPD.js} +10 -10
- package/dist/cli-bundle/chunks/{learnings-MUUU5KMC.js → learnings-KFQO7GEZ.js} +10 -10
- package/dist/cli-bundle/chunks/{list-32U7BSKE.js → list-C7R33MD5.js} +10 -10
- package/dist/cli-bundle/chunks/{list-ZEEOHLTQ.js → list-DSN6UNFB.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-NJ45OZGF.js → notes-V4VNIQL4.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-OHU25L3M.js → notes-VYJFN2A3.js} +10 -10
- package/dist/cli-bundle/chunks/{plan-KQA7CAKI.js → plan-DHRSVSHR.js} +14 -14
- package/dist/cli-bundle/chunks/{plan-LWWAEV5Y.js → plan-RBHQ5PO7.js} +14 -14
- package/dist/cli-bundle/chunks/{register-list-query-DDCHPONM.js → register-list-query-CCMHGZTF.js} +19 -19
- package/dist/cli-bundle/chunks/{register-list-query-YNPBVIKM.js → register-list-query-OM3E2KMY.js} +19 -19
- package/dist/cli-bundle/chunks/{register-mutation-7ALWDDAX.js → register-mutation-N3CDEGZU.js} +33 -33
- package/dist/cli-bundle/chunks/{register-mutation-LAVKYY63.js → register-mutation-UXTTWL6N.js} +33 -33
- package/dist/cli-bundle/chunks/{register-operations-U5JAW3WE.js → register-operations-R2FLOCRI.js} +32 -32
- package/dist/cli-bundle/chunks/{register-operations-R4VOQ6EF.js → register-operations-UDIFMQKD.js} +32 -32
- package/dist/cli-bundle/chunks/{register-setup-RCRUHMSZ.js → register-setup-G5LTSFYK.js} +17 -17
- package/dist/cli-bundle/chunks/{register-setup-KBXQDCXE.js → register-setup-TWHKICM2.js} +17 -17
- package/dist/cli-bundle/chunks/{restore-6K53WOWO.js → restore-LL2WLEDG.js} +11 -11
- package/dist/cli-bundle/chunks/restore-LQHXBAY5.js +19 -0
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-OQVJXG3M.js → scheduling-shortcuts-255GI3BU.js} +14 -14
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-NJ5UVJFB.js → scheduling-shortcuts-M4H2ZI64.js} +14 -14
- package/dist/cli-bundle/chunks/{schema-RBTJ2YXW.js → schema-C6QA367T.js} +9 -9
- package/dist/cli-bundle/chunks/{schema-MNTAVQCY.js → schema-QO5I4FBL.js} +9 -9
- package/dist/cli-bundle/chunks/{search-6HOIVZDU.js → search-2EI6EAXH.js} +12 -12
- package/dist/cli-bundle/chunks/{search-ZWYEMASC.js → search-QBFBLQRO.js} +12 -12
- package/dist/cli-bundle/chunks/{stats-R5OAJVZK.js → stats-TCW2SZQG.js} +8 -8
- package/dist/cli-bundle/chunks/{stats-FS742AMA.js → stats-TKC6CAKB.js} +8 -8
- package/dist/cli-bundle/chunks/{telemetry-FWEXSJLQ.js → telemetry-BT2VSWU2.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-7DIGDQUO.js → telemetry-LQ6FRTUT.js} +4 -4
- package/dist/cli-bundle/chunks/{test-NZF7OT2F.js → test-NV2DRPUS.js} +16 -16
- package/dist/cli-bundle/chunks/test-WA6RZGM2.js +36 -0
- package/dist/cli-bundle/chunks/{test-all-KL7TLMJF.js → test-all-DZ76VTPQ.js} +16 -16
- package/dist/cli-bundle/chunks/{test-all-DPN62TX7.js → test-all-REW67LXT.js} +16 -16
- package/dist/cli-bundle/chunks/{test-runs-C6CFIVOS.js → test-runs-FQ5WNQLP.js} +5 -5
- package/dist/cli-bundle/chunks/{test-runs-IAJDL6CA.js → test-runs-PX73DMMI.js} +5 -5
- package/dist/cli-bundle/chunks/update-BSKMQOYH.js +28 -0
- package/dist/cli-bundle/chunks/update-FIGYNQ2I.js +24 -0
- package/dist/cli-bundle/chunks/{update-many-YEH2DQL6.js → update-many-2ILP6E4Y.js} +23 -23
- package/dist/cli-bundle/chunks/{update-many-MUTIOAP3.js → update-many-Q5ZEI64S.js} +23 -23
- package/dist/cli-bundle/chunks/{upgrade-UBNLBZNR.js → upgrade-DHL74PQH.js} +6 -6
- package/dist/cli-bundle/chunks/{upgrade-HYJ3SWWU.js → upgrade-FOZKQTQF.js} +6 -6
- package/dist/cli-bundle/chunks/{validate-W5V5ZGQX.js → validate-54SYJ7QW.js} +21 -21
- package/dist/cli-bundle/chunks/{validate-6QWQVCX2.js → validate-HYZNIB6W.js} +21 -21
- package/dist/cli-bundle/main.js +17 -17
- package/dist/core/extensions/loader.d.ts +1 -2
- package/dist/core/extensions/loader.js +40 -103
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/version-compat.d.ts +107 -0
- package/dist/core/extensions/version-compat.js +130 -0
- package/dist/core/extensions/version-compat.js.map +1 -0
- package/dist/sdk/compose.d.ts +341 -2
- package/dist/sdk/compose.js +426 -5
- package/dist/sdk/compose.js.map +1 -1
- package/dist/sdk/define.d.ts +15 -14
- package/dist/sdk/define.js +6 -7
- package/dist/sdk/define.js.map +1 -1
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js +3 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +75 -2
- package/dist/sdk/testing.js +100 -3
- package/dist/sdk/testing.js.map +1 -1
- package/docs/EXTENSIONS.md +11 -10
- package/docs/SDK.md +212 -12
- package/package.json +1 -1
- package/dist/cli-bundle/chunks/activity-XUZ2AHCW.js +0 -18
- package/dist/cli-bundle/chunks/chunk-C5AOG6D2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-G6PYHBBR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KQMUV6LX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MJTSZKK5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MVKFOLLM.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-UELRKQQU.js.map +0 -1
- package/dist/cli-bundle/chunks/close-A3EMKBBY.js +0 -15
- package/dist/cli-bundle/chunks/create-QVGFYA2X.js +0 -30
- package/dist/cli-bundle/chunks/history-AK3E5Z3C.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-TWIYQV5J.js +0 -21
- package/dist/cli-bundle/chunks/init-RCRKW5PL.js +0 -21
- package/dist/cli-bundle/chunks/restore-2ZKT6UDC.js +0 -19
- package/dist/cli-bundle/chunks/test-QJXLKV26.js +0 -36
- package/dist/cli-bundle/chunks/update-2XCQNOD6.js +0 -28
- package/dist/cli-bundle/chunks/update-IWUCXVH2.js +0 -24
- /package/dist/cli-bundle/chunks/{activity-XUZ2AHCW.js.map → activity-54TXGJ2T.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-H2LMOSSW.js.map → activity-N7RVTLBQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-R725FC3S.js.map → aggregate-63NWNIBR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-EGJLZQBI.js.map → aggregate-YHCYX2EV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-5J345QGU.js.map → append-PUKREFV5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-O5HPBMRN.js.map → append-VLQQDHMJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3VY3YQO6.js.map → chunk-2WCYE3IF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WZQWHN4R.js.map → chunk-3BKH2CL3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7UGEAPRY.js.map → chunk-4XDGYFHL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H4IIJDE4.js.map → chunk-5BBEWX6C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2CKH2LMV.js.map → chunk-5S4ZGDB2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4KD54S3Z.js.map → chunk-6EBNFQOR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QL5RVYOA.js.map → chunk-6EL7SW5C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MJTINN54.js.map → chunk-6W3Y65PL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-U2Z5YUSO.js.map → chunk-A66VYUOV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q2KNGP7C.js.map → chunk-ABYCA5VX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VFAQ4LMN.js.map → chunk-AEACLRVH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7AUB5HNA.js.map → chunk-ALKFCIIB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H2IP4QLJ.js.map → chunk-ALQKV6U7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-G6N5VEOK.js.map → chunk-AYPQUFCX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7MRQ4HMK.js.map → chunk-B74BP6IS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7SV63ZHD.js.map → chunk-BFFO3AIB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NCVCO3NZ.js.map → chunk-C4C3EJCJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UVC5LOR7.js.map → chunk-CG3KP6I5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FXR67XVQ.js.map → chunk-CZIFFMZI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XVF4YARA.js.map → chunk-DTABLLVE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7XGQXHFB.js.map → chunk-EOGBMLCE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TQZH6OD6.js.map → chunk-EWRSXOIZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IB3GYLQE.js.map → chunk-F32L4HR6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SBQTAVJZ.js.map → chunk-F4BNR2IN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S2RUQSX2.js.map → chunk-FBLT6WGK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2T3JG6V4.js.map → chunk-FMWW2JDU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-W72GHSJE.js.map → chunk-GDUMGZK3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y4SUQQYH.js.map → chunk-GQYJEEFX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AONIHR2C.js.map → chunk-HBAEFWX3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YUDJD3XO.js.map → chunk-HC2S36NB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DT5LPYOD.js.map → chunk-HZF5RLKX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P77P2ILI.js.map → chunk-I6QMJ2XT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZRK4O56R.js.map → chunk-IAP5KYBQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SKH7OGE5.js.map → chunk-IOT6WRL5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-66MEDTUD.js.map → chunk-IXAZI443.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4BHT5VDC.js.map → chunk-J3NMWFIN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HFFUQR73.js.map → chunk-J7I4C5ZB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NK3UPBVG.js.map → chunk-JPJDP4VU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-T5472OMV.js.map → chunk-JV27C7OZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZQ3ZVXX2.js.map → chunk-KIEAK7YE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5UVVASSA.js.map → chunk-KJZOSF7J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CIIK67GW.js.map → chunk-KKX4Z2SE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GAJVRGGA.js.map → chunk-LNEDHJNQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BB6MDVNQ.js.map → chunk-LU36E6GU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CE5P2NQR.js.map → chunk-M6TUBOGW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-55ISXAQH.js.map → chunk-MEXZ5XUM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AD3A7ZD6.js.map → chunk-MWMHZOZZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-46G6RSB6.js.map → chunk-N5B6WZC5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S26C36QC.js.map → chunk-NVXGVEFD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2BFPAUAF.js.map → chunk-OF7V47P3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IPKJ6B36.js.map → chunk-OHDQNKJB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2RDVQEWV.js.map → chunk-OQ2E64FH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5VOINNKT.js.map → chunk-PEL2NLQE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SKN7LC5W.js.map → chunk-PRVTGX64.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-34EONI5F.js.map → chunk-QOUOMPHO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QH3PJYON.js.map → chunk-RAWA3Y7O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LRKKONT2.js.map → chunk-RRP6D345.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FIGAZ4Y7.js.map → chunk-SKC4UTRP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CKGNPJAG.js.map → chunk-SMXSDY7J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KFWBJPSG.js.map → chunk-SUREE24M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-O6LLO73I.js.map → chunk-TIM4OD74.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YDEXO24S.js.map → chunk-TKPP4GOO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-T72AZDBA.js.map → chunk-TSI32UEL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7K2XXO4I.js.map → chunk-UACWNBL2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WBRKK5QR.js.map → chunk-V4UYNSEM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-M4T5DXD5.js.map → chunk-VFJYVXHL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WM5ZVBPE.js.map → chunk-WB5BYQMF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SR3EKWZG.js.map → chunk-XVYKWZNL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JR2LV3M4.js.map → chunk-XXKV4UWE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2A34E3BA.js.map → chunk-YV2OSAMS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VAYA4XFX.js.map → chunk-ZLWRPBOW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YJ3SUEPD.js.map → chunk-ZV7IQ23N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-4KHAA2RN.js.map → claim-FZZZCAY6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-CSPJFLNH.js.map → claim-XK5QBZE3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-A3EMKBBY.js.map → close-JEBZXONN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-W56IOGYG.js.map → close-QHMVWM7M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-BX5DCSVV.js.map → close-many-OIXJE2JZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-TQU5F4E4.js.map → close-many-SUU5BS2C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-U5KUC4EU.js.map → comments-5YM62D75.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-VRECH75R.js.map → comments-RH3IBIRH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-D3OKQO52.js.map → config-NCNNWF6R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-MMJA4LLK.js.map → config-SW3U7XP2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-DHLVPXN3.js.map → context-55VEOYI3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-BLBD3PUB.js.map → context-5LB7UGKE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-XGVMMPC5.js.map → contracts-JXFGBOYT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{contracts-C3SZCXXG.js.map → contracts-SY6PDFIK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-5D5DX3VK.js.map → copy-IEDBJOOX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-HHL3K4QP.js.map → copy-N3GE6FYS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-QVGFYA2X.js.map → create-CLSCHGJJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-IXY43O4H.js.map → create-O4VONGPG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-IBUR3M42.js.map → delete-724EQ6OS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-QQC2FGUH.js.map → delete-LPEIF7RU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-VTPO4BSE.js.map → deps-RSBU4SIU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-KWKRHXIN.js.map → deps-T3Y6Y7RT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-7CHFHXLN.js.map → docs-75ZLCO3G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-IIO3FEUO.js.map → docs-IFS7HZPP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-IO7LREOL.js.map → eval-L2KD7W3M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-CEYYEPSX.js.map → eval-QGR7JCQO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-KCPUWSY2.js.map → extension-3JYWJ5K2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-UTTQDUYI.js.map → extension-YQF4CPIR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-Z2HHEFGP.js.map → files-5BQWDRDT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-TPUL6KWB.js.map → files-EPEJMJHQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-JVJCGC2D.js.map → focus-DQVJAPOE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-YRNNH7IP.js.map → focus-RWGKD76E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-O5GUO3SU.js.map → gc-BEJMQT64.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-PYVVEELM.js.map → gc-JEFQDJPA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-X4O3HBEY.js.map → get-LQG6PEVG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-ENLTEGTX.js.map → get-WVN75H42.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{health-BOTB7YSU.js.map → health-JJJOY7DJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{health-5EXTY44Q.js.map → health-P67NZ6TT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-AK3E5Z3C.js.map → history-ALTM2RRP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-AJTXLT6S.js.map → history-RUKPKNY7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-43OOUAWD.js.map → history-compact-NQ7VPRVT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-46MRHW3I.js.map → history-compact-ZAOWR7GD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-TWIYQV5J.js.map → history-redact-5YGLWUDH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-KUUUVUFM.js.map → history-redact-YY4XYVEP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-VQTYOSRS.js.map → history-repair-EHL4ODQY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-B5PZBOPU.js.map → history-repair-YSQH6SY6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-RCRKW5PL.js.map → init-C4CRHW22.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-BNLVFPRG.js.map → init-HBFGYS66.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-XSGX52S7.js.map → learnings-J555ZFPD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-MUUU5KMC.js.map → learnings-KFQO7GEZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-32U7BSKE.js.map → list-C7R33MD5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-ZEEOHLTQ.js.map → list-DSN6UNFB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-NJ45OZGF.js.map → notes-V4VNIQL4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-OHU25L3M.js.map → notes-VYJFN2A3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-KQA7CAKI.js.map → plan-DHRSVSHR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-LWWAEV5Y.js.map → plan-RBHQ5PO7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-DDCHPONM.js.map → register-list-query-CCMHGZTF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-YNPBVIKM.js.map → register-list-query-OM3E2KMY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-7ALWDDAX.js.map → register-mutation-N3CDEGZU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-LAVKYY63.js.map → register-mutation-UXTTWL6N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-U5JAW3WE.js.map → register-operations-R2FLOCRI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-R4VOQ6EF.js.map → register-operations-UDIFMQKD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-RCRUHMSZ.js.map → register-setup-G5LTSFYK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-KBXQDCXE.js.map → register-setup-TWHKICM2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-6K53WOWO.js.map → restore-LL2WLEDG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-2ZKT6UDC.js.map → restore-LQHXBAY5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-OQVJXG3M.js.map → scheduling-shortcuts-255GI3BU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-NJ5UVJFB.js.map → scheduling-shortcuts-M4H2ZI64.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-RBTJ2YXW.js.map → schema-C6QA367T.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-MNTAVQCY.js.map → schema-QO5I4FBL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-6HOIVZDU.js.map → search-2EI6EAXH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-ZWYEMASC.js.map → search-QBFBLQRO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-R5OAJVZK.js.map → stats-TCW2SZQG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-FS742AMA.js.map → stats-TKC6CAKB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-FWEXSJLQ.js.map → telemetry-BT2VSWU2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-7DIGDQUO.js.map → telemetry-LQ6FRTUT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-NZF7OT2F.js.map → test-NV2DRPUS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-QJXLKV26.js.map → test-WA6RZGM2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-KL7TLMJF.js.map → test-all-DZ76VTPQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-DPN62TX7.js.map → test-all-REW67LXT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-C6CFIVOS.js.map → test-runs-FQ5WNQLP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-IAJDL6CA.js.map → test-runs-PX73DMMI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-2XCQNOD6.js.map → update-BSKMQOYH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-IWUCXVH2.js.map → update-FIGYNQ2I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-YEH2DQL6.js.map → update-many-2ILP6E4Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-MUTIOAP3.js.map → update-many-Q5ZEI64S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-UBNLBZNR.js.map → upgrade-DHL74PQH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-HYJ3SWWU.js.map → upgrade-FOZKQTQF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{validate-W5V5ZGQX.js.map → validate-54SYJ7QW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{validate-6QWQVCX2.js.map → validate-HYZNIB6W.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026.6.24 - 2026-06-24
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- TypeScript-first extension & package scaffolding + SDK docs reframe ([pm-09rh](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-09rh.toon))
|
|
8
|
+
- Modular declarative authoring: mergeExtensionBlueprints + composeExtensionPackage ([pm-2p38](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-2p38.toon))
|
|
9
|
+
- SDK unified author-time preflight capstone: preflightExtension + assertExtensionPreflight ([pm-ozaf](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-ozaf.toon))
|
|
10
|
+
- SDK author-time version-compatibility preflight: checkExtensionManifestCompatibility + assertExtensionManifestCompatible ([pm-1w0d](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-1w0d.toon))
|
|
11
|
+
- SDK author-once manifest synthesis: synthesizeExtensionManifest + assertExtensionManifestMatchesBlueprint ([pm-u5le](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-u5le.toon))
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Extract shared version-compat core (core/extensions/version-compat.ts); loader delegates, behavior-preserving ([pm-sjea](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-sjea.toon))
|
|
16
|
+
|
|
17
|
+
### Other
|
|
18
|
+
|
|
19
|
+
- Reframe SDK docs & docstrings TypeScript-first (SDK.md, EXTENSIONS.md, define\*/compose\*) ([pm-l2ud](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-l2ud.toon))
|
|
20
|
+
- Scaffolder emits TypeScript: index.ts + tsconfig.json + build script, compiled ./index.js entry ([pm-frou](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-frou.toon))
|
|
21
|
+
- defineExtensionBlueprint: typed identity helper for partial blueprint fragments ([pm-nvgy](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-nvgy.toon))
|
|
22
|
+
- composeExtensionPackage: author-once capstone returning { module, manifest } ([pm-cn0c](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-cn0c.toon))
|
|
23
|
+
- mergeExtensionBlueprints: pure modular composition of partial ExtensionBlueprints ([pm-high](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-high.toon))
|
|
24
|
+
- assertExtensionPreflight(blueprint, options) — throwing CI/test bookend (testing.ts) + barrel re-export ([pm-t8yl](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-t8yl.toon))
|
|
25
|
+
- preflightExtension(blueprint, options) — pure unified author-time analyzer (compose.ts) ([pm-tcw1](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-tcw1.toon))
|
|
26
|
+
- assertExtensionManifestCompatible(manifest, target) — SDK testing assert ([pm-hng2](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-hng2.toon))
|
|
27
|
+
- checkExtensionManifestCompatibility(manifest, target) — pure author-time analyzer ([pm-knma](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-knma.toon))
|
|
28
|
+
- assertExtensionManifestMatchesBlueprint(manifest, blueprint): strict least-privilege CI guard against capability drift ([pm-pfxi](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-pfxi.toon))
|
|
29
|
+
- synthesizeExtensionManifest(blueprint, identity): generate a complete least-privilege ExtensionManifest from a blueprint ([pm-nr5j](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-nr5j.toon))
|
|
30
|
+
|
|
3
31
|
## 2026.6.23 - 2026-06-23
|
|
4
32
|
|
|
5
33
|
### Added
|
|
@@ -4,7 +4,7 @@
|
|
|
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]="9eecdd82-fe71-5803-9186-a33244c4722d")}catch(e){}}();
|
|
8
8
|
import fs from "node:fs/promises";
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
import { pathExists } from "../../../core/fs/fs-utils.js";
|
|
@@ -25,6 +25,40 @@ const SCAFFOLD_DECLARED_PERMISSIONS = {
|
|
|
25
25
|
env_write: false,
|
|
26
26
|
process_spawn: false,
|
|
27
27
|
};
|
|
28
|
+
// TypeScript dev-dependency floor for scaffolded packages, matching the CLI's own
|
|
29
|
+
// toolchain so generated packages compile against the same compiler generation.
|
|
30
|
+
const SCAFFOLD_TYPESCRIPT_VERSION = "^6.0.0";
|
|
31
|
+
// `@types/node` floor for scaffolded packages: the colocated `index.test.ts`
|
|
32
|
+
// imports `node:test`/`node:assert`, which need Node's ambient type definitions
|
|
33
|
+
// to compile. Pinned to the engines floor (Node >=20), matching the CLI itself.
|
|
34
|
+
const SCAFFOLD_TYPES_NODE_VERSION = "^20.0.0";
|
|
35
|
+
// Strict NodeNext tsconfig emitted into every scaffold (ADR pm-2c28: extensions
|
|
36
|
+
// are authored fully in TypeScript). It compiles `index.ts` (and the colocated
|
|
37
|
+
// `index.test.ts`) in place to the `./index.js` entry the manifest loads, so the
|
|
38
|
+
// authored source is type-checked against the SDK contracts while the loader keeps
|
|
39
|
+
// importing plain compiled JavaScript. NodeNext resolution matches the explicit
|
|
40
|
+
// `.js` import specifiers the emitted ESM uses. No `outDir` is set on purpose:
|
|
41
|
+
// tsc auto-excludes its `outDir`, and an in-package `outDir` would exclude the
|
|
42
|
+
// whole package root, leaving the `*.ts` inputs unmatched (TS18003). Emitting
|
|
43
|
+
// beside the source mirrors the first-party `packages/pm-*` layout.
|
|
44
|
+
const SCAFFOLD_TSCONFIG = {
|
|
45
|
+
compilerOptions: {
|
|
46
|
+
target: "ES2022",
|
|
47
|
+
module: "NodeNext",
|
|
48
|
+
moduleResolution: "NodeNext",
|
|
49
|
+
strict: true,
|
|
50
|
+
esModuleInterop: true,
|
|
51
|
+
skipLibCheck: true,
|
|
52
|
+
declaration: false,
|
|
53
|
+
// `node:test`/`node:assert` in the colocated test (and Node globals) resolve
|
|
54
|
+
// from `@types/node`; name it explicitly so it is loaded regardless of how the
|
|
55
|
+
// package manager lays out `node_modules/@types`.
|
|
56
|
+
types: ["node"],
|
|
57
|
+
},
|
|
58
|
+
// Recursive so a package that grows into subdirectory `*.ts` modules still
|
|
59
|
+
// type-checks and compiles them; tsc excludes `node_modules` by default.
|
|
60
|
+
include: ["**/*.ts"],
|
|
61
|
+
};
|
|
28
62
|
/**
|
|
29
63
|
* Capability shapes the package/extension scaffolder can target via the
|
|
30
64
|
* `--capability` selector. `commands` emits the default command-only starter;
|
|
@@ -47,23 +81,24 @@ const SAMPLE_TEST_CAPABILITIES_LITERAL = {
|
|
|
47
81
|
importers: '["commands", "schema", "importers"]',
|
|
48
82
|
};
|
|
49
83
|
const ENTRYPOINT_BULLETS = {
|
|
50
|
-
commands: "- `index.
|
|
51
|
-
hooks: "- `index.
|
|
52
|
-
search: "- `index.
|
|
53
|
-
importers: "- `index.
|
|
84
|
+
commands: "- `index.ts`: starter command registration plus a `deactivate` teardown stub (compiled to `index.js`).",
|
|
85
|
+
hooks: "- `index.ts`: starter command registration, an `after_command` lifecycle hook, and a `deactivate` teardown stub (compiled to `index.js`).",
|
|
86
|
+
search: "- `index.ts`: starter command registration, a search provider, a vector-store adapter, and a `deactivate` teardown stub (compiled to `index.js`).",
|
|
87
|
+
importers: "- `index.ts`: starter command registration, importer/exporter command registrations, and a `deactivate` teardown stub (compiled to `index.js`).",
|
|
54
88
|
};
|
|
55
89
|
const SAMPLE_TEST_BULLETS = {
|
|
56
|
-
commands: "- `index.test.
|
|
57
|
-
hooks: "- `index.test.
|
|
58
|
-
search: "- `index.test.
|
|
59
|
-
importers: "- `index.test.
|
|
90
|
+
commands: "- `index.test.ts`: sample `node:test` suite covering activation, command invocation, and teardown via the SDK testing helpers.",
|
|
91
|
+
hooks: "- `index.test.ts`: sample `node:test` suite covering activation, command invocation, the after_command hook, and teardown via the SDK testing helpers.",
|
|
92
|
+
search: "- `index.test.ts`: sample `node:test` suite covering activation, command invocation, search provider/vector adapter invocation, and teardown via the SDK testing helpers.",
|
|
93
|
+
importers: "- `index.test.ts`: sample `node:test` suite covering activation, command invocation, importer/exporter invocation, and teardown via the SDK testing helpers.",
|
|
60
94
|
};
|
|
95
|
+
const TSCONFIG_BULLET = "- `tsconfig.json`: strict TypeScript config that compiles `index.ts` to the `./index.js` entry.";
|
|
61
96
|
const PACKAGE_CAPABILITY_README_SECTIONS = {
|
|
62
97
|
commands: [],
|
|
63
98
|
hooks: [
|
|
64
99
|
"",
|
|
65
100
|
"## Lifecycle Hook",
|
|
66
|
-
"`index.
|
|
101
|
+
"`index.ts` registers an `after_command` hook via `api.hooks.afterCommand`.",
|
|
67
102
|
"pm fires it once a command finishes, passing the command outcome and the",
|
|
68
103
|
"items it mutated (`context.affected`). React there to keep external context",
|
|
69
104
|
"in sync - sync records, emit telemetry, or refresh derived state. The",
|
|
@@ -73,7 +108,7 @@ const PACKAGE_CAPABILITY_README_SECTIONS = {
|
|
|
73
108
|
search: [
|
|
74
109
|
"",
|
|
75
110
|
"## Search Provider",
|
|
76
|
-
"`index.
|
|
111
|
+
"`index.ts` registers a deterministic in-memory search provider and",
|
|
77
112
|
"vector-store adapter through `api.registerSearchProvider` and",
|
|
78
113
|
"`api.registerVectorStoreAdapter`. Replace the sample scoring,",
|
|
79
114
|
"embedding, and storage behavior with your project-specific retrieval",
|
|
@@ -83,7 +118,7 @@ const PACKAGE_CAPABILITY_README_SECTIONS = {
|
|
|
83
118
|
importers: [
|
|
84
119
|
"",
|
|
85
120
|
"## Importer and Exporter",
|
|
86
|
-
"`index.
|
|
121
|
+
"`index.ts` registers paired project-context import/export commands through",
|
|
87
122
|
"`api.registerImporter` and `api.registerExporter`. Replace the starter",
|
|
88
123
|
"payloads with your domain adapter: GitHub issues, CSV rows, documents,",
|
|
89
124
|
"tickets, or another project-management source of truth. The `importers`",
|
|
@@ -96,7 +131,7 @@ const EXTENSION_CAPABILITY_README_SECTIONS = {
|
|
|
96
131
|
hooks: [
|
|
97
132
|
"",
|
|
98
133
|
"## Lifecycle Hook",
|
|
99
|
-
"`index.
|
|
134
|
+
"`index.ts` registers an `after_command` hook via `api.hooks.afterCommand`.",
|
|
100
135
|
"pm fires it once a command finishes, passing the command outcome and the",
|
|
101
136
|
"items it mutated (`context.affected`). React there to keep external context",
|
|
102
137
|
"in sync. The `hooks` capability in `manifest.json` grants the registration;",
|
|
@@ -105,7 +140,7 @@ const EXTENSION_CAPABILITY_README_SECTIONS = {
|
|
|
105
140
|
search: [
|
|
106
141
|
"",
|
|
107
142
|
"## Search Provider",
|
|
108
|
-
"`index.
|
|
143
|
+
"`index.ts` registers a deterministic in-memory search provider and",
|
|
109
144
|
"vector-store adapter through `api.registerSearchProvider` and",
|
|
110
145
|
"`api.registerVectorStoreAdapter`. Replace the sample scoring, embedding,",
|
|
111
146
|
"and storage behavior with your project-specific retrieval logic. The",
|
|
@@ -114,7 +149,7 @@ const EXTENSION_CAPABILITY_README_SECTIONS = {
|
|
|
114
149
|
importers: [
|
|
115
150
|
"",
|
|
116
151
|
"## Importer and Exporter",
|
|
117
|
-
"`index.
|
|
152
|
+
"`index.ts` registers paired project-context import/export commands through",
|
|
118
153
|
"`api.registerImporter` and `api.registerExporter`. Replace the starter",
|
|
119
154
|
"payloads with your domain adapter. The `importers` capability grants both",
|
|
120
155
|
"registrations, and `schema` grants the example command flag metadata.",
|
|
@@ -253,8 +288,10 @@ function buildActivateBodyLines(extensionName, commandName, capability) {
|
|
|
253
288
|
];
|
|
254
289
|
}
|
|
255
290
|
/**
|
|
256
|
-
* Build the colocated `node:test` sample suite for the chosen
|
|
257
|
-
*
|
|
291
|
+
* Build the colocated `node:test` sample suite (`index.test.ts`) for the chosen
|
|
292
|
+
* capability. Authored in TypeScript and run through `npm test` (`tsc && node
|
|
293
|
+
* --test`), it imports the compiled `./index.js` entry under NodeNext resolution.
|
|
294
|
+
* Every variant covers activation, command invocation, and teardown via the SDK
|
|
258
295
|
* testing helpers; the `hooks` variant adds a test that asserts the
|
|
259
296
|
* `after_command` hook is registered and fires cleanly through the public SDK
|
|
260
297
|
* testing helper `runRegisteredHookForTest`.
|
|
@@ -327,6 +364,8 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
327
364
|
` extensionName: ${JSON.stringify(extensionName)},`,
|
|
328
365
|
" });",
|
|
329
366
|
"",
|
|
367
|
+
" // The starter provider reads only document title/id, so `settings` is a",
|
|
368
|
+
" // minimal typed stub and `documents` carry just the fields it inspects.",
|
|
330
369
|
" const query = await runRegisteredSearchProviderForTest(activation.registrations, {",
|
|
331
370
|
` provider: ${JSON.stringify(searchProviderName)},`,
|
|
332
371
|
' operation: "query",',
|
|
@@ -335,11 +374,11 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
335
374
|
' mode: "semantic",',
|
|
336
375
|
' tokens: ["sync"],',
|
|
337
376
|
" options: {},",
|
|
338
|
-
" settings: {},",
|
|
377
|
+
" settings: {} as PmSettings,",
|
|
339
378
|
" documents: [",
|
|
340
379
|
' { metadata: { id: "pm-1", title: "Sync external context" }, body: "" },',
|
|
341
380
|
' { metadata: { id: "pm-2", title: "Unrelated task" }, body: "" },',
|
|
342
|
-
" ],",
|
|
381
|
+
" ] as ItemDocument[],",
|
|
343
382
|
" },",
|
|
344
383
|
" });",
|
|
345
384
|
' assert.deepEqual(query, { hits: [{ id: "pm-1", score: 1, matched_fields: ["title"] }] });',
|
|
@@ -347,14 +386,14 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
347
386
|
" const embedding = await runRegisteredSearchProviderForTest(activation.registrations, {",
|
|
348
387
|
` provider: ${JSON.stringify(searchProviderName)},`,
|
|
349
388
|
' operation: "embed",',
|
|
350
|
-
' context: { input: "abc", settings: {}, model: "starter-model" },',
|
|
389
|
+
' context: { input: "abc", settings: {} as PmSettings, model: "starter-model" },',
|
|
351
390
|
" });",
|
|
352
391
|
" assert.deepEqual(embedding, [3]);",
|
|
353
392
|
"",
|
|
354
393
|
" const vectorHits = await runRegisteredVectorStoreAdapterForTest(activation.registrations, {",
|
|
355
394
|
` adapter: ${JSON.stringify(vectorAdapterName)},`,
|
|
356
395
|
' operation: "query",',
|
|
357
|
-
" context: { vector: [0.1, 0.2], limit: 2, settings: {} },",
|
|
396
|
+
" context: { vector: [0.1, 0.2], limit: 2, settings: {} as PmSettings },",
|
|
358
397
|
" });",
|
|
359
398
|
' assert.deepEqual(vectorHits, [{ id: "starter-vector-hit", score: 2 }]);',
|
|
360
399
|
"});",
|
|
@@ -402,6 +441,9 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
402
441
|
"import {",
|
|
403
442
|
...importNames,
|
|
404
443
|
'} from "@unbrained/pm-cli/sdk/testing";',
|
|
444
|
+
// The search sample's synthetic query/vector contexts reference these SDK types
|
|
445
|
+
// for their typed-stub fixtures; other capabilities need no extra type imports.
|
|
446
|
+
...(searchEnabled ? ['import type { ItemDocument, PmSettings } from "@unbrained/pm-cli/sdk";'] : []),
|
|
405
447
|
'import extension from "./index.js";',
|
|
406
448
|
"",
|
|
407
449
|
`test(${JSON.stringify(`${extensionName} registers its starter command`)}, async () => {`,
|
|
@@ -427,8 +469,14 @@ function buildSampleTestSource(extensionName, commandName, capability) {
|
|
|
427
469
|
` command: ${JSON.stringify(commandName)},`,
|
|
428
470
|
" });",
|
|
429
471
|
" assert.equal(invocation.handled, true);",
|
|
430
|
-
"
|
|
431
|
-
|
|
472
|
+
" // The handler result is typed `unknown`, so deep-equality on the whole",
|
|
473
|
+
" // structured payload keeps the assertion type-safe without a cast.",
|
|
474
|
+
" assert.deepEqual(invocation.result, {",
|
|
475
|
+
" ok: true,",
|
|
476
|
+
` source: ${JSON.stringify(extensionName)},`,
|
|
477
|
+
` command: ${JSON.stringify(commandName)},`,
|
|
478
|
+
' message: "Starter extension scaffold is active.",',
|
|
479
|
+
" });",
|
|
432
480
|
"});",
|
|
433
481
|
"",
|
|
434
482
|
...hookTestLines,
|
|
@@ -465,13 +513,15 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
465
513
|
permissions: { ...SCAFFOLD_DECLARED_PERMISSIONS },
|
|
466
514
|
capabilities,
|
|
467
515
|
}, null, 2)}\n`;
|
|
468
|
-
//
|
|
469
|
-
//
|
|
470
|
-
//
|
|
471
|
-
//
|
|
516
|
+
// The entrypoint is authored fully in TypeScript (ADR pm-2c28): the `import
|
|
517
|
+
// type` is erased at compile time, so the typed `ExtensionApi` parameter is
|
|
518
|
+
// checked against the SDK contract at author time while the emitted ./index.js
|
|
519
|
+
// stays import-light. `npm run build` (tsc) compiles this index.ts to the
|
|
520
|
+
// ./index.js the manifest entry loads.
|
|
472
521
|
const entrypoint = [
|
|
473
|
-
'
|
|
474
|
-
"
|
|
522
|
+
'import type { ExtensionApi } from "@unbrained/pm-cli/sdk";',
|
|
523
|
+
"",
|
|
524
|
+
"export function activate(api: ExtensionApi): void {",
|
|
475
525
|
...buildActivateBodyLines(extensionName, commandName, capability),
|
|
476
526
|
"}",
|
|
477
527
|
"",
|
|
@@ -479,7 +529,7 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
479
529
|
"// shutdown/reload (e.g. the MCP server between requests) to release anything",
|
|
480
530
|
"// `activate` opened - timers, connections, caches. This starter holds no such",
|
|
481
531
|
"// resources, so it stays a documented no-op; add cleanup here as you grow.",
|
|
482
|
-
"export function deactivate() {}",
|
|
532
|
+
"export function deactivate(): void {}",
|
|
483
533
|
"",
|
|
484
534
|
"export default {",
|
|
485
535
|
" activate,",
|
|
@@ -487,7 +537,8 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
487
537
|
"};",
|
|
488
538
|
"",
|
|
489
539
|
].join("\n");
|
|
490
|
-
|
|
540
|
+
const tsconfig = `${JSON.stringify(SCAFFOLD_TSCONFIG, null, 2)}\n`;
|
|
541
|
+
// README bullet describing what index.ts wires, kept in sync with the chosen
|
|
491
542
|
// capability so the generated docs match the generated code.
|
|
492
543
|
const entrypointBullet = ENTRYPOINT_BULLETS[capability];
|
|
493
544
|
if (vocabulary === "package") {
|
|
@@ -497,14 +548,21 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
497
548
|
private: true,
|
|
498
549
|
type: "module",
|
|
499
550
|
keywords: ["pm-package"],
|
|
500
|
-
// `
|
|
501
|
-
//
|
|
551
|
+
// `build` compiles index.ts to the ./index.js the manifest loads; `test`
|
|
552
|
+
// compiles first (Node's `node --test` runs the emitted *.test.js, not the
|
|
553
|
+
// TypeScript source) then runs the colocated sample against the peer SDK
|
|
554
|
+
// testing helpers — no third-party test runner required.
|
|
502
555
|
scripts: {
|
|
503
|
-
|
|
556
|
+
build: "tsc",
|
|
557
|
+
test: "tsc && node --test",
|
|
504
558
|
},
|
|
505
559
|
peerDependencies: {
|
|
506
560
|
"@unbrained/pm-cli": "*",
|
|
507
561
|
},
|
|
562
|
+
devDependencies: {
|
|
563
|
+
"@types/node": SCAFFOLD_TYPES_NODE_VERSION,
|
|
564
|
+
typescript: SCAFFOLD_TYPESCRIPT_VERSION,
|
|
565
|
+
},
|
|
508
566
|
pm: {
|
|
509
567
|
aliases: [extensionName],
|
|
510
568
|
extensions: ["."],
|
|
@@ -524,7 +582,20 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
524
582
|
// capability, the after_command lifecycle hook).
|
|
525
583
|
const sampleTest = buildSampleTestSource(extensionName, commandName, capability);
|
|
526
584
|
const sampleTestBullet = SAMPLE_TEST_BULLETS[capability];
|
|
527
|
-
|
|
585
|
+
// Ignore compiled TypeScript output wherever tsc emits it. Authors can add
|
|
586
|
+
// sibling or subdirectory modules, and tsc writes each .js next to its source.
|
|
587
|
+
const gitignore = [
|
|
588
|
+
"node_modules/",
|
|
589
|
+
"*.log",
|
|
590
|
+
"",
|
|
591
|
+
"# Compiled TypeScript output (npm run build)",
|
|
592
|
+
"*.js",
|
|
593
|
+
"*.test.js",
|
|
594
|
+
"*.js.map",
|
|
595
|
+
"*.d.ts",
|
|
596
|
+
"*.d.ts.map",
|
|
597
|
+
"",
|
|
598
|
+
].join("\n");
|
|
528
599
|
const searchProviderName = `${extensionName}-search`;
|
|
529
600
|
const vectorAdapterName = `${extensionName}-vector`;
|
|
530
601
|
const adapterName = `${extensionName.replace(/-/g, " ")} items`;
|
|
@@ -535,8 +606,9 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
535
606
|
...(capability === "importers" ? ["defineImporter", "defineExporter"] : []),
|
|
536
607
|
].join(", ");
|
|
537
608
|
const defineBuilderSnippet = [
|
|
538
|
-
"```
|
|
609
|
+
"```ts",
|
|
539
610
|
`import { ${defineBuilderImports} } from "@unbrained/pm-cli/sdk";`,
|
|
611
|
+
'import type { ExtensionApi } from "@unbrained/pm-cli/sdk";',
|
|
540
612
|
"",
|
|
541
613
|
"export const pingCommand = defineCommand({",
|
|
542
614
|
` name: ${JSON.stringify(commandName)},`,
|
|
@@ -553,7 +625,7 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
553
625
|
if (capability === "importers") {
|
|
554
626
|
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,", "}));");
|
|
555
627
|
}
|
|
556
|
-
defineBuilderSnippet.push("", "export function activate(api) {", " api.registerCommand(pingCommand);");
|
|
628
|
+
defineBuilderSnippet.push("", "export function activate(api: ExtensionApi): void {", " api.registerCommand(pingCommand);");
|
|
557
629
|
if (capability === "hooks") {
|
|
558
630
|
defineBuilderSnippet.push(" api.hooks.afterCommand(afterCommandHook);");
|
|
559
631
|
}
|
|
@@ -563,40 +635,47 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
563
635
|
if (capability === "importers") {
|
|
564
636
|
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.",', " },", " ],", " });");
|
|
565
637
|
}
|
|
566
|
-
defineBuilderSnippet.push("}", "", "export function deactivate() {}", "", "export default { activate, deactivate };", "```");
|
|
638
|
+
defineBuilderSnippet.push("}", "", "export function deactivate(): void {}", "", "export default { activate, deactivate };", "```");
|
|
567
639
|
const packageReadme = [
|
|
568
640
|
`# ${packageName}`,
|
|
569
641
|
"",
|
|
570
642
|
"Generated by `pm package init`.",
|
|
571
643
|
"",
|
|
572
644
|
"## Included Files",
|
|
573
|
-
"- `package.json`: package metadata, `test`
|
|
645
|
+
"- `package.json`: package metadata, `build`/`test` scripts, and `pm` resource manifest.",
|
|
574
646
|
"- `manifest.json`: extension metadata and capabilities.",
|
|
575
647
|
entrypointBullet,
|
|
576
648
|
sampleTestBullet,
|
|
577
|
-
|
|
649
|
+
TSCONFIG_BULLET,
|
|
650
|
+
"- `.gitignore`: ignores `node_modules/`, logs, and compiled JavaScript/declaration output.",
|
|
578
651
|
"",
|
|
579
652
|
"## Quick Start",
|
|
653
|
+
"This package is authored in TypeScript; build it once so the manifest's",
|
|
654
|
+
"`./index.js` entry exists, then install it:",
|
|
580
655
|
"```bash",
|
|
656
|
+
"npm install",
|
|
657
|
+
"npm run build",
|
|
581
658
|
"pm install --project <package-path>",
|
|
582
659
|
`pm ${commandName}`,
|
|
583
660
|
"pm package doctor --project --detail summary",
|
|
584
661
|
"```",
|
|
585
662
|
"",
|
|
586
663
|
"## Validate the Package",
|
|
587
|
-
"
|
|
664
|
+
"`npm install` pulls the peer SDK and TypeScript; `npm test` compiles and runs",
|
|
665
|
+
"the colocated sample test:",
|
|
588
666
|
"```bash",
|
|
589
667
|
"npm install",
|
|
590
668
|
"npm test",
|
|
591
669
|
"```",
|
|
592
|
-
"`npm test` runs `node --test
|
|
670
|
+
"`npm test` runs `tsc && node --test`: it compiles `index.ts`/`index.test.ts`",
|
|
671
|
+
"then executes the emitted `index.test.js` against the",
|
|
593
672
|
"`@unbrained/pm-cli/sdk/testing` helpers - no extra test runner required.",
|
|
594
673
|
"",
|
|
595
674
|
"## Authoring With define* Builders",
|
|
596
|
-
"`index.
|
|
597
|
-
"
|
|
598
|
-
"
|
|
599
|
-
"
|
|
675
|
+
"`index.ts` is authored fully in TypeScript so every registration is checked",
|
|
676
|
+
"against the SDK contracts at author time. Use the public SDK authoring",
|
|
677
|
+
"builders for exported definitions you want literal-type preservation,",
|
|
678
|
+
"contextual handler inference, and direct unit tests for:",
|
|
600
679
|
...defineBuilderSnippet,
|
|
601
680
|
"The builders return their argument unchanged; runtime validation still lives",
|
|
602
681
|
"in `api.register*`, and behavior validation lives in `sdk/testing`.",
|
|
@@ -612,8 +691,8 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
612
691
|
"The starter command is pure compute, so `manifest.json` declares `trusted: true`, `sandbox_profile: \"strict\"`, and all six permission keys as `false`. Keep that least-privilege shape for pure packages; relax only the specific permission your package actually needs and verify with `pm package doctor --project --detail deep --trace`.",
|
|
613
692
|
"",
|
|
614
693
|
"## Notes",
|
|
615
|
-
"-
|
|
616
|
-
"- Move larger runtimes into
|
|
694
|
+
"- Author in `index.ts`; `npm run build` (tsc) emits the `./index.js` the manifest loads, so rebuild after editing before installing or reloading.",
|
|
695
|
+
"- Move larger runtimes into sibling or subdirectory `*.ts` modules and import them; `tsconfig.json` compiles every `*.ts` in the package (recursively).",
|
|
617
696
|
"- Add capabilities to the extension manifest only when the entrypoint uses the matching SDK API.",
|
|
618
697
|
"- Use `@unbrained/pm-cli/sdk` as the public SDK import for richer package runtimes.",
|
|
619
698
|
"",
|
|
@@ -621,8 +700,9 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
621
700
|
return {
|
|
622
701
|
"package.json": packageJson,
|
|
623
702
|
"manifest.json": manifest,
|
|
624
|
-
"index.
|
|
625
|
-
"index.test.
|
|
703
|
+
"index.ts": entrypoint,
|
|
704
|
+
"index.test.ts": sampleTest,
|
|
705
|
+
"tsconfig.json": tsconfig,
|
|
626
706
|
".gitignore": gitignore,
|
|
627
707
|
"README.md": packageReadme,
|
|
628
708
|
};
|
|
@@ -635,9 +715,16 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
635
715
|
"## Included Files",
|
|
636
716
|
"- `manifest.json`: extension metadata and capabilities.",
|
|
637
717
|
entrypointBullet,
|
|
718
|
+
TSCONFIG_BULLET,
|
|
638
719
|
"",
|
|
639
720
|
"## Quick Start",
|
|
721
|
+
"This extension is authored in TypeScript; compile `index.ts` to the manifest's",
|
|
722
|
+
"`./index.js` entry, then install it. The SDK types resolve once",
|
|
723
|
+
"`@unbrained/pm-cli` is available to the compiler (install it, Node types, and TypeScript, or",
|
|
724
|
+
"build from a project that already depends on the CLI):",
|
|
640
725
|
"```bash",
|
|
726
|
+
"npm install -D typescript @types/node @unbrained/pm-cli",
|
|
727
|
+
"npx tsc",
|
|
641
728
|
"pm extension --install --project <scaffold-path>",
|
|
642
729
|
`pm ${commandName}`,
|
|
643
730
|
"pm extension --doctor --project --detail summary",
|
|
@@ -654,14 +741,15 @@ export function buildStarterExtensionScaffoldFiles(extensionName, commandName, v
|
|
|
654
741
|
"The starter command is pure compute, so `manifest.json` declares `trusted: true`, `sandbox_profile: \"strict\"`, and all six permission keys as `false`. Keep that least-privilege shape for pure extensions; relax only the specific permission your extension actually needs and verify with `pm extension --doctor --project --detail deep --trace`.",
|
|
655
742
|
"",
|
|
656
743
|
"## Notes",
|
|
657
|
-
"- This scaffold uses ESM
|
|
658
|
-
"-
|
|
744
|
+
"- This scaffold uses TypeScript ESM source compiled to ESM output, so it works in package scopes with `type: module`.",
|
|
745
|
+
"- Author in `index.ts` and recompile to `index.js` (the manifest entry) after editing capabilities or command behavior.",
|
|
659
746
|
"- Release any resources `activate` opens (timers, connections, caches) in the `deactivate` teardown hook.",
|
|
660
747
|
"",
|
|
661
748
|
].join("\n");
|
|
662
749
|
return {
|
|
663
750
|
"manifest.json": manifest,
|
|
664
|
-
"index.
|
|
751
|
+
"index.ts": entrypoint,
|
|
752
|
+
"tsconfig.json": tsconfig,
|
|
665
753
|
"README.md": readme,
|
|
666
754
|
};
|
|
667
755
|
}
|
|
@@ -730,4 +818,4 @@ export async function scaffoldExtensionProject(target, vocabulary = "extension",
|
|
|
730
818
|
};
|
|
731
819
|
}
|
|
732
820
|
//# sourceMappingURL=scaffold.js.map
|
|
733
|
-
//# debugId=
|
|
821
|
+
//# debugId=9eecdd82-fe71-5803-9186-a33244c4722d
|