@unbrained/pm-cli 2026.7.9 → 2026.7.10
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 +23 -0
- package/dist/cli/bootstrap-args.js +6 -3
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commands/context.d.ts +23 -0
- package/dist/cli/commands/context.js +96 -7
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +1 -1
- package/dist/cli/commands/extension.js +91 -32
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/init.d.ts +19 -3
- package/dist/cli/commands/init.js +57 -24
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/next.d.ts +3 -1
- package/dist/cli/commands/next.js +19 -7
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/update.js +20 -10
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/register-list-query.js +8 -4
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-setup.js +11 -2
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli-bundle/chunks/append-G7NGOQVU.js +11 -0
- package/dist/cli-bundle/chunks/{append-RSPHC423.js → append-SIECQAPH.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-CGDUIPJL.js → chunk-22PW73KV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NBJCIAVV.js → chunk-2RW5DWHQ.js} +13 -8
- package/dist/cli-bundle/chunks/chunk-2RW5DWHQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-GO2X6ZRB.js → chunk-35U3AVRY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4I7KS5ES.js → chunk-3JFQRPOI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NRMDT4OV.js → chunk-3THCOPYI.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-D6J5673C.js → chunk-4BINCIRM.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-26MFLA7K.js → chunk-4P2GYOM5.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-LHDHS4Z6.js → chunk-4QE5HOJY.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-5VAZHYVQ.js → chunk-56J3MPGE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MCZK7LY6.js → chunk-5BFBDJ4R.js} +24 -16
- package/dist/cli-bundle/chunks/chunk-5BFBDJ4R.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-IINCZYM3.js → chunk-62ECRG6J.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VCGHRLJU.js → chunk-62KPBB2W.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-3FUXM574.js → chunk-6MK6M35B.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-TI7QSUFK.js → chunk-6PBZBIS6.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-Y2736PT5.js → chunk-6WIP52LQ.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-GLMJLBLR.js → chunk-75NAGPEL.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-6TD5QGIB.js → chunk-77CWXIAC.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-CEX2DQXZ.js → chunk-7S2UC7S6.js} +37 -73
- package/dist/cli-bundle/chunks/chunk-7S2UC7S6.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-PAWPLIWW.js → chunk-7THLDY3D.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-QJZM5WO5.js → chunk-7TRCAREE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-EEJKHF7M.js → chunk-7TRVVYPI.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-ONADVBMD.js → chunk-A62N3BM3.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-MBLHA6LR.js → chunk-A7DJG5EF.js} +55 -6
- package/dist/cli-bundle/chunks/chunk-A7DJG5EF.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GZ365M6E.js → chunk-AD4HJKQZ.js} +49 -7
- package/dist/cli-bundle/chunks/chunk-AD4HJKQZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7QKSLAHB.js → chunk-AIWGQK6K.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WDNPNW22.js → chunk-AKCHJXJ4.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-KFL3XHMA.js → chunk-AYPXY3HF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RL24NAUX.js → chunk-B7FCPO65.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-4OCWJ2AP.js → chunk-BC7QBM2A.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-LD2NBQ5T.js → chunk-BST7GFIX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-P5SUMCU5.js → chunk-CUBPPDDF.js} +145 -62
- package/dist/cli-bundle/chunks/chunk-CUBPPDDF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FJR2S7S4.js → chunk-CYBW4HK7.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-7UCBLJDF.js → chunk-DDF7UMVV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DQLP22K2.js → chunk-DLHFJZ2S.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-PCBZ2VJD.js → chunk-DMD2TENU.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-SCJPFQQT.js → chunk-DN67YDFH.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7TBUV7XS.js → chunk-DNHILSD7.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-FFB3WITE.js → chunk-DT6NDP53.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-DBV5A7FT.js → chunk-DWGHHSDC.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-3V5C7PUH.js → chunk-DYUAQVDK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MCH6IKK7.js → chunk-E2RJZQNW.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-6ZKDMEVT.js → chunk-ECXJ7OHI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-LG4N6YOK.js → chunk-ESXG6VFX.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-K4NMHZR3.js → chunk-EXG6XTJC.js} +13 -8
- package/dist/cli-bundle/chunks/chunk-EXG6XTJC.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-BPJ5NYSJ.js → chunk-F7UA74OZ.js} +54 -7
- package/dist/cli-bundle/chunks/chunk-F7UA74OZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GSQVQINP.js → chunk-FBD2WUNS.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-YSRXFGNV.js → chunk-FSD7W7Y2.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-JYVPLGOW.js → chunk-FWL5XVYI.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-BPYVKTZE.js → chunk-FYMHD6VX.js} +16 -16
- package/dist/cli-bundle/chunks/{chunk-SIQGG335.js → chunk-GMNCW27N.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-3SHDAKMF.js → chunk-GPPWUJMR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-W2VFNVSJ.js → chunk-H3HKQXQJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-UIHDZS6X.js → chunk-HFQ7QQZL.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-Z6RLSNUX.js → chunk-HLUB7G6J.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NRYZ4QLH.js → chunk-HWUIK7YL.js} +16 -16
- package/dist/cli-bundle/chunks/{chunk-U72GF3I2.js → chunk-INAZHXOI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-INOWVPUD.js → chunk-J3ELHLOJ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-2BVD4ZD2.js → chunk-J3FDNQWM.js} +4 -3
- package/dist/cli-bundle/chunks/chunk-J3FDNQWM.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UH6VFRV6.js → chunk-J3Z2JMDV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-2FKIIQMJ.js → chunk-JDEXIVKQ.js} +372 -20
- package/dist/cli-bundle/chunks/chunk-JDEXIVKQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KAJNWMBE.js → chunk-JFOBTM4D.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-J6AD3GWC.js → chunk-JNELC5UO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YPE5MFPJ.js → chunk-JQ5NB6O2.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-3UXIMY62.js → chunk-KFC6X4PI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-C3YU3TXX.js → chunk-L2SWAZ3S.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QLEH6FTQ.js → chunk-LVVZLEW5.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-RFHLRMLQ.js → chunk-M66PC7JI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-63PZJCKO.js → chunk-M7DWRMNY.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UEATYUZW.js → chunk-M7JYEBPT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Z2JQH2MG.js → chunk-MQ632QRB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5ZMZF53A.js → chunk-N7N3PUUP.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-3YJDIJIE.js → chunk-NPJLTZQZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ASSVI7FP.js → chunk-NQTIOKHL.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-BFNFTHWQ.js → chunk-O67XP4FD.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-K2OKKYSO.js → chunk-OVYXSZOQ.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-FOJEBRDD.js → chunk-P7PDLLCE.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-XXN2B2MJ.js → chunk-PEACKWHL.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-HZZ3AC27.js → chunk-PFRGQZG2.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-Q3CFSOQZ.js → chunk-PMU2OJ3N.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5STY7NVM.js → chunk-PUMTJMMF.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-K52C6YPA.js → chunk-QTJCMK2S.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-6FU5BVRB.js → chunk-RAE2SLNO.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-S7J3GEHL.js → chunk-RYA7QE7B.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-N4S7BV43.js → chunk-SL337EYZ.js} +379 -20
- package/dist/cli-bundle/chunks/chunk-SL337EYZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-NSPSJWGL.js → chunk-SMKQFGDI.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-UFNFHCAC.js → chunk-SWQMU4AD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MFLLULHU.js → chunk-TB2CZJAQ.js} +5 -4
- package/dist/cli-bundle/chunks/chunk-TB2CZJAQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-WVEMZZCR.js → chunk-TEKAGPZV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-JH5XDDYS.js → chunk-TM5E2IED.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-C6XSTACC.js → chunk-TTRL5GE6.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-AEOFBBWO.js → chunk-UA2VI62P.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-6RR4XM5H.js → chunk-UYK26VRP.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-CXH7EMSB.js → chunk-VBDQTL3Z.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NGBWEYNY.js → chunk-W2FXYQ6D.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-UURYLDDC.js → chunk-WZ7EPGUX.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-PPY3GXFK.js → chunk-XES6AVCK.js} +39 -68
- package/dist/cli-bundle/chunks/chunk-XES6AVCK.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-QYZMZD4L.js → chunk-XVCB574W.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-F5DDGY6R.js → chunk-XWS3Z57Q.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-EP2CKDS7.js → chunk-XXJB4GLJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NTOOEVJ4.js → chunk-Y5Q4FEE4.js} +47 -7
- package/dist/cli-bundle/chunks/chunk-Y5Q4FEE4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-CHSXGTWF.js → chunk-YA4B6P3L.js} +23 -15
- package/dist/cli-bundle/chunks/chunk-YA4B6P3L.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-YHKXNGLA.js → chunk-Z3R2Z5KW.js} +145 -62
- package/dist/cli-bundle/chunks/chunk-Z3R2Z5KW.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-5RJ4LFD3.js → chunk-Z5MFM54X.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-6WCXSC5V.js → chunk-ZGDJA6WI.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-TKWTJGD6.js → chunk-ZIU35KME.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-YUMNZS3X.js → chunk-ZQ2KEWE7.js} +3 -3
- package/dist/cli-bundle/chunks/close-2NVUCJXV.js +12 -0
- package/dist/cli-bundle/chunks/{close-TKTFRL7N.js → close-BZPS37KL.js} +5 -5
- package/dist/cli-bundle/chunks/{close-many-HEPL66EG.js → close-many-KKNCGLVR.js} +13 -13
- package/dist/cli-bundle/chunks/close-many-S5WKLWVO.js +22 -0
- package/dist/cli-bundle/chunks/{comments-PLFK5ZKK.js → comments-PV5XG342.js} +7 -7
- package/dist/cli-bundle/chunks/comments-XAM2ADHO.js +13 -0
- package/dist/cli-bundle/chunks/copy-OJ2YNJ7S.js +9 -0
- package/dist/cli-bundle/chunks/{copy-VH3L4MN2.js → copy-OZDYDQUG.js} +4 -4
- package/dist/cli-bundle/chunks/create-5O3QK3PX.js +25 -0
- package/dist/cli-bundle/chunks/{create-LD4SEUD6.js → create-WGFKEJAK.js} +9 -9
- package/dist/cli-bundle/chunks/{delete-ZNXUNCZR.js → delete-NTYXFL7A.js} +4 -4
- package/dist/cli-bundle/chunks/delete-V7FPW6JL.js +10 -0
- package/dist/cli-bundle/chunks/{deps-CVDY7FFK.js → deps-7WVENNH3.js} +4 -4
- package/dist/cli-bundle/chunks/{deps-SZXQHV73.js → deps-Z6RD6RWW.js} +4 -4
- package/dist/cli-bundle/chunks/{docs-DR74ITCD.js → docs-2NIRGHAN.js} +6 -6
- package/dist/cli-bundle/chunks/docs-SOY2CMH3.js +14 -0
- package/dist/cli-bundle/chunks/{files-QEFQ2M3H.js → files-4OH2I663.js} +6 -6
- package/dist/cli-bundle/chunks/{files-H5YCA74Z.js → files-5KNAFW67.js} +6 -6
- package/dist/cli-bundle/chunks/{focus-55TRYSNA.js → focus-CLNZWWKW.js} +5 -5
- package/dist/cli-bundle/chunks/focus-JUKXZN3J.js +10 -0
- package/dist/cli-bundle/chunks/{history-compact-JJZ4EFL3.js → history-compact-R3T3XPD4.js} +9 -9
- package/dist/cli-bundle/chunks/history-compact-WKAKPLFQ.js +21 -0
- package/dist/cli-bundle/chunks/{history-redact-TPPUT3A5.js → history-redact-CLJDCBNF.js} +7 -7
- package/dist/cli-bundle/chunks/history-redact-Y67UDKD3.js +17 -0
- package/dist/cli-bundle/chunks/history-repair-2WLXWQAM.js +19 -0
- package/dist/cli-bundle/chunks/{history-repair-J7PIZ6ZP.js → history-repair-LNA7V2VI.js} +9 -9
- package/dist/cli-bundle/chunks/{learnings-KB6BT4NR.js → learnings-2L72KBOE.js} +7 -7
- package/dist/cli-bundle/chunks/learnings-PNK7WUWO.js +13 -0
- package/dist/cli-bundle/chunks/{notes-ZTHXVOKM.js → notes-USDIABZV.js} +7 -7
- package/dist/cli-bundle/chunks/notes-X4SWEJSB.js +13 -0
- package/dist/cli-bundle/chunks/plan-JU454RMZ.js +24 -0
- package/dist/cli-bundle/chunks/{plan-LUR7C24X.js → plan-U4RWU56Z.js} +10 -10
- package/dist/cli-bundle/chunks/{profile-JRDMDGT5.js → profile-COBKZJUQ.js} +9 -9
- package/dist/cli-bundle/chunks/{profile-5F75MO5O.js → profile-RKIRCXH7.js} +9 -9
- package/dist/cli-bundle/chunks/{register-list-query-GZYRZLQZ.js → register-list-query-2VBANNFM.js} +19 -17
- package/dist/cli-bundle/chunks/{register-list-query-GZYRZLQZ.js.map → register-list-query-2VBANNFM.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-list-query-W2W7RQJJ.js → register-list-query-4AZEKWZ5.js} +18 -16
- package/dist/cli-bundle/chunks/{register-list-query-W2W7RQJJ.js.map → register-list-query-4AZEKWZ5.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-7DMOYDPC.js → register-mutation-JGXTDEIZ.js} +29 -29
- package/dist/cli-bundle/chunks/{register-mutation-5UDT3WL3.js → register-mutation-XVO4GGZI.js} +29 -29
- package/dist/cli-bundle/chunks/{register-operations-Y4E32W4D.js → register-operations-4EEFV5KJ.js} +26 -26
- package/dist/cli-bundle/chunks/{register-operations-NW43IUPE.js → register-operations-UV25Z4BN.js} +26 -26
- package/dist/cli-bundle/chunks/{register-setup-3GVJ7XPE.js → register-setup-MMXQQC5J.js} +27 -19
- package/dist/cli-bundle/chunks/register-setup-MMXQQC5J.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-MPTTS52V.js → register-setup-NQE5MW63.js} +26 -18
- package/dist/cli-bundle/chunks/register-setup-NQE5MW63.js.map +7 -0
- package/dist/cli-bundle/chunks/restore-54HR2EYD.js +15 -0
- package/dist/cli-bundle/chunks/{restore-BTBEZ5CK.js → restore-BINCHJIY.js} +7 -7
- package/dist/cli-bundle/chunks/{schema-DGSTYYQB.js → schema-2JZNEQSG.js} +6 -6
- package/dist/cli-bundle/chunks/{schema-HAIBEE24.js → schema-VV3K5WZI.js} +6 -6
- package/dist/cli-bundle/chunks/{update-ZMYVXM77.js → update-DK3GAY5D.js} +12 -12
- package/dist/cli-bundle/chunks/update-OIMRKTX6.js +21 -0
- package/dist/cli-bundle/chunks/update-many-5KI6MW76.js +31 -0
- package/dist/cli-bundle/chunks/update-many-IOLDHIZT.js +35 -0
- package/dist/cli-bundle/main.js +16 -54
- package/dist/cli-bundle/main.js.map +3 -3
- package/dist/cli-bundle/sdk-runtime.js +52 -52
- package/dist/cli-bundle/sdk-testing.js +6 -6
- package/dist/cli-bundle/sdk.js +75 -55
- package/dist/cli-bundle/sdk.js.map +2 -2
- package/dist/core/extensions/extension-types.d.ts +1 -1
- package/dist/core/extensions/extension-types.js +3 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -0
- package/dist/core/extensions/index.js +3 -2
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/store/front-matter-cache.d.ts +8 -0
- package/dist/core/store/front-matter-cache.js +22 -9
- package/dist/core/store/front-matter-cache.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-mutation-options.js +4 -4
- package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +7 -2
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/context-relevance.d.ts +166 -0
- package/dist/sdk/context-relevance.js +299 -0
- package/dist/sdk/context-relevance.js.map +1 -0
- package/dist/sdk/index.d.ts +1 -0
- package/dist/sdk/index.js +3 -2
- package/dist/sdk/index.js.map +1 -1
- package/docs/COMMANDS.md +7 -1
- package/docs/EXTENSIONS.md +3 -1
- package/docs/SDK.md +78 -0
- package/docs/TESTING.md +40 -1
- package/package.json +4 -2
- package/dist/cli-bundle/chunks/append-CDPAYYSB.js +0 -11
- package/dist/cli-bundle/chunks/chunk-2BVD4ZD2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-2FKIIQMJ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-BPJ5NYSJ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-CEX2DQXZ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-CHSXGTWF.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-GZ365M6E.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-K4NMHZR3.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MBLHA6LR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MCZK7LY6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MFLLULHU.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-N4S7BV43.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-NBJCIAVV.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-NTOOEVJ4.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-P5SUMCU5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-PPY3GXFK.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YHKXNGLA.js.map +0 -7
- package/dist/cli-bundle/chunks/close-5WY6QO5F.js +0 -12
- package/dist/cli-bundle/chunks/close-many-U2KLQ3NL.js +0 -22
- package/dist/cli-bundle/chunks/comments-ZNOD5PTV.js +0 -13
- package/dist/cli-bundle/chunks/copy-F7BUFY4J.js +0 -9
- package/dist/cli-bundle/chunks/create-KCQM6UYM.js +0 -25
- package/dist/cli-bundle/chunks/delete-6KQHZYIP.js +0 -10
- package/dist/cli-bundle/chunks/docs-WCVYY6I7.js +0 -14
- package/dist/cli-bundle/chunks/focus-N2QGNS5D.js +0 -10
- package/dist/cli-bundle/chunks/history-compact-GWQ4UOEI.js +0 -21
- package/dist/cli-bundle/chunks/history-redact-4GJOLXCM.js +0 -17
- package/dist/cli-bundle/chunks/history-repair-HVCVCGUF.js +0 -19
- package/dist/cli-bundle/chunks/learnings-YYY3U2Y7.js +0 -13
- package/dist/cli-bundle/chunks/notes-BGG7VL72.js +0 -13
- package/dist/cli-bundle/chunks/plan-B42KBMX7.js +0 -24
- package/dist/cli-bundle/chunks/register-setup-3GVJ7XPE.js.map +0 -1
- package/dist/cli-bundle/chunks/register-setup-MPTTS52V.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-EX4UUZL6.js +0 -15
- package/dist/cli-bundle/chunks/update-76CRUMC7.js +0 -21
- package/dist/cli-bundle/chunks/update-many-QYQRGNPU.js +0 -31
- package/dist/cli-bundle/chunks/update-many-U4CEQWI4.js +0 -35
- /package/dist/cli-bundle/chunks/{append-CDPAYYSB.js.map → append-G7NGOQVU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-RSPHC423.js.map → append-SIECQAPH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CGDUIPJL.js.map → chunk-22PW73KV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GO2X6ZRB.js.map → chunk-35U3AVRY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4I7KS5ES.js.map → chunk-3JFQRPOI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NRMDT4OV.js.map → chunk-3THCOPYI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D6J5673C.js.map → chunk-4BINCIRM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-26MFLA7K.js.map → chunk-4P2GYOM5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LHDHS4Z6.js.map → chunk-4QE5HOJY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5VAZHYVQ.js.map → chunk-56J3MPGE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IINCZYM3.js.map → chunk-62ECRG6J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VCGHRLJU.js.map → chunk-62KPBB2W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3FUXM574.js.map → chunk-6MK6M35B.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TI7QSUFK.js.map → chunk-6PBZBIS6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y2736PT5.js.map → chunk-6WIP52LQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GLMJLBLR.js.map → chunk-75NAGPEL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6TD5QGIB.js.map → chunk-77CWXIAC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PAWPLIWW.js.map → chunk-7THLDY3D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QJZM5WO5.js.map → chunk-7TRCAREE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EEJKHF7M.js.map → chunk-7TRVVYPI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ONADVBMD.js.map → chunk-A62N3BM3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7QKSLAHB.js.map → chunk-AIWGQK6K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WDNPNW22.js.map → chunk-AKCHJXJ4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KFL3XHMA.js.map → chunk-AYPXY3HF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RL24NAUX.js.map → chunk-B7FCPO65.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4OCWJ2AP.js.map → chunk-BC7QBM2A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LD2NBQ5T.js.map → chunk-BST7GFIX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FJR2S7S4.js.map → chunk-CYBW4HK7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7UCBLJDF.js.map → chunk-DDF7UMVV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DQLP22K2.js.map → chunk-DLHFJZ2S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PCBZ2VJD.js.map → chunk-DMD2TENU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SCJPFQQT.js.map → chunk-DN67YDFH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7TBUV7XS.js.map → chunk-DNHILSD7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FFB3WITE.js.map → chunk-DT6NDP53.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DBV5A7FT.js.map → chunk-DWGHHSDC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3V5C7PUH.js.map → chunk-DYUAQVDK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MCH6IKK7.js.map → chunk-E2RJZQNW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6ZKDMEVT.js.map → chunk-ECXJ7OHI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LG4N6YOK.js.map → chunk-ESXG6VFX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GSQVQINP.js.map → chunk-FBD2WUNS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YSRXFGNV.js.map → chunk-FSD7W7Y2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JYVPLGOW.js.map → chunk-FWL5XVYI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BPYVKTZE.js.map → chunk-FYMHD6VX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SIQGG335.js.map → chunk-GMNCW27N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3SHDAKMF.js.map → chunk-GPPWUJMR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-W2VFNVSJ.js.map → chunk-H3HKQXQJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UIHDZS6X.js.map → chunk-HFQ7QQZL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z6RLSNUX.js.map → chunk-HLUB7G6J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NRYZ4QLH.js.map → chunk-HWUIK7YL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-U72GF3I2.js.map → chunk-INAZHXOI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-INOWVPUD.js.map → chunk-J3ELHLOJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UH6VFRV6.js.map → chunk-J3Z2JMDV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KAJNWMBE.js.map → chunk-JFOBTM4D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J6AD3GWC.js.map → chunk-JNELC5UO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YPE5MFPJ.js.map → chunk-JQ5NB6O2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3UXIMY62.js.map → chunk-KFC6X4PI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-C3YU3TXX.js.map → chunk-L2SWAZ3S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QLEH6FTQ.js.map → chunk-LVVZLEW5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RFHLRMLQ.js.map → chunk-M66PC7JI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-63PZJCKO.js.map → chunk-M7DWRMNY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UEATYUZW.js.map → chunk-M7JYEBPT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z2JQH2MG.js.map → chunk-MQ632QRB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5ZMZF53A.js.map → chunk-N7N3PUUP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3YJDIJIE.js.map → chunk-NPJLTZQZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ASSVI7FP.js.map → chunk-NQTIOKHL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BFNFTHWQ.js.map → chunk-O67XP4FD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K2OKKYSO.js.map → chunk-OVYXSZOQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FOJEBRDD.js.map → chunk-P7PDLLCE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XXN2B2MJ.js.map → chunk-PEACKWHL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HZZ3AC27.js.map → chunk-PFRGQZG2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q3CFSOQZ.js.map → chunk-PMU2OJ3N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5STY7NVM.js.map → chunk-PUMTJMMF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K52C6YPA.js.map → chunk-QTJCMK2S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6FU5BVRB.js.map → chunk-RAE2SLNO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S7J3GEHL.js.map → chunk-RYA7QE7B.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NSPSJWGL.js.map → chunk-SMKQFGDI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UFNFHCAC.js.map → chunk-SWQMU4AD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WVEMZZCR.js.map → chunk-TEKAGPZV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JH5XDDYS.js.map → chunk-TM5E2IED.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-C6XSTACC.js.map → chunk-TTRL5GE6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AEOFBBWO.js.map → chunk-UA2VI62P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6RR4XM5H.js.map → chunk-UYK26VRP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CXH7EMSB.js.map → chunk-VBDQTL3Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NGBWEYNY.js.map → chunk-W2FXYQ6D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UURYLDDC.js.map → chunk-WZ7EPGUX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QYZMZD4L.js.map → chunk-XVCB574W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-F5DDGY6R.js.map → chunk-XWS3Z57Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EP2CKDS7.js.map → chunk-XXJB4GLJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5RJ4LFD3.js.map → chunk-Z5MFM54X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6WCXSC5V.js.map → chunk-ZGDJA6WI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TKWTJGD6.js.map → chunk-ZIU35KME.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YUMNZS3X.js.map → chunk-ZQ2KEWE7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-5WY6QO5F.js.map → close-2NVUCJXV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-TKTFRL7N.js.map → close-BZPS37KL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-HEPL66EG.js.map → close-many-KKNCGLVR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-U2KLQ3NL.js.map → close-many-S5WKLWVO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-PLFK5ZKK.js.map → comments-PV5XG342.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-ZNOD5PTV.js.map → comments-XAM2ADHO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-F7BUFY4J.js.map → copy-OJ2YNJ7S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-VH3L4MN2.js.map → copy-OZDYDQUG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-KCQM6UYM.js.map → create-5O3QK3PX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-LD4SEUD6.js.map → create-WGFKEJAK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-ZNXUNCZR.js.map → delete-NTYXFL7A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-6KQHZYIP.js.map → delete-V7FPW6JL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-CVDY7FFK.js.map → deps-7WVENNH3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-SZXQHV73.js.map → deps-Z6RD6RWW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-DR74ITCD.js.map → docs-2NIRGHAN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-WCVYY6I7.js.map → docs-SOY2CMH3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-QEFQ2M3H.js.map → files-4OH2I663.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-H5YCA74Z.js.map → files-5KNAFW67.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-55TRYSNA.js.map → focus-CLNZWWKW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-N2QGNS5D.js.map → focus-JUKXZN3J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-JJZ4EFL3.js.map → history-compact-R3T3XPD4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-GWQ4UOEI.js.map → history-compact-WKAKPLFQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-TPPUT3A5.js.map → history-redact-CLJDCBNF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-4GJOLXCM.js.map → history-redact-Y67UDKD3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-HVCVCGUF.js.map → history-repair-2WLXWQAM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-J7PIZ6ZP.js.map → history-repair-LNA7V2VI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-KB6BT4NR.js.map → learnings-2L72KBOE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-YYY3U2Y7.js.map → learnings-PNK7WUWO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-ZTHXVOKM.js.map → notes-USDIABZV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-BGG7VL72.js.map → notes-X4SWEJSB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-B42KBMX7.js.map → plan-JU454RMZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-LUR7C24X.js.map → plan-U4RWU56Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-JRDMDGT5.js.map → profile-COBKZJUQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-5F75MO5O.js.map → profile-RKIRCXH7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-7DMOYDPC.js.map → register-mutation-JGXTDEIZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-5UDT3WL3.js.map → register-mutation-XVO4GGZI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-Y4E32W4D.js.map → register-operations-4EEFV5KJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-NW43IUPE.js.map → register-operations-UV25Z4BN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-EX4UUZL6.js.map → restore-54HR2EYD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-BTBEZ5CK.js.map → restore-BINCHJIY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-DGSTYYQB.js.map → schema-2JZNEQSG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-HAIBEE24.js.map → schema-VV3K5WZI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-ZMYVXM77.js.map → update-DK3GAY5D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-76CRUMC7.js.map → update-OIMRKTX6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-QYQRGNPU.js.map → update-many-5KI6MW76.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-U4CEQWI4.js.map → update-many-IOLDHIZT.js.map} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!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]="
|
|
2
|
+
!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]="bad5ccc3-1bfd-54c2-9fbd-23ddb56a8c36")}catch(e){}}();
|
|
3
3
|
export const KNOWN_EXTENSION_CAPABILITIES = [
|
|
4
4
|
"commands",
|
|
5
5
|
"renderers",
|
|
@@ -56,6 +56,7 @@ export const KNOWN_EXTENSION_SERVICE_NAMES = [
|
|
|
56
56
|
"history_append",
|
|
57
57
|
"item_store_write",
|
|
58
58
|
"item_store_delete",
|
|
59
|
+
"context_relevance",
|
|
59
60
|
];
|
|
60
61
|
/**
|
|
61
62
|
* Implements create default extension governance policy for the public runtime surface of this module.
|
|
@@ -83,4 +84,4 @@ export function createDefaultExtensionGovernancePolicy() {
|
|
|
83
84
|
};
|
|
84
85
|
}
|
|
85
86
|
//# sourceMappingURL=extension-types.js.map
|
|
86
|
-
//# debugId=
|
|
87
|
+
//# debugId=bad5ccc3-1bfd-54c2-9fbd-23ddb56a8c36
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-types.js","sources":["core/extensions/extension-types.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/extensions/extension-types\n *\n * Implements extension runtime contracts and governance for Extension Types.\n */\nimport type {\n ExtensionPolicyOverrideSettings,\n ExtensionPolicySettings,\n ItemDocument,\n ItemFrontMatter,\n ItemStatus,\n PmSettings,\n} from \"../../types/index.js\";\nimport type { GlobalOptions } from \"../shared/command-types.js\";\nimport type { ProjectProfileDefinition, ProjectProfileRegistrationInput } from \"../profile/profile-presets.js\";\n\nexport const KNOWN_EXTENSION_CAPABILITIES = [\n \"commands\",\n \"renderers\",\n \"hooks\",\n \"schema\",\n \"importers\",\n \"search\",\n \"parser\",\n \"preflight\",\n \"services\",\n] as const;\n/**\n * Restricts extension capability values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionCapability = (typeof KNOWN_EXTENSION_CAPABILITIES)[number];\nexport const EXTENSION_CAPABILITY_CONTRACT_VERSION = 2;\nexport const EXTENSION_CAPABILITY_LEGACY_ALIASES: Readonly<Record<string, ExtensionCapability>> = Object.freeze({\n migration: \"schema\",\n validation: \"schema\",\n});\nexport const EXTENSION_CAPABILITY_CONTRACT = Object.freeze({\n version: EXTENSION_CAPABILITY_CONTRACT_VERSION,\n capabilities: [...KNOWN_EXTENSION_CAPABILITIES],\n legacy_aliases: { ...EXTENSION_CAPABILITY_LEGACY_ALIASES },\n});\n\nexport const KNOWN_EXTENSION_POLICY_MODES = [\"off\", \"warn\", \"enforce\"] as const;\n/**\n * Restricts extension policy mode values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionPolicyMode = (typeof KNOWN_EXTENSION_POLICY_MODES)[number];\nexport const KNOWN_EXTENSION_TRUST_MODES = [\"off\", \"warn\", \"enforce\"] as const;\n/**\n * Restricts extension trust mode values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionTrustMode = (typeof KNOWN_EXTENSION_TRUST_MODES)[number];\nexport const KNOWN_EXTENSION_SANDBOX_PROFILES = [\"none\", \"restricted\", \"strict\"] as const;\n/**\n * Restricts extension sandbox profile values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionSandboxProfile = (typeof KNOWN_EXTENSION_SANDBOX_PROFILES)[number];\n\nexport const KNOWN_PM_MAX_VERSION_EXCEEDED_MODES = [\"block\", \"warn\"] as const;\n/** How a `pm_max_version` violation is handled for an extension layer. */\nexport type PmMaxVersionExceededMode = (typeof KNOWN_PM_MAX_VERSION_EXCEEDED_MODES)[number];\n/** Optional per-layer override map for `extensions.policy.pm_max_version_exceeded_mode`. */\nexport interface PmMaxVersionExceededModeByLayer {\n global?: PmMaxVersionExceededMode;\n project?: PmMaxVersionExceededMode;\n}\n/**\n * Settings value for `extensions.policy.pm_max_version_exceeded_mode`: either a\n * single mode applied to both layers, or a per-layer override map. Unset (and\n * any unset layer key) defaults to `\"block\"`.\n */\nexport type PmMaxVersionExceededModeSetting = PmMaxVersionExceededMode | PmMaxVersionExceededModeByLayer;\n\nexport const KNOWN_EXTENSION_POLICY_SURFACES = [\n \"commands.override\",\n \"commands.handler\",\n \"hooks.beforecommand\",\n \"hooks.aftercommand\",\n \"hooks.onwrite\",\n \"hooks.onread\",\n \"hooks.onindex\",\n \"schema.flags\",\n \"schema.itemfields\",\n \"schema.itemtypes\",\n \"schema.migrations\",\n \"schema.profiles\",\n \"parser.override\",\n \"preflight.override\",\n \"services.override\",\n \"renderers.override\",\n \"importers.importer\",\n \"importers.exporter\",\n \"search.provider\",\n \"search.vectorstore\",\n] as const;\n/**\n * Restricts extension policy surface values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionPolicySurface = (typeof KNOWN_EXTENSION_POLICY_SURFACES)[number];\n\nexport const KNOWN_EXTENSION_SERVICE_NAMES = [\n \"output_format\",\n \"error_format\",\n \"help_format\",\n \"lock_acquire\",\n \"lock_release\",\n \"history_append\",\n \"item_store_write\",\n \"item_store_delete\",\n] as const;\n/**\n * Restricts extension service name values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionServiceName = (typeof KNOWN_EXTENSION_SERVICE_NAMES)[number];\n\n/**\n * Documents the extension provenance metadata payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionProvenanceMetadata {\n source?: string;\n signature?: string;\n attestation?: string;\n verified?: boolean;\n}\n\n/**\n * Documents the extension runtime permission declaration payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionRuntimePermissionDeclaration {\n fs_read?: boolean;\n fs_write?: boolean;\n network?: boolean;\n env_read?: boolean;\n env_write?: boolean;\n process_spawn?: boolean;\n}\n\n/**\n * Documents the extension activation metadata payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionActivationMetadata {\n commands?: string[];\n}\n\n/**\n * Restricts extension policy override values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionPolicyOverride = ExtensionPolicyOverrideSettings;\n/**\n * Extension governance policy as read from / serialized to settings. Extends the\n * stored settings shape with `pm_max_version_exceeded_mode` (pm-k5e8), which\n * relaxes the default-BLOCK on `pm_max_version` violations to warn-only —\n * globally or per extension layer.\n */\nexport type ExtensionGovernancePolicy = ExtensionPolicySettings & {\n pm_max_version_exceeded_mode?: PmMaxVersionExceededModeSetting;\n};\n\n/**\n * Documents the extension manifest engines payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionManifestEngines {\n pm?: string;\n node?: string;\n [engine: string]: string | undefined;\n}\n\n/**\n * Implements create default extension governance policy for the public runtime surface of this module.\n */\nexport function createDefaultExtensionGovernancePolicy(): ExtensionGovernancePolicy {\n return {\n mode: \"off\",\n trust_mode: \"off\",\n require_provenance: false,\n trusted_extensions: [],\n default_sandbox_profile: \"none\",\n allowed_extensions: [],\n blocked_extensions: [],\n allowed_capabilities: [],\n blocked_capabilities: [],\n allowed_surfaces: [],\n blocked_surfaces: [],\n allowed_commands: [],\n blocked_commands: [],\n allowed_actions: [],\n blocked_actions: [],\n allowed_services: [],\n blocked_services: [],\n extension_overrides: [],\n };\n}\n\n/**\n * Restricts extension layer values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionLayer = \"global\" | \"project\";\n/**\n * Restricts extension status values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionStatus = \"ok\" | \"warn\";\n\n/**\n * Documents the extension manifest payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionManifest {\n name: string;\n version: string;\n entry: string;\n priority: number;\n capabilities: string[];\n manifest_version?: number;\n pm_min_version?: string;\n pm_max_version?: string;\n engines?: ExtensionManifestEngines;\n trusted?: boolean;\n provenance?: ExtensionProvenanceMetadata;\n sandbox_profile?: ExtensionSandboxProfile;\n permissions?: ExtensionRuntimePermissionDeclaration;\n activation?: ExtensionActivationMetadata;\n legacy_capability_aliases?: LegacyExtensionCapabilityAliasMapping[];\n}\n\n/**\n * Documents the extension diagnostic payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionDiagnostic {\n layer: ExtensionLayer;\n directory: string;\n manifest_path: string;\n name: string | null;\n version: string | null;\n entry: string | null;\n priority: number | null;\n entry_path: string | null;\n enabled: boolean | null;\n status: ExtensionStatus;\n}\n\n/**\n * Documents the effective extension payload exchanged by command, SDK, and package integrations.\n */\nexport interface EffectiveExtension {\n layer: ExtensionLayer;\n directory: string;\n manifest_path: string;\n name: string;\n source_package?: string;\n version: string;\n entry: string;\n priority: number;\n entry_path: string;\n manifest_version?: number;\n pm_min_version?: string;\n pm_max_version?: string;\n engines?: ExtensionManifestEngines;\n trusted?: boolean;\n provenance?: ExtensionProvenanceMetadata;\n sandbox_profile?: ExtensionSandboxProfile;\n permissions?: ExtensionRuntimePermissionDeclaration;\n capabilities?: string[];\n activation?: ExtensionActivationMetadata;\n}\n\n/**\n * Documents the extension discovery result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionDiscoveryResult {\n disabled_by_flag: boolean;\n roots: {\n global: string;\n project: string;\n };\n configured_enabled: string[];\n configured_disabled: string[];\n discovered: ExtensionDiagnostic[];\n effective: EffectiveExtension[];\n warnings: string[];\n policy: ExtensionGovernancePolicy;\n}\n\n/**\n * Documents the loaded extension payload exchanged by command, SDK, and package integrations.\n */\nexport interface LoadedExtension extends EffectiveExtension {\n module: unknown;\n}\n\n/**\n * Documents the failed extension load payload exchanged by command, SDK, and package integrations.\n */\nexport interface FailedExtensionLoad {\n layer: ExtensionLayer;\n name: string;\n entry_path: string;\n error: string;\n}\n\n/**\n * Documents the extension load result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionLoadResult extends ExtensionDiscoveryResult {\n loaded: LoadedExtension[];\n failed: FailedExtensionLoad[];\n}\n\n/**\n * Documents the before command hook context payload exchanged by command, SDK, and package integrations.\n */\nexport interface BeforeCommandHookContext {\n command: string;\n args: string[];\n options?: Record<string, unknown>;\n global?: GlobalOptions;\n pm_root: string;\n}\n\n/**\n * Documents the after command hook context payload exchanged by command, SDK, and package integrations.\n */\nexport interface AfterCommandHookContext extends BeforeCommandHookContext {\n ok: boolean;\n error?: string;\n result?: unknown;\n affected?: AfterCommandAffectedItem[];\n}\n\n/**\n * Documents the after command affected item payload exchanged by command, SDK, and package integrations.\n */\nexport interface AfterCommandAffectedItem {\n id: string;\n op?: string;\n item_type?: string;\n previous_status?: ItemStatus;\n status?: ItemStatus;\n previous?: Partial<ItemFrontMatter>;\n current?: Partial<ItemFrontMatter>;\n changed_fields?: string[];\n}\n\n/**\n * Documents the on write hook context payload exchanged by command, SDK, and package integrations.\n */\nexport interface OnWriteHookContext {\n path: string;\n scope: \"project\" | \"global\";\n op: string;\n item_id?: string;\n item_type?: string;\n before?: ItemDocument;\n after?: ItemDocument;\n changed_fields?: string[];\n}\n\n/**\n * Documents the on read hook context payload exchanged by command, SDK, and package integrations.\n */\nexport interface OnReadHookContext {\n path: string;\n scope: \"project\" | \"global\";\n}\n\n/**\n * Documents the on index hook context payload exchanged by command, SDK, and package integrations.\n */\nexport interface OnIndexHookContext {\n mode: string;\n total_items?: number;\n}\n\n/**\n * Restricts before command hook values accepted by command, SDK, and storage contracts.\n */\nexport type BeforeCommandHook = (context: BeforeCommandHookContext) => Promise<void> | void;\n/**\n * Restricts after command hook values accepted by command, SDK, and storage contracts.\n */\nexport type AfterCommandHook = (context: AfterCommandHookContext) => Promise<void> | void;\n/**\n * Restricts on write hook values accepted by command, SDK, and storage contracts.\n */\nexport type OnWriteHook = (context: OnWriteHookContext) => Promise<void> | void;\n/**\n * Restricts on read hook values accepted by command, SDK, and storage contracts.\n */\nexport type OnReadHook = (context: OnReadHookContext) => Promise<void> | void;\n/**\n * Restricts on index hook values accepted by command, SDK, and storage contracts.\n */\nexport type OnIndexHook = (context: OnIndexHookContext) => Promise<void> | void;\n/**\n * Restricts output renderer format values accepted by command, SDK, and storage contracts.\n */\nexport type OutputRendererFormat = \"toon\" | \"json\";\n/**\n * Restricts command override values accepted by command, SDK, and storage contracts.\n */\nexport type CommandOverride = (context: CommandOverrideContext) => unknown;\n/**\n * Restricts renderer override values accepted by command, SDK, and storage contracts.\n */\nexport type RendererOverride = (context: RendererOverrideContext) => string | null | undefined;\n/**\n * Restricts command handler values accepted by command, SDK, and storage contracts.\n */\nexport type CommandHandler = (context: CommandHandlerContext) => unknown;\n/**\n * Restricts parser override values accepted by command, SDK, and storage contracts.\n */\nexport type ParserOverride = (context: ParserOverrideContext) => ParserOverrideDelta | Promise<ParserOverrideDelta>;\n/**\n * Restricts preflight override values accepted by command, SDK, and storage contracts.\n */\nexport type PreflightOverride = (context: PreflightOverrideContext) => PreflightOverrideDelta | Promise<PreflightOverrideDelta>;\n/**\n * Restricts service override values accepted by command, SDK, and storage contracts.\n */\nexport type ServiceOverride = (context: ServiceOverrideContext) => unknown;\n\n/**\n * Documents the registered extension hook payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionHook<THook> {\n layer: ExtensionLayer;\n name: string;\n run: THook;\n}\n\n/**\n * Documents the extension hook registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionHookRegistry {\n beforeCommand: Array<RegisteredExtensionHook<BeforeCommandHook>>;\n afterCommand: Array<RegisteredExtensionHook<AfterCommandHook>>;\n onWrite: Array<RegisteredExtensionHook<OnWriteHook>>;\n onRead: Array<RegisteredExtensionHook<OnReadHook>>;\n onIndex: Array<RegisteredExtensionHook<OnIndexHook>>;\n}\n\n/**\n * Documents the command override context payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandOverrideContext {\n command: string;\n args: string[];\n options?: Record<string, unknown>;\n global?: GlobalOptions;\n pm_root: string;\n result: unknown;\n}\n\n/**\n * Documents the renderer override context payload exchanged by command, SDK, and package integrations.\n */\nexport interface RendererOverrideContext {\n format: OutputRendererFormat;\n command?: string;\n args?: string[];\n options?: Record<string, unknown>;\n global?: GlobalOptions;\n pm_root?: string;\n result: unknown;\n}\n\n/**\n * Documents the command handler context payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandHandlerContext {\n command: string;\n args: string[];\n options: Record<string, unknown>;\n global: GlobalOptions;\n pm_root: string;\n}\n\n/**\n * Documents the parser override context payload exchanged by command, SDK, and package integrations.\n */\nexport type ParserOverrideContext = CommandHandlerContext;\n\n/**\n * Documents the parser override delta payload exchanged by command, SDK, and package integrations.\n */\nexport interface ParserOverrideDelta {\n args?: string[];\n options?: Record<string, unknown>;\n global?: GlobalOptions;\n}\n\n/**\n * Documents the preflight override context payload exchanged by command, SDK, and package integrations.\n */\nexport interface PreflightOverrideContext extends CommandHandlerContext {\n decision: PreflightRuntimeDecision;\n}\n\n/**\n * Documents the preflight runtime decision payload exchanged by command, SDK, and package integrations.\n */\nexport interface PreflightRuntimeDecision {\n enforce_item_format_gate: boolean;\n run_preflight_item_format_sync: boolean;\n run_extension_migrations: boolean;\n enforce_mandatory_migration_gate: boolean;\n}\n\n/**\n * Documents the preflight override delta payload exchanged by command, SDK, and package integrations.\n */\nexport interface PreflightOverrideDelta extends ParserOverrideDelta {\n enforce_item_format_gate?: boolean;\n run_preflight_item_format_sync?: boolean;\n run_extension_migrations?: boolean;\n enforce_mandatory_migration_gate?: boolean;\n}\n\n/**\n * Documents the service override context payload exchanged by command, SDK, and package integrations.\n */\nexport interface ServiceOverrideContext {\n service: ExtensionServiceName;\n command?: string;\n args?: string[];\n options?: Record<string, unknown>;\n global?: GlobalOptions;\n pm_root?: string;\n payload: unknown;\n}\n\n/**\n * Documents the extension command argument definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionCommandArgumentDefinition {\n name: string;\n required?: boolean;\n variadic?: boolean;\n description?: string;\n}\n\n/**\n * Documents the command definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandDefinition {\n name: string;\n run?: CommandHandler;\n /**\n * @deprecated Use `run` instead. This alias remains for backward compatibility.\n */\n handler?: CommandHandler;\n action?: string;\n description?: string;\n intent?: string;\n examples?: string[];\n failure_hints?: string[];\n arguments?: ExtensionCommandArgumentDefinition[];\n flags?: FlagDefinition[];\n}\n\n/**\n * Optional command-definition metadata for first-class importer/exporter\n * registration.\n *\n * `registerImporter`/`registerExporter` always create a `<name> import` /\n * `<name> export` command path. By default that path only has a handler. When\n * these options are supplied, the auto-created command also gains a full command\n * definition (description, flags, intent, examples, failure hints, positional\n * arguments) — surfaced in help and runtime contracts exactly like\n * `registerCommand`. The registration `name` and `run` handler are implicit, so\n * they are not part of this options object.\n */\nexport interface ImportExportRegistrationOptions {\n action?: string;\n description?: string;\n intent?: string;\n examples?: string[];\n failure_hints?: string[];\n arguments?: ExtensionCommandArgumentDefinition[];\n flags?: FlagDefinition[];\n}\n\n/**\n * Restricts flag value type values accepted by command, SDK, and storage contracts.\n */\nexport type FlagValueType = \"string\" | \"number\" | \"boolean\";\n\n/**\n * Documents the flag definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface FlagDefinition {\n long?: string;\n short?: string;\n value_name?: string;\n description?: string;\n required?: boolean;\n enabled?: boolean;\n visible?: boolean;\n /**\n * Canonical flag value type. Prefer this field; it is the one runtime\n * contracts and help output read first.\n */\n value_type?: FlagValueType;\n /**\n * @deprecated Use `value_type`. Retained for backward compatibility: when\n * both are present `value_type` wins, and `type` resolves only when\n * `value_type` is absent (`value_type ?? type`).\n */\n type?: FlagValueType;\n /**\n * When true, a repeated comma-list flag accumulates values across repeats\n * — parity with core list flags such as `--tags` — instead of the last\n * value winning. Mirrors the core `CliFlagContract.list` field so\n * extension-registered list flags coalesce through the same bootstrap path.\n */\n list?: boolean;\n /**\n * Default value applied when the flag is omitted. Surfaced to runtime\n * contracts and help output. A `list` flag may default to an array of scalars\n * (e.g. `[\"a\", \"b\"]`); the array is flattened/coerced like any list value.\n */\n default?: string | number | boolean | Array<string | number | boolean>;\n [key: string]: unknown;\n}\n\n/**\n * Documents the schema field definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaFieldDefinition {\n name: string;\n type: string;\n optional?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * Documents the schema item type command option policy definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaItemTypeCommandOptionPolicyDefinition {\n command: string;\n option: string;\n enabled?: boolean;\n required?: boolean;\n visible?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * Documents the schema item type option definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaItemTypeOptionDefinition {\n key: string;\n values?: string[];\n required?: boolean;\n aliases?: string[];\n [key: string]: unknown;\n}\n\n/**\n * Documents the schema item type definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaItemTypeDefinition {\n name: string;\n folder?: string;\n aliases?: string[];\n required_create_fields?: string[];\n required_create_repeatables?: string[];\n command_option_policies?: SchemaItemTypeCommandOptionPolicyDefinition[];\n options?: SchemaItemTypeOptionDefinition[];\n [key: string]: unknown;\n}\n\n/**\n * Documents the schema migration run context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaMigrationRunContext {\n id: string;\n command: \"migration\";\n layer: ExtensionLayer;\n extension: string;\n pm_root: string;\n status: string;\n}\n\n/**\n * Restricts schema migration runner values accepted by command, SDK, and storage contracts.\n */\nexport type SchemaMigrationRunner = (context: SchemaMigrationRunContext) => unknown | Promise<unknown>;\n\n/**\n * Documents the schema migration definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaMigrationDefinition {\n id?: string;\n description?: string;\n status?: string;\n mandatory?: boolean;\n run?: SchemaMigrationRunner;\n [key: string]: unknown;\n}\n\n/**\n * Documents the import export context payload exchanged by command, SDK, and package integrations.\n */\nexport interface ImportExportContext {\n registration: string;\n action: \"import\" | \"export\";\n command: string;\n args: string[];\n options: Record<string, unknown>;\n global: GlobalOptions;\n pm_root: string;\n}\n\n/**\n * Restricts importer values accepted by command, SDK, and storage contracts.\n */\nexport type Importer = (context: ImportExportContext) => unknown | Promise<unknown>;\n/**\n * Restricts exporter values accepted by command, SDK, and storage contracts.\n */\nexport type Exporter = (context: ImportExportContext) => unknown | Promise<unknown>;\n\n/**\n * Restricts extension search mode values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionSearchMode = \"keyword\" | \"semantic\" | \"hybrid\";\n\n/**\n * Documents the search provider query context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderQueryContext {\n query: string;\n mode: ExtensionSearchMode;\n tokens: string[];\n options: Record<string, unknown>;\n settings: PmSettings;\n documents: ItemDocument[];\n [key: string]: unknown;\n}\n\n/**\n * Documents the search provider hit payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderHit {\n id: string;\n score: number;\n matched_fields?: string[];\n [key: string]: unknown;\n}\n\n/**\n * Restricts search provider query result values accepted by command, SDK, and storage contracts.\n */\nexport type SearchProviderQueryResult = SearchProviderHit[] | { hits?: SearchProviderHit[] };\n\n/**\n * Documents the search provider query expansion context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderQueryExpansionContext {\n query: string;\n mode: Exclude<ExtensionSearchMode, \"keyword\">;\n settings: PmSettings;\n [key: string]: unknown;\n}\n\n/**\n * Restricts search provider query expansion result values accepted by command, SDK, and storage contracts.\n */\nexport type SearchProviderQueryExpansionResult = string[] | { queries?: string[] };\n\n/**\n * Documents the search provider rerank candidate payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderRerankCandidate {\n id: string;\n text: string;\n score: number;\n}\n\n/**\n * Documents the search provider rerank hit payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderRerankHit {\n id: string;\n score: number;\n}\n\n/**\n * Restricts search provider rerank result values accepted by command, SDK, and storage contracts.\n */\nexport type SearchProviderRerankResult = SearchProviderRerankHit[] | { hits?: SearchProviderRerankHit[] };\n\n/**\n * Documents the search provider rerank context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderRerankContext {\n query: string;\n mode: \"hybrid\";\n model: string;\n top_k: number;\n settings: PmSettings;\n candidates: SearchProviderRerankCandidate[];\n [key: string]: unknown;\n}\n\n/**\n * Documents the search provider embed batch context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderEmbedBatchContext {\n inputs: string[];\n settings: PmSettings;\n model: string;\n [key: string]: unknown;\n}\n\n/**\n * Documents the search provider embed context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderEmbedContext {\n input: string;\n settings: PmSettings;\n model: string;\n [key: string]: unknown;\n}\n\n/**\n * Documents the search provider definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderDefinition {\n name: string;\n query?: (context: SearchProviderQueryContext) => SearchProviderQueryResult | Promise<SearchProviderQueryResult>;\n queryExpansion?: (\n context: SearchProviderQueryExpansionContext,\n ) => SearchProviderQueryExpansionResult | Promise<SearchProviderQueryExpansionResult>;\n query_expansion?: (\n context: SearchProviderQueryExpansionContext,\n ) => SearchProviderQueryExpansionResult | Promise<SearchProviderQueryExpansionResult>;\n rerank?: (context: SearchProviderRerankContext) => SearchProviderRerankResult | Promise<SearchProviderRerankResult>;\n embedBatch?: (context: SearchProviderEmbedBatchContext) => number[][] | Promise<number[][]>;\n embed_batch?: (context: SearchProviderEmbedBatchContext) => number[][] | Promise<number[][]>;\n embed?: (context: SearchProviderEmbedContext) => number[] | Promise<number[]>;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store query hit payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreQueryHit {\n id: string;\n score: number;\n payload?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store query context payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreQueryContext {\n vector: number[];\n limit: number;\n settings: PmSettings;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store upsert point payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreUpsertPoint {\n id: string;\n vector: number[];\n payload?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store upsert context payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreUpsertContext {\n points: VectorStoreUpsertPoint[];\n settings: PmSettings;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store delete context payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreDeleteContext {\n ids: string[];\n settings: PmSettings;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store adapter definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreAdapterDefinition {\n name: string;\n query?: (context: VectorStoreQueryContext) => VectorStoreQueryHit[] | Promise<VectorStoreQueryHit[]>;\n upsert?: (context: VectorStoreUpsertContext) => unknown | Promise<unknown>;\n delete?: (context: VectorStoreDeleteContext) => unknown | Promise<unknown>;\n [key: string]: unknown;\n}\n\n/**\n * Documents the registered extension command override payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionCommandOverride {\n layer: ExtensionLayer;\n name: string;\n command: string;\n run: CommandOverride;\n}\n\n/**\n * Documents the registered extension command handler payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionCommandHandler {\n layer: ExtensionLayer;\n name: string;\n command: string;\n run: CommandHandler;\n}\n\n/**\n * Documents the registered extension parser override payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionParserOverride {\n layer: ExtensionLayer;\n name: string;\n command: string;\n run: ParserOverride;\n}\n\n/**\n * Documents the registered extension preflight override payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionPreflightOverride {\n layer: ExtensionLayer;\n name: string;\n run: PreflightOverride;\n}\n\n/**\n * Documents the registered extension service override payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionServiceOverride {\n layer: ExtensionLayer;\n name: string;\n service: ExtensionServiceName;\n run: ServiceOverride;\n}\n\n/**\n * Documents the registered extension renderer override payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionRendererOverride {\n layer: ExtensionLayer;\n name: string;\n format: OutputRendererFormat;\n run: RendererOverride;\n}\n\n/**\n * Documents the extension command registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionCommandRegistry {\n overrides: RegisteredExtensionCommandOverride[];\n handlers: RegisteredExtensionCommandHandler[];\n}\n\n/**\n * Documents the extension parser registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionParserRegistry {\n overrides: RegisteredExtensionParserOverride[];\n}\n\n/**\n * Documents the extension preflight registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionPreflightRegistry {\n overrides: RegisteredExtensionPreflightOverride[];\n}\n\n/**\n * Documents the extension service registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionServiceRegistry {\n overrides: RegisteredExtensionServiceOverride[];\n}\n\n/**\n * Documents the extension renderer registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionRendererRegistry {\n overrides: RegisteredExtensionRendererOverride[];\n}\n\n/**\n * Documents the registered extension flag definitions payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionFlagDefinitions {\n layer: ExtensionLayer;\n name: string;\n target_command: string;\n flags: FlagDefinition[];\n}\n\n/**\n * Documents the registered extension command definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionCommandDefinition {\n layer: ExtensionLayer;\n name: string;\n source_package?: string;\n command: string;\n action: string;\n description?: string;\n intent?: string;\n examples: string[];\n failure_hints: string[];\n arguments: ExtensionCommandArgumentDefinition[];\n}\n\n/**\n * Documents the registered extension schema field definitions payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionSchemaFieldDefinitions {\n layer: ExtensionLayer;\n name: string;\n fields: SchemaFieldDefinition[];\n}\n\n/**\n * Documents the registered extension schema item type definitions payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionSchemaItemTypeDefinitions {\n layer: ExtensionLayer;\n name: string;\n types: SchemaItemTypeDefinition[];\n}\n\n/**\n * Documents the registered extension schema migration definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionSchemaMigrationDefinition {\n layer: ExtensionLayer;\n name: string;\n definition: SchemaMigrationDefinition;\n runtime_definition: SchemaMigrationDefinition;\n}\n\n/**\n * Documents the registered extension importer payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionImporter {\n layer: ExtensionLayer;\n name: string;\n importer: string;\n}\n\n/**\n * Documents the registered extension exporter payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionExporter {\n layer: ExtensionLayer;\n name: string;\n exporter: string;\n}\n\n/**\n * Documents the registered extension search provider payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionSearchProvider {\n layer: ExtensionLayer;\n name: string;\n definition: SearchProviderDefinition;\n runtime_definition: SearchProviderDefinition;\n}\n\n/**\n * Documents the registered extension vector store adapter payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionVectorStoreAdapter {\n layer: ExtensionLayer;\n name: string;\n definition: VectorStoreAdapterDefinition;\n runtime_definition: VectorStoreAdapterDefinition;\n}\n\n/**\n * Documents a project profile contributed by an extension via\n * `api.registerProfile(profile)`.\n *\n * A profile is the broadest customization primitive an extension can ship: it\n * bundles item types, custom statuses, fields, per-type workflows, config knobs,\n * create templates, and package recommendations into one declarative archetype\n * that `pm profile apply` stages idempotently — the same shape as the\n * core-baked archetypes. Registering one makes it resolvable by name through\n * `pm profile list/show/apply` for as long as the owning package is active.\n */\nexport interface RegisteredExtensionProjectProfile {\n layer: ExtensionLayer;\n name: string;\n profile: ProjectProfileDefinition;\n}\n\n/**\n * Documents the extension registration registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionRegistrationRegistry {\n commands: RegisteredExtensionCommandDefinition[];\n flags: RegisteredExtensionFlagDefinitions[];\n item_fields: RegisteredExtensionSchemaFieldDefinitions[];\n item_types: RegisteredExtensionSchemaItemTypeDefinitions[];\n migrations: RegisteredExtensionSchemaMigrationDefinition[];\n profiles: RegisteredExtensionProjectProfile[];\n importers: RegisteredExtensionImporter[];\n exporters: RegisteredExtensionExporter[];\n search_providers: RegisteredExtensionSearchProvider[];\n vector_store_adapters: RegisteredExtensionVectorStoreAdapter[];\n}\n\n/**\n * Documents the extension registration counts payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionRegistrationCounts {\n commands: number;\n flags: number;\n item_fields: number;\n item_types: number;\n migrations: number;\n profiles: number;\n importers: number;\n exporters: number;\n search_providers: number;\n vector_store_adapters: number;\n}\n\n/**\n * Read-only identity an extension's `activate(api)` receives about itself, so\n * authors can emit self-identifying logs, gate on their own version, and build\n * better error messages without re-reading the on-disk manifest or duplicating\n * metadata in-module. Exposed as `api.extension`.\n */\nexport interface ExtensionSelfIdentity {\n readonly name: string;\n readonly layer: ExtensionLayer;\n readonly version: string;\n readonly capabilities: readonly ExtensionCapability[];\n readonly pm_min_version?: string;\n readonly pm_max_version?: string;\n readonly source_package?: string;\n}\n\n/**\n * Documents the extension api payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionApi {\n /** Read-only identity of the extension this `api` was created for. */\n readonly extension: ExtensionSelfIdentity;\n registerCommand(command: string, override: CommandOverride): void;\n registerCommand(definition: CommandDefinition): void;\n registerParser(command: string, override: ParserOverride): void;\n registerPreflight(override: PreflightOverride): void;\n registerService(service: ExtensionServiceName, override: ServiceOverride): void;\n registerFlags(targetCommand: string, flags: FlagDefinition[]): void;\n registerItemFields(fields: SchemaFieldDefinition[]): void;\n registerItemTypes(types: SchemaItemTypeDefinition[]): void;\n registerMigration(definition: SchemaMigrationDefinition): void;\n registerProfile(profile: ProjectProfileRegistrationInput): void;\n registerRenderer(format: OutputRendererFormat, renderer: RendererOverride): void;\n registerImporter(name: string, importer: Importer, options?: ImportExportRegistrationOptions): void;\n registerExporter(name: string, exporter: Exporter, options?: ImportExportRegistrationOptions): void;\n registerSearchProvider(provider: SearchProviderDefinition): void;\n registerVectorStoreAdapter(adapter: VectorStoreAdapterDefinition): void;\n hooks: {\n beforeCommand(hook: BeforeCommandHook): void;\n afterCommand(hook: AfterCommandHook): void;\n onWrite(hook: OnWriteHook): void;\n onRead(hook: OnReadHook): void;\n onIndex(hook: OnIndexHook): void;\n };\n}\n\n/**\n * Documents the failed extension activation payload exchanged by command, SDK, and package integrations.\n */\nexport interface FailedExtensionActivation {\n layer: ExtensionLayer;\n name: string;\n entry_path: string;\n error: string;\n trace?: ExtensionActivationFailureTrace;\n}\n\n/**\n * Documents the extension activation failure trace payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionActivationFailureTrace {\n method: string;\n /** `-1` means the failure happened before a numbered registration was accepted. */\n registration_index: number;\n command?: string;\n capability?: ExtensionCapability;\n missing_capability?: ExtensionCapability;\n expected_schema: string;\n received?: unknown;\n hint?: string;\n}\n\n/**\n * Documents the extension activation result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionActivationResult {\n hooks: ExtensionHookRegistry;\n commands: ExtensionCommandRegistry;\n parsers: ExtensionParserRegistry;\n preflight: ExtensionPreflightRegistry;\n services: ExtensionServiceRegistry;\n renderers: ExtensionRendererRegistry;\n registrations: ExtensionRegistrationRegistry;\n failed: FailedExtensionActivation[];\n warnings: string[];\n hook_counts: {\n before_command: number;\n after_command: number;\n on_write: number;\n on_read: number;\n on_index: number;\n };\n command_override_count: number;\n command_handler_count: number;\n parser_override_count: number;\n preflight_override_count: number;\n service_override_count: number;\n renderer_override_count: number;\n registration_counts: ExtensionRegistrationCounts;\n}\n\n/**\n * Documents the extension candidate payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionCandidate {\n layer: ExtensionLayer;\n directory: string;\n manifest_path: string;\n entry_path: string;\n manifest: ExtensionManifest;\n source_package?: string;\n}\n\n/**\n * Documents the extension layer scan result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionLayerScanResult {\n diagnostics: ExtensionDiagnostic[];\n warnings: string[];\n candidates: ExtensionCandidate[];\n}\n\n/**\n * Documents the scanned extension directory payload exchanged by command, SDK, and package integrations.\n */\nexport interface ScannedExtensionDirectory {\n diagnostic: ExtensionDiagnostic;\n warnings: string[];\n candidate: ExtensionCandidate | null;\n}\n\n/**\n * Documents the legacy extension capability alias mapping payload exchanged by command, SDK, and package integrations.\n */\nexport interface LegacyExtensionCapabilityAliasMapping {\n alias: string;\n target: ExtensionCapability;\n}\n\n/**\n * Documents the discover extensions options payload exchanged by command, SDK, and package integrations.\n */\nexport interface DiscoverExtensionsOptions {\n pmRoot: string;\n settings: PmSettings;\n cwd?: string;\n noExtensions?: boolean;\n ignoreGlobalExtensions?: boolean;\n reload_token?: string;\n cache_bust?: boolean;\n /**\n * Optional import-stage filter. Discovery still reports the full effective set,\n * but `loadExtensions` imports only entries accepted by this predicate.\n */\n extensionFilter?: (extension: EffectiveExtension) => boolean;\n}\n\n/**\n * Documents the activatable extension payload exchanged by command, SDK, and package integrations.\n */\nexport interface ActivatableExtension {\n activate: (api: ExtensionApi) => void | Promise<void>;\n /**\n * Optional teardown lifecycle hook, analogous to VS Code's `deactivate`\n * export. Invoked when the host tears the extension down — on long-running\n * MCP-server reload between requests, or via the `deactivateExtensions`\n * primitive — so an extension can close connections, clear timers, and\n * release buffers it opened during `activate`.\n */\n deactivate?: () => void | Promise<void>;\n}\n\n/**\n * Documents the extension deactivation failure payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionDeactivationFailure {\n layer: ExtensionLayer;\n name: string;\n error: string;\n}\n\n/**\n * Documents the extension deactivation options payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionDeactivationOptions {\n /**\n * Maximum time to wait for each extension's `deactivate` hook. Defaults to\n * 5000ms so a hanging teardown cannot block host shutdown or reload. Set to\n * 0 or Infinity only when the host intentionally wants to wait indefinitely.\n */\n deactivate_timeout_ms?: number;\n}\n\n/**\n * Documents the extension deactivation result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionDeactivationResult {\n /** Count of loaded extensions whose `deactivate` hook ran without throwing. */\n deactivated: number;\n warnings: string[];\n failed: ExtensionDeactivationFailure[];\n}\n\n/**\n * Documents the service override result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ServiceOverrideResult {\n handled: boolean;\n result: unknown;\n warnings: string[];\n}\n\n/**\n * Documents the command override result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandOverrideResult {\n overridden: boolean;\n result: unknown;\n warnings: string[];\n}\n\n/**\n * Documents the command handler result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandHandlerResult {\n handled: boolean;\n result: unknown;\n warnings: string[];\n /**\n * Human-readable, single-line, length-bounded message describing why an\n * extension command handler failed. Surfaced to the user/CI so the real cause\n * (e.g. \"Changelog is out of date: CHANGELOG.md\") is visible instead of only\n * the opaque `extension_command_handler_failed` warning code.\n */\n errorMessage?: string;\n}\n\n/**\n * Documents the parser override result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ParserOverrideResult {\n overridden: boolean;\n context: CommandHandlerContext;\n warnings: string[];\n}\n\n/**\n * Documents the preflight override result payload exchanged by command, SDK, and package integrations.\n */\nexport interface PreflightOverrideResult {\n overridden: boolean;\n context: CommandHandlerContext;\n decision: PreflightRuntimeDecision;\n warnings: string[];\n}\n\n/**\n * Documents the renderer override result payload exchanged by command, SDK, and package integrations.\n */\nexport interface RendererOverrideResult {\n overridden: boolean;\n rendered: string | null;\n warnings: string[];\n}\n\n/**\n * Documents the unknown extension capability warning details payload exchanged by command, SDK, and package integrations.\n */\nexport interface UnknownExtensionCapabilityWarningDetails {\n layer: ExtensionLayer;\n name: string;\n capability: string;\n allowed_capabilities: string[];\n capability_contract_version: number;\n suggested_capability?: string;\n suggestion_source?: \"legacy_alias\" | \"nearest_match\";\n legacy_alias_target?: string;\n}\n"],"names":[],"mappings":";;AAgBA,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,UAAU;IACV,WAAW;IACX,OAAO;IACP,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,UAAU;CACF,CAAC;AAKX,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,mCAAmC,GAAkD,MAAM,CAAC,MAAM,CAAC;IAC9G,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,CAAC;IACzD,OAAO,EAAE,qCAAqC;IAC9C,YAAY,EAAE,CAAC,GAAG,4BAA4B,CAAC;IAC/C,cAAc,EAAE,EAAE,GAAG,mCAAmC,EAAE;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAKhF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAK/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC;AAM1F,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC;AAe9E,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,mBAAmB;IACnB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,eAAe;IACf,cAAc;IACd,eAAe;IACf,cAAc;IACd,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,iBAAiB;IACjB,oBAAoB;CACZ,CAAC;AAMX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,eAAe;IACf,cAAc;IACd,aAAa;IACb,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;CACX,CAAC;AA0DX;;GAEG;AACH,MAAM,UAAU,sCAAsC;IACpD,OAAO;QACL,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,KAAK;QACjB,kBAAkB,EAAE,KAAK;QACzB,kBAAkB,EAAE,EAAE;QACtB,uBAAuB,EAAE,MAAM;QAC/B,kBAAkB,EAAE,EAAE;QACtB,kBAAkB,EAAE,EAAE;QACtB,oBAAoB,EAAE,EAAE;QACxB,oBAAoB,EAAE,EAAE;QACxB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;QACnB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,mBAAmB,EAAE,EAAE;KACxB,CAAC;AACJ,CAAC","debugId":"3e44d901-11ef-5bb5-b0bf-37576240fe79"}
|
|
1
|
+
{"version":3,"file":"extension-types.js","sources":["core/extensions/extension-types.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/extensions/extension-types\n *\n * Implements extension runtime contracts and governance for Extension Types.\n */\nimport type {\n ExtensionPolicyOverrideSettings,\n ExtensionPolicySettings,\n ItemDocument,\n ItemFrontMatter,\n ItemStatus,\n PmSettings,\n} from \"../../types/index.js\";\nimport type { GlobalOptions } from \"../shared/command-types.js\";\nimport type { ProjectProfileDefinition, ProjectProfileRegistrationInput } from \"../profile/profile-presets.js\";\n\nexport const KNOWN_EXTENSION_CAPABILITIES = [\n \"commands\",\n \"renderers\",\n \"hooks\",\n \"schema\",\n \"importers\",\n \"search\",\n \"parser\",\n \"preflight\",\n \"services\",\n] as const;\n/**\n * Restricts extension capability values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionCapability = (typeof KNOWN_EXTENSION_CAPABILITIES)[number];\nexport const EXTENSION_CAPABILITY_CONTRACT_VERSION = 2;\nexport const EXTENSION_CAPABILITY_LEGACY_ALIASES: Readonly<Record<string, ExtensionCapability>> = Object.freeze({\n migration: \"schema\",\n validation: \"schema\",\n});\nexport const EXTENSION_CAPABILITY_CONTRACT = Object.freeze({\n version: EXTENSION_CAPABILITY_CONTRACT_VERSION,\n capabilities: [...KNOWN_EXTENSION_CAPABILITIES],\n legacy_aliases: { ...EXTENSION_CAPABILITY_LEGACY_ALIASES },\n});\n\nexport const KNOWN_EXTENSION_POLICY_MODES = [\"off\", \"warn\", \"enforce\"] as const;\n/**\n * Restricts extension policy mode values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionPolicyMode = (typeof KNOWN_EXTENSION_POLICY_MODES)[number];\nexport const KNOWN_EXTENSION_TRUST_MODES = [\"off\", \"warn\", \"enforce\"] as const;\n/**\n * Restricts extension trust mode values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionTrustMode = (typeof KNOWN_EXTENSION_TRUST_MODES)[number];\nexport const KNOWN_EXTENSION_SANDBOX_PROFILES = [\"none\", \"restricted\", \"strict\"] as const;\n/**\n * Restricts extension sandbox profile values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionSandboxProfile = (typeof KNOWN_EXTENSION_SANDBOX_PROFILES)[number];\n\nexport const KNOWN_PM_MAX_VERSION_EXCEEDED_MODES = [\"block\", \"warn\"] as const;\n/** How a `pm_max_version` violation is handled for an extension layer. */\nexport type PmMaxVersionExceededMode = (typeof KNOWN_PM_MAX_VERSION_EXCEEDED_MODES)[number];\n/** Optional per-layer override map for `extensions.policy.pm_max_version_exceeded_mode`. */\nexport interface PmMaxVersionExceededModeByLayer {\n global?: PmMaxVersionExceededMode;\n project?: PmMaxVersionExceededMode;\n}\n/**\n * Settings value for `extensions.policy.pm_max_version_exceeded_mode`: either a\n * single mode applied to both layers, or a per-layer override map. Unset (and\n * any unset layer key) defaults to `\"block\"`.\n */\nexport type PmMaxVersionExceededModeSetting = PmMaxVersionExceededMode | PmMaxVersionExceededModeByLayer;\n\nexport const KNOWN_EXTENSION_POLICY_SURFACES = [\n \"commands.override\",\n \"commands.handler\",\n \"hooks.beforecommand\",\n \"hooks.aftercommand\",\n \"hooks.onwrite\",\n \"hooks.onread\",\n \"hooks.onindex\",\n \"schema.flags\",\n \"schema.itemfields\",\n \"schema.itemtypes\",\n \"schema.migrations\",\n \"schema.profiles\",\n \"parser.override\",\n \"preflight.override\",\n \"services.override\",\n \"renderers.override\",\n \"importers.importer\",\n \"importers.exporter\",\n \"search.provider\",\n \"search.vectorstore\",\n] as const;\n/**\n * Restricts extension policy surface values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionPolicySurface = (typeof KNOWN_EXTENSION_POLICY_SURFACES)[number];\n\nexport const KNOWN_EXTENSION_SERVICE_NAMES = [\n \"output_format\",\n \"error_format\",\n \"help_format\",\n \"lock_acquire\",\n \"lock_release\",\n \"history_append\",\n \"item_store_write\",\n \"item_store_delete\",\n \"context_relevance\",\n] as const;\n/**\n * Restricts extension service name values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionServiceName = (typeof KNOWN_EXTENSION_SERVICE_NAMES)[number];\n\n/**\n * Documents the extension provenance metadata payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionProvenanceMetadata {\n source?: string;\n signature?: string;\n attestation?: string;\n verified?: boolean;\n}\n\n/**\n * Documents the extension runtime permission declaration payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionRuntimePermissionDeclaration {\n fs_read?: boolean;\n fs_write?: boolean;\n network?: boolean;\n env_read?: boolean;\n env_write?: boolean;\n process_spawn?: boolean;\n}\n\n/**\n * Documents the extension activation metadata payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionActivationMetadata {\n commands?: string[];\n}\n\n/**\n * Restricts extension policy override values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionPolicyOverride = ExtensionPolicyOverrideSettings;\n/**\n * Extension governance policy as read from / serialized to settings. Extends the\n * stored settings shape with `pm_max_version_exceeded_mode` (pm-k5e8), which\n * relaxes the default-BLOCK on `pm_max_version` violations to warn-only —\n * globally or per extension layer.\n */\nexport type ExtensionGovernancePolicy = ExtensionPolicySettings & {\n pm_max_version_exceeded_mode?: PmMaxVersionExceededModeSetting;\n};\n\n/**\n * Documents the extension manifest engines payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionManifestEngines {\n pm?: string;\n node?: string;\n [engine: string]: string | undefined;\n}\n\n/**\n * Implements create default extension governance policy for the public runtime surface of this module.\n */\nexport function createDefaultExtensionGovernancePolicy(): ExtensionGovernancePolicy {\n return {\n mode: \"off\",\n trust_mode: \"off\",\n require_provenance: false,\n trusted_extensions: [],\n default_sandbox_profile: \"none\",\n allowed_extensions: [],\n blocked_extensions: [],\n allowed_capabilities: [],\n blocked_capabilities: [],\n allowed_surfaces: [],\n blocked_surfaces: [],\n allowed_commands: [],\n blocked_commands: [],\n allowed_actions: [],\n blocked_actions: [],\n allowed_services: [],\n blocked_services: [],\n extension_overrides: [],\n };\n}\n\n/**\n * Restricts extension layer values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionLayer = \"global\" | \"project\";\n/**\n * Restricts extension status values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionStatus = \"ok\" | \"warn\";\n\n/**\n * Documents the extension manifest payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionManifest {\n name: string;\n version: string;\n entry: string;\n priority: number;\n capabilities: string[];\n manifest_version?: number;\n pm_min_version?: string;\n pm_max_version?: string;\n engines?: ExtensionManifestEngines;\n trusted?: boolean;\n provenance?: ExtensionProvenanceMetadata;\n sandbox_profile?: ExtensionSandboxProfile;\n permissions?: ExtensionRuntimePermissionDeclaration;\n activation?: ExtensionActivationMetadata;\n legacy_capability_aliases?: LegacyExtensionCapabilityAliasMapping[];\n}\n\n/**\n * Documents the extension diagnostic payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionDiagnostic {\n layer: ExtensionLayer;\n directory: string;\n manifest_path: string;\n name: string | null;\n version: string | null;\n entry: string | null;\n priority: number | null;\n entry_path: string | null;\n enabled: boolean | null;\n status: ExtensionStatus;\n}\n\n/**\n * Documents the effective extension payload exchanged by command, SDK, and package integrations.\n */\nexport interface EffectiveExtension {\n layer: ExtensionLayer;\n directory: string;\n manifest_path: string;\n name: string;\n source_package?: string;\n version: string;\n entry: string;\n priority: number;\n entry_path: string;\n manifest_version?: number;\n pm_min_version?: string;\n pm_max_version?: string;\n engines?: ExtensionManifestEngines;\n trusted?: boolean;\n provenance?: ExtensionProvenanceMetadata;\n sandbox_profile?: ExtensionSandboxProfile;\n permissions?: ExtensionRuntimePermissionDeclaration;\n capabilities?: string[];\n activation?: ExtensionActivationMetadata;\n}\n\n/**\n * Documents the extension discovery result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionDiscoveryResult {\n disabled_by_flag: boolean;\n roots: {\n global: string;\n project: string;\n };\n configured_enabled: string[];\n configured_disabled: string[];\n discovered: ExtensionDiagnostic[];\n effective: EffectiveExtension[];\n warnings: string[];\n policy: ExtensionGovernancePolicy;\n}\n\n/**\n * Documents the loaded extension payload exchanged by command, SDK, and package integrations.\n */\nexport interface LoadedExtension extends EffectiveExtension {\n module: unknown;\n}\n\n/**\n * Documents the failed extension load payload exchanged by command, SDK, and package integrations.\n */\nexport interface FailedExtensionLoad {\n layer: ExtensionLayer;\n name: string;\n entry_path: string;\n error: string;\n}\n\n/**\n * Documents the extension load result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionLoadResult extends ExtensionDiscoveryResult {\n loaded: LoadedExtension[];\n failed: FailedExtensionLoad[];\n}\n\n/**\n * Documents the before command hook context payload exchanged by command, SDK, and package integrations.\n */\nexport interface BeforeCommandHookContext {\n command: string;\n args: string[];\n options?: Record<string, unknown>;\n global?: GlobalOptions;\n pm_root: string;\n}\n\n/**\n * Documents the after command hook context payload exchanged by command, SDK, and package integrations.\n */\nexport interface AfterCommandHookContext extends BeforeCommandHookContext {\n ok: boolean;\n error?: string;\n result?: unknown;\n affected?: AfterCommandAffectedItem[];\n}\n\n/**\n * Documents the after command affected item payload exchanged by command, SDK, and package integrations.\n */\nexport interface AfterCommandAffectedItem {\n id: string;\n op?: string;\n item_type?: string;\n previous_status?: ItemStatus;\n status?: ItemStatus;\n previous?: Partial<ItemFrontMatter>;\n current?: Partial<ItemFrontMatter>;\n changed_fields?: string[];\n}\n\n/**\n * Documents the on write hook context payload exchanged by command, SDK, and package integrations.\n */\nexport interface OnWriteHookContext {\n path: string;\n scope: \"project\" | \"global\";\n op: string;\n item_id?: string;\n item_type?: string;\n before?: ItemDocument;\n after?: ItemDocument;\n changed_fields?: string[];\n}\n\n/**\n * Documents the on read hook context payload exchanged by command, SDK, and package integrations.\n */\nexport interface OnReadHookContext {\n path: string;\n scope: \"project\" | \"global\";\n}\n\n/**\n * Documents the on index hook context payload exchanged by command, SDK, and package integrations.\n */\nexport interface OnIndexHookContext {\n mode: string;\n total_items?: number;\n}\n\n/**\n * Restricts before command hook values accepted by command, SDK, and storage contracts.\n */\nexport type BeforeCommandHook = (context: BeforeCommandHookContext) => Promise<void> | void;\n/**\n * Restricts after command hook values accepted by command, SDK, and storage contracts.\n */\nexport type AfterCommandHook = (context: AfterCommandHookContext) => Promise<void> | void;\n/**\n * Restricts on write hook values accepted by command, SDK, and storage contracts.\n */\nexport type OnWriteHook = (context: OnWriteHookContext) => Promise<void> | void;\n/**\n * Restricts on read hook values accepted by command, SDK, and storage contracts.\n */\nexport type OnReadHook = (context: OnReadHookContext) => Promise<void> | void;\n/**\n * Restricts on index hook values accepted by command, SDK, and storage contracts.\n */\nexport type OnIndexHook = (context: OnIndexHookContext) => Promise<void> | void;\n/**\n * Restricts output renderer format values accepted by command, SDK, and storage contracts.\n */\nexport type OutputRendererFormat = \"toon\" | \"json\";\n/**\n * Restricts command override values accepted by command, SDK, and storage contracts.\n */\nexport type CommandOverride = (context: CommandOverrideContext) => unknown;\n/**\n * Restricts renderer override values accepted by command, SDK, and storage contracts.\n */\nexport type RendererOverride = (context: RendererOverrideContext) => string | null | undefined;\n/**\n * Restricts command handler values accepted by command, SDK, and storage contracts.\n */\nexport type CommandHandler = (context: CommandHandlerContext) => unknown;\n/**\n * Restricts parser override values accepted by command, SDK, and storage contracts.\n */\nexport type ParserOverride = (context: ParserOverrideContext) => ParserOverrideDelta | Promise<ParserOverrideDelta>;\n/**\n * Restricts preflight override values accepted by command, SDK, and storage contracts.\n */\nexport type PreflightOverride = (context: PreflightOverrideContext) => PreflightOverrideDelta | Promise<PreflightOverrideDelta>;\n/**\n * Restricts service override values accepted by command, SDK, and storage contracts.\n */\nexport type ServiceOverride = (context: ServiceOverrideContext) => unknown;\n\n/**\n * Documents the registered extension hook payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionHook<THook> {\n layer: ExtensionLayer;\n name: string;\n run: THook;\n}\n\n/**\n * Documents the extension hook registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionHookRegistry {\n beforeCommand: Array<RegisteredExtensionHook<BeforeCommandHook>>;\n afterCommand: Array<RegisteredExtensionHook<AfterCommandHook>>;\n onWrite: Array<RegisteredExtensionHook<OnWriteHook>>;\n onRead: Array<RegisteredExtensionHook<OnReadHook>>;\n onIndex: Array<RegisteredExtensionHook<OnIndexHook>>;\n}\n\n/**\n * Documents the command override context payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandOverrideContext {\n command: string;\n args: string[];\n options?: Record<string, unknown>;\n global?: GlobalOptions;\n pm_root: string;\n result: unknown;\n}\n\n/**\n * Documents the renderer override context payload exchanged by command, SDK, and package integrations.\n */\nexport interface RendererOverrideContext {\n format: OutputRendererFormat;\n command?: string;\n args?: string[];\n options?: Record<string, unknown>;\n global?: GlobalOptions;\n pm_root?: string;\n result: unknown;\n}\n\n/**\n * Documents the command handler context payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandHandlerContext {\n command: string;\n args: string[];\n options: Record<string, unknown>;\n global: GlobalOptions;\n pm_root: string;\n}\n\n/**\n * Documents the parser override context payload exchanged by command, SDK, and package integrations.\n */\nexport type ParserOverrideContext = CommandHandlerContext;\n\n/**\n * Documents the parser override delta payload exchanged by command, SDK, and package integrations.\n */\nexport interface ParserOverrideDelta {\n args?: string[];\n options?: Record<string, unknown>;\n global?: GlobalOptions;\n}\n\n/**\n * Documents the preflight override context payload exchanged by command, SDK, and package integrations.\n */\nexport interface PreflightOverrideContext extends CommandHandlerContext {\n decision: PreflightRuntimeDecision;\n}\n\n/**\n * Documents the preflight runtime decision payload exchanged by command, SDK, and package integrations.\n */\nexport interface PreflightRuntimeDecision {\n enforce_item_format_gate: boolean;\n run_preflight_item_format_sync: boolean;\n run_extension_migrations: boolean;\n enforce_mandatory_migration_gate: boolean;\n}\n\n/**\n * Documents the preflight override delta payload exchanged by command, SDK, and package integrations.\n */\nexport interface PreflightOverrideDelta extends ParserOverrideDelta {\n enforce_item_format_gate?: boolean;\n run_preflight_item_format_sync?: boolean;\n run_extension_migrations?: boolean;\n enforce_mandatory_migration_gate?: boolean;\n}\n\n/**\n * Documents the service override context payload exchanged by command, SDK, and package integrations.\n */\nexport interface ServiceOverrideContext {\n service: ExtensionServiceName;\n command?: string;\n args?: string[];\n options?: Record<string, unknown>;\n global?: GlobalOptions;\n pm_root?: string;\n payload: unknown;\n}\n\n/**\n * Documents the extension command argument definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionCommandArgumentDefinition {\n name: string;\n required?: boolean;\n variadic?: boolean;\n description?: string;\n}\n\n/**\n * Documents the command definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandDefinition {\n name: string;\n run?: CommandHandler;\n /**\n * @deprecated Use `run` instead. This alias remains for backward compatibility.\n */\n handler?: CommandHandler;\n action?: string;\n description?: string;\n intent?: string;\n examples?: string[];\n failure_hints?: string[];\n arguments?: ExtensionCommandArgumentDefinition[];\n flags?: FlagDefinition[];\n}\n\n/**\n * Optional command-definition metadata for first-class importer/exporter\n * registration.\n *\n * `registerImporter`/`registerExporter` always create a `<name> import` /\n * `<name> export` command path. By default that path only has a handler. When\n * these options are supplied, the auto-created command also gains a full command\n * definition (description, flags, intent, examples, failure hints, positional\n * arguments) — surfaced in help and runtime contracts exactly like\n * `registerCommand`. The registration `name` and `run` handler are implicit, so\n * they are not part of this options object.\n */\nexport interface ImportExportRegistrationOptions {\n action?: string;\n description?: string;\n intent?: string;\n examples?: string[];\n failure_hints?: string[];\n arguments?: ExtensionCommandArgumentDefinition[];\n flags?: FlagDefinition[];\n}\n\n/**\n * Restricts flag value type values accepted by command, SDK, and storage contracts.\n */\nexport type FlagValueType = \"string\" | \"number\" | \"boolean\";\n\n/**\n * Documents the flag definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface FlagDefinition {\n long?: string;\n short?: string;\n value_name?: string;\n description?: string;\n required?: boolean;\n enabled?: boolean;\n visible?: boolean;\n /**\n * Canonical flag value type. Prefer this field; it is the one runtime\n * contracts and help output read first.\n */\n value_type?: FlagValueType;\n /**\n * @deprecated Use `value_type`. Retained for backward compatibility: when\n * both are present `value_type` wins, and `type` resolves only when\n * `value_type` is absent (`value_type ?? type`).\n */\n type?: FlagValueType;\n /**\n * When true, a repeated comma-list flag accumulates values across repeats\n * — parity with core list flags such as `--tags` — instead of the last\n * value winning. Mirrors the core `CliFlagContract.list` field so\n * extension-registered list flags coalesce through the same bootstrap path.\n */\n list?: boolean;\n /**\n * Default value applied when the flag is omitted. Surfaced to runtime\n * contracts and help output. A `list` flag may default to an array of scalars\n * (e.g. `[\"a\", \"b\"]`); the array is flattened/coerced like any list value.\n */\n default?: string | number | boolean | Array<string | number | boolean>;\n [key: string]: unknown;\n}\n\n/**\n * Documents the schema field definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaFieldDefinition {\n name: string;\n type: string;\n optional?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * Documents the schema item type command option policy definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaItemTypeCommandOptionPolicyDefinition {\n command: string;\n option: string;\n enabled?: boolean;\n required?: boolean;\n visible?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * Documents the schema item type option definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaItemTypeOptionDefinition {\n key: string;\n values?: string[];\n required?: boolean;\n aliases?: string[];\n [key: string]: unknown;\n}\n\n/**\n * Documents the schema item type definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaItemTypeDefinition {\n name: string;\n folder?: string;\n aliases?: string[];\n required_create_fields?: string[];\n required_create_repeatables?: string[];\n command_option_policies?: SchemaItemTypeCommandOptionPolicyDefinition[];\n options?: SchemaItemTypeOptionDefinition[];\n [key: string]: unknown;\n}\n\n/**\n * Documents the schema migration run context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaMigrationRunContext {\n id: string;\n command: \"migration\";\n layer: ExtensionLayer;\n extension: string;\n pm_root: string;\n status: string;\n}\n\n/**\n * Restricts schema migration runner values accepted by command, SDK, and storage contracts.\n */\nexport type SchemaMigrationRunner = (context: SchemaMigrationRunContext) => unknown | Promise<unknown>;\n\n/**\n * Documents the schema migration definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SchemaMigrationDefinition {\n id?: string;\n description?: string;\n status?: string;\n mandatory?: boolean;\n run?: SchemaMigrationRunner;\n [key: string]: unknown;\n}\n\n/**\n * Documents the import export context payload exchanged by command, SDK, and package integrations.\n */\nexport interface ImportExportContext {\n registration: string;\n action: \"import\" | \"export\";\n command: string;\n args: string[];\n options: Record<string, unknown>;\n global: GlobalOptions;\n pm_root: string;\n}\n\n/**\n * Restricts importer values accepted by command, SDK, and storage contracts.\n */\nexport type Importer = (context: ImportExportContext) => unknown | Promise<unknown>;\n/**\n * Restricts exporter values accepted by command, SDK, and storage contracts.\n */\nexport type Exporter = (context: ImportExportContext) => unknown | Promise<unknown>;\n\n/**\n * Restricts extension search mode values accepted by command, SDK, and storage contracts.\n */\nexport type ExtensionSearchMode = \"keyword\" | \"semantic\" | \"hybrid\";\n\n/**\n * Documents the search provider query context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderQueryContext {\n query: string;\n mode: ExtensionSearchMode;\n tokens: string[];\n options: Record<string, unknown>;\n settings: PmSettings;\n documents: ItemDocument[];\n [key: string]: unknown;\n}\n\n/**\n * Documents the search provider hit payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderHit {\n id: string;\n score: number;\n matched_fields?: string[];\n [key: string]: unknown;\n}\n\n/**\n * Restricts search provider query result values accepted by command, SDK, and storage contracts.\n */\nexport type SearchProviderQueryResult = SearchProviderHit[] | { hits?: SearchProviderHit[] };\n\n/**\n * Documents the search provider query expansion context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderQueryExpansionContext {\n query: string;\n mode: Exclude<ExtensionSearchMode, \"keyword\">;\n settings: PmSettings;\n [key: string]: unknown;\n}\n\n/**\n * Restricts search provider query expansion result values accepted by command, SDK, and storage contracts.\n */\nexport type SearchProviderQueryExpansionResult = string[] | { queries?: string[] };\n\n/**\n * Documents the search provider rerank candidate payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderRerankCandidate {\n id: string;\n text: string;\n score: number;\n}\n\n/**\n * Documents the search provider rerank hit payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderRerankHit {\n id: string;\n score: number;\n}\n\n/**\n * Restricts search provider rerank result values accepted by command, SDK, and storage contracts.\n */\nexport type SearchProviderRerankResult = SearchProviderRerankHit[] | { hits?: SearchProviderRerankHit[] };\n\n/**\n * Documents the search provider rerank context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderRerankContext {\n query: string;\n mode: \"hybrid\";\n model: string;\n top_k: number;\n settings: PmSettings;\n candidates: SearchProviderRerankCandidate[];\n [key: string]: unknown;\n}\n\n/**\n * Documents the search provider embed batch context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderEmbedBatchContext {\n inputs: string[];\n settings: PmSettings;\n model: string;\n [key: string]: unknown;\n}\n\n/**\n * Documents the search provider embed context payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderEmbedContext {\n input: string;\n settings: PmSettings;\n model: string;\n [key: string]: unknown;\n}\n\n/**\n * Documents the search provider definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface SearchProviderDefinition {\n name: string;\n query?: (context: SearchProviderQueryContext) => SearchProviderQueryResult | Promise<SearchProviderQueryResult>;\n queryExpansion?: (\n context: SearchProviderQueryExpansionContext,\n ) => SearchProviderQueryExpansionResult | Promise<SearchProviderQueryExpansionResult>;\n query_expansion?: (\n context: SearchProviderQueryExpansionContext,\n ) => SearchProviderQueryExpansionResult | Promise<SearchProviderQueryExpansionResult>;\n rerank?: (context: SearchProviderRerankContext) => SearchProviderRerankResult | Promise<SearchProviderRerankResult>;\n embedBatch?: (context: SearchProviderEmbedBatchContext) => number[][] | Promise<number[][]>;\n embed_batch?: (context: SearchProviderEmbedBatchContext) => number[][] | Promise<number[][]>;\n embed?: (context: SearchProviderEmbedContext) => number[] | Promise<number[]>;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store query hit payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreQueryHit {\n id: string;\n score: number;\n payload?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store query context payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreQueryContext {\n vector: number[];\n limit: number;\n settings: PmSettings;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store upsert point payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreUpsertPoint {\n id: string;\n vector: number[];\n payload?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store upsert context payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreUpsertContext {\n points: VectorStoreUpsertPoint[];\n settings: PmSettings;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store delete context payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreDeleteContext {\n ids: string[];\n settings: PmSettings;\n [key: string]: unknown;\n}\n\n/**\n * Documents the vector store adapter definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface VectorStoreAdapterDefinition {\n name: string;\n query?: (context: VectorStoreQueryContext) => VectorStoreQueryHit[] | Promise<VectorStoreQueryHit[]>;\n upsert?: (context: VectorStoreUpsertContext) => unknown | Promise<unknown>;\n delete?: (context: VectorStoreDeleteContext) => unknown | Promise<unknown>;\n [key: string]: unknown;\n}\n\n/**\n * Documents the registered extension command override payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionCommandOverride {\n layer: ExtensionLayer;\n name: string;\n command: string;\n run: CommandOverride;\n}\n\n/**\n * Documents the registered extension command handler payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionCommandHandler {\n layer: ExtensionLayer;\n name: string;\n command: string;\n run: CommandHandler;\n}\n\n/**\n * Documents the registered extension parser override payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionParserOverride {\n layer: ExtensionLayer;\n name: string;\n command: string;\n run: ParserOverride;\n}\n\n/**\n * Documents the registered extension preflight override payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionPreflightOverride {\n layer: ExtensionLayer;\n name: string;\n run: PreflightOverride;\n}\n\n/**\n * Documents the registered extension service override payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionServiceOverride {\n layer: ExtensionLayer;\n name: string;\n service: ExtensionServiceName;\n run: ServiceOverride;\n}\n\n/**\n * Documents the registered extension renderer override payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionRendererOverride {\n layer: ExtensionLayer;\n name: string;\n format: OutputRendererFormat;\n run: RendererOverride;\n}\n\n/**\n * Documents the extension command registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionCommandRegistry {\n overrides: RegisteredExtensionCommandOverride[];\n handlers: RegisteredExtensionCommandHandler[];\n}\n\n/**\n * Documents the extension parser registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionParserRegistry {\n overrides: RegisteredExtensionParserOverride[];\n}\n\n/**\n * Documents the extension preflight registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionPreflightRegistry {\n overrides: RegisteredExtensionPreflightOverride[];\n}\n\n/**\n * Documents the extension service registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionServiceRegistry {\n overrides: RegisteredExtensionServiceOverride[];\n}\n\n/**\n * Documents the extension renderer registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionRendererRegistry {\n overrides: RegisteredExtensionRendererOverride[];\n}\n\n/**\n * Documents the registered extension flag definitions payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionFlagDefinitions {\n layer: ExtensionLayer;\n name: string;\n target_command: string;\n flags: FlagDefinition[];\n}\n\n/**\n * Documents the registered extension command definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionCommandDefinition {\n layer: ExtensionLayer;\n name: string;\n source_package?: string;\n command: string;\n action: string;\n description?: string;\n intent?: string;\n examples: string[];\n failure_hints: string[];\n arguments: ExtensionCommandArgumentDefinition[];\n}\n\n/**\n * Documents the registered extension schema field definitions payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionSchemaFieldDefinitions {\n layer: ExtensionLayer;\n name: string;\n fields: SchemaFieldDefinition[];\n}\n\n/**\n * Documents the registered extension schema item type definitions payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionSchemaItemTypeDefinitions {\n layer: ExtensionLayer;\n name: string;\n types: SchemaItemTypeDefinition[];\n}\n\n/**\n * Documents the registered extension schema migration definition payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionSchemaMigrationDefinition {\n layer: ExtensionLayer;\n name: string;\n definition: SchemaMigrationDefinition;\n runtime_definition: SchemaMigrationDefinition;\n}\n\n/**\n * Documents the registered extension importer payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionImporter {\n layer: ExtensionLayer;\n name: string;\n importer: string;\n}\n\n/**\n * Documents the registered extension exporter payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionExporter {\n layer: ExtensionLayer;\n name: string;\n exporter: string;\n}\n\n/**\n * Documents the registered extension search provider payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionSearchProvider {\n layer: ExtensionLayer;\n name: string;\n definition: SearchProviderDefinition;\n runtime_definition: SearchProviderDefinition;\n}\n\n/**\n * Documents the registered extension vector store adapter payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisteredExtensionVectorStoreAdapter {\n layer: ExtensionLayer;\n name: string;\n definition: VectorStoreAdapterDefinition;\n runtime_definition: VectorStoreAdapterDefinition;\n}\n\n/**\n * Documents a project profile contributed by an extension via\n * `api.registerProfile(profile)`.\n *\n * A profile is the broadest customization primitive an extension can ship: it\n * bundles item types, custom statuses, fields, per-type workflows, config knobs,\n * create templates, and package recommendations into one declarative archetype\n * that `pm profile apply` stages idempotently — the same shape as the\n * core-baked archetypes. Registering one makes it resolvable by name through\n * `pm profile list/show/apply` for as long as the owning package is active.\n */\nexport interface RegisteredExtensionProjectProfile {\n layer: ExtensionLayer;\n name: string;\n profile: ProjectProfileDefinition;\n}\n\n/**\n * Documents the extension registration registry payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionRegistrationRegistry {\n commands: RegisteredExtensionCommandDefinition[];\n flags: RegisteredExtensionFlagDefinitions[];\n item_fields: RegisteredExtensionSchemaFieldDefinitions[];\n item_types: RegisteredExtensionSchemaItemTypeDefinitions[];\n migrations: RegisteredExtensionSchemaMigrationDefinition[];\n profiles: RegisteredExtensionProjectProfile[];\n importers: RegisteredExtensionImporter[];\n exporters: RegisteredExtensionExporter[];\n search_providers: RegisteredExtensionSearchProvider[];\n vector_store_adapters: RegisteredExtensionVectorStoreAdapter[];\n}\n\n/**\n * Documents the extension registration counts payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionRegistrationCounts {\n commands: number;\n flags: number;\n item_fields: number;\n item_types: number;\n migrations: number;\n profiles: number;\n importers: number;\n exporters: number;\n search_providers: number;\n vector_store_adapters: number;\n}\n\n/**\n * Read-only identity an extension's `activate(api)` receives about itself, so\n * authors can emit self-identifying logs, gate on their own version, and build\n * better error messages without re-reading the on-disk manifest or duplicating\n * metadata in-module. Exposed as `api.extension`.\n */\nexport interface ExtensionSelfIdentity {\n readonly name: string;\n readonly layer: ExtensionLayer;\n readonly version: string;\n readonly capabilities: readonly ExtensionCapability[];\n readonly pm_min_version?: string;\n readonly pm_max_version?: string;\n readonly source_package?: string;\n}\n\n/**\n * Documents the extension api payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionApi {\n /** Read-only identity of the extension this `api` was created for. */\n readonly extension: ExtensionSelfIdentity;\n registerCommand(command: string, override: CommandOverride): void;\n registerCommand(definition: CommandDefinition): void;\n registerParser(command: string, override: ParserOverride): void;\n registerPreflight(override: PreflightOverride): void;\n registerService(service: ExtensionServiceName, override: ServiceOverride): void;\n registerFlags(targetCommand: string, flags: FlagDefinition[]): void;\n registerItemFields(fields: SchemaFieldDefinition[]): void;\n registerItemTypes(types: SchemaItemTypeDefinition[]): void;\n registerMigration(definition: SchemaMigrationDefinition): void;\n registerProfile(profile: ProjectProfileRegistrationInput): void;\n registerRenderer(format: OutputRendererFormat, renderer: RendererOverride): void;\n registerImporter(name: string, importer: Importer, options?: ImportExportRegistrationOptions): void;\n registerExporter(name: string, exporter: Exporter, options?: ImportExportRegistrationOptions): void;\n registerSearchProvider(provider: SearchProviderDefinition): void;\n registerVectorStoreAdapter(adapter: VectorStoreAdapterDefinition): void;\n hooks: {\n beforeCommand(hook: BeforeCommandHook): void;\n afterCommand(hook: AfterCommandHook): void;\n onWrite(hook: OnWriteHook): void;\n onRead(hook: OnReadHook): void;\n onIndex(hook: OnIndexHook): void;\n };\n}\n\n/**\n * Documents the failed extension activation payload exchanged by command, SDK, and package integrations.\n */\nexport interface FailedExtensionActivation {\n layer: ExtensionLayer;\n name: string;\n entry_path: string;\n error: string;\n trace?: ExtensionActivationFailureTrace;\n}\n\n/**\n * Documents the extension activation failure trace payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionActivationFailureTrace {\n method: string;\n /** `-1` means the failure happened before a numbered registration was accepted. */\n registration_index: number;\n command?: string;\n capability?: ExtensionCapability;\n missing_capability?: ExtensionCapability;\n expected_schema: string;\n received?: unknown;\n hint?: string;\n}\n\n/**\n * Documents the extension activation result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionActivationResult {\n hooks: ExtensionHookRegistry;\n commands: ExtensionCommandRegistry;\n parsers: ExtensionParserRegistry;\n preflight: ExtensionPreflightRegistry;\n services: ExtensionServiceRegistry;\n renderers: ExtensionRendererRegistry;\n registrations: ExtensionRegistrationRegistry;\n failed: FailedExtensionActivation[];\n warnings: string[];\n hook_counts: {\n before_command: number;\n after_command: number;\n on_write: number;\n on_read: number;\n on_index: number;\n };\n command_override_count: number;\n command_handler_count: number;\n parser_override_count: number;\n preflight_override_count: number;\n service_override_count: number;\n renderer_override_count: number;\n registration_counts: ExtensionRegistrationCounts;\n}\n\n/**\n * Documents the extension candidate payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionCandidate {\n layer: ExtensionLayer;\n directory: string;\n manifest_path: string;\n entry_path: string;\n manifest: ExtensionManifest;\n source_package?: string;\n}\n\n/**\n * Documents the extension layer scan result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionLayerScanResult {\n diagnostics: ExtensionDiagnostic[];\n warnings: string[];\n candidates: ExtensionCandidate[];\n}\n\n/**\n * Documents the scanned extension directory payload exchanged by command, SDK, and package integrations.\n */\nexport interface ScannedExtensionDirectory {\n diagnostic: ExtensionDiagnostic;\n warnings: string[];\n candidate: ExtensionCandidate | null;\n}\n\n/**\n * Documents the legacy extension capability alias mapping payload exchanged by command, SDK, and package integrations.\n */\nexport interface LegacyExtensionCapabilityAliasMapping {\n alias: string;\n target: ExtensionCapability;\n}\n\n/**\n * Documents the discover extensions options payload exchanged by command, SDK, and package integrations.\n */\nexport interface DiscoverExtensionsOptions {\n pmRoot: string;\n settings: PmSettings;\n cwd?: string;\n noExtensions?: boolean;\n ignoreGlobalExtensions?: boolean;\n reload_token?: string;\n cache_bust?: boolean;\n /**\n * Optional import-stage filter. Discovery still reports the full effective set,\n * but `loadExtensions` imports only entries accepted by this predicate.\n */\n extensionFilter?: (extension: EffectiveExtension) => boolean;\n}\n\n/**\n * Documents the activatable extension payload exchanged by command, SDK, and package integrations.\n */\nexport interface ActivatableExtension {\n activate: (api: ExtensionApi) => void | Promise<void>;\n /**\n * Optional teardown lifecycle hook, analogous to VS Code's `deactivate`\n * export. Invoked when the host tears the extension down — on long-running\n * MCP-server reload between requests, or via the `deactivateExtensions`\n * primitive — so an extension can close connections, clear timers, and\n * release buffers it opened during `activate`.\n */\n deactivate?: () => void | Promise<void>;\n}\n\n/**\n * Documents the extension deactivation failure payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionDeactivationFailure {\n layer: ExtensionLayer;\n name: string;\n error: string;\n}\n\n/**\n * Documents the extension deactivation options payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionDeactivationOptions {\n /**\n * Maximum time to wait for each extension's `deactivate` hook. Defaults to\n * 5000ms so a hanging teardown cannot block host shutdown or reload. Set to\n * 0 or Infinity only when the host intentionally wants to wait indefinitely.\n */\n deactivate_timeout_ms?: number;\n}\n\n/**\n * Documents the extension deactivation result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ExtensionDeactivationResult {\n /** Count of loaded extensions whose `deactivate` hook ran without throwing. */\n deactivated: number;\n warnings: string[];\n failed: ExtensionDeactivationFailure[];\n}\n\n/**\n * Documents the service override result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ServiceOverrideResult {\n handled: boolean;\n result: unknown;\n warnings: string[];\n}\n\n/**\n * Documents the command override result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandOverrideResult {\n overridden: boolean;\n result: unknown;\n warnings: string[];\n}\n\n/**\n * Documents the command handler result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommandHandlerResult {\n handled: boolean;\n result: unknown;\n warnings: string[];\n /**\n * Human-readable, single-line, length-bounded message describing why an\n * extension command handler failed. Surfaced to the user/CI so the real cause\n * (e.g. \"Changelog is out of date: CHANGELOG.md\") is visible instead of only\n * the opaque `extension_command_handler_failed` warning code.\n */\n errorMessage?: string;\n}\n\n/**\n * Documents the parser override result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ParserOverrideResult {\n overridden: boolean;\n context: CommandHandlerContext;\n warnings: string[];\n}\n\n/**\n * Documents the preflight override result payload exchanged by command, SDK, and package integrations.\n */\nexport interface PreflightOverrideResult {\n overridden: boolean;\n context: CommandHandlerContext;\n decision: PreflightRuntimeDecision;\n warnings: string[];\n}\n\n/**\n * Documents the renderer override result payload exchanged by command, SDK, and package integrations.\n */\nexport interface RendererOverrideResult {\n overridden: boolean;\n rendered: string | null;\n warnings: string[];\n}\n\n/**\n * Documents the unknown extension capability warning details payload exchanged by command, SDK, and package integrations.\n */\nexport interface UnknownExtensionCapabilityWarningDetails {\n layer: ExtensionLayer;\n name: string;\n capability: string;\n allowed_capabilities: string[];\n capability_contract_version: number;\n suggested_capability?: string;\n suggestion_source?: \"legacy_alias\" | \"nearest_match\";\n legacy_alias_target?: string;\n}\n"],"names":[],"mappings":";;AAgBA,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,UAAU;IACV,WAAW;IACX,OAAO;IACP,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,UAAU;CACF,CAAC;AAKX,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,mCAAmC,GAAkD,MAAM,CAAC,MAAM,CAAC;IAC9G,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,CAAC;IACzD,OAAO,EAAE,qCAAqC;IAC9C,YAAY,EAAE,CAAC,GAAG,4BAA4B,CAAC;IAC/C,cAAc,EAAE,EAAE,GAAG,mCAAmC,EAAE;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAKhF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAK/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC;AAM1F,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC;AAe9E,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,mBAAmB;IACnB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,eAAe;IACf,cAAc;IACd,eAAe;IACf,cAAc;IACd,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,iBAAiB;IACjB,oBAAoB;CACZ,CAAC;AAMX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,eAAe;IACf,cAAc;IACd,aAAa;IACb,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;CACX,CAAC;AA0DX;;GAEG;AACH,MAAM,UAAU,sCAAsC;IACpD,OAAO;QACL,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,KAAK;QACjB,kBAAkB,EAAE,KAAK;QACzB,kBAAkB,EAAE,EAAE;QACtB,uBAAuB,EAAE,MAAM;QAC/B,kBAAkB,EAAE,EAAE;QACtB,kBAAkB,EAAE,EAAE;QACtB,oBAAoB,EAAE,EAAE;QACxB,oBAAoB,EAAE,EAAE;QACxB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;QACnB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,mBAAmB,EAAE,EAAE;KACxB,CAAC;AACJ,CAAC","debugId":"bad5ccc3-1bfd-54c2-9fbd-23ddb56a8c36"}
|
|
@@ -113,4 +113,5 @@ export declare function runActiveServiceOverride(service: ExtensionServiceName,
|
|
|
113
113
|
*/
|
|
114
114
|
export declare function runActiveServiceOverrideSync(service: ExtensionServiceName, payload: unknown): ServiceOverrideResult;
|
|
115
115
|
export * from "./loader.js";
|
|
116
|
+
export { createSerialQueue } from "../shared/serial-queue.js";
|
|
116
117
|
export { EXTENSION_CAPABILITY_REGISTRATION_SURFACES, collectUsedExtensionCapabilities, reconcileExtensionCapabilityUsage, type CollectUsedExtensionCapabilitiesOptions, type ExtensionCapabilityUsageReconciliation, } from "./capability-usage.js";
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Implements extension runtime contracts and governance for Index.
|
|
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]="a5572fa4-3fcf-5268-ace9-b034e9a8cdb1")}catch(e){}}();
|
|
8
8
|
import { runCommandHandler, runCommandOverride, runOnIndexHooks, runParserOverride, runPreflightOverride, runOnReadHooks, runRendererOverride, runServiceOverride, runServiceOverrideSync, runOnWriteHooks, } from "./loader.js";
|
|
9
9
|
let activeExtensionHooks = null;
|
|
10
10
|
let activeExtensionCommands = null;
|
|
@@ -330,6 +330,7 @@ export function runActiveServiceOverrideSync(service, payload) {
|
|
|
330
330
|
return runServiceOverrideSync(activeExtensionServices, buildServiceContext(service, payload));
|
|
331
331
|
}
|
|
332
332
|
export * from "./loader.js";
|
|
333
|
+
export { createSerialQueue } from "../shared/serial-queue.js";
|
|
333
334
|
export { EXTENSION_CAPABILITY_REGISTRATION_SURFACES, collectUsedExtensionCapabilities, reconcileExtensionCapabilityUsage, } from "./capability-usage.js";
|
|
334
335
|
//# sourceMappingURL=index.js.map
|
|
335
|
-
//# debugId=
|
|
336
|
+
//# debugId=a5572fa4-3fcf-5268-ace9-b034e9a8cdb1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["core/extensions/index.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/extensions/index\n *\n * Implements extension runtime contracts and governance for Index.\n */\nimport {\n runCommandHandler,\n runCommandOverride,\n runOnIndexHooks,\n runParserOverride,\n runPreflightOverride,\n runOnReadHooks,\n runRendererOverride,\n runServiceOverride,\n runServiceOverrideSync,\n runOnWriteHooks,\n type CommandHandlerContext,\n type CommandHandlerResult,\n type CommandOverrideContext,\n type CommandOverrideResult,\n type ExtensionCommandRegistry,\n type ExtensionHookRegistry,\n type ExtensionParserRegistry,\n type ExtensionPreflightRegistry,\n type ExtensionRegistrationRegistry,\n type ExtensionRendererRegistry,\n type ExtensionServiceName,\n type ExtensionServiceRegistry,\n type AfterCommandAffectedItem,\n type OnIndexHookContext,\n type OnReadHookContext,\n type OnWriteHookContext,\n type OutputRendererFormat,\n type ParserOverrideContext,\n type ParserOverrideResult,\n type PreflightOverrideContext,\n type PreflightOverrideResult,\n type RendererOverrideResult,\n type ServiceOverrideResult,\n} from \"./loader.js\";\nimport type { ItemFrontMatter } from \"../../types/index.js\";\n\nlet activeExtensionHooks: ExtensionHookRegistry | null = null;\nlet activeExtensionCommands: ExtensionCommandRegistry | null = null;\nlet activeExtensionParsers: ExtensionParserRegistry | null = null;\nlet activeExtensionPreflight: ExtensionPreflightRegistry | null = null;\nlet activeExtensionServices: ExtensionServiceRegistry | null = null;\nlet activeExtensionRenderers: ExtensionRendererRegistry | null = null;\nlet activeExtensionRegistrations: ExtensionRegistrationRegistry | null = null;\nlet activeCommandContext: Omit<CommandOverrideContext, \"result\"> | null = null;\nlet activeCommandResult: unknown = undefined;\nlet activeAfterCommandAffectedItems: AfterCommandAffectedItem[] = [];\nconst AFTER_COMMAND_SNAPSHOT_OMITTED_FIELDS = new Set([\n \"body\",\n \"comments\",\n \"dependencies\",\n \"docs\",\n \"events\",\n \"files\",\n \"learnings\",\n \"notes\",\n \"reminders\",\n \"test_runs\",\n \"tests\",\n]);\n\n/**\n * Implements set active extension hooks for the public runtime surface of this module.\n */\nexport function setActiveExtensionHooks(hooks: ExtensionHookRegistry | null): void {\n activeExtensionHooks = hooks;\n}\n\n/**\n * Implements set active extension commands for the public runtime surface of this module.\n */\nexport function setActiveExtensionCommands(commands: ExtensionCommandRegistry | null): void {\n activeExtensionCommands = commands;\n}\n\n/**\n * Implements set active extension parsers for the public runtime surface of this module.\n */\nexport function setActiveExtensionParsers(parsers: ExtensionParserRegistry | null): void {\n activeExtensionParsers = parsers;\n}\n\n/**\n * Implements set active extension preflight for the public runtime surface of this module.\n */\nexport function setActiveExtensionPreflight(preflight: ExtensionPreflightRegistry | null): void {\n activeExtensionPreflight = preflight;\n}\n\n/**\n * Implements set active extension services for the public runtime surface of this module.\n */\nexport function setActiveExtensionServices(services: ExtensionServiceRegistry | null): void {\n activeExtensionServices = services;\n}\n\n/**\n * Implements set active extension renderers for the public runtime surface of this module.\n */\nexport function setActiveExtensionRenderers(renderers: ExtensionRendererRegistry | null): void {\n activeExtensionRenderers = renderers;\n}\n\n/**\n * Implements set active extension registrations for the public runtime surface of this module.\n */\nexport function setActiveExtensionRegistrations(registrations: ExtensionRegistrationRegistry | null): void {\n activeExtensionRegistrations = registrations;\n}\n\n/**\n * Implements get active extension registrations for the public runtime surface of this module.\n */\nexport function getActiveExtensionRegistrations(): ExtensionRegistrationRegistry | null {\n return activeExtensionRegistrations;\n}\n\n/**\n * Implements set active command context for the public runtime surface of this module.\n */\nexport function setActiveCommandContext(context: Omit<CommandOverrideContext, \"result\"> | null): void {\n activeCommandContext = context;\n}\n\n/**\n * Implements set active command result for the public runtime surface of this module.\n */\nexport function setActiveCommandResult(result: unknown): void {\n activeCommandResult = result;\n}\n\n/**\n * Implements get active command result for the public runtime surface of this module.\n */\nexport function getActiveCommandResult(): unknown {\n return activeCommandResult;\n}\n\n/**\n * Implements record after command affected item for the public runtime surface of this module.\n */\nexport function recordAfterCommandAffectedItem(item: AfterCommandAffectedItem): void {\n if (!item || (activeExtensionHooks?.afterCommand?.length ?? 0) === 0) {\n return;\n }\n activeAfterCommandAffectedItems.push(item);\n}\n\n/**\n * Implements project after command item snapshot for the public runtime surface of this module.\n */\nexport function projectAfterCommandItemSnapshot(\n metadata: ItemFrontMatter,\n changedFields: readonly string[],\n): Partial<ItemFrontMatter> {\n if (!metadata || !metadata.id) {\n return {};\n }\n const snapshot: Record<string, unknown> = {\n id: metadata.id,\n type: metadata.type,\n status: metadata.status,\n };\n if (!Array.isArray(changedFields)) {\n return snapshot as Partial<ItemFrontMatter>;\n }\n const source = metadata as unknown as Record<string, unknown>;\n for (const field of changedFields) {\n if (typeof field !== \"string\") {\n continue;\n }\n const actualField = field.startsWith(\"unset:\") ? field.slice(\"unset:\".length) : field;\n if (\n actualField === \"id\" ||\n actualField === \"type\" ||\n actualField === \"status\" ||\n AFTER_COMMAND_SNAPSHOT_OMITTED_FIELDS.has(actualField)\n ) {\n continue;\n }\n if (Object.hasOwn(source, actualField) && source[actualField] !== undefined) {\n snapshot[actualField] = source[actualField];\n }\n }\n return snapshot as Partial<ItemFrontMatter>;\n}\n\n/**\n * Implements consume after command affected items for the public runtime surface of this module.\n */\nexport function consumeAfterCommandAffectedItems(): AfterCommandAffectedItem[] | undefined {\n if (activeAfterCommandAffectedItems.length === 0) {\n return undefined;\n }\n const affected = activeAfterCommandAffectedItems;\n activeAfterCommandAffectedItems = [];\n return affected;\n}\n\n/**\n * Implements clear active extension hooks for the public runtime surface of this module.\n */\nexport function clearActiveExtensionHooks(): void {\n activeExtensionHooks = null;\n activeExtensionCommands = null;\n activeExtensionParsers = null;\n activeExtensionPreflight = null;\n activeExtensionServices = null;\n activeExtensionRenderers = null;\n activeExtensionRegistrations = null;\n activeCommandContext = null;\n activeCommandResult = undefined;\n activeAfterCommandAffectedItems = [];\n}\n\n/**\n * Implements run active on write hooks for the public runtime surface of this module.\n */\nexport async function runActiveOnWriteHooks(context: OnWriteHookContext): Promise<string[]> {\n if (!activeExtensionHooks) {\n return [];\n }\n return runOnWriteHooks(activeExtensionHooks, context);\n}\n\n/**\n * Implements run active on read hooks for the public runtime surface of this module.\n */\nexport async function runActiveOnReadHooks(context: OnReadHookContext): Promise<string[]> {\n if (!activeExtensionHooks) {\n return [];\n }\n return runOnReadHooks(activeExtensionHooks, context);\n}\n\n/**\n * Synchronous fast-path predicate: true only when at least one onRead hook is\n * registered. Bulk readers (e.g. the metadata cache scanning hundreds of files)\n * use this to skip per-file `await runActiveOnReadHooks(...)` calls entirely when\n * no extension observes reads, avoiding hundreds of needless microtasks.\n */\nexport function hasActiveOnReadHooks(): boolean {\n return (activeExtensionHooks?.onRead?.length ?? 0) > 0;\n}\n\n/**\n * Implements run active on index hooks for the public runtime surface of this module.\n */\nexport async function runActiveOnIndexHooks(context: OnIndexHookContext): Promise<string[]> {\n if (!activeExtensionHooks) {\n return [];\n }\n return runOnIndexHooks(activeExtensionHooks, context);\n}\n\n/**\n * Implements run active command override for the public runtime surface of this module.\n */\nexport function runActiveCommandOverride(result: unknown): CommandOverrideResult {\n if (!activeExtensionCommands || !activeCommandContext) {\n return {\n overridden: false,\n result,\n warnings: [],\n };\n }\n return runCommandOverride(activeExtensionCommands, {\n command: activeCommandContext.command,\n args: [...activeCommandContext.args],\n options: activeCommandContext.options ? { ...activeCommandContext.options } : {},\n global: activeCommandContext.global ? { ...activeCommandContext.global } : undefined,\n pm_root: activeCommandContext.pm_root,\n result,\n });\n}\n\n/**\n * Implements run active command handler for the public runtime surface of this module.\n */\nexport async function runActiveCommandHandler(context: CommandHandlerContext): Promise<CommandHandlerResult> {\n if (!activeExtensionCommands) {\n return {\n handled: false,\n result: null,\n warnings: [],\n };\n }\n return runCommandHandler(activeExtensionCommands, context);\n}\n\n/**\n * Implements run active parser override for the public runtime surface of this module.\n */\nexport async function runActiveParserOverride(context: ParserOverrideContext): Promise<ParserOverrideResult> {\n if (!activeExtensionParsers) {\n return {\n overridden: false,\n context: {\n command: context.command,\n args: [...context.args],\n options: { ...context.options },\n global: { ...context.global },\n pm_root: context.pm_root,\n },\n warnings: [],\n };\n }\n return runParserOverride(activeExtensionParsers, context);\n}\n\n/**\n * Implements run active preflight override for the public runtime surface of this module.\n */\nexport async function runActivePreflightOverride(context: PreflightOverrideContext): Promise<PreflightOverrideResult> {\n if (!activeExtensionPreflight) {\n return {\n overridden: false,\n context: {\n command: context.command,\n args: [...context.args],\n options: { ...context.options },\n global: { ...context.global },\n pm_root: context.pm_root,\n },\n decision: { ...context.decision },\n warnings: [],\n };\n }\n return runPreflightOverride(activeExtensionPreflight, context);\n}\n\n/**\n * Implements run active renderer override for the public runtime surface of this module.\n */\nexport function runActiveRendererOverride(format: OutputRendererFormat, result: unknown): RendererOverrideResult {\n if (!activeExtensionRenderers) {\n return {\n overridden: false,\n rendered: null,\n warnings: [],\n };\n }\n return runRendererOverride(activeExtensionRenderers, {\n format,\n command: activeCommandContext?.command,\n args: activeCommandContext ? [...activeCommandContext.args] : [],\n options: activeCommandContext?.options ? { ...activeCommandContext.options } : {},\n global: activeCommandContext?.global ? { ...activeCommandContext.global } : undefined,\n pm_root: activeCommandContext?.pm_root,\n result,\n });\n}\n\nfunction buildServiceContext(service: ExtensionServiceName, payload: unknown) {\n return {\n service,\n command: activeCommandContext?.command,\n args: activeCommandContext ? [...activeCommandContext.args] : [],\n options: activeCommandContext?.options ? { ...activeCommandContext.options } : {},\n global: activeCommandContext?.global ? { ...activeCommandContext.global } : undefined,\n pm_root: activeCommandContext?.pm_root,\n payload,\n };\n}\n\n/**\n * Implements run active service override for the public runtime surface of this module.\n */\nexport async function runActiveServiceOverride(\n service: ExtensionServiceName,\n payload: unknown,\n): Promise<ServiceOverrideResult> {\n if (!activeExtensionServices) {\n return {\n handled: false,\n result: payload,\n warnings: [],\n };\n }\n return runServiceOverride(activeExtensionServices, buildServiceContext(service, payload));\n}\n\n/**\n * Implements run active service override sync for the public runtime surface of this module.\n */\nexport function runActiveServiceOverrideSync(service: ExtensionServiceName, payload: unknown): ServiceOverrideResult {\n if (!activeExtensionServices) {\n return {\n handled: false,\n result: payload,\n warnings: [],\n };\n }\n return runServiceOverrideSync(activeExtensionServices, buildServiceContext(service, payload));\n}\n\nexport * from \"./loader.js\";\nexport {\n EXTENSION_CAPABILITY_REGISTRATION_SURFACES,\n collectUsedExtensionCapabilities,\n reconcileExtensionCapabilityUsage,\n type CollectUsedExtensionCapabilitiesOptions,\n type ExtensionCapabilityUsageReconciliation,\n} from \"./capability-usage.js\";\n"],"names":[],"mappings":"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","debugId":"abe62b94-a55a-5cdf-8f1a-34360ddc4c25"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["core/extensions/index.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/extensions/index\n *\n * Implements extension runtime contracts and governance for Index.\n */\nimport {\n runCommandHandler,\n runCommandOverride,\n runOnIndexHooks,\n runParserOverride,\n runPreflightOverride,\n runOnReadHooks,\n runRendererOverride,\n runServiceOverride,\n runServiceOverrideSync,\n runOnWriteHooks,\n type CommandHandlerContext,\n type CommandHandlerResult,\n type CommandOverrideContext,\n type CommandOverrideResult,\n type ExtensionCommandRegistry,\n type ExtensionHookRegistry,\n type ExtensionParserRegistry,\n type ExtensionPreflightRegistry,\n type ExtensionRegistrationRegistry,\n type ExtensionRendererRegistry,\n type ExtensionServiceName,\n type ExtensionServiceRegistry,\n type AfterCommandAffectedItem,\n type OnIndexHookContext,\n type OnReadHookContext,\n type OnWriteHookContext,\n type OutputRendererFormat,\n type ParserOverrideContext,\n type ParserOverrideResult,\n type PreflightOverrideContext,\n type PreflightOverrideResult,\n type RendererOverrideResult,\n type ServiceOverrideResult,\n} from \"./loader.js\";\nimport type { ItemFrontMatter } from \"../../types/index.js\";\n\nlet activeExtensionHooks: ExtensionHookRegistry | null = null;\nlet activeExtensionCommands: ExtensionCommandRegistry | null = null;\nlet activeExtensionParsers: ExtensionParserRegistry | null = null;\nlet activeExtensionPreflight: ExtensionPreflightRegistry | null = null;\nlet activeExtensionServices: ExtensionServiceRegistry | null = null;\nlet activeExtensionRenderers: ExtensionRendererRegistry | null = null;\nlet activeExtensionRegistrations: ExtensionRegistrationRegistry | null = null;\nlet activeCommandContext: Omit<CommandOverrideContext, \"result\"> | null = null;\nlet activeCommandResult: unknown = undefined;\nlet activeAfterCommandAffectedItems: AfterCommandAffectedItem[] = [];\nconst AFTER_COMMAND_SNAPSHOT_OMITTED_FIELDS = new Set([\n \"body\",\n \"comments\",\n \"dependencies\",\n \"docs\",\n \"events\",\n \"files\",\n \"learnings\",\n \"notes\",\n \"reminders\",\n \"test_runs\",\n \"tests\",\n]);\n\n/**\n * Implements set active extension hooks for the public runtime surface of this module.\n */\nexport function setActiveExtensionHooks(hooks: ExtensionHookRegistry | null): void {\n activeExtensionHooks = hooks;\n}\n\n/**\n * Implements set active extension commands for the public runtime surface of this module.\n */\nexport function setActiveExtensionCommands(commands: ExtensionCommandRegistry | null): void {\n activeExtensionCommands = commands;\n}\n\n/**\n * Implements set active extension parsers for the public runtime surface of this module.\n */\nexport function setActiveExtensionParsers(parsers: ExtensionParserRegistry | null): void {\n activeExtensionParsers = parsers;\n}\n\n/**\n * Implements set active extension preflight for the public runtime surface of this module.\n */\nexport function setActiveExtensionPreflight(preflight: ExtensionPreflightRegistry | null): void {\n activeExtensionPreflight = preflight;\n}\n\n/**\n * Implements set active extension services for the public runtime surface of this module.\n */\nexport function setActiveExtensionServices(services: ExtensionServiceRegistry | null): void {\n activeExtensionServices = services;\n}\n\n/**\n * Implements set active extension renderers for the public runtime surface of this module.\n */\nexport function setActiveExtensionRenderers(renderers: ExtensionRendererRegistry | null): void {\n activeExtensionRenderers = renderers;\n}\n\n/**\n * Implements set active extension registrations for the public runtime surface of this module.\n */\nexport function setActiveExtensionRegistrations(registrations: ExtensionRegistrationRegistry | null): void {\n activeExtensionRegistrations = registrations;\n}\n\n/**\n * Implements get active extension registrations for the public runtime surface of this module.\n */\nexport function getActiveExtensionRegistrations(): ExtensionRegistrationRegistry | null {\n return activeExtensionRegistrations;\n}\n\n/**\n * Implements set active command context for the public runtime surface of this module.\n */\nexport function setActiveCommandContext(context: Omit<CommandOverrideContext, \"result\"> | null): void {\n activeCommandContext = context;\n}\n\n/**\n * Implements set active command result for the public runtime surface of this module.\n */\nexport function setActiveCommandResult(result: unknown): void {\n activeCommandResult = result;\n}\n\n/**\n * Implements get active command result for the public runtime surface of this module.\n */\nexport function getActiveCommandResult(): unknown {\n return activeCommandResult;\n}\n\n/**\n * Implements record after command affected item for the public runtime surface of this module.\n */\nexport function recordAfterCommandAffectedItem(item: AfterCommandAffectedItem): void {\n if (!item || (activeExtensionHooks?.afterCommand?.length ?? 0) === 0) {\n return;\n }\n activeAfterCommandAffectedItems.push(item);\n}\n\n/**\n * Implements project after command item snapshot for the public runtime surface of this module.\n */\nexport function projectAfterCommandItemSnapshot(\n metadata: ItemFrontMatter,\n changedFields: readonly string[],\n): Partial<ItemFrontMatter> {\n if (!metadata || !metadata.id) {\n return {};\n }\n const snapshot: Record<string, unknown> = {\n id: metadata.id,\n type: metadata.type,\n status: metadata.status,\n };\n if (!Array.isArray(changedFields)) {\n return snapshot as Partial<ItemFrontMatter>;\n }\n const source = metadata as unknown as Record<string, unknown>;\n for (const field of changedFields) {\n if (typeof field !== \"string\") {\n continue;\n }\n const actualField = field.startsWith(\"unset:\") ? field.slice(\"unset:\".length) : field;\n if (\n actualField === \"id\" ||\n actualField === \"type\" ||\n actualField === \"status\" ||\n AFTER_COMMAND_SNAPSHOT_OMITTED_FIELDS.has(actualField)\n ) {\n continue;\n }\n if (Object.hasOwn(source, actualField) && source[actualField] !== undefined) {\n snapshot[actualField] = source[actualField];\n }\n }\n return snapshot as Partial<ItemFrontMatter>;\n}\n\n/**\n * Implements consume after command affected items for the public runtime surface of this module.\n */\nexport function consumeAfterCommandAffectedItems(): AfterCommandAffectedItem[] | undefined {\n if (activeAfterCommandAffectedItems.length === 0) {\n return undefined;\n }\n const affected = activeAfterCommandAffectedItems;\n activeAfterCommandAffectedItems = [];\n return affected;\n}\n\n/**\n * Implements clear active extension hooks for the public runtime surface of this module.\n */\nexport function clearActiveExtensionHooks(): void {\n activeExtensionHooks = null;\n activeExtensionCommands = null;\n activeExtensionParsers = null;\n activeExtensionPreflight = null;\n activeExtensionServices = null;\n activeExtensionRenderers = null;\n activeExtensionRegistrations = null;\n activeCommandContext = null;\n activeCommandResult = undefined;\n activeAfterCommandAffectedItems = [];\n}\n\n/**\n * Implements run active on write hooks for the public runtime surface of this module.\n */\nexport async function runActiveOnWriteHooks(context: OnWriteHookContext): Promise<string[]> {\n if (!activeExtensionHooks) {\n return [];\n }\n return runOnWriteHooks(activeExtensionHooks, context);\n}\n\n/**\n * Implements run active on read hooks for the public runtime surface of this module.\n */\nexport async function runActiveOnReadHooks(context: OnReadHookContext): Promise<string[]> {\n if (!activeExtensionHooks) {\n return [];\n }\n return runOnReadHooks(activeExtensionHooks, context);\n}\n\n/**\n * Synchronous fast-path predicate: true only when at least one onRead hook is\n * registered. Bulk readers (e.g. the metadata cache scanning hundreds of files)\n * use this to skip per-file `await runActiveOnReadHooks(...)` calls entirely when\n * no extension observes reads, avoiding hundreds of needless microtasks.\n */\nexport function hasActiveOnReadHooks(): boolean {\n return (activeExtensionHooks?.onRead?.length ?? 0) > 0;\n}\n\n/**\n * Implements run active on index hooks for the public runtime surface of this module.\n */\nexport async function runActiveOnIndexHooks(context: OnIndexHookContext): Promise<string[]> {\n if (!activeExtensionHooks) {\n return [];\n }\n return runOnIndexHooks(activeExtensionHooks, context);\n}\n\n/**\n * Implements run active command override for the public runtime surface of this module.\n */\nexport function runActiveCommandOverride(result: unknown): CommandOverrideResult {\n if (!activeExtensionCommands || !activeCommandContext) {\n return {\n overridden: false,\n result,\n warnings: [],\n };\n }\n return runCommandOverride(activeExtensionCommands, {\n command: activeCommandContext.command,\n args: [...activeCommandContext.args],\n options: activeCommandContext.options ? { ...activeCommandContext.options } : {},\n global: activeCommandContext.global ? { ...activeCommandContext.global } : undefined,\n pm_root: activeCommandContext.pm_root,\n result,\n });\n}\n\n/**\n * Implements run active command handler for the public runtime surface of this module.\n */\nexport async function runActiveCommandHandler(context: CommandHandlerContext): Promise<CommandHandlerResult> {\n if (!activeExtensionCommands) {\n return {\n handled: false,\n result: null,\n warnings: [],\n };\n }\n return runCommandHandler(activeExtensionCommands, context);\n}\n\n/**\n * Implements run active parser override for the public runtime surface of this module.\n */\nexport async function runActiveParserOverride(context: ParserOverrideContext): Promise<ParserOverrideResult> {\n if (!activeExtensionParsers) {\n return {\n overridden: false,\n context: {\n command: context.command,\n args: [...context.args],\n options: { ...context.options },\n global: { ...context.global },\n pm_root: context.pm_root,\n },\n warnings: [],\n };\n }\n return runParserOverride(activeExtensionParsers, context);\n}\n\n/**\n * Implements run active preflight override for the public runtime surface of this module.\n */\nexport async function runActivePreflightOverride(context: PreflightOverrideContext): Promise<PreflightOverrideResult> {\n if (!activeExtensionPreflight) {\n return {\n overridden: false,\n context: {\n command: context.command,\n args: [...context.args],\n options: { ...context.options },\n global: { ...context.global },\n pm_root: context.pm_root,\n },\n decision: { ...context.decision },\n warnings: [],\n };\n }\n return runPreflightOverride(activeExtensionPreflight, context);\n}\n\n/**\n * Implements run active renderer override for the public runtime surface of this module.\n */\nexport function runActiveRendererOverride(format: OutputRendererFormat, result: unknown): RendererOverrideResult {\n if (!activeExtensionRenderers) {\n return {\n overridden: false,\n rendered: null,\n warnings: [],\n };\n }\n return runRendererOverride(activeExtensionRenderers, {\n format,\n command: activeCommandContext?.command,\n args: activeCommandContext ? [...activeCommandContext.args] : [],\n options: activeCommandContext?.options ? { ...activeCommandContext.options } : {},\n global: activeCommandContext?.global ? { ...activeCommandContext.global } : undefined,\n pm_root: activeCommandContext?.pm_root,\n result,\n });\n}\n\nfunction buildServiceContext(service: ExtensionServiceName, payload: unknown) {\n return {\n service,\n command: activeCommandContext?.command,\n args: activeCommandContext ? [...activeCommandContext.args] : [],\n options: activeCommandContext?.options ? { ...activeCommandContext.options } : {},\n global: activeCommandContext?.global ? { ...activeCommandContext.global } : undefined,\n pm_root: activeCommandContext?.pm_root,\n payload,\n };\n}\n\n/**\n * Implements run active service override for the public runtime surface of this module.\n */\nexport async function runActiveServiceOverride(\n service: ExtensionServiceName,\n payload: unknown,\n): Promise<ServiceOverrideResult> {\n if (!activeExtensionServices) {\n return {\n handled: false,\n result: payload,\n warnings: [],\n };\n }\n return runServiceOverride(activeExtensionServices, buildServiceContext(service, payload));\n}\n\n/**\n * Implements run active service override sync for the public runtime surface of this module.\n */\nexport function runActiveServiceOverrideSync(service: ExtensionServiceName, payload: unknown): ServiceOverrideResult {\n if (!activeExtensionServices) {\n return {\n handled: false,\n result: payload,\n warnings: [],\n };\n }\n return runServiceOverrideSync(activeExtensionServices, buildServiceContext(service, payload));\n}\n\nexport * from \"./loader.js\";\nexport { createSerialQueue } from \"../shared/serial-queue.js\";\nexport {\n EXTENSION_CAPABILITY_REGISTRATION_SURFACES,\n collectUsedExtensionCapabilities,\n reconcileExtensionCapabilityUsage,\n type CollectUsedExtensionCapabilitiesOptions,\n type ExtensionCapabilityUsageReconciliation,\n} from \"./capability-usage.js\";\n"],"names":[],"mappings":"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","debugId":"a5572fa4-3fcf-5268-ace9-b034e9a8cdb1"}
|
|
@@ -35,6 +35,14 @@ export declare function clearFrontMatterEnvelopeMemo(): void;
|
|
|
35
35
|
* unit-tested across every format combination.
|
|
36
36
|
*/
|
|
37
37
|
export declare function shouldReplaceCachedDocumentCandidate(existingFormat: ItemFormat, candidateFormat: ItemFormat, preferredFormat: ItemFormat | undefined): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Decide whether a scanned candidate should be recorded for its item id. An
|
|
40
|
+
* unseen id is always recorded; duplicate ids delegate to the deterministic
|
|
41
|
+
* cross-format preference rule. Keeping the short-circuit in this pure helper
|
|
42
|
+
* makes both outcomes testable without relying on filesystem enumeration or
|
|
43
|
+
* concurrent read completion order.
|
|
44
|
+
*/
|
|
45
|
+
export declare function shouldRecordCachedDocumentCandidate(existingFormat: ItemFormat | undefined, candidateFormat: ItemFormat, preferredFormat: ItemFormat | undefined): boolean;
|
|
38
46
|
/**
|
|
39
47
|
* Documents the list cache options payload exchanged by command, SDK, and package integrations.
|
|
40
48
|
*/
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Reads and writes tracker storage with format-aware helpers for Front Matter Cache.
|
|
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]="c03cb4c1-8239-58d7-a546-279da4328659")}catch(e){}}();
|
|
8
8
|
import fs from "node:fs/promises";
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
import { createHash } from "node:crypto";
|
|
@@ -209,6 +209,17 @@ export function shouldReplaceCachedDocumentCandidate(existingFormat, candidateFo
|
|
|
209
209
|
}
|
|
210
210
|
return candidateFormat === "toon" && existingFormat !== "toon";
|
|
211
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Decide whether a scanned candidate should be recorded for its item id. An
|
|
214
|
+
* unseen id is always recorded; duplicate ids delegate to the deterministic
|
|
215
|
+
* cross-format preference rule. Keeping the short-circuit in this pure helper
|
|
216
|
+
* makes both outcomes testable without relying on filesystem enumeration or
|
|
217
|
+
* concurrent read completion order.
|
|
218
|
+
*/
|
|
219
|
+
export function shouldRecordCachedDocumentCandidate(existingFormat, candidateFormat, preferredFormat) {
|
|
220
|
+
return existingFormat === undefined ||
|
|
221
|
+
shouldReplaceCachedDocumentCandidate(existingFormat, candidateFormat, preferredFormat);
|
|
222
|
+
}
|
|
212
223
|
function appendWarning(warnings, warning) {
|
|
213
224
|
if (warnings && !warnings.includes(warning)) {
|
|
214
225
|
warnings.push(warning);
|
|
@@ -252,6 +263,12 @@ async function dispatchCachedDocumentReadHooks(filePath, warnings, dispatchReadH
|
|
|
252
263
|
appendWarning(warnings, warning);
|
|
253
264
|
}
|
|
254
265
|
}
|
|
266
|
+
function selectHeavyMetadata(includeCollections, collectionsCached, cachedCollections, parsedCollections) {
|
|
267
|
+
if (!includeCollections) {
|
|
268
|
+
return undefined;
|
|
269
|
+
}
|
|
270
|
+
return collectionsCached && cachedCollections ? cachedCollections.collections : parsedCollections;
|
|
271
|
+
}
|
|
255
272
|
async function readCachedDocumentParts(filePath, relativePath, context) {
|
|
256
273
|
const stat = await fs.stat(filePath);
|
|
257
274
|
const mtimeMs = stat.mtimeMs;
|
|
@@ -273,7 +290,7 @@ async function readCachedDocumentParts(filePath, relativePath, context) {
|
|
|
273
290
|
size,
|
|
274
291
|
itemFormat,
|
|
275
292
|
lightMetadata: cachedEntry.metadata,
|
|
276
|
-
heavyMetadata: context.includeCollections
|
|
293
|
+
heavyMetadata: selectHeavyMetadata(context.includeCollections, collectionsCached, cachedCollections, undefined),
|
|
277
294
|
bodyLength: cachedEntry.body_length,
|
|
278
295
|
body: context.includeBody ? cachedBody.body : undefined,
|
|
279
296
|
};
|
|
@@ -293,11 +310,7 @@ async function readCachedDocumentParts(filePath, relativePath, context) {
|
|
|
293
310
|
size,
|
|
294
311
|
itemFormat,
|
|
295
312
|
lightMetadata: metadataCached ? cachedEntry.metadata : split.light,
|
|
296
|
-
heavyMetadata: context.includeCollections
|
|
297
|
-
? collectionsCached
|
|
298
|
-
? cachedCollections.collections
|
|
299
|
-
: split.heavy
|
|
300
|
-
: undefined,
|
|
313
|
+
heavyMetadata: selectHeavyMetadata(context.includeCollections, collectionsCached, cachedCollections, split.heavy),
|
|
301
314
|
bodyLength: metadataCached ? cachedEntry.body_length : parsed.body.length,
|
|
302
315
|
body: context.includeBody ? parsed.body : undefined,
|
|
303
316
|
};
|
|
@@ -334,7 +347,7 @@ function recordCachedDocumentCandidate(filePath, relativePath, context, parts) {
|
|
|
334
347
|
item_format: parts.itemFormat,
|
|
335
348
|
item_path: filePath,
|
|
336
349
|
};
|
|
337
|
-
if (
|
|
350
|
+
if (shouldRecordCachedDocumentCandidate(existing?.itemFormat, parts.itemFormat, context.preferredFormat)) {
|
|
338
351
|
context.state.documentsById.set(metadata.id, { candidate, itemFormat: parts.itemFormat });
|
|
339
352
|
}
|
|
340
353
|
}
|
|
@@ -510,4 +523,4 @@ export async function listAllDocumentsCachedLight(pmRoot, preferredFormat, typeT
|
|
|
510
523
|
}));
|
|
511
524
|
}
|
|
512
525
|
//# sourceMappingURL=front-matter-cache.js.map
|
|
513
|
-
//# debugId=
|
|
526
|
+
//# debugId=c03cb4c1-8239-58d7-a546-279da4328659
|