@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
@@ -2,6 +2,11 @@
2
2
 
3
3
  pm-cli ships a repo-local Codex plugin at [`plugins/pm-codex`](../plugins/pm-codex/README.md).
4
4
 
5
+ It is a real Codex plugin package: the repo marketplace installs it and Codex registers its skills and bundled
6
+ MCP server. It is not yet a self-contained cached runtime or an Apps SDK-backed ChatGPT app. The official-source
7
+ audit, verified gaps, and phased remediation plan are documented in
8
+ [Native ChatGPT and Codex Plugin Implementation Plan](CHATGPT_CODEX_PLUGIN_IMPLEMENTATION.md).
9
+
5
10
  ## Install From This Repo
6
11
 
7
12
  ```bash
@@ -18,7 +23,7 @@ The canonical tool, skill, command, and safety inventory lives in the plugin REA
18
23
 
19
24
  Keep this page as the public docs router so the MCP tool/action list has one maintained source.
20
25
 
21
- ## Native MCP Notes
26
+ ## Current MCP Runtime Note
22
27
 
23
28
  The plugin launcher uses the local repository build when `dist/mcp/server.js` is present. When the plugin is cached outside the repo, it falls back to:
24
29
 
@@ -28,6 +33,11 @@ npx -y --package=@unbrained/pm-cli@latest pm-mcp
28
33
 
29
34
  The fallback starts the package MCP server, not the `pm` CLI command. Tool calls import pm command modules and return JSON-compatible structured results.
30
35
 
36
+ This is current behavior, not the target distribution contract. A normal cached install has no repository
37
+ `dist/` ancestor, so it depends on npm availability and can run a newer server than the installed plugin. Track
38
+ the self-contained, version-coherent runtime work under
39
+ [pm-95d7](../.agents/pm/features/pm-95d7.toon).
40
+
31
41
  ## Safety
32
42
 
33
43
  For real repository tracking, leave `path` unset so pm uses the repository `.agents/pm` root. For tests, use a sandbox `cwd` or `path` and isolate `PM_GLOBAL_PATH`.
package/docs/COMMANDS.md CHANGED
@@ -101,7 +101,9 @@ pm dedupe-audit --mode parent_scope --limit 20
101
101
  pm dedupe-merge --keep pm-canonical --close pm-duplicate --dry-run
102
102
  ```
103
103
 
104
- Use `pm next` when the only question is "what should I work on now?" It computes dependency-aware readiness, keeps dangling dependency ids blocked until repaired, and combines lifecycle-blocked plus graph-blocked work in the companion queue. The `recommended` projection is excluded from the `ready` tail, while foreign-owned in-progress work is summarized under `held_by_others`. Use `pm claim --next` to atomically select and claim caller-available work with bounded conflict retry. Scope with `--parent`, cap rows with `--limit`/`--blocked-limit`, or use `--ready-only` for the tightest projection.
104
+ Use `pm next` when the only question is "what should I work on now?" It computes dependency-aware readiness, keeps dangling dependency ids blocked until repaired, and combines lifecycle-blocked plus graph-blocked work in the companion queue. The `recommended` projection is excluded from the `ready` tail; every actionable row carries its one-based `rank`, and the tail preserves the exact recommendation order. Foreign-owned in-progress work is summarized under `held_by_others`. Human-gated `Decision` records remain visible under `decision_needed` but are excluded from agent recommendations by default.
105
+
106
+ Use `pm claim --next` to atomically select and claim caller-available work with bounded conflict retry. It accepts the same `--type`, `--tag`, `--priority`, `--assignee-filter`, `--parent`, `--sprint`, and `--release` candidate filters as `pm next`; `--max-attempts` bounds the ranked race-loss walk (default 10, maximum 100). With `--if-available`, exhaustion is a successful empty result (`available: false`, `item: null`, `skipped: true`) instead of an exception, which supports contention-tolerant worker loops. Pass `--include-decisions` only for a coordinated maintainer lane authorized to claim human-gated decisions. Scope snapshots with `--parent`, cap rows with `--limit`/`--blocked-limit`, or use `--ready-only` for the tightest projection.
105
107
 
106
108
  ```bash
107
109
  pm next # recommend the next action + ready/blocked queues
package/docs/README.md CHANGED
@@ -24,6 +24,7 @@ pm guide release --json
24
24
  | Coding agent | [Agent Guide](AGENT_GUIDE.md) | [Configuration](CONFIGURATION.md), then command help |
25
25
  | Maintainer | [Contributing](../CONTRIBUTING.md) | [Testing](TESTING.md), [Releasing](RELEASING.md), [Architecture](ARCHITECTURE.md) |
26
26
  | Package author | [Packages and Extensions](EXTENSIONS.md) | [SDK](SDK.md), [starter extension](examples/starter-extension/README.md) |
27
+ | Codex or ChatGPT plugin implementer | [Codex Plugin](CODEX_PLUGIN.md) | [Native ChatGPT and Codex Plugin Implementation Plan](CHATGPT_CODEX_PLUGIN_IMPLEMENTATION.md) |
27
28
  | Codex user | [Codex Plugin](CODEX_PLUGIN.md) | [Agent Guide](AGENT_GUIDE.md), then [Command Reference](COMMANDS.md) |
28
29
  | Claude Code user | [Claude Code Plugin](CLAUDE_CODE_PLUGIN.md) | [Agent Guide](AGENT_GUIDE.md), then [Command Reference](COMMANDS.md) |
29
30
  | Machine client | `pm contracts --json` | [Command Reference](COMMANDS.md#machine-contracts), optionally `pm install guide-shell --project && pm guide commands` |
@@ -42,6 +43,8 @@ pm guide release --json
42
43
  - [Extension Author Contracts](EXTENSION_AUTHOR_CONTRACTS.md) - the stability guarantees and contract surface package authors build against.
43
44
  - [SDK](SDK.md) - public import surfaces and typed authoring examples.
44
45
  - [Codex Plugin](CODEX_PLUGIN.md) - native MCP plugin install, tools, skills, and safety notes.
46
+ - [Native ChatGPT and Codex Plugin Implementation Plan](CHATGPT_CODEX_PLUGIN_IMPLEMENTATION.md) - official-source
47
+ research, current-state audit, target architectures, security, testing, and phased remediation plan.
45
48
  - [Claude Code Plugin](CLAUDE_CODE_PLUGIN.md) - native Claude Code plugin architecture and install flow.
46
49
  - [CLI Simplification Migration](MIGRATION_CLI_SIMPLIFICATION.md) - root discovery (`--pm-path`), recovery bundles, and clear/unset semantics for automation maintainers.
47
50
  - [Releasing](RELEASING.md) - maintainer release checklist and failure handling.
package/docs/SDK.md CHANGED
@@ -112,9 +112,12 @@ Command/action contract exports:
112
112
  - Typed annotation and relationship primitives on `PmClient`: `comments`, `notes`, `learnings`, `files`, `filesDiscover`, `docs`, `deps`, and `append`
113
113
  - Annotation and relationship option/result contracts: `CommentsCommandOptions` / `CommentsResult`, `NotesCommandOptions` / `NotesResult`, `LearningsCommandOptions` / `LearningsResult`, `FilesCommandOptions` / `FilesResult`, `FilesDiscoverOptions` / `FilesDiscoverResult`, `DocsCommandOptions` / `DocsResult`, `DepsCommandOptions` / `DepsResult`, `AppendCommandOptions` / `AppendResult`
114
114
  - Typed customization primitives on `PmClient`: `init`, `config`, `schema`, `schemaList`, `schemaShow`, `schemaAddType`, `schemaRemoveType`, `schemaAddStatus`, `schemaRemoveStatus`, `schemaAddField`, `schemaRemoveField`, `schemaListFields`, `schemaShowField`, `schemaApplyPreset`, `schemaInferTypes`, `schemaShowStatus`, `profile`, `profileList`, `profileShow`, `profileApply`, and `profileLint`
115
+ - Workspace-scaffold primitives: `ensurePmGitignore` and `getPmGitignoreBlock` let custom tools apply the same idempotent runtime/search cache policy as `pm init` without importing CLI internals.
115
116
  - Customization primitive option/result contracts: `InitCommandOptions` / `InitResult`, `ConfigCommandOptions` / `ConfigResult`, `SchemaSubcommand` / `SchemaResult` / `SchemaInspectResult`, `SchemaListResult`, `SchemaShowResult`, `SchemaAddTypeResult`, `SchemaRemoveTypeResult`, `SchemaAddStatusResult`, `SchemaRemoveStatusResult`, `SchemaAddFieldResult`, `SchemaRemoveFieldResult`, `SchemaListFieldsResult`, `SchemaShowFieldResult`, `SchemaApplyPresetResult`, `SchemaAddTypeInferResult`, `SchemaShowStatusResult`, `ProfileSubcommand` / `ProfileResult`, `ProfileListResult`, `ProfileShowResult`, `ProfileApplyResult`, `ProfileLintResult`
116
117
  - Typed governance and maintenance primitives on `PmClient`: `validate`, `health`, and `gc`
117
118
  - Governance and maintenance option/result contracts: `ValidateCommandOptions` / `ValidateResult`, `RunHealthOptions` / `HealthResult`, `GcCommandOptions` / `GcResult`
119
+ - Typed plan workflow primitives on `PmClient`: `plan`, `planCreate`, `planShow`, `planAddStep`, `planUpdateStep`, `planCompleteStep`, `planBlockStep`, `planReorderStep`, `planRemoveStep`, `planLink`, `planUnlink`, `planDecision`, `planDiscovery`, `planValidation`, `planResume`, `planApprove`, and `planMaterialize`
120
+ - Plan contracts: `PlanSubcommand`, `PlanCommandOptions`, `PlanCommandResult`, `PlanResultPlan`, `PlanStepSummary`, `PlanShowDepth`, and `PlanTemplateName`
118
121
  - Typed package and extension lifecycle primitives on `PmClient`: `extension`, `extensionList`, `extensionActivate`, `extensionDeactivate`, `package`, `packageList`, `packageInstall`, `packageUninstall`, `packageDoctor`, `packageManage`, `packageDescribe`, `packageReload`, `packageCatalog`, `packageActivate`, `packageDeactivate`, and `upgrade`
119
122
  - Lifecycle primitive option/result contracts: `ExtensionCommandOptions` / `ExtensionCommandResult`, `PackageCommandOptions` / `PackageCommandResult`, `UpgradeCommandOptions` / `UpgradeResult`
120
123
  - `PM_CORE_COMMAND_NAMES`
@@ -123,6 +126,35 @@ Command/action contract exports:
123
126
  - `PM_PROVIDER_TOOL_PARAMETERS_SCHEMA`
124
127
  - `PM_TOOL_ACTION_PARAMETER_CONTRACTS`
125
128
 
129
+ ### Plan workflows
130
+
131
+ Custom tools can manage durable plans without shelling out or importing CLI internals. The typed façade uses the same engine and result envelopes as `pm plan` and MCP `pm_plan`:
132
+
133
+ ```ts
134
+ import { PmClient } from "@unbrained/pm-cli/sdk";
135
+
136
+ const pm = new PmClient({ pmRoot, author: "planning-agent" });
137
+ await pm.schemaAddField("acceptance_owner", {
138
+ type: "string",
139
+ requiredOnCreate: true,
140
+ requiredTypes: ["Task"],
141
+ });
142
+ const created = await pm.planCreate({
143
+ title: "Ship governed workflow",
144
+ step: ["Implement", "Verify"],
145
+ });
146
+ await pm.planUpdateStep(created.plan.id, "plan-step-001", {
147
+ stepStatus: "in_progress",
148
+ });
149
+ const result = await pm.planMaterialize(created.plan.id, {
150
+ steps: "all",
151
+ materializeType: "Task",
152
+ field: ["acceptance_owner=planning-agent"],
153
+ });
154
+ ```
155
+
156
+ `field` is repeatable and forwards `name=value` pairs through normal schema-aware create validation for every materialized child. Required-on-create fields remain mandatory. Each `materialized` entry includes `id`, `title`, `type`, `parent`, `tags`, and `from_step`, so an agent can confirm the created work without extra `get` calls.
157
+
126
158
  Testing helper exports (also under `@unbrained/pm-cli/sdk/testing`):
127
159
 
128
160
  - `createExtensionTestHarness`
@@ -206,7 +238,7 @@ is the "invoke" verb that completes the package-author testing loop —
206
238
  `activateExtensionForTest` → `assertRegisteredCommandContract` → **run** →
207
239
  `deactivateExtensionForTest`. It dispatches a registered command handler through
208
240
  pm's real engine and returns the `CommandHandlerResult`, so a test can assert
209
- *behavior* (`result.result`) rather than only that the command is wired. The
241
+ _behavior_ (`result.result`) rather than only that the command is wired. The
210
242
  `CommandHandlerContext` is built with agent-safe global defaults
211
243
  (`{ json: true, quiet: true, noPager: true }`) that callers may override. A clean
212
244
  run yields `{ handled: true, result, warnings: [] }`; a handler that throws a
@@ -243,7 +275,7 @@ Each override helper guards that a matching override is registered for the targe
243
275
  (command / format / service), so a typo surfaces as a descriptive error rather
244
276
  than a silent `overridden: false` / `handled: false`.
245
277
 
246
- The *executable registration* surfaces — search providers, vector store
278
+ The _executable registration_ surfaces — search providers, vector store
247
279
  adapters, schema migrations, importers, and exporters — also have invoke helpers,
248
280
  so every executable register\* method has both an `assertRegistered*` and a
249
281
  `runRegistered*ForTest` counterpart. Each exercises the real registered behavior,
@@ -291,7 +323,7 @@ silent no-op. All invoke helpers are `async`, so a test always `await`s them.
291
323
  `describeExtensionActivation(activation, { extensionName })` is the **describe**
292
324
  (enumerate-all) verb that complements the `assertRegistered*` (verify-one) and
293
325
  `runRegistered*ForTest` (invoke-one) helpers. The activation result already
294
- carries per-surface *counts*; this returns the *names*. It walks every
326
+ carries per-surface _counts_; this returns the _names_. It walks every
295
327
  sub-registry once and returns a flat `ExtensionActivationSummary` whose arrays
296
328
  are de-duplicated and locale-sorted (except `hooks`, emitted in canonical
297
329
  lifecycle order to mirror `hook_counts`) of every registered surface's
@@ -346,9 +378,15 @@ default `2`; section headings render one level deeper) control nesting, and
346
378
  empty ones.
347
379
 
348
380
  ```ts
349
- import { describeExtensionBlueprint, renderExtensionSurfaceMarkdown } from "@unbrained/pm-cli/sdk";
381
+ import {
382
+ describeExtensionBlueprint,
383
+ renderExtensionSurfaceMarkdown,
384
+ } from "@unbrained/pm-cli/sdk";
350
385
 
351
- const reference = renderExtensionSurfaceMarkdown(describeExtensionBlueprint(blueprint), { title: "my-pkg", headingLevel: 2 });
386
+ const reference = renderExtensionSurfaceMarkdown(
387
+ describeExtensionBlueprint(blueprint),
388
+ { title: "my-pkg", headingLevel: 2 },
389
+ );
352
390
  // → "## my-pkg\n\nCapabilities: `commands`, `schema`\n\n### Commands\n\n- `greet hello`\n…"
353
391
  ```
354
392
 
@@ -461,7 +499,10 @@ const grouped = await pm.aggregate({ groupBy: "status", count: true });
461
499
  const stats = await pm.stats({ metadataCoverage: true });
462
500
  await pm.comments(created.item.id, { add: "Investigation context captured." });
463
501
  await pm.files(created.item.id, { add: ["src/index.ts"], note: "entrypoint" });
464
- await pm.docs(created.item.id, { add: ["docs/SDK.md"], note: "authoring reference" });
502
+ await pm.docs(created.item.id, {
503
+ add: ["docs/SDK.md"],
504
+ note: "authoring reference",
505
+ });
465
506
  const graph = await pm.deps(created.item.id, { format: "graph" });
466
507
  const types = await pm.schemaList();
467
508
  const profiles = await pm.profileList();
@@ -469,7 +510,10 @@ const validation = await pm.validate({ checkResolution: true });
469
510
  const health = await pm.health({ checkOnly: true, summary: true });
470
511
  const packages = await pm.packageList({ project: true });
471
512
  const doctor = await pm.packageDoctor({ project: true, isolated: true });
472
- const plannedUpgrade = await pm.upgrade(undefined, { dryRun: true, cliOnly: true });
513
+ const plannedUpgrade = await pm.upgrade(undefined, {
514
+ dryRun: true,
515
+ cliOnly: true,
516
+ });
473
517
 
474
518
  await runAction({
475
519
  action: "context",
@@ -493,11 +537,15 @@ integration, or agent runtime. Presentation stays outside the SDK primitive:
493
537
  callers choose their own rendering while the data shape remains shared with the
494
538
  CLI.
495
539
 
496
- The `next` result excludes the recommended item from the `ready` tail, reports
497
- foreign-owned work in `held_by_others`, and treats dangling dependency ids as
498
- unresolved blockers. The CLI `claim --next` composition uses the same public
499
- ranking result and atomic claim mutation, so custom SDK tools can apply their own
500
- selection policy without losing concurrency safety.
540
+ The `next` result excludes the recommended item from the `ready` tail, assigns
541
+ stable one-based ranks, reports foreign-owned work in `held_by_others`, and
542
+ treats dangling dependency ids as unresolved blockers. Human-gated decisions
543
+ remain visible in `decision_needed` but stay outside the agent-ready queue unless
544
+ the caller explicitly opts in. `PmClient.claimNext()` and top-level `claimNext()`
545
+ compose the same ranking result and atomic claim mutation, accept the next-work
546
+ filters, and bound the race-loss candidate walk with `maxAttempts` (1 through
547
+ 100 inclusive), so custom SDK
548
+ tools do not need to reproduce CLI concurrency policy.
501
549
 
502
550
  Lifecycle convenience methods and the matching top-level functions (`create`,
503
551
  `update`, `close`, `claim`, `release`, `copy`, `deleteItem`, `restore`,
@@ -688,11 +736,19 @@ methods bind to the right sub-registry for you:
688
736
  ```ts
689
737
  import { createExtensionTestHarness } from "@unbrained/pm-cli/sdk/testing";
690
738
 
691
- const ext = await createExtensionTestHarness(extensionModule, { capabilities: ["commands", "schema"] });
739
+ const ext = await createExtensionTestHarness(extensionModule, {
740
+ capabilities: ["commands", "schema"],
741
+ });
692
742
 
693
- ext.assertCommandContract({ command: "incident triage", flags: ["--severity"] });
743
+ ext.assertCommandContract({
744
+ command: "incident triage",
745
+ flags: ["--severity"],
746
+ });
694
747
  ext.assertFlags({ targetCommand: "list", flags: ["--incident-filter"] });
695
- const { result } = await ext.runCommand({ command: "incident triage", options: { severity: "high" } });
748
+ const { result } = await ext.runCommand({
749
+ command: "incident triage",
750
+ options: { severity: "high" },
751
+ });
696
752
  const summary = ext.activationSummary();
697
753
  const reference = ext.renderMarkdown({ title: "incident package surfaces" });
698
754
  await ext.deactivate();
@@ -702,24 +758,24 @@ For provider-safe schemas, use `PM_PROVIDER_TOOL_PARAMETERS_SCHEMA`. It is flat
702
758
 
703
759
  ## Capability Requirements
704
760
 
705
- | Registration | Manifest capability |
706
- |--------------|---------------------|
707
- | `registerCommand` | `commands` |
708
- | inline command flags | `schema` |
709
- | `registerFlags` | `schema` |
710
- | `registerItemFields` | `schema` |
711
- | `registerItemTypes` | `schema` |
712
- | `registerMigration` | `schema` |
713
- | `registerProfile` | `schema` |
714
- | `registerImporter` | `importers` |
715
- | `registerExporter` | `importers` |
716
- | `registerParser` | `parser` |
717
- | `registerPreflight` | `preflight` |
718
- | `registerService` | `services` |
719
- | `registerRenderer` | `renderers` |
720
- | lifecycle hooks | `hooks` |
721
- | `registerSearchProvider` | `search` |
722
- | `registerVectorStoreAdapter` | `search` |
761
+ | Registration | Manifest capability |
762
+ | ---------------------------- | ------------------- |
763
+ | `registerCommand` | `commands` |
764
+ | inline command flags | `schema` |
765
+ | `registerFlags` | `schema` |
766
+ | `registerItemFields` | `schema` |
767
+ | `registerItemTypes` | `schema` |
768
+ | `registerMigration` | `schema` |
769
+ | `registerProfile` | `schema` |
770
+ | `registerImporter` | `importers` |
771
+ | `registerExporter` | `importers` |
772
+ | `registerParser` | `parser` |
773
+ | `registerPreflight` | `preflight` |
774
+ | `registerService` | `services` |
775
+ | `registerRenderer` | `renderers` |
776
+ | lifecycle hooks | `hooks` |
777
+ | `registerSearchProvider` | `search` |
778
+ | `registerVectorStoreAdapter` | `search` |
723
779
 
724
780
  Some override surfaces are single-winner: command overrides, parser overrides, preflight overrides, and output renderers. Keep those handlers narrowly scoped and verify package combinations with:
725
781
 
@@ -754,7 +810,9 @@ export default defineExtension({
754
810
  description: "Return a deterministic hello payload.",
755
811
  intent: "verify SDK extension activation",
756
812
  examples: ["pm hello"],
757
- failure_hints: ["Run pm package doctor --detail deep --trace on activation failures."],
813
+ failure_hints: [
814
+ "Run pm package doctor --detail deep --trace on activation failures.",
815
+ ],
758
816
  run: async () => ({ ok: true, message: "hello" }),
759
817
  });
760
818
  },
@@ -989,7 +1047,7 @@ the type level.
989
1047
  pm packages are authored **and loaded** as TypeScript (ADR
990
1048
  [pm-2c28](../.agents/pm/decisions/pm-2c28.toon) / [pm-m1uz](../.agents/pm/decisions/pm-m1uz.toon)). A bare `const cmd = { ... }`
991
1049
  satisfies the registration types only structurally and widens its literals;
992
- wrapping it in a builder checks the object against the contract *and* preserves
1050
+ wrapping it in a builder checks the object against the contract _and_ preserves
993
1051
  the narrow literal types, while inferring the nested handler's `context`
994
1052
  parameter from the builder signature — the same ergonomics `defineConfig` gives a
995
1053
  Vite config. It also lets you colocate, export, reuse, and unit-test a definition
@@ -1046,7 +1104,11 @@ surfaces you use (ideally with `define*`-authored definitions) and leave the res
1046
1104
  out:
1047
1105
 
1048
1106
  ```ts
1049
- import { composeExtension, defineCommand, deriveExtensionCapabilities } from "@unbrained/pm-cli/sdk";
1107
+ import {
1108
+ composeExtension,
1109
+ defineCommand,
1110
+ deriveExtensionCapabilities,
1111
+ } from "@unbrained/pm-cli/sdk";
1050
1112
  import type { ExtensionBlueprint } from "@unbrained/pm-cli/sdk";
1051
1113
 
1052
1114
  const echo = defineCommand({
@@ -1059,7 +1121,9 @@ const echo = defineCommand({
1059
1121
  const blueprint: ExtensionBlueprint = {
1060
1122
  commands: [echo],
1061
1123
  parsers: { "command-kit echo": (context) => ({ options: context.options }) },
1062
- flags: { list: [{ long: "--kit-note", value_type: "string", value_name: "text" }] },
1124
+ flags: {
1125
+ list: [{ long: "--kit-note", value_type: "string", value_name: "text" }],
1126
+ },
1063
1127
  };
1064
1128
 
1065
1129
  // The generated `activate` registers commands → overrides → flags → parsers →
@@ -1124,11 +1188,16 @@ export const commandsModule = defineExtensionBlueprint({
1124
1188
 
1125
1189
  ```ts
1126
1190
  // index.ts — the manifest entry; import sibling .ts modules by their real extension (loaded directly via native type stripping).
1127
- import { composeExtension, mergeExtensionBlueprints } from "@unbrained/pm-cli/sdk";
1191
+ import {
1192
+ composeExtension,
1193
+ mergeExtensionBlueprints,
1194
+ } from "@unbrained/pm-cli/sdk";
1128
1195
  import { commandsModule } from "./commands.ts";
1129
1196
  import { searchModule } from "./search.ts";
1130
1197
 
1131
- export default composeExtension(mergeExtensionBlueprints(commandsModule, searchModule));
1198
+ export default composeExtension(
1199
+ mergeExtensionBlueprints(commandsModule, searchModule),
1200
+ );
1132
1201
  ```
1133
1202
 
1134
1203
  The merge is pure, deterministic, and never mutates an input. Each surface combines
@@ -1170,8 +1239,8 @@ const manifest = synthesizeExtensionManifest(blueprint, {
1170
1239
  manifest.capabilities; // ["commands", "parser", "schema"] — derived, not hand-written
1171
1240
  ```
1172
1241
 
1173
- Where `defineExtensionManifest` only *types* a manifest you wrote by hand, this
1174
- *generates* it. For the rare surface registered through the imperative `activate`
1242
+ Where `defineExtensionManifest` only _types_ a manifest you wrote by hand, this
1243
+ _generates_ it. For the rare surface registered through the imperative `activate`
1175
1244
  escape hatch (invisible to static derivation — e.g. a renderer wired in
1176
1245
  `activate`), pass `additionalCapabilities` and they are unioned in (legacy-alias
1177
1246
  resolved, unknown names dropped). Use the result as the on-disk `manifest.json`
@@ -1198,7 +1267,7 @@ const { module, manifest } = composeExtensionPackage(blueprint, {
1198
1267
  entry: "./index.ts",
1199
1268
  priority: 0,
1200
1269
  });
1201
- export default module; // the package entry's default export
1270
+ export default module; // the package entry's default export
1202
1271
  // write `manifest` verbatim as manifest.json — capabilities derived, never hand-synced
1203
1272
  ```
1204
1273
 
@@ -1221,7 +1290,10 @@ the runtime guardrails (the same discipline as `deriveExtensionCapabilities`
1221
1290
  inverting [`reconcileExtensionCapabilityUsage`](#capability-requirements)):
1222
1291
 
1223
1292
  ```ts
1224
- import { describeExtensionBlueprint, lintExtensionBlueprint } from "@unbrained/pm-cli/sdk";
1293
+ import {
1294
+ describeExtensionBlueprint,
1295
+ lintExtensionBlueprint,
1296
+ } from "@unbrained/pm-cli/sdk";
1225
1297
 
1226
1298
  // describeExtensionBlueprint returns the same ExtensionActivationSummary shape as
1227
1299
  // the runtime describeExtensionActivation — but from the blueprint data alone, no
@@ -1234,8 +1306,10 @@ describeExtensionBlueprint(blueprint).command_handlers; // ["command-kit echo",
1234
1306
  // `error` (the loader throws extension_capability_missing); a declared-but-unused
1235
1307
  // capability, a duplicate command, a command/override conflict, and a present-but-
1236
1308
  // empty surface are `warning`s. Pass declaredCapabilities or set manifest.capabilities.
1237
- const report = lintExtensionBlueprint(blueprint, { declaredCapabilities: ["commands", "parser", "schema"] });
1238
- report.ok; // false if any error-severity finding
1309
+ const report = lintExtensionBlueprint(blueprint, {
1310
+ declaredCapabilities: ["commands", "parser", "schema"],
1311
+ });
1312
+ report.ok; // false if any error-severity finding
1239
1313
  report.findings; // [{ code, severity, message, capability?/command?/field? }, ...]
1240
1314
  ```
1241
1315
 
@@ -1292,7 +1366,7 @@ tests of extension registration shape; keep `pm package doctor` and runtime
1292
1366
  contracts in integration tests.
1293
1367
 
1294
1368
  For declarative (`composeExtension`) packages, `assertExtensionBlueprint(blueprint, options?)`
1295
- is the `assert*` family member that preflights the blueprint *without* activating
1369
+ is the `assert*` family member that preflights the blueprint _without_ activating
1296
1370
  it — it runs `lintExtensionBlueprint` and throws if any finding is error-severity
1297
1371
  (today: a capability a surface exercises but the declared set omits, which would
1298
1372
  fail activation with `extension_capability_missing`). It returns the full
@@ -1309,7 +1383,7 @@ const report = assertExtensionBlueprint(blueprint);
1309
1383
 
1310
1384
  `assertExtensionManifestMatchesBlueprint(manifest, blueprint)` is the **strict**
1311
1385
  bookend to that lenient preflight: where `assertExtensionBlueprint` only fails on
1312
- an *undeclared* capability and merely warns on an unused one, this assertion fails
1386
+ an _undeclared_ capability and merely warns on an unused one, this assertion fails
1313
1387
  on **both** — so a hand-maintained `manifest.json` stays exactly the least-privilege
1314
1388
  set the blueprint requires (assert what `synthesizeExtensionManifest` would
1315
1389
  otherwise generate). Only `capabilities` are reconciled, since that is the one
@@ -1325,7 +1399,7 @@ assertExtensionManifestMatchesBlueprint(manifest, blueprint);
1325
1399
  ```
1326
1400
 
1327
1401
  Where the blueprint guards `capabilities`, a manifest's `pm_min_version` /
1328
- `pm_max_version` bounds guard *which pm CLI versions the package supports*.
1402
+ `pm_max_version` bounds guard _which pm CLI versions the package supports_.
1329
1403
  Tracker references: `pm-knma` introduced `checkExtensionManifestCompatibility`;
1330
1404
  `pm-hng2` introduced `assertExtensionManifestCompatible`.
1331
1405
  `checkExtensionManifestCompatibility(manifest, { pmVersion, pmMaxVersionExceededMode? })`
@@ -1343,7 +1417,9 @@ import { checkExtensionManifestCompatibility } from "@unbrained/pm-cli/sdk";
1343
1417
  import { assertExtensionManifestCompatible } from "@unbrained/pm-cli/sdk/testing";
1344
1418
 
1345
1419
  // Inspect every bound outcome against a target version…
1346
- const report = checkExtensionManifestCompatibility(manifest, { pmVersion: "2026.6.23" });
1420
+ const report = checkExtensionManifestCompatibility(manifest, {
1421
+ pmVersion: "2026.6.23",
1422
+ });
1347
1423
  // report.compatible === false, report.findings[0].code === "pm_min_version_unmet", …
1348
1424
 
1349
1425
  // …or fail the package's own suite when a bound would block the load.
@@ -1375,14 +1451,24 @@ import { assertExtensionPreflight } from "@unbrained/pm-cli/sdk/testing";
1375
1451
 
1376
1452
  // Inspect every author-time stage in one report…
1377
1453
  const report = preflightExtension(blueprint, {
1378
- identity: { name: "command-kit", version: "1.0.0", entry: "./index.ts", priority: 0 },
1454
+ identity: {
1455
+ name: "command-kit",
1456
+ version: "1.0.0",
1457
+ entry: "./index.ts",
1458
+ priority: 0,
1459
+ },
1379
1460
  target: { pmVersion: "2026.6.23" },
1380
1461
  });
1381
1462
  // report.manifest.capabilities (derived), report.compatibility.compatible, report.findings[]
1382
1463
 
1383
1464
  // …or guard the whole package in one CI line.
1384
1465
  assertExtensionPreflight(blueprint, {
1385
- identity: { name: "command-kit", version: "1.0.0", entry: "./index.ts", priority: 0 },
1466
+ identity: {
1467
+ name: "command-kit",
1468
+ version: "1.0.0",
1469
+ entry: "./index.ts",
1470
+ priority: 0,
1471
+ },
1386
1472
  target: { pmVersion: "2026.6.23" },
1387
1473
  });
1388
1474
  ```
@@ -1407,13 +1493,18 @@ the `"<name> import"` / `"<name> export"` command path. Pass the whole `activati
1407
1493
  and the registration name:
1408
1494
 
1409
1495
  ```ts
1410
- import { runRegisteredImporterForTest, runRegisteredExporterForTest } from "@unbrained/pm-cli/sdk/testing";
1496
+ import {
1497
+ runRegisteredImporterForTest,
1498
+ runRegisteredExporterForTest,
1499
+ } from "@unbrained/pm-cli/sdk/testing";
1411
1500
 
1412
1501
  const imported = await runRegisteredImporterForTest(activation, {
1413
1502
  importer: "csv",
1414
1503
  options: { rows: 3 },
1415
1504
  });
1416
- const exported = await runRegisteredExporterForTest(activation, { exporter: "csv" });
1505
+ const exported = await runRegisteredExporterForTest(activation, {
1506
+ exporter: "csv",
1507
+ });
1417
1508
 
1418
1509
  // Both return a CommandHandlerResult: imported.result is the importer's return value.
1419
1510
  ```
@@ -1454,10 +1545,13 @@ const parsed = await runRegisteredParserOverrideForTest(activation.parsers, {
1454
1545
  });
1455
1546
  // parsed.overridden === true; parsed.context holds the rewritten args/options.
1456
1547
 
1457
- const rendered = await runRegisteredRendererOverrideForTest(activation.renderers, {
1458
- format: "toon",
1459
- result: { id: "pm-1a2b" },
1460
- });
1548
+ const rendered = await runRegisteredRendererOverrideForTest(
1549
+ activation.renderers,
1550
+ {
1551
+ format: "toon",
1552
+ result: { id: "pm-1a2b" },
1553
+ },
1554
+ );
1461
1555
  // rendered.rendered is the custom string the override produced.
1462
1556
  ```
1463
1557
 
@@ -1490,8 +1584,12 @@ assertRegisteredExporter(activation.registrations, {
1490
1584
  exporter: "jsonl",
1491
1585
  extensionName: "my-ext",
1492
1586
  });
1493
- assertRegisteredSearchProvider(activation.registrations, { provider: "semantic-local" });
1494
- assertRegisteredVectorStoreAdapter(activation.registrations, { adapter: "pinecone" });
1587
+ assertRegisteredSearchProvider(activation.registrations, {
1588
+ provider: "semantic-local",
1589
+ });
1590
+ assertRegisteredVectorStoreAdapter(activation.registrations, {
1591
+ adapter: "pinecone",
1592
+ });
1495
1593
  ```
1496
1594
 
1497
1595
  Use `assertRegisteredVectorStoreAdapter` for packages that call
@@ -1549,7 +1647,10 @@ import {
1549
1647
  } from "@unbrained/pm-cli/sdk/testing";
1550
1648
 
1551
1649
  assertRegisteredCommandOverride(activation.commands, { command: "list" });
1552
- assertRegisteredParserOverride(activation.parsers, { command: "list", extensionName: "my-ext" });
1650
+ assertRegisteredParserOverride(activation.parsers, {
1651
+ command: "list",
1652
+ extensionName: "my-ext",
1653
+ });
1553
1654
  assertRegisteredPreflightOverride(activation.preflight); // preflight overrides are global (no command)
1554
1655
  assertRegisteredRendererOverride(activation.renderers, { format: "toon" });
1555
1656
  ```
@@ -1605,9 +1706,17 @@ export const kanbanProfile = defineProjectProfile({
1605
1706
  summary: "WIP-limited flow with a verifying stage.",
1606
1707
  types: [{ name: "Card", folder: "cards" }],
1607
1708
  statuses: [{ id: "doing", roles: ["active"] }],
1608
- fields: [{ key: "wip_limit", type: "number", commands: ["create", "update"] }],
1709
+ fields: [
1710
+ { key: "wip_limit", type: "number", commands: ["create", "update"] },
1711
+ ],
1609
1712
  workflows: [{ type: "Card", allowed_transitions: [["open", "doing"]] }],
1610
- config: [{ key: "search_provider", value: "bm25", summary: "Offline lexical search." }],
1713
+ config: [
1714
+ {
1715
+ key: "search_provider",
1716
+ value: "bm25",
1717
+ summary: "Offline lexical search.",
1718
+ },
1719
+ ],
1611
1720
  templates: [{ name: "card", options: { type: "Card" } }],
1612
1721
  packages: [{ spec: "templates", reason: "Reusable card shapes." }],
1613
1722
  });
@@ -1629,7 +1738,9 @@ surface to `schema`. Prove a profile registered with `assertRegisteredProfile`:
1629
1738
  ```ts
1630
1739
  import { assertRegisteredProfile } from "@unbrained/pm-cli/sdk/testing";
1631
1740
 
1632
- const { profile } = assertRegisteredProfile(activation.registrations, { profile: "kanban" });
1741
+ const { profile } = assertRegisteredProfile(activation.registrations, {
1742
+ profile: "kanban",
1743
+ });
1633
1744
  // profile is the normalized ProjectProfileDefinition
1634
1745
  ```
1635
1746
 
@@ -1651,11 +1762,21 @@ import {
1651
1762
 
1652
1763
  // Invoke a registered provider's semantic query (or embed / embedBatch /
1653
1764
  // queryExpansion / rerank); the result type follows `operation`.
1654
- const hits = await runRegisteredSearchProviderForTest(activation.registrations, {
1655
- provider: "semantic-local",
1656
- operation: "query",
1657
- context: { query: "calendar", mode: "semantic", tokens: ["calendar"], options: {}, settings, documents },
1658
- });
1765
+ const hits = await runRegisteredSearchProviderForTest(
1766
+ activation.registrations,
1767
+ {
1768
+ provider: "semantic-local",
1769
+ operation: "query",
1770
+ context: {
1771
+ query: "calendar",
1772
+ mode: "semantic",
1773
+ tokens: ["calendar"],
1774
+ options: {},
1775
+ settings,
1776
+ documents,
1777
+ },
1778
+ },
1779
+ );
1659
1780
 
1660
1781
  // Invoke a registered adapter's upsert / query / delete.
1661
1782
  await runRegisteredVectorStoreAdapterForTest(activation.registrations, {
@@ -1711,7 +1832,11 @@ export default defineExtension({
1711
1832
  aliases: ["incident"],
1712
1833
  required_create_fields: ["title", "description", "severity"],
1713
1834
  options: [
1714
- { key: "severity", values: ["critical", "major", "minor"], required: true },
1835
+ {
1836
+ key: "severity",
1837
+ values: ["critical", "major", "minor"],
1838
+ required: true,
1839
+ },
1715
1840
  { key: "service", values: ["api", "web", "worker"] },
1716
1841
  ],
1717
1842
  },
@@ -1810,8 +1935,16 @@ export default defineExtension({
1810
1935
  name: "example-search",
1811
1936
  async query(context) {
1812
1937
  return context.documents
1813
- .filter((doc) => doc.metadata.title?.toLowerCase().includes(context.query.toLowerCase()))
1814
- .map((doc) => ({ id: doc.metadata.id, score: 0.5, matched_fields: ["title"] }));
1938
+ .filter((doc) =>
1939
+ doc.metadata.title
1940
+ ?.toLowerCase()
1941
+ .includes(context.query.toLowerCase()),
1942
+ )
1943
+ .map((doc) => ({
1944
+ id: doc.metadata.id,
1945
+ score: 0.5,
1946
+ matched_fields: ["title"],
1947
+ }));
1815
1948
  },
1816
1949
  });
1817
1950
  },
package/marketplace.json CHANGED
@@ -6,14 +6,14 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.",
9
- "version": "1.4.1"
9
+ "version": "2026.7.12"
10
10
  },
11
11
  "plugins": [
12
12
  {
13
13
  "name": "pm-claude",
14
14
  "source": "./plugins/pm-claude",
15
15
  "description": "Native pm CLI integration for Claude Code — 28 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents, hybrid TUI task tracking, session context injection, and coordination subagents for git-based project management without leaving Claude Code.",
16
- "version": "1.4.1",
16
+ "version": "2026.7.12",
17
17
  "author": {
18
18
  "name": "unbrained",
19
19
  "url": "https://github.com/unbraind/pm-cli"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-cli",
3
- "version": "2026.7.11",
3
+ "version": "2026.7.12",
4
4
  "description": "Git-native project management CLI for humans and agents.",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@11.10.0",
@@ -91,8 +91,9 @@
91
91
  "smoke:external-packages": "node scripts/smoke-external-packages.mjs",
92
92
  "smoke:codex-plugin": "node scripts/smoke-codex-plugin-mcp.mjs",
93
93
  "smoke:claude-plugin": "node scripts/smoke-claude-plugin.mjs",
94
- "version:check": "node scripts/release-version.mjs check",
94
+ "version:check": "node scripts/release-version.mjs check && node scripts/sync-versions.mjs check",
95
95
  "version:next": "node scripts/release-version.mjs next",
96
+ "version:sync": "node scripts/sync-versions.mjs apply",
96
97
  "changelog:pm:install": "node dist/cli.js install npm:pm-changelog --project",
97
98
  "changelog:pm": "pnpm changelog:pm:install && node dist/cli.js changelog generate --output CHANGELOG.md --title \"Changelog\" --mode replace --all-release-tags --status closed --item-url-base https://github.com/unbraind/pm-cli/blob/main/.agents/pm",
98
99
  "changelog:pm:check": "pnpm changelog:pm:install && node dist/cli.js changelog generate --output CHANGELOG.md --title \"Changelog\" --mode replace --all-release-tags --status closed --item-url-base https://github.com/unbraind/pm-cli/blob/main/.agents/pm --check",
@@ -1,3 +1,4 @@
1
+ /** @module packages/pm-beads/extensions/beads/runtime-loader */
1
2
  import { existsSync } from "node:fs";
2
3
  import path from "node:path";
3
4
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -11,6 +12,7 @@ const CURRENT_EXTENSION_ROOT = path.dirname(fileURLToPath(import.meta.url));
11
12
  const EXTENSION_NAME = "beads";
12
13
  const PACKAGE_NAME = "pm-beads";
13
14
  const DIAGNOSTIC_NAME = "beads";
15
+ /** Runtime module exports loaded from the installed package or co-located extension. */
14
16
  export type PackageRuntimeModule = Record<string, unknown>;
15
17
 
16
18
  function isRecord(value: unknown): value is Record<string, unknown> {
@@ -94,6 +96,7 @@ async function tryRuntime(modulePath: string, attempted: string[]): Promise<Pack
94
96
  }
95
97
  }
96
98
 
99
+ /** Resolve and load the first usable packaged runtime module. */
97
100
  export async function loadPackageRuntimeModule(): Promise<PackageRuntimeModule> {
98
101
  const attempted: string[] = [];
99
102
  for (const modulePath of [...resolvePackageRootCandidates().flatMap(runtimePaths), path.join(CURRENT_EXTENSION_ROOT, "runtime.ts")]) {