@unbrained/pm-cli 2026.7.11 → 2026.7.12

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.
Files changed (436) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +36 -2
  3. package/README.md +0 -33
  4. package/dist/cli/commands/claim.d.ts +32 -1
  5. package/dist/cli/commands/claim.js +52 -15
  6. package/dist/cli/commands/claim.js.map +1 -1
  7. package/dist/cli/commands/completion.js +11 -2
  8. package/dist/cli/commands/completion.js.map +1 -1
  9. package/dist/cli/commands/create.js +4 -65
  10. package/dist/cli/commands/create.js.map +1 -1
  11. package/dist/cli/commands/index.d.ts +1 -1
  12. package/dist/cli/commands/index.js +3 -3
  13. package/dist/cli/commands/index.js.map +1 -1
  14. package/dist/cli/commands/init.js +18 -2
  15. package/dist/cli/commands/init.js.map +1 -1
  16. package/dist/cli/commands/legacy-none-tokens.d.ts +49 -1
  17. package/dist/cli/commands/legacy-none-tokens.js +73 -2
  18. package/dist/cli/commands/legacy-none-tokens.js.map +1 -1
  19. package/dist/cli/commands/next.d.ts +14 -2
  20. package/dist/cli/commands/next.js +39 -11
  21. package/dist/cli/commands/next.js.map +1 -1
  22. package/dist/cli/commands/plan.d.ts +5 -0
  23. package/dist/cli/commands/plan.js +44 -2
  24. package/dist/cli/commands/plan.js.map +1 -1
  25. package/dist/cli/commands/update.js +7 -67
  26. package/dist/cli/commands/update.js.map +1 -1
  27. package/dist/cli/extension-command-help.d.ts +13 -1
  28. package/dist/cli/extension-command-help.js +79 -5
  29. package/dist/cli/extension-command-help.js.map +1 -1
  30. package/dist/cli/main.js +9 -6
  31. package/dist/cli/main.js.map +1 -1
  32. package/dist/cli/register-list-query.js +3 -2
  33. package/dist/cli/register-list-query.js.map +1 -1
  34. package/dist/cli/register-mutation.js +3 -2
  35. package/dist/cli/register-mutation.js.map +1 -1
  36. package/dist/cli/register-operations.js +24 -3
  37. package/dist/cli/register-operations.js.map +1 -1
  38. package/dist/cli-bundle/chunks/append-RH3G5RAV.js +11 -0
  39. package/dist/cli-bundle/chunks/{append-464PHZ65.js → append-T5DTS4NU.js} +5 -5
  40. package/dist/cli-bundle/chunks/{chunk-YMP6AKGU.js → chunk-2XWRFOPR.js} +3 -3
  41. package/dist/cli-bundle/chunks/{chunk-HT5P3WC6.js → chunk-2Z36LSAT.js} +6 -6
  42. package/dist/cli-bundle/chunks/{chunk-WQ5227PH.js → chunk-33O5P6KT.js} +135 -41
  43. package/dist/cli-bundle/chunks/chunk-33O5P6KT.js.map +7 -0
  44. package/dist/cli-bundle/chunks/{chunk-DBV6QRYT.js → chunk-3KJ3FG5O.js} +3 -3
  45. package/dist/cli-bundle/chunks/{chunk-AQLKMQQA.js → chunk-3M5BWYUA.js} +3 -3
  46. package/dist/cli-bundle/chunks/{chunk-GPBKJERW.js → chunk-3WASQS5G.js} +42 -6
  47. package/dist/cli-bundle/chunks/chunk-3WASQS5G.js.map +1 -0
  48. package/dist/cli-bundle/chunks/{chunk-47CCRGRH.js → chunk-47TKJR3D.js} +4 -4
  49. package/dist/cli-bundle/chunks/{chunk-YCSDMIQW.js → chunk-4MO4PPR2.js} +4 -4
  50. package/dist/cli-bundle/chunks/{chunk-WCRAUCJO.js → chunk-546WPG33.js} +5 -5
  51. package/dist/cli-bundle/chunks/{chunk-RLOWK5EQ.js → chunk-5754C5XS.js} +3 -3
  52. package/dist/cli-bundle/chunks/{chunk-7U5INZ2C.js → chunk-5V746BN3.js} +2 -2
  53. package/dist/cli-bundle/chunks/{chunk-7324AI5M.js → chunk-66YL6RR5.js} +30 -20
  54. package/dist/cli-bundle/chunks/{chunk-7324AI5M.js.map → chunk-66YL6RR5.js.map} +2 -2
  55. package/dist/cli-bundle/chunks/{chunk-ZLQDOBZL.js → chunk-6OK5QSGH.js} +4 -4
  56. package/dist/cli-bundle/chunks/{chunk-ROH64TST.js → chunk-6XNMSLBT.js} +78 -72
  57. package/dist/cli-bundle/chunks/chunk-6XNMSLBT.js.map +1 -0
  58. package/dist/cli-bundle/chunks/{chunk-2HNZKLHV.js → chunk-7SHFQB2A.js} +4 -4
  59. package/dist/cli-bundle/chunks/{chunk-6APTSPP5.js → chunk-7SIWW7C3.js} +4 -4
  60. package/dist/cli-bundle/chunks/{chunk-7HQQT6AT.js → chunk-7TYZTBEV.js} +3 -3
  61. package/dist/cli-bundle/chunks/{chunk-VTOQH22Y.js → chunk-A2HZUSEA.js} +8 -6
  62. package/dist/cli-bundle/chunks/{chunk-VTOQH22Y.js.map → chunk-A2HZUSEA.js.map} +1 -1
  63. package/dist/cli-bundle/chunks/{chunk-YCHJLOO2.js → chunk-A6AK7W5M.js} +2 -2
  64. package/dist/cli-bundle/chunks/{chunk-WBKZAO3P.js → chunk-A6AVSYRJ.js} +5 -5
  65. package/dist/cli-bundle/chunks/{chunk-L7C6RTGH.js → chunk-ACDIA6NP.js} +5 -5
  66. package/dist/cli-bundle/chunks/{chunk-AX3BJLPV.js → chunk-ACRC3HI4.js} +2 -2
  67. package/dist/cli-bundle/chunks/{chunk-QCKPSFII.js → chunk-AHIEDSW2.js} +30 -20
  68. package/dist/cli-bundle/chunks/{chunk-QCKPSFII.js.map → chunk-AHIEDSW2.js.map} +1 -1
  69. package/dist/cli-bundle/chunks/{chunk-B6JBI7JX.js → chunk-ANLHBXAE.js} +5 -5
  70. package/dist/cli-bundle/chunks/{chunk-2KQG6L3J.js → chunk-AS62PEJE.js} +4 -4
  71. package/dist/cli-bundle/chunks/{chunk-OJ64VYGO.js → chunk-BAK2VLTQ.js} +62 -33
  72. package/dist/cli-bundle/chunks/chunk-BAK2VLTQ.js.map +1 -0
  73. package/dist/cli-bundle/chunks/{chunk-J3EXRK2H.js → chunk-BLRO2POO.js} +3 -3
  74. package/dist/cli-bundle/chunks/{chunk-KDNZSVCK.js → chunk-CDR2A3VI.js} +15 -74
  75. package/dist/cli-bundle/chunks/chunk-CDR2A3VI.js.map +1 -0
  76. package/dist/cli-bundle/chunks/{chunk-2WGV5WRW.js → chunk-DJI5IS46.js} +42 -20
  77. package/dist/cli-bundle/chunks/{chunk-2WGV5WRW.js.map → chunk-DJI5IS46.js.map} +1 -1
  78. package/dist/cli-bundle/chunks/{chunk-VOXOXART.js → chunk-DLZ3RXAL.js} +5 -5
  79. package/dist/cli-bundle/chunks/{chunk-H6YDNW46.js → chunk-DNH44IKP.js} +4 -4
  80. package/dist/cli-bundle/chunks/{chunk-QI5KTH6A.js → chunk-EBBROE54.js} +9 -9
  81. package/dist/cli-bundle/chunks/{chunk-GC5ME4ZU.js → chunk-FF523THY.js} +4 -4
  82. package/dist/cli-bundle/chunks/{chunk-5OBMSBWX.js → chunk-FIZUJWXQ.js} +3 -3
  83. package/dist/cli-bundle/chunks/{chunk-HLBSL5KE.js → chunk-FVWQFTTW.js} +6 -6
  84. package/dist/cli-bundle/chunks/{chunk-YIWYD7TC.js → chunk-FVZEIWTL.js} +10 -10
  85. package/dist/cli-bundle/chunks/{chunk-E72ZO34Z.js → chunk-G6B5XGNV.js} +97 -32
  86. package/dist/cli-bundle/chunks/{chunk-E72ZO34Z.js.map → chunk-G6B5XGNV.js.map} +4 -4
  87. package/dist/cli-bundle/chunks/{chunk-4DC5XNMS.js → chunk-GFBV2254.js} +5 -5
  88. package/dist/cli-bundle/chunks/{chunk-OKZ35F3Y.js → chunk-GRB3TFOC.js} +3 -3
  89. package/dist/cli-bundle/chunks/{chunk-TZFULSN4.js → chunk-GVGFLZQS.js} +4 -4
  90. package/dist/cli-bundle/chunks/{chunk-RTG2LHQ7.js → chunk-HLZXQKGZ.js} +2 -2
  91. package/dist/cli-bundle/chunks/{chunk-5F7UJHFY.js → chunk-HO6CDURZ.js} +2 -2
  92. package/dist/cli-bundle/chunks/{chunk-MN2YMU55.js → chunk-HOE3UV3G.js} +3 -3
  93. package/dist/cli-bundle/chunks/{chunk-XQLLRYOX.js → chunk-HRCJGQXL.js} +134 -40
  94. package/dist/cli-bundle/chunks/chunk-HRCJGQXL.js.map +1 -0
  95. package/dist/cli-bundle/chunks/{chunk-I535LTZ2.js → chunk-IS6M4ETF.js} +4 -4
  96. package/dist/cli-bundle/chunks/{chunk-K7HEURQ4.js → chunk-J2XEW4YL.js} +3 -3
  97. package/dist/cli-bundle/chunks/{chunk-GZNB5V5J.js → chunk-J2ZDZG4A.js} +44 -12
  98. package/dist/cli-bundle/chunks/chunk-J2ZDZG4A.js.map +7 -0
  99. package/dist/cli-bundle/chunks/{chunk-O2Q7YQGO.js → chunk-J7XSQCJO.js} +4 -4
  100. package/dist/cli-bundle/chunks/{chunk-RA2LPP6E.js → chunk-JM4Z53DN.js} +2 -2
  101. package/dist/cli-bundle/chunks/{chunk-JR6FIX53.js → chunk-JNNPTGXR.js} +3 -3
  102. package/dist/cli-bundle/chunks/{chunk-I5VZGPS2.js → chunk-K7CGOZK5.js} +6 -6
  103. package/dist/cli-bundle/chunks/{chunk-B6OANV3G.js → chunk-KDH62ECD.js} +4 -4
  104. package/dist/cli-bundle/chunks/{chunk-LIY2ILWI.js → chunk-KXFY6AI4.js} +41 -5
  105. package/dist/cli-bundle/chunks/chunk-KXFY6AI4.js.map +7 -0
  106. package/dist/cli-bundle/chunks/{chunk-NR7PTIR7.js → chunk-L23NAJHL.js} +2 -2
  107. package/dist/cli-bundle/chunks/{chunk-FCZ6WYSR.js → chunk-LEXFDABF.js} +2 -2
  108. package/dist/cli-bundle/chunks/{chunk-GP54I36Z.js → chunk-LNAGQRIL.js} +2 -2
  109. package/dist/cli-bundle/chunks/{chunk-DD2WZD6L.js → chunk-LU4Z7POS.js} +3 -3
  110. package/dist/cli-bundle/chunks/{chunk-FEVEIX53.js → chunk-LX265XY7.js} +6 -6
  111. package/dist/cli-bundle/chunks/{chunk-NJABR6EB.js → chunk-MQAGSAMS.js} +4 -4
  112. package/dist/cli-bundle/chunks/{chunk-MRMS62WQ.js → chunk-N4NKVLPY.js} +4 -4
  113. package/dist/cli-bundle/chunks/{chunk-RY57ESL2.js → chunk-ND3MDD6L.js} +9 -9
  114. package/dist/cli-bundle/chunks/{chunk-Y476SA4V.js → chunk-NEJKKTCG.js} +2 -2
  115. package/dist/cli-bundle/chunks/{chunk-Q3EW4RE5.js → chunk-NGL3X3XM.js} +3 -3
  116. package/dist/cli-bundle/chunks/{chunk-ENJDRDDP.js → chunk-NK54BSL7.js} +8 -8
  117. package/dist/cli-bundle/chunks/{chunk-KHQYX2QB.js → chunk-NN57FRRN.js} +3 -3
  118. package/dist/cli-bundle/chunks/{chunk-VNCQ7SSG.js → chunk-NNRXTZ7Y.js} +4 -4
  119. package/dist/cli-bundle/chunks/{chunk-KZQHMDS6.js → chunk-NOIIRLCO.js} +2 -2
  120. package/dist/cli-bundle/chunks/{chunk-CTAPVM6C.js → chunk-O5ELBOEJ.js} +14 -73
  121. package/dist/cli-bundle/chunks/chunk-O5ELBOEJ.js.map +7 -0
  122. package/dist/cli-bundle/chunks/{chunk-K2PDZYUF.js → chunk-OC2CLNMS.js} +2 -2
  123. package/dist/cli-bundle/chunks/{chunk-SN7Q7M4U.js → chunk-OKUFGORG.js} +2 -2
  124. package/dist/cli-bundle/chunks/{chunk-ZLWBLI5R.js → chunk-OOK6V7BF.js} +3 -3
  125. package/dist/cli-bundle/chunks/{chunk-DDEYJ3BH.js → chunk-OUQ4I6HC.js} +3 -3
  126. package/dist/cli-bundle/chunks/{chunk-C4FIA5U6.js → chunk-OYCZDDUC.js} +61 -32
  127. package/dist/cli-bundle/chunks/chunk-OYCZDDUC.js.map +7 -0
  128. package/dist/cli-bundle/chunks/{chunk-X7ZXLB3C.js → chunk-PDOJRPYR.js} +7 -7
  129. package/dist/cli-bundle/chunks/{chunk-HDNEQAHV.js → chunk-PHQPQNAT.js} +4 -4
  130. package/dist/cli-bundle/chunks/{chunk-FMFSUTTD.js → chunk-PTJ7NVUU.js} +4 -4
  131. package/dist/cli-bundle/chunks/{chunk-5URFS7C4.js → chunk-PUMGO764.js} +7 -7
  132. package/dist/cli-bundle/chunks/{chunk-RPZ57GQ7.js → chunk-QFCCN4JO.js} +2 -2
  133. package/dist/cli-bundle/chunks/{chunk-RAC2UXLT.js → chunk-QPWXNK56.js} +43 -11
  134. package/dist/cli-bundle/chunks/chunk-QPWXNK56.js.map +1 -0
  135. package/dist/cli-bundle/chunks/{chunk-35YNX7RQ.js → chunk-QYIDXRRX.js} +7 -7
  136. package/dist/cli-bundle/chunks/{chunk-ITIUEWD5.js → chunk-RFDT674H.js} +4 -4
  137. package/dist/cli-bundle/chunks/{chunk-2BUNV627.js → chunk-SJ2DADDH.js} +8 -8
  138. package/dist/cli-bundle/chunks/{chunk-MSPZSUKQ.js → chunk-SV7PEWKW.js} +41 -19
  139. package/dist/cli-bundle/chunks/{chunk-MSPZSUKQ.js.map → chunk-SV7PEWKW.js.map} +2 -2
  140. package/dist/cli-bundle/chunks/{chunk-ZYDUOY54.js → chunk-TKD4NESJ.js} +3 -3
  141. package/dist/cli-bundle/chunks/{chunk-BU2CV5ZU.js → chunk-TMNQV4EK.js} +2 -2
  142. package/dist/cli-bundle/chunks/{chunk-GJNBKU6G.js → chunk-TWELUDDF.js} +2 -2
  143. package/dist/cli-bundle/chunks/{chunk-A3AIKEYC.js → chunk-TYCM65DJ.js} +78 -72
  144. package/dist/cli-bundle/chunks/chunk-TYCM65DJ.js.map +7 -0
  145. package/dist/cli-bundle/chunks/{chunk-Y5E6FCAL.js → chunk-U3S22BOJ.js} +4 -4
  146. package/dist/cli-bundle/chunks/{chunk-MORRAQXQ.js → chunk-UAZ6W3H3.js} +91 -33
  147. package/dist/cli-bundle/chunks/chunk-UAZ6W3H3.js.map +1 -0
  148. package/dist/cli-bundle/chunks/{chunk-2BKRMFGK.js → chunk-UFY4ETU6.js} +3 -3
  149. package/dist/cli-bundle/chunks/{chunk-EEUIIDWF.js → chunk-UGQENMKM.js} +2 -2
  150. package/dist/cli-bundle/chunks/{chunk-XK5CTXMB.js → chunk-UGSHP6SR.js} +4 -4
  151. package/dist/cli-bundle/chunks/{chunk-2JWIRG4V.js → chunk-VF24O6TV.js} +4 -4
  152. package/dist/cli-bundle/chunks/{chunk-PZBRTJ3Y.js → chunk-VLVTXEGG.js} +4 -4
  153. package/dist/cli-bundle/chunks/{chunk-X6HT3FP3.js → chunk-VMGK6ESD.js} +7 -5
  154. package/dist/cli-bundle/chunks/{chunk-X6HT3FP3.js.map → chunk-VMGK6ESD.js.map} +2 -2
  155. package/dist/cli-bundle/chunks/{chunk-NAGOH4YJ.js → chunk-VXUWCJS7.js} +2 -2
  156. package/dist/cli-bundle/chunks/{chunk-ETGRUM64.js → chunk-WBMARQCV.js} +3 -3
  157. package/dist/cli-bundle/chunks/{chunk-L6C62S4V.js → chunk-WZDABROA.js} +5 -5
  158. package/dist/cli-bundle/chunks/{chunk-P63GUQK5.js → chunk-XG5GVZRX.js} +4 -4
  159. package/dist/cli-bundle/chunks/{chunk-6UWHAJEX.js → chunk-XGCPTS6L.js} +10 -10
  160. package/dist/cli-bundle/chunks/{chunk-XGUXU4IQ.js → chunk-Y44B5FBE.js} +3 -3
  161. package/dist/cli-bundle/chunks/{chunk-C3QR2DPR.js → chunk-YP6DWEWQ.js} +3 -3
  162. package/dist/cli-bundle/chunks/{chunk-TB6364F7.js → chunk-Z7XTVIN5.js} +5 -5
  163. package/dist/cli-bundle/chunks/{chunk-XSJZF3TO.js → chunk-ZEKVLV6P.js} +4 -4
  164. package/dist/cli-bundle/chunks/{chunk-SNFLSFFH.js → chunk-ZFPOBSPC.js} +3 -3
  165. package/dist/cli-bundle/chunks/{chunk-RYASC6U3.js → chunk-ZUB725AA.js} +7 -7
  166. package/dist/cli-bundle/chunks/{close-A77IGXNC.js → close-CQHW3WMK.js} +5 -5
  167. package/dist/cli-bundle/chunks/close-ZZW5FLTB.js +12 -0
  168. package/dist/cli-bundle/chunks/{close-many-P2YOWN52.js → close-many-AR2YH3SJ.js} +12 -12
  169. package/dist/cli-bundle/chunks/close-many-IKCEGBLQ.js +21 -0
  170. package/dist/cli-bundle/chunks/comments-NV4SIY5Z.js +13 -0
  171. package/dist/cli-bundle/chunks/{comments-FNLKE3TW.js → comments-UV4HMI2K.js} +7 -7
  172. package/dist/cli-bundle/chunks/{copy-U6H22S7E.js → copy-OUFWOHVG.js} +4 -4
  173. package/dist/cli-bundle/chunks/copy-X7HJFWIH.js +9 -0
  174. package/dist/cli-bundle/chunks/{create-HS64DHTL.js → create-QEDL4KKT.js} +9 -9
  175. package/dist/cli-bundle/chunks/create-R6MMMMJS.js +25 -0
  176. package/dist/cli-bundle/chunks/{delete-4XPF5XLP.js → delete-MJGZFDHZ.js} +4 -4
  177. package/dist/cli-bundle/chunks/delete-OOJRG4HF.js +10 -0
  178. package/dist/cli-bundle/chunks/{deps-TMOF765V.js → deps-4OP6Q76N.js} +4 -4
  179. package/dist/cli-bundle/chunks/{deps-R44LVZTU.js → deps-Y5X6NFT5.js} +4 -4
  180. package/dist/cli-bundle/chunks/docs-SILTBWSO.js +14 -0
  181. package/dist/cli-bundle/chunks/{docs-HN6QKGEU.js → docs-UKTQVUHS.js} +6 -6
  182. package/dist/cli-bundle/chunks/{files-RNFWG435.js → files-2QEI2V3C.js} +6 -6
  183. package/dist/cli-bundle/chunks/{files-NX4LNOPL.js → files-7OIKZPI3.js} +6 -6
  184. package/dist/cli-bundle/chunks/focus-3YC5LFCG.js +10 -0
  185. package/dist/cli-bundle/chunks/{focus-OBSDVVI7.js → focus-FFWH32BF.js} +5 -5
  186. package/dist/cli-bundle/chunks/{history-compact-RZMMFSTO.js → history-compact-AAA4W6LY.js} +8 -8
  187. package/dist/cli-bundle/chunks/{history-compact-CKNRN637.js → history-compact-PIURAPW5.js} +8 -8
  188. package/dist/cli-bundle/chunks/history-redact-KWZ7LKQB.js +16 -0
  189. package/dist/cli-bundle/chunks/{history-redact-W7TTAEX2.js → history-redact-NTO74EIV.js} +6 -6
  190. package/dist/cli-bundle/chunks/history-repair-QWZJYYOJ.js +18 -0
  191. package/dist/cli-bundle/chunks/{history-repair-RGAQBOIS.js → history-repair-ROV5TD3L.js} +8 -8
  192. package/dist/cli-bundle/chunks/learnings-25TJCVON.js +13 -0
  193. package/dist/cli-bundle/chunks/{learnings-VDRTXWTF.js → learnings-3WJFJT7E.js} +7 -7
  194. package/dist/cli-bundle/chunks/{notes-UXXTI3J5.js → notes-FM53JJ5C.js} +7 -7
  195. package/dist/cli-bundle/chunks/notes-IAHGNCYQ.js +13 -0
  196. package/dist/cli-bundle/chunks/{plan-H3OPE2RP.js → plan-EJ4USP2S.js} +10 -10
  197. package/dist/cli-bundle/chunks/plan-WHV4H2RW.js +24 -0
  198. package/dist/cli-bundle/chunks/{profile-PFNN3CBJ.js → profile-SZQVKHUQ.js} +9 -9
  199. package/dist/cli-bundle/chunks/{profile-FCZWT5LE.js → profile-TXE673DR.js} +9 -9
  200. package/dist/cli-bundle/chunks/{register-list-query-BGEGWQ6S.js → register-list-query-LSR2G2SJ.js} +16 -16
  201. package/dist/cli-bundle/chunks/{register-list-query-BGEGWQ6S.js.map → register-list-query-LSR2G2SJ.js.map} +1 -1
  202. package/dist/cli-bundle/chunks/{register-list-query-ODDZVR6N.js → register-list-query-S6I73L5W.js} +15 -15
  203. package/dist/cli-bundle/chunks/{register-list-query-ODDZVR6N.js.map → register-list-query-S6I73L5W.js.map} +2 -2
  204. package/dist/cli-bundle/chunks/{register-mutation-OAJXSNWK.js → register-mutation-77GYER52.js} +32 -32
  205. package/dist/cli-bundle/chunks/{register-mutation-OAJXSNWK.js.map → register-mutation-77GYER52.js.map} +1 -1
  206. package/dist/cli-bundle/chunks/{register-mutation-2APBEHTJ.js → register-mutation-A2SC3K5G.js} +31 -31
  207. package/dist/cli-bundle/chunks/{register-mutation-2APBEHTJ.js.map → register-mutation-A2SC3K5G.js.map} +2 -2
  208. package/dist/cli-bundle/chunks/{register-operations-3TYKCKEZ.js → register-operations-KSAIBSZH.js} +43 -33
  209. package/dist/cli-bundle/chunks/register-operations-KSAIBSZH.js.map +1 -0
  210. package/dist/cli-bundle/chunks/{register-operations-WKZSX4QP.js → register-operations-W6Z5LVI5.js} +42 -32
  211. package/dist/cli-bundle/chunks/register-operations-W6Z5LVI5.js.map +7 -0
  212. package/dist/cli-bundle/chunks/{register-setup-HSVJDV3R.js → register-setup-KB5U3RES.js} +15 -15
  213. package/dist/cli-bundle/chunks/{register-setup-KE5L3H7U.js → register-setup-ZG7YXPHJ.js} +15 -15
  214. package/dist/cli-bundle/chunks/{restore-MDNVYUDD.js → restore-F5HPTRBR.js} +6 -6
  215. package/dist/cli-bundle/chunks/restore-LN57EB5H.js +14 -0
  216. package/dist/cli-bundle/chunks/{schema-AJCAANMB.js → schema-3DKXA4KR.js} +6 -6
  217. package/dist/cli-bundle/chunks/{schema-2B37DMM2.js → schema-QLTOK23S.js} +6 -6
  218. package/dist/cli-bundle/chunks/update-2T5EWMXD.js +21 -0
  219. package/dist/cli-bundle/chunks/{update-ZCDGTSNL.js → update-IKMNH3W4.js} +12 -12
  220. package/dist/cli-bundle/chunks/{update-many-6E2DDBE4.js → update-many-3Q6Z2Q4Y.js} +19 -19
  221. package/dist/cli-bundle/chunks/update-many-OTAS4BWH.js +30 -0
  222. package/dist/cli-bundle/main.js +75 -20
  223. package/dist/cli-bundle/main.js.map +2 -2
  224. package/dist/cli-bundle/sdk-runtime.js +63 -52
  225. package/dist/cli-bundle/sdk-testing.js +6 -6
  226. package/dist/cli-bundle/sdk.js +63 -54
  227. package/dist/cli-bundle/sdk.js.map +2 -2
  228. package/dist/core/extensions/item-fields.js +3 -3
  229. package/dist/core/extensions/item-fields.js.map +1 -1
  230. package/dist/core/extensions/loader.js +29 -20
  231. package/dist/core/extensions/loader.js.map +1 -1
  232. package/dist/core/schema/fields-file.js +5 -3
  233. package/dist/core/schema/fields-file.js.map +1 -1
  234. package/dist/sdk/cli-contracts/flag-contracts.js +12 -2
  235. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  236. package/dist/sdk/cli-contracts/tool-parameter-tables.js +14 -2
  237. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  238. package/dist/sdk/cli-contracts/tool-schema.d.ts +1 -1
  239. package/dist/sdk/cli-contracts/tool-schema.js +18 -6
  240. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  241. package/dist/sdk/index.d.ts +3 -1
  242. package/dist/sdk/index.js +4 -3
  243. package/dist/sdk/index.js.map +1 -1
  244. package/dist/sdk/runtime.d.ts +51 -1
  245. package/dist/sdk/runtime.js +91 -4
  246. package/dist/sdk/runtime.js.map +1 -1
  247. package/dist/sdk/workspace.d.ts +15 -0
  248. package/dist/sdk/workspace.js +50 -0
  249. package/dist/sdk/workspace.js.map +1 -0
  250. package/docs/AGENT_GUIDE.md +1 -0
  251. package/docs/CHATGPT_CODEX_PLUGIN_IMPLEMENTATION.md +775 -0
  252. package/docs/CODEX_PLUGIN.md +11 -1
  253. package/docs/COMMANDS.md +3 -1
  254. package/docs/README.md +3 -0
  255. package/docs/SDK.md +204 -71
  256. package/marketplace.json +2 -2
  257. package/package.json +3 -2
  258. package/packages/pm-beads/extensions/beads/runtime-loader.ts +3 -0
  259. package/packages/pm-beads/package.json +1 -1
  260. package/packages/pm-calendar/package.json +1 -1
  261. package/packages/pm-command-kit/package.json +1 -1
  262. package/packages/pm-governance-audit/package.json +1 -1
  263. package/packages/pm-guide-shell/package.json +1 -1
  264. package/packages/pm-kanban/package.json +1 -1
  265. package/packages/pm-lifecycle-hooks/package.json +1 -1
  266. package/packages/pm-linked-test-adapters/package.json +1 -1
  267. package/packages/pm-search-advanced/package.json +1 -1
  268. package/packages/pm-templates/package.json +1 -1
  269. package/packages/pm-todos/extensions/todos/runtime-loader.ts +3 -0
  270. package/packages/pm-todos/package.json +1 -1
  271. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  272. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  273. package/dist/cli-bundle/chunks/append-425YGJMY.js +0 -11
  274. package/dist/cli-bundle/chunks/chunk-A3AIKEYC.js.map +0 -7
  275. package/dist/cli-bundle/chunks/chunk-C4FIA5U6.js.map +0 -7
  276. package/dist/cli-bundle/chunks/chunk-CTAPVM6C.js.map +0 -7
  277. package/dist/cli-bundle/chunks/chunk-GPBKJERW.js.map +0 -1
  278. package/dist/cli-bundle/chunks/chunk-GZNB5V5J.js.map +0 -7
  279. package/dist/cli-bundle/chunks/chunk-KDNZSVCK.js.map +0 -1
  280. package/dist/cli-bundle/chunks/chunk-LIY2ILWI.js.map +0 -7
  281. package/dist/cli-bundle/chunks/chunk-MORRAQXQ.js.map +0 -1
  282. package/dist/cli-bundle/chunks/chunk-OJ64VYGO.js.map +0 -1
  283. package/dist/cli-bundle/chunks/chunk-RAC2UXLT.js.map +0 -1
  284. package/dist/cli-bundle/chunks/chunk-ROH64TST.js.map +0 -1
  285. package/dist/cli-bundle/chunks/chunk-WQ5227PH.js.map +0 -7
  286. package/dist/cli-bundle/chunks/chunk-XQLLRYOX.js.map +0 -1
  287. package/dist/cli-bundle/chunks/close-II7JKV32.js +0 -12
  288. package/dist/cli-bundle/chunks/close-many-FD46X4WK.js +0 -21
  289. package/dist/cli-bundle/chunks/comments-OAU2E7RK.js +0 -13
  290. package/dist/cli-bundle/chunks/copy-5MOERABQ.js +0 -9
  291. package/dist/cli-bundle/chunks/create-DOMKSBHN.js +0 -25
  292. package/dist/cli-bundle/chunks/delete-BMOQWZRQ.js +0 -10
  293. package/dist/cli-bundle/chunks/docs-J4OI4PWM.js +0 -14
  294. package/dist/cli-bundle/chunks/focus-7H5B4PKZ.js +0 -10
  295. package/dist/cli-bundle/chunks/history-redact-ZNS2QTMI.js +0 -16
  296. package/dist/cli-bundle/chunks/history-repair-LQ5IU4ZX.js +0 -18
  297. package/dist/cli-bundle/chunks/learnings-AHMJNIQZ.js +0 -13
  298. package/dist/cli-bundle/chunks/notes-GJI26GJR.js +0 -13
  299. package/dist/cli-bundle/chunks/plan-ZHJH6VMF.js +0 -24
  300. package/dist/cli-bundle/chunks/register-operations-3TYKCKEZ.js.map +0 -1
  301. package/dist/cli-bundle/chunks/register-operations-WKZSX4QP.js.map +0 -7
  302. package/dist/cli-bundle/chunks/restore-AR77QSO6.js +0 -14
  303. package/dist/cli-bundle/chunks/update-D3ZZ2V7Z.js +0 -21
  304. package/dist/cli-bundle/chunks/update-many-2Q2PRSSB.js +0 -30
  305. /package/dist/cli-bundle/chunks/{append-425YGJMY.js.map → append-RH3G5RAV.js.map} +0 -0
  306. /package/dist/cli-bundle/chunks/{append-464PHZ65.js.map → append-T5DTS4NU.js.map} +0 -0
  307. /package/dist/cli-bundle/chunks/{chunk-YMP6AKGU.js.map → chunk-2XWRFOPR.js.map} +0 -0
  308. /package/dist/cli-bundle/chunks/{chunk-HT5P3WC6.js.map → chunk-2Z36LSAT.js.map} +0 -0
  309. /package/dist/cli-bundle/chunks/{chunk-DBV6QRYT.js.map → chunk-3KJ3FG5O.js.map} +0 -0
  310. /package/dist/cli-bundle/chunks/{chunk-AQLKMQQA.js.map → chunk-3M5BWYUA.js.map} +0 -0
  311. /package/dist/cli-bundle/chunks/{chunk-47CCRGRH.js.map → chunk-47TKJR3D.js.map} +0 -0
  312. /package/dist/cli-bundle/chunks/{chunk-YCSDMIQW.js.map → chunk-4MO4PPR2.js.map} +0 -0
  313. /package/dist/cli-bundle/chunks/{chunk-WCRAUCJO.js.map → chunk-546WPG33.js.map} +0 -0
  314. /package/dist/cli-bundle/chunks/{chunk-RLOWK5EQ.js.map → chunk-5754C5XS.js.map} +0 -0
  315. /package/dist/cli-bundle/chunks/{chunk-7U5INZ2C.js.map → chunk-5V746BN3.js.map} +0 -0
  316. /package/dist/cli-bundle/chunks/{chunk-ZLQDOBZL.js.map → chunk-6OK5QSGH.js.map} +0 -0
  317. /package/dist/cli-bundle/chunks/{chunk-2HNZKLHV.js.map → chunk-7SHFQB2A.js.map} +0 -0
  318. /package/dist/cli-bundle/chunks/{chunk-6APTSPP5.js.map → chunk-7SIWW7C3.js.map} +0 -0
  319. /package/dist/cli-bundle/chunks/{chunk-7HQQT6AT.js.map → chunk-7TYZTBEV.js.map} +0 -0
  320. /package/dist/cli-bundle/chunks/{chunk-YCHJLOO2.js.map → chunk-A6AK7W5M.js.map} +0 -0
  321. /package/dist/cli-bundle/chunks/{chunk-WBKZAO3P.js.map → chunk-A6AVSYRJ.js.map} +0 -0
  322. /package/dist/cli-bundle/chunks/{chunk-L7C6RTGH.js.map → chunk-ACDIA6NP.js.map} +0 -0
  323. /package/dist/cli-bundle/chunks/{chunk-AX3BJLPV.js.map → chunk-ACRC3HI4.js.map} +0 -0
  324. /package/dist/cli-bundle/chunks/{chunk-B6JBI7JX.js.map → chunk-ANLHBXAE.js.map} +0 -0
  325. /package/dist/cli-bundle/chunks/{chunk-2KQG6L3J.js.map → chunk-AS62PEJE.js.map} +0 -0
  326. /package/dist/cli-bundle/chunks/{chunk-J3EXRK2H.js.map → chunk-BLRO2POO.js.map} +0 -0
  327. /package/dist/cli-bundle/chunks/{chunk-VOXOXART.js.map → chunk-DLZ3RXAL.js.map} +0 -0
  328. /package/dist/cli-bundle/chunks/{chunk-H6YDNW46.js.map → chunk-DNH44IKP.js.map} +0 -0
  329. /package/dist/cli-bundle/chunks/{chunk-QI5KTH6A.js.map → chunk-EBBROE54.js.map} +0 -0
  330. /package/dist/cli-bundle/chunks/{chunk-GC5ME4ZU.js.map → chunk-FF523THY.js.map} +0 -0
  331. /package/dist/cli-bundle/chunks/{chunk-5OBMSBWX.js.map → chunk-FIZUJWXQ.js.map} +0 -0
  332. /package/dist/cli-bundle/chunks/{chunk-HLBSL5KE.js.map → chunk-FVWQFTTW.js.map} +0 -0
  333. /package/dist/cli-bundle/chunks/{chunk-YIWYD7TC.js.map → chunk-FVZEIWTL.js.map} +0 -0
  334. /package/dist/cli-bundle/chunks/{chunk-4DC5XNMS.js.map → chunk-GFBV2254.js.map} +0 -0
  335. /package/dist/cli-bundle/chunks/{chunk-OKZ35F3Y.js.map → chunk-GRB3TFOC.js.map} +0 -0
  336. /package/dist/cli-bundle/chunks/{chunk-TZFULSN4.js.map → chunk-GVGFLZQS.js.map} +0 -0
  337. /package/dist/cli-bundle/chunks/{chunk-RTG2LHQ7.js.map → chunk-HLZXQKGZ.js.map} +0 -0
  338. /package/dist/cli-bundle/chunks/{chunk-5F7UJHFY.js.map → chunk-HO6CDURZ.js.map} +0 -0
  339. /package/dist/cli-bundle/chunks/{chunk-MN2YMU55.js.map → chunk-HOE3UV3G.js.map} +0 -0
  340. /package/dist/cli-bundle/chunks/{chunk-I535LTZ2.js.map → chunk-IS6M4ETF.js.map} +0 -0
  341. /package/dist/cli-bundle/chunks/{chunk-K7HEURQ4.js.map → chunk-J2XEW4YL.js.map} +0 -0
  342. /package/dist/cli-bundle/chunks/{chunk-O2Q7YQGO.js.map → chunk-J7XSQCJO.js.map} +0 -0
  343. /package/dist/cli-bundle/chunks/{chunk-RA2LPP6E.js.map → chunk-JM4Z53DN.js.map} +0 -0
  344. /package/dist/cli-bundle/chunks/{chunk-JR6FIX53.js.map → chunk-JNNPTGXR.js.map} +0 -0
  345. /package/dist/cli-bundle/chunks/{chunk-I5VZGPS2.js.map → chunk-K7CGOZK5.js.map} +0 -0
  346. /package/dist/cli-bundle/chunks/{chunk-B6OANV3G.js.map → chunk-KDH62ECD.js.map} +0 -0
  347. /package/dist/cli-bundle/chunks/{chunk-NR7PTIR7.js.map → chunk-L23NAJHL.js.map} +0 -0
  348. /package/dist/cli-bundle/chunks/{chunk-FCZ6WYSR.js.map → chunk-LEXFDABF.js.map} +0 -0
  349. /package/dist/cli-bundle/chunks/{chunk-GP54I36Z.js.map → chunk-LNAGQRIL.js.map} +0 -0
  350. /package/dist/cli-bundle/chunks/{chunk-DD2WZD6L.js.map → chunk-LU4Z7POS.js.map} +0 -0
  351. /package/dist/cli-bundle/chunks/{chunk-FEVEIX53.js.map → chunk-LX265XY7.js.map} +0 -0
  352. /package/dist/cli-bundle/chunks/{chunk-NJABR6EB.js.map → chunk-MQAGSAMS.js.map} +0 -0
  353. /package/dist/cli-bundle/chunks/{chunk-MRMS62WQ.js.map → chunk-N4NKVLPY.js.map} +0 -0
  354. /package/dist/cli-bundle/chunks/{chunk-RY57ESL2.js.map → chunk-ND3MDD6L.js.map} +0 -0
  355. /package/dist/cli-bundle/chunks/{chunk-Y476SA4V.js.map → chunk-NEJKKTCG.js.map} +0 -0
  356. /package/dist/cli-bundle/chunks/{chunk-Q3EW4RE5.js.map → chunk-NGL3X3XM.js.map} +0 -0
  357. /package/dist/cli-bundle/chunks/{chunk-ENJDRDDP.js.map → chunk-NK54BSL7.js.map} +0 -0
  358. /package/dist/cli-bundle/chunks/{chunk-KHQYX2QB.js.map → chunk-NN57FRRN.js.map} +0 -0
  359. /package/dist/cli-bundle/chunks/{chunk-VNCQ7SSG.js.map → chunk-NNRXTZ7Y.js.map} +0 -0
  360. /package/dist/cli-bundle/chunks/{chunk-KZQHMDS6.js.map → chunk-NOIIRLCO.js.map} +0 -0
  361. /package/dist/cli-bundle/chunks/{chunk-K2PDZYUF.js.map → chunk-OC2CLNMS.js.map} +0 -0
  362. /package/dist/cli-bundle/chunks/{chunk-SN7Q7M4U.js.map → chunk-OKUFGORG.js.map} +0 -0
  363. /package/dist/cli-bundle/chunks/{chunk-ZLWBLI5R.js.map → chunk-OOK6V7BF.js.map} +0 -0
  364. /package/dist/cli-bundle/chunks/{chunk-DDEYJ3BH.js.map → chunk-OUQ4I6HC.js.map} +0 -0
  365. /package/dist/cli-bundle/chunks/{chunk-X7ZXLB3C.js.map → chunk-PDOJRPYR.js.map} +0 -0
  366. /package/dist/cli-bundle/chunks/{chunk-HDNEQAHV.js.map → chunk-PHQPQNAT.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{chunk-FMFSUTTD.js.map → chunk-PTJ7NVUU.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{chunk-5URFS7C4.js.map → chunk-PUMGO764.js.map} +0 -0
  369. /package/dist/cli-bundle/chunks/{chunk-RPZ57GQ7.js.map → chunk-QFCCN4JO.js.map} +0 -0
  370. /package/dist/cli-bundle/chunks/{chunk-35YNX7RQ.js.map → chunk-QYIDXRRX.js.map} +0 -0
  371. /package/dist/cli-bundle/chunks/{chunk-ITIUEWD5.js.map → chunk-RFDT674H.js.map} +0 -0
  372. /package/dist/cli-bundle/chunks/{chunk-2BUNV627.js.map → chunk-SJ2DADDH.js.map} +0 -0
  373. /package/dist/cli-bundle/chunks/{chunk-ZYDUOY54.js.map → chunk-TKD4NESJ.js.map} +0 -0
  374. /package/dist/cli-bundle/chunks/{chunk-BU2CV5ZU.js.map → chunk-TMNQV4EK.js.map} +0 -0
  375. /package/dist/cli-bundle/chunks/{chunk-GJNBKU6G.js.map → chunk-TWELUDDF.js.map} +0 -0
  376. /package/dist/cli-bundle/chunks/{chunk-Y5E6FCAL.js.map → chunk-U3S22BOJ.js.map} +0 -0
  377. /package/dist/cli-bundle/chunks/{chunk-2BKRMFGK.js.map → chunk-UFY4ETU6.js.map} +0 -0
  378. /package/dist/cli-bundle/chunks/{chunk-EEUIIDWF.js.map → chunk-UGQENMKM.js.map} +0 -0
  379. /package/dist/cli-bundle/chunks/{chunk-XK5CTXMB.js.map → chunk-UGSHP6SR.js.map} +0 -0
  380. /package/dist/cli-bundle/chunks/{chunk-2JWIRG4V.js.map → chunk-VF24O6TV.js.map} +0 -0
  381. /package/dist/cli-bundle/chunks/{chunk-PZBRTJ3Y.js.map → chunk-VLVTXEGG.js.map} +0 -0
  382. /package/dist/cli-bundle/chunks/{chunk-NAGOH4YJ.js.map → chunk-VXUWCJS7.js.map} +0 -0
  383. /package/dist/cli-bundle/chunks/{chunk-ETGRUM64.js.map → chunk-WBMARQCV.js.map} +0 -0
  384. /package/dist/cli-bundle/chunks/{chunk-L6C62S4V.js.map → chunk-WZDABROA.js.map} +0 -0
  385. /package/dist/cli-bundle/chunks/{chunk-P63GUQK5.js.map → chunk-XG5GVZRX.js.map} +0 -0
  386. /package/dist/cli-bundle/chunks/{chunk-6UWHAJEX.js.map → chunk-XGCPTS6L.js.map} +0 -0
  387. /package/dist/cli-bundle/chunks/{chunk-XGUXU4IQ.js.map → chunk-Y44B5FBE.js.map} +0 -0
  388. /package/dist/cli-bundle/chunks/{chunk-C3QR2DPR.js.map → chunk-YP6DWEWQ.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{chunk-TB6364F7.js.map → chunk-Z7XTVIN5.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{chunk-XSJZF3TO.js.map → chunk-ZEKVLV6P.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{chunk-SNFLSFFH.js.map → chunk-ZFPOBSPC.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{chunk-RYASC6U3.js.map → chunk-ZUB725AA.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{close-A77IGXNC.js.map → close-CQHW3WMK.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{close-II7JKV32.js.map → close-ZZW5FLTB.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{close-many-P2YOWN52.js.map → close-many-AR2YH3SJ.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{close-many-FD46X4WK.js.map → close-many-IKCEGBLQ.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{comments-OAU2E7RK.js.map → comments-NV4SIY5Z.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{comments-FNLKE3TW.js.map → comments-UV4HMI2K.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{copy-U6H22S7E.js.map → copy-OUFWOHVG.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{copy-5MOERABQ.js.map → copy-X7HJFWIH.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{create-HS64DHTL.js.map → create-QEDL4KKT.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{create-DOMKSBHN.js.map → create-R6MMMMJS.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{delete-4XPF5XLP.js.map → delete-MJGZFDHZ.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{delete-BMOQWZRQ.js.map → delete-OOJRG4HF.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{deps-TMOF765V.js.map → deps-4OP6Q76N.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{deps-R44LVZTU.js.map → deps-Y5X6NFT5.js.map} +0 -0
  407. /package/dist/cli-bundle/chunks/{docs-J4OI4PWM.js.map → docs-SILTBWSO.js.map} +0 -0
  408. /package/dist/cli-bundle/chunks/{docs-HN6QKGEU.js.map → docs-UKTQVUHS.js.map} +0 -0
  409. /package/dist/cli-bundle/chunks/{files-RNFWG435.js.map → files-2QEI2V3C.js.map} +0 -0
  410. /package/dist/cli-bundle/chunks/{files-NX4LNOPL.js.map → files-7OIKZPI3.js.map} +0 -0
  411. /package/dist/cli-bundle/chunks/{focus-7H5B4PKZ.js.map → focus-3YC5LFCG.js.map} +0 -0
  412. /package/dist/cli-bundle/chunks/{focus-OBSDVVI7.js.map → focus-FFWH32BF.js.map} +0 -0
  413. /package/dist/cli-bundle/chunks/{history-compact-RZMMFSTO.js.map → history-compact-AAA4W6LY.js.map} +0 -0
  414. /package/dist/cli-bundle/chunks/{history-compact-CKNRN637.js.map → history-compact-PIURAPW5.js.map} +0 -0
  415. /package/dist/cli-bundle/chunks/{history-redact-ZNS2QTMI.js.map → history-redact-KWZ7LKQB.js.map} +0 -0
  416. /package/dist/cli-bundle/chunks/{history-redact-W7TTAEX2.js.map → history-redact-NTO74EIV.js.map} +0 -0
  417. /package/dist/cli-bundle/chunks/{history-repair-LQ5IU4ZX.js.map → history-repair-QWZJYYOJ.js.map} +0 -0
  418. /package/dist/cli-bundle/chunks/{history-repair-RGAQBOIS.js.map → history-repair-ROV5TD3L.js.map} +0 -0
  419. /package/dist/cli-bundle/chunks/{learnings-AHMJNIQZ.js.map → learnings-25TJCVON.js.map} +0 -0
  420. /package/dist/cli-bundle/chunks/{learnings-VDRTXWTF.js.map → learnings-3WJFJT7E.js.map} +0 -0
  421. /package/dist/cli-bundle/chunks/{notes-UXXTI3J5.js.map → notes-FM53JJ5C.js.map} +0 -0
  422. /package/dist/cli-bundle/chunks/{notes-GJI26GJR.js.map → notes-IAHGNCYQ.js.map} +0 -0
  423. /package/dist/cli-bundle/chunks/{plan-H3OPE2RP.js.map → plan-EJ4USP2S.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{plan-ZHJH6VMF.js.map → plan-WHV4H2RW.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{profile-PFNN3CBJ.js.map → profile-SZQVKHUQ.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{profile-FCZWT5LE.js.map → profile-TXE673DR.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{register-setup-HSVJDV3R.js.map → register-setup-KB5U3RES.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{register-setup-KE5L3H7U.js.map → register-setup-ZG7YXPHJ.js.map} +0 -0
  429. /package/dist/cli-bundle/chunks/{restore-MDNVYUDD.js.map → restore-F5HPTRBR.js.map} +0 -0
  430. /package/dist/cli-bundle/chunks/{restore-AR77QSO6.js.map → restore-LN57EB5H.js.map} +0 -0
  431. /package/dist/cli-bundle/chunks/{schema-AJCAANMB.js.map → schema-3DKXA4KR.js.map} +0 -0
  432. /package/dist/cli-bundle/chunks/{schema-2B37DMM2.js.map → schema-QLTOK23S.js.map} +0 -0
  433. /package/dist/cli-bundle/chunks/{update-D3ZZ2V7Z.js.map → update-2T5EWMXD.js.map} +0 -0
  434. /package/dist/cli-bundle/chunks/{update-ZCDGTSNL.js.map → update-IKMNH3W4.js.map} +0 -0
  435. /package/dist/cli-bundle/chunks/{update-many-6E2DDBE4.js.map → update-many-3Q6Z2Q4Y.js.map} +0 -0
  436. /package/dist/cli-bundle/chunks/{update-many-2Q2PRSSB.js.map → update-many-OTAS4BWH.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]="50772081-5688-59d1-8c18-bd67bca91a20")}catch(e){}}();
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]="4425331f-9bb4-5c73-9fec-e642f8aab2c4")}catch(e){}}();
3
3
  import { normalizeItemFieldType, } from "./item-field-types.js";
4
4
  import { EXIT_CODE, FRONT_MATTER_KEY_ORDER } from "../shared/constants.js";
5
5
  import { PmCliError } from "../shared/errors.js";
@@ -136,7 +136,7 @@ function assertNotReservedItemFieldName(fieldName) {
136
136
  if (!RESERVED_ITEM_FIELD_NAMES.has(fieldName)) {
137
137
  return;
138
138
  }
139
- throw new PmCliError(`Extension item field "${fieldName}" collides with reserved item metadata`, EXIT_CODE.USAGE, {
139
+ throw new PmCliError(`Extension item field "${fieldName}" collides with built-in item metadata "${fieldName}"; rename the extension field with an extension-specific prefix. Reserved fields: ${[...RESERVED_ITEM_FIELD_NAMES].sort((left, right) => left.localeCompare(right)).join(", ")}.`, EXIT_CODE.USAGE, {
140
140
  code: "extension_item_field_reserved",
141
141
  nextSteps: [
142
142
  "Rename the extension item field, preferably with an extension-specific prefix.",
@@ -231,4 +231,4 @@ export function applyRegisteredItemFieldDefaultsAndValidation(frontMatter, regis
231
231
  }
232
232
  }
233
233
  //# sourceMappingURL=item-fields.js.map
234
- //# debugId=50772081-5688-59d1-8c18-bd67bca91a20
234
+ //# debugId=4425331f-9bb4-5c73-9fec-e642f8aab2c4
@@ -1 +1 @@
1
- {"version":3,"file":"item-fields.js","sources":["core/extensions/item-fields.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/extensions/item-fields\n *\n * Implements extension runtime contracts and governance for Item Fields.\n */\nimport type { ExtensionRegistrationRegistry } from \"./loader.js\";\nimport {\n normalizeItemFieldType,\n type KnownItemFieldType,\n} from \"./item-field-types.js\";\nimport { EXIT_CODE, FRONT_MATTER_KEY_ORDER } from \"../shared/constants.js\";\nimport { PmCliError } from \"../shared/errors.js\";\n\nconst reservedItemFieldNames = new Set(FRONT_MATTER_KEY_ORDER);\n\n/** Item metadata keys extension-provided fields may never shadow, exposed without mutation methods. */\nexport const RESERVED_ITEM_FIELD_NAMES: ReadonlySet<string> = Object.freeze({\n get size(): number {\n return reservedItemFieldNames.size;\n },\n has(value: string): boolean {\n return reservedItemFieldNames.has(value);\n },\n entries(): IterableIterator<[string, string]> {\n return reservedItemFieldNames.entries();\n },\n keys(): IterableIterator<string> {\n return reservedItemFieldNames.keys();\n },\n values(): IterableIterator<string> {\n return reservedItemFieldNames.values();\n },\n forEach(\n callback: (value: string, value2: string, set: ReadonlySet<string>) => void,\n thisArg?: unknown,\n ): void {\n reservedItemFieldNames.forEach((value) =>\n callback.call(thisArg, value, value, RESERVED_ITEM_FIELD_NAMES),\n );\n },\n [Symbol.iterator](): IterableIterator<string> {\n return reservedItemFieldNames.values();\n },\n});\n\nfunction normalizeFieldName(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction normalizeFieldType(value: unknown): KnownItemFieldType | null {\n if (typeof value !== \"string\") {\n return null;\n }\n return normalizeItemFieldType(value);\n}\n\nfunction cloneFieldValue<T>(value: T): T {\n try {\n return structuredClone(value);\n } catch {\n return value;\n }\n}\n\nfunction parseFieldAssignment(raw: string): { key: string; value: string } {\n const trimmed = raw.trim();\n const separatorIndex = trimmed.indexOf(\"=\");\n if (separatorIndex <= 0) {\n throw new PmCliError(\n `--field entries must use name=value syntax, received: ${raw}`,\n EXIT_CODE.USAGE,\n );\n }\n // `separatorIndex > 0` guarantees a non-`=` first character on the already\n // trimmed string, so the trimmed key is always non-empty here.\n const key = trimmed.slice(0, separatorIndex).trim();\n const value = trimmed.slice(separatorIndex + 1);\n return { key, value };\n}\n\nfunction parseJsonFieldValue(\n raw: string,\n fieldName: string,\n expectedType: \"array\" | \"object\",\n): unknown {\n try {\n const parsed = JSON.parse(raw);\n if (expectedType === \"array\" && Array.isArray(parsed)) {\n return parsed;\n }\n if (\n expectedType === \"object\" &&\n typeof parsed === \"object\" &&\n parsed !== null &&\n !Array.isArray(parsed)\n ) {\n return parsed;\n }\n } catch {\n // Fall through to the typed usage error below.\n }\n throw new PmCliError(\n `--field ${fieldName}=... must be valid JSON ${expectedType}`,\n EXIT_CODE.USAGE,\n );\n}\n\nfunction coerceRegisteredFieldValue(\n fieldName: string,\n fieldType: \"string\" | \"number\" | \"boolean\" | \"array\" | \"object\",\n raw: string,\n): unknown {\n if (fieldType === \"string\") {\n return raw;\n }\n if (fieldType === \"number\") {\n const trimmed = raw.trim();\n if (trimmed.length === 0) {\n throw new PmCliError(\n `--field ${fieldName}=... must be a number`,\n EXIT_CODE.USAGE,\n );\n }\n const parsed = Number(trimmed);\n if (!Number.isFinite(parsed)) {\n throw new PmCliError(\n `--field ${fieldName}=... must be a number`,\n EXIT_CODE.USAGE,\n );\n }\n return parsed;\n }\n if (fieldType === \"boolean\") {\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"true\" || normalized === \"1\" || normalized === \"yes\") {\n return true;\n }\n if (normalized === \"false\" || normalized === \"0\" || normalized === \"no\") {\n return false;\n }\n throw new PmCliError(\n `--field ${fieldName}=... must be one of true|false|1|0|yes|no`,\n EXIT_CODE.USAGE,\n );\n }\n return parseJsonFieldValue(raw, fieldName, fieldType);\n}\n\nfunction collectRegisteredFieldDefinitions(\n registrations: ExtensionRegistrationRegistry | null,\n): Map<\n string,\n { name: string; type: \"string\" | \"number\" | \"boolean\" | \"array\" | \"object\" }\n> {\n const definitions = new Map<\n string,\n { name: string; type: \"string\" | \"number\" | \"boolean\" | \"array\" | \"object\" }\n >();\n if (!registrations) {\n return definitions;\n }\n for (const registration of registrations.item_fields) {\n for (const definition of registration.fields) {\n const fieldName = normalizeFieldName(definition.name);\n const fieldType = normalizeFieldType(definition.type);\n if (!fieldName || !fieldType) {\n continue;\n }\n const existing = definitions.get(fieldName);\n if (existing && existing.type !== fieldType) {\n throw new PmCliError(\n `Extension item field \"${fieldName}\" is declared with conflicting types: ${existing.type}, ${fieldType}`,\n EXIT_CODE.USAGE,\n {\n code: \"extension_item_field_type_conflict\",\n nextSteps: [\n \"Make every active extension declaration for this field use the same type.\",\n ],\n },\n );\n }\n definitions.set(fieldName, { name: fieldName, type: fieldType });\n }\n }\n return definitions;\n}\n\nfunction assertNotReservedItemFieldName(fieldName: string): void {\n if (!RESERVED_ITEM_FIELD_NAMES.has(fieldName)) {\n return;\n }\n throw new PmCliError(\n `Extension item field \"${fieldName}\" collides with reserved item metadata`,\n EXIT_CODE.USAGE,\n {\n code: \"extension_item_field_reserved\",\n nextSteps: [\n \"Rename the extension item field, preferably with an extension-specific prefix.\",\n ],\n },\n );\n}\n\n/** Implements collect registered item field names for the public runtime surface of this module. */\nexport function collectRegisteredItemFieldNames(\n registrations: ExtensionRegistrationRegistry | null,\n): string[] {\n return [...collectRegisteredFieldDefinitions(registrations).keys()].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\n/** Implements parse registered item field assignments for the public runtime surface of this module. */\nexport function parseRegisteredItemFieldAssignments(\n rawFields: string[] | undefined,\n registrations: ExtensionRegistrationRegistry | null,\n): Record<string, unknown> {\n if (!rawFields || rawFields.length === 0) {\n return {};\n }\n const definitions = collectRegisteredFieldDefinitions(registrations);\n const values: Record<string, unknown> = {};\n for (const raw of rawFields) {\n const { key, value } = parseFieldAssignment(raw);\n const definition = definitions.get(key);\n if (!definition) {\n const known = [...definitions.keys()].sort((left, right) =>\n left.localeCompare(right),\n );\n throw new PmCliError(\n `--field ${key} is not declared by an active extension item-field registration`,\n EXIT_CODE.USAGE,\n {\n code: \"extension_item_field_unknown\",\n recovery: { provided_fields: known },\n nextSteps:\n known.length > 0\n ? [`Use one of the declared fields: ${known.join(\", \")}`]\n : [\n \"Activate an extension that calls registerItemFields before setting extension fields.\",\n ],\n },\n );\n }\n assertNotReservedItemFieldName(definition.name);\n values[definition.name] = coerceRegisteredFieldValue(\n definition.name,\n definition.type,\n value,\n );\n }\n return values;\n}\n\nfunction isValidFieldType(\n value: unknown,\n expectedType: \"string\" | \"number\" | \"boolean\" | \"array\" | \"object\",\n): boolean {\n if (expectedType === \"string\") {\n return typeof value === \"string\";\n }\n if (expectedType === \"number\") {\n return typeof value === \"number\" && Number.isFinite(value);\n }\n if (expectedType === \"boolean\") {\n return typeof value === \"boolean\";\n }\n if (expectedType === \"array\") {\n return Array.isArray(value);\n }\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction isAllowedFieldValue(\n value: unknown,\n allowed: unknown[] | undefined,\n): boolean {\n if (!allowed || allowed.length === 0) {\n return true;\n }\n return allowed.some((candidate) => Object.is(candidate, value));\n}\n\n/** Implements apply registered item field defaults and validation for the public runtime surface of this module. */\nexport function applyRegisteredItemFieldDefaultsAndValidation(\n frontMatter: Record<string, unknown>,\n registrations: ExtensionRegistrationRegistry | null,\n options: { skipDefaultFields?: ReadonlySet<string> } = {},\n): void {\n if (!registrations) {\n return;\n }\n collectRegisteredFieldDefinitions(registrations);\n for (const registration of registrations.item_fields) {\n for (const definition of registration.fields) {\n const fieldName = normalizeFieldName(definition.name);\n if (!fieldName) {\n continue;\n }\n assertNotReservedItemFieldName(fieldName);\n if (\n !(fieldName in frontMatter) &&\n !options.skipDefaultFields?.has(fieldName) &&\n Object.prototype.hasOwnProperty.call(definition, \"default\")\n ) {\n frontMatter[fieldName] = cloneFieldValue(definition.default);\n }\n\n const currentValue = frontMatter[fieldName];\n if (currentValue === undefined) {\n continue;\n }\n const expectedType = normalizeFieldType(definition.type);\n if (expectedType && !isValidFieldType(currentValue, expectedType)) {\n throw new TypeError(\n `Item field \"${fieldName}\" must be of type ${expectedType}`,\n );\n }\n\n const allowedValues = Array.isArray(definition.values)\n ? definition.values\n : undefined;\n if (!isAllowedFieldValue(currentValue, allowedValues)) {\n throw new TypeError(\n `Item field \"${fieldName}\" must match one of the configured allowed values`,\n );\n }\n }\n }\n}\n"],"names":[],"mappings":"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","debugId":"50772081-5688-59d1-8c18-bd67bca91a20"}
1
+ {"version":3,"file":"item-fields.js","sources":["core/extensions/item-fields.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/extensions/item-fields\n *\n * Implements extension runtime contracts and governance for Item Fields.\n */\nimport type { ExtensionRegistrationRegistry } from \"./loader.js\";\nimport {\n normalizeItemFieldType,\n type KnownItemFieldType,\n} from \"./item-field-types.js\";\nimport { EXIT_CODE, FRONT_MATTER_KEY_ORDER } from \"../shared/constants.js\";\nimport { PmCliError } from \"../shared/errors.js\";\n\nconst reservedItemFieldNames = new Set(FRONT_MATTER_KEY_ORDER);\n\n/** Item metadata keys extension-provided fields may never shadow, exposed without mutation methods. */\nexport const RESERVED_ITEM_FIELD_NAMES: ReadonlySet<string> = Object.freeze({\n get size(): number {\n return reservedItemFieldNames.size;\n },\n has(value: string): boolean {\n return reservedItemFieldNames.has(value);\n },\n entries(): IterableIterator<[string, string]> {\n return reservedItemFieldNames.entries();\n },\n keys(): IterableIterator<string> {\n return reservedItemFieldNames.keys();\n },\n values(): IterableIterator<string> {\n return reservedItemFieldNames.values();\n },\n forEach(\n callback: (value: string, value2: string, set: ReadonlySet<string>) => void,\n thisArg?: unknown,\n ): void {\n reservedItemFieldNames.forEach((value) =>\n callback.call(thisArg, value, value, RESERVED_ITEM_FIELD_NAMES),\n );\n },\n [Symbol.iterator](): IterableIterator<string> {\n return reservedItemFieldNames.values();\n },\n});\n\nfunction normalizeFieldName(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction normalizeFieldType(value: unknown): KnownItemFieldType | null {\n if (typeof value !== \"string\") {\n return null;\n }\n return normalizeItemFieldType(value);\n}\n\nfunction cloneFieldValue<T>(value: T): T {\n try {\n return structuredClone(value);\n } catch {\n return value;\n }\n}\n\nfunction parseFieldAssignment(raw: string): { key: string; value: string } {\n const trimmed = raw.trim();\n const separatorIndex = trimmed.indexOf(\"=\");\n if (separatorIndex <= 0) {\n throw new PmCliError(\n `--field entries must use name=value syntax, received: ${raw}`,\n EXIT_CODE.USAGE,\n );\n }\n // `separatorIndex > 0` guarantees a non-`=` first character on the already\n // trimmed string, so the trimmed key is always non-empty here.\n const key = trimmed.slice(0, separatorIndex).trim();\n const value = trimmed.slice(separatorIndex + 1);\n return { key, value };\n}\n\nfunction parseJsonFieldValue(\n raw: string,\n fieldName: string,\n expectedType: \"array\" | \"object\",\n): unknown {\n try {\n const parsed = JSON.parse(raw);\n if (expectedType === \"array\" && Array.isArray(parsed)) {\n return parsed;\n }\n if (\n expectedType === \"object\" &&\n typeof parsed === \"object\" &&\n parsed !== null &&\n !Array.isArray(parsed)\n ) {\n return parsed;\n }\n } catch {\n // Fall through to the typed usage error below.\n }\n throw new PmCliError(\n `--field ${fieldName}=... must be valid JSON ${expectedType}`,\n EXIT_CODE.USAGE,\n );\n}\n\nfunction coerceRegisteredFieldValue(\n fieldName: string,\n fieldType: \"string\" | \"number\" | \"boolean\" | \"array\" | \"object\",\n raw: string,\n): unknown {\n if (fieldType === \"string\") {\n return raw;\n }\n if (fieldType === \"number\") {\n const trimmed = raw.trim();\n if (trimmed.length === 0) {\n throw new PmCliError(\n `--field ${fieldName}=... must be a number`,\n EXIT_CODE.USAGE,\n );\n }\n const parsed = Number(trimmed);\n if (!Number.isFinite(parsed)) {\n throw new PmCliError(\n `--field ${fieldName}=... must be a number`,\n EXIT_CODE.USAGE,\n );\n }\n return parsed;\n }\n if (fieldType === \"boolean\") {\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"true\" || normalized === \"1\" || normalized === \"yes\") {\n return true;\n }\n if (normalized === \"false\" || normalized === \"0\" || normalized === \"no\") {\n return false;\n }\n throw new PmCliError(\n `--field ${fieldName}=... must be one of true|false|1|0|yes|no`,\n EXIT_CODE.USAGE,\n );\n }\n return parseJsonFieldValue(raw, fieldName, fieldType);\n}\n\nfunction collectRegisteredFieldDefinitions(\n registrations: ExtensionRegistrationRegistry | null,\n): Map<\n string,\n { name: string; type: \"string\" | \"number\" | \"boolean\" | \"array\" | \"object\" }\n> {\n const definitions = new Map<\n string,\n { name: string; type: \"string\" | \"number\" | \"boolean\" | \"array\" | \"object\" }\n >();\n if (!registrations) {\n return definitions;\n }\n for (const registration of registrations.item_fields) {\n for (const definition of registration.fields) {\n const fieldName = normalizeFieldName(definition.name);\n const fieldType = normalizeFieldType(definition.type);\n if (!fieldName || !fieldType) {\n continue;\n }\n const existing = definitions.get(fieldName);\n if (existing && existing.type !== fieldType) {\n throw new PmCliError(\n `Extension item field \"${fieldName}\" is declared with conflicting types: ${existing.type}, ${fieldType}`,\n EXIT_CODE.USAGE,\n {\n code: \"extension_item_field_type_conflict\",\n nextSteps: [\n \"Make every active extension declaration for this field use the same type.\",\n ],\n },\n );\n }\n definitions.set(fieldName, { name: fieldName, type: fieldType });\n }\n }\n return definitions;\n}\n\nfunction assertNotReservedItemFieldName(fieldName: string): void {\n if (!RESERVED_ITEM_FIELD_NAMES.has(fieldName)) {\n return;\n }\n throw new PmCliError(\n `Extension item field \"${fieldName}\" collides with built-in item metadata \"${fieldName}\"; rename the extension field with an extension-specific prefix. Reserved fields: ${[...RESERVED_ITEM_FIELD_NAMES].sort((left, right) => left.localeCompare(right)).join(\", \")}.`,\n EXIT_CODE.USAGE,\n {\n code: \"extension_item_field_reserved\",\n nextSteps: [\n \"Rename the extension item field, preferably with an extension-specific prefix.\",\n ],\n },\n );\n}\n\n/** Implements collect registered item field names for the public runtime surface of this module. */\nexport function collectRegisteredItemFieldNames(\n registrations: ExtensionRegistrationRegistry | null,\n): string[] {\n return [...collectRegisteredFieldDefinitions(registrations).keys()].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\n/** Implements parse registered item field assignments for the public runtime surface of this module. */\nexport function parseRegisteredItemFieldAssignments(\n rawFields: string[] | undefined,\n registrations: ExtensionRegistrationRegistry | null,\n): Record<string, unknown> {\n if (!rawFields || rawFields.length === 0) {\n return {};\n }\n const definitions = collectRegisteredFieldDefinitions(registrations);\n const values: Record<string, unknown> = {};\n for (const raw of rawFields) {\n const { key, value } = parseFieldAssignment(raw);\n const definition = definitions.get(key);\n if (!definition) {\n const known = [...definitions.keys()].sort((left, right) =>\n left.localeCompare(right),\n );\n throw new PmCliError(\n `--field ${key} is not declared by an active extension item-field registration`,\n EXIT_CODE.USAGE,\n {\n code: \"extension_item_field_unknown\",\n recovery: { provided_fields: known },\n nextSteps:\n known.length > 0\n ? [`Use one of the declared fields: ${known.join(\", \")}`]\n : [\n \"Activate an extension that calls registerItemFields before setting extension fields.\",\n ],\n },\n );\n }\n assertNotReservedItemFieldName(definition.name);\n values[definition.name] = coerceRegisteredFieldValue(\n definition.name,\n definition.type,\n value,\n );\n }\n return values;\n}\n\nfunction isValidFieldType(\n value: unknown,\n expectedType: \"string\" | \"number\" | \"boolean\" | \"array\" | \"object\",\n): boolean {\n if (expectedType === \"string\") {\n return typeof value === \"string\";\n }\n if (expectedType === \"number\") {\n return typeof value === \"number\" && Number.isFinite(value);\n }\n if (expectedType === \"boolean\") {\n return typeof value === \"boolean\";\n }\n if (expectedType === \"array\") {\n return Array.isArray(value);\n }\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction isAllowedFieldValue(\n value: unknown,\n allowed: unknown[] | undefined,\n): boolean {\n if (!allowed || allowed.length === 0) {\n return true;\n }\n return allowed.some((candidate) => Object.is(candidate, value));\n}\n\n/** Implements apply registered item field defaults and validation for the public runtime surface of this module. */\nexport function applyRegisteredItemFieldDefaultsAndValidation(\n frontMatter: Record<string, unknown>,\n registrations: ExtensionRegistrationRegistry | null,\n options: { skipDefaultFields?: ReadonlySet<string> } = {},\n): void {\n if (!registrations) {\n return;\n }\n collectRegisteredFieldDefinitions(registrations);\n for (const registration of registrations.item_fields) {\n for (const definition of registration.fields) {\n const fieldName = normalizeFieldName(definition.name);\n if (!fieldName) {\n continue;\n }\n assertNotReservedItemFieldName(fieldName);\n if (\n !(fieldName in frontMatter) &&\n !options.skipDefaultFields?.has(fieldName) &&\n Object.prototype.hasOwnProperty.call(definition, \"default\")\n ) {\n frontMatter[fieldName] = cloneFieldValue(definition.default);\n }\n\n const currentValue = frontMatter[fieldName];\n if (currentValue === undefined) {\n continue;\n }\n const expectedType = normalizeFieldType(definition.type);\n if (expectedType && !isValidFieldType(currentValue, expectedType)) {\n throw new TypeError(\n `Item field \"${fieldName}\" must be of type ${expectedType}`,\n );\n }\n\n const allowedValues = Array.isArray(definition.values)\n ? definition.values\n : undefined;\n if (!isAllowedFieldValue(currentValue, allowedValues)) {\n throw new TypeError(\n `Item field \"${fieldName}\" must match one of the configured allowed values`,\n );\n }\n }\n }\n}\n"],"names":[],"mappings":"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","debugId":"4425331f-9bb4-5c73-9fec-e642f8aab2c4"}
@@ -4,7 +4,7 @@
4
4
  * Implements extension runtime contracts and governance for Loader.
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]="98d3a7e2-3067-5d93-866a-db3606aae002")}catch(e){}}();
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]="4932a233-cd95-5e07-9166-d554e26e51e7")}catch(e){}}();
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
10
10
  import { pathToFileURL } from "node:url";
@@ -1778,32 +1778,41 @@ class ExtensionApiRegistrar {
1778
1778
  });
1779
1779
  }
1780
1780
  applyImportExportCommandMetadata(method, commandPath, options) {
1781
- if (options === undefined) {
1782
- return;
1783
- }
1784
- if (typeof options !== "object" ||
1785
- options === null ||
1786
- Array.isArray(options)) {
1781
+ if (options !== undefined &&
1782
+ (typeof options !== "object" || options === null || Array.isArray(options))) {
1787
1783
  throw new TypeError(`${method} options must be an object when provided`);
1788
1784
  }
1789
- assertOptionalStringField(`${method} options.action`, options.action);
1790
- assertOptionalStringField(`${method} options.description`, options.description);
1791
- assertOptionalStringField(`${method} options.intent`, options.intent);
1792
- const action = resolveCommandDefinitionAction(commandPath, options.action);
1793
- const examples = normalizeOptionalStringArrayField(`${method} options.examples`, options.examples);
1794
- const failureHints = normalizeOptionalStringArrayField(`${method} options.failure_hints`, options.failure_hints);
1795
- const argumentsDefinition = normalizeCommandDefinitionArguments(options.arguments);
1796
- if (options.flags !== undefined) {
1785
+ const defaultDescription = `${method === "registerImporter" ? "Import" : "Export"} items with the registered extension adapter.`;
1786
+ const defaultArguments = [
1787
+ {
1788
+ name: "file",
1789
+ required: false,
1790
+ description: "Optional input or output file path.",
1791
+ },
1792
+ ];
1793
+ const resolvedOptions = {
1794
+ ...options,
1795
+ description: options?.description ?? defaultDescription,
1796
+ arguments: options?.arguments ?? defaultArguments,
1797
+ };
1798
+ assertOptionalStringField(`${method} options.action`, resolvedOptions.action);
1799
+ assertOptionalStringField(`${method} options.description`, resolvedOptions.description);
1800
+ assertOptionalStringField(`${method} options.intent`, resolvedOptions.intent);
1801
+ const action = resolveCommandDefinitionAction(commandPath, resolvedOptions.action);
1802
+ const examples = normalizeOptionalStringArrayField(`${method} options.examples`, resolvedOptions.examples);
1803
+ const failureHints = normalizeOptionalStringArrayField(`${method} options.failure_hints`, resolvedOptions.failure_hints);
1804
+ const argumentsDefinition = normalizeCommandDefinitionArguments(resolvedOptions.arguments);
1805
+ if (resolvedOptions.flags !== undefined) {
1797
1806
  assertExtensionCapability(this.#loadedExtension, "schema", `${method} options.flags`);
1798
1807
  // Route metadata flags through the same surface-policy gate as registerFlags so
1799
1808
  // enforce-mode policies blocking schema.flags are honored even when importers are allowed.
1800
1809
  if (this.allowRegistration("schema.flags", `${method} options.flags`, "schema")) {
1801
- validateFlagDefinitions(options.flags);
1810
+ validateFlagDefinitions(resolvedOptions.flags);
1802
1811
  this.#registrationRegistry.flags.push({
1803
1812
  layer: this.#loadedExtension.layer,
1804
1813
  name: this.#loadedExtension.name,
1805
1814
  target_command: commandPath,
1806
- flags: normalizeRegistrationRecordList(`${method} options.flags`, options.flags),
1815
+ flags: normalizeRegistrationRecordList(`${method} options.flags`, resolvedOptions.flags),
1807
1816
  });
1808
1817
  }
1809
1818
  }
@@ -1817,11 +1826,11 @@ class ExtensionApiRegistrar {
1817
1826
  failure_hints: failureHints,
1818
1827
  arguments: argumentsDefinition,
1819
1828
  };
1820
- const description = options.description?.trim();
1829
+ const description = resolvedOptions.description?.trim();
1821
1830
  if (description) {
1822
1831
  registration.description = description;
1823
1832
  }
1824
- const intent = options.intent?.trim();
1833
+ const intent = resolvedOptions.intent?.trim();
1825
1834
  if (intent) {
1826
1835
  registration.intent = intent;
1827
1836
  }
@@ -2210,4 +2219,4 @@ export const _testOnlyLoader = {
2210
2219
  },
2211
2220
  };
2212
2221
  //# sourceMappingURL=loader.js.map
2213
- //# debugId=98d3a7e2-3067-5d93-866a-db3606aae002
2222
+ //# debugId=4932a233-cd95-5e07-9166-d554e26e51e7