@unbrained/pm-cli 2026.6.10 → 2026.6.11

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 (368) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +16 -0
  3. package/README.md +1 -1
  4. package/dist/cli/bootstrap-args.d.ts +11 -0
  5. package/dist/cli/bootstrap-args.js +88 -4
  6. package/dist/cli/bootstrap-args.js.map +1 -1
  7. package/dist/cli/commands/contracts.d.ts +2 -0
  8. package/dist/cli/commands/contracts.js +9 -2
  9. package/dist/cli/commands/contracts.js.map +1 -1
  10. package/dist/cli/error-guidance.d.ts +8 -0
  11. package/dist/cli/error-guidance.js +102 -2
  12. package/dist/cli/error-guidance.js.map +1 -1
  13. package/dist/cli-bundle/chunks/{activity-W6TS5F2L.js → activity-XADJOG6G.js} +11 -11
  14. package/dist/cli-bundle/chunks/activity-XZIUPGZH.js +16 -0
  15. package/dist/cli-bundle/chunks/{aggregate-UK2WJ4Z3.js → aggregate-6OTS3AOO.js} +10 -10
  16. package/dist/cli-bundle/chunks/{aggregate-NNJLKGEK.js → aggregate-OD36DJU5.js} +10 -10
  17. package/dist/cli-bundle/chunks/{append-DHGTLUZW.js → append-JYWO4P7W.js} +8 -8
  18. package/dist/cli-bundle/chunks/{append-7BS36Z2L.js → append-KG55G7S3.js} +8 -8
  19. package/dist/cli-bundle/chunks/{chunk-XRE4CTNP.js → chunk-3KLPFWZ4.js} +6 -6
  20. package/dist/cli-bundle/chunks/{chunk-WWEFBBVF.js → chunk-3SLOMKCJ.js} +12 -12
  21. package/dist/cli-bundle/chunks/{chunk-WSWOQP3Z.js → chunk-4HFU4UO2.js} +3 -3
  22. package/dist/cli-bundle/chunks/{chunk-UNH3KSHG.js → chunk-4JCSYR6F.js} +3 -3
  23. package/dist/cli-bundle/chunks/{chunk-73PSHEMT.js → chunk-4YFAGDRH.js} +8 -8
  24. package/dist/cli-bundle/chunks/{chunk-7GYMMDDW.js → chunk-5SCT2JCT.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-Q6PSD5DZ.js → chunk-73ZPG2I3.js} +3 -3
  26. package/dist/cli-bundle/chunks/{chunk-CTW7QAHM.js → chunk-7IYFN5R7.js} +3 -3
  27. package/dist/cli-bundle/chunks/{chunk-QGIWURY3.js → chunk-7RIT3OCD.js} +12 -12
  28. package/dist/cli-bundle/chunks/{chunk-OSGWBWLK.js → chunk-7UGSRQCL.js} +5 -5
  29. package/dist/cli-bundle/chunks/{chunk-WNMRICXH.js → chunk-A6LXQFO7.js} +4 -3
  30. package/dist/cli-bundle/chunks/chunk-A6LXQFO7.js.map +1 -0
  31. package/dist/cli-bundle/chunks/{chunk-UDWUDUJI.js → chunk-ATEES5SX.js} +2 -2
  32. package/dist/cli-bundle/chunks/{chunk-2MKBPWMK.js → chunk-AVGHVVF7.js} +3 -3
  33. package/dist/cli-bundle/chunks/{chunk-A6XVYNQJ.js → chunk-B65UUCGQ.js} +5 -5
  34. package/dist/cli-bundle/chunks/{chunk-344GDQTH.js → chunk-CCX4RSYZ.js} +2 -2
  35. package/dist/cli-bundle/chunks/{chunk-6KQS23TX.js → chunk-CW6E4NAT.js} +8 -8
  36. package/dist/cli-bundle/chunks/{chunk-K45NAJV2.js → chunk-DY6C42S6.js} +9 -9
  37. package/dist/cli-bundle/chunks/{chunk-GP6SHEAI.js → chunk-E5DUIJA4.js} +5 -5
  38. package/dist/cli-bundle/chunks/{chunk-ANVZCNL5.js → chunk-ESANVZF4.js} +3 -3
  39. package/dist/cli-bundle/chunks/{chunk-6OSG3EMX.js → chunk-EWFY7SLA.js} +8 -8
  40. package/dist/cli-bundle/chunks/{chunk-DMDEC4QP.js → chunk-F75JSIOZ.js} +6 -6
  41. package/dist/cli-bundle/chunks/{chunk-TALBUVWF.js → chunk-FDH2X65L.js} +2 -2
  42. package/dist/cli-bundle/chunks/{chunk-QJ2OIEOC.js → chunk-FXRU333M.js} +2 -2
  43. package/dist/cli-bundle/chunks/{chunk-OQGJSCZZ.js → chunk-FY4SPXSC.js} +3 -2
  44. package/dist/cli-bundle/chunks/chunk-FY4SPXSC.js.map +7 -0
  45. package/dist/cli-bundle/chunks/{chunk-TZLGCTA5.js → chunk-GKIZW7SM.js} +3 -3
  46. package/dist/cli-bundle/chunks/{chunk-UMWF6ZAS.js → chunk-GWZSYR6X.js} +2 -2
  47. package/dist/cli-bundle/chunks/{chunk-KHBRV5JU.js → chunk-HGLC63AU.js} +8 -8
  48. package/dist/cli-bundle/chunks/{chunk-CMEHZD6G.js → chunk-HHHJ2GI3.js} +8 -8
  49. package/dist/cli-bundle/chunks/{chunk-MF6KSSMF.js → chunk-HI7STVF2.js} +6 -6
  50. package/dist/cli-bundle/chunks/{chunk-IEQ3N7WP.js → chunk-I2IJY2NL.js} +2 -2
  51. package/dist/cli-bundle/chunks/{chunk-O64EYNHF.js → chunk-I53JBTJW.js} +6 -6
  52. package/dist/cli-bundle/chunks/{chunk-K7SXBA75.js → chunk-I7NYDZDV.js} +2 -2
  53. package/dist/cli-bundle/chunks/{chunk-WBU257Z4.js → chunk-IGVJRZ6H.js} +8 -8
  54. package/dist/cli-bundle/chunks/{chunk-KRZQGRVL.js → chunk-IH4MBKK7.js} +5 -5
  55. package/dist/cli-bundle/chunks/{chunk-ZH7C7ZVX.js → chunk-IKOH24GZ.js} +12 -12
  56. package/dist/cli-bundle/chunks/{chunk-7TW64BS5.js → chunk-IUKD4W6Z.js} +2 -2
  57. package/dist/cli-bundle/chunks/{chunk-XH6RA5A5.js → chunk-J3GD64J2.js} +12 -12
  58. package/dist/cli-bundle/chunks/{chunk-OVNSQHDG.js → chunk-KWAXVAXX.js} +4 -4
  59. package/dist/cli-bundle/chunks/{chunk-XSCGU4WT.js → chunk-LCSCXBGT.js} +4 -4
  60. package/dist/cli-bundle/chunks/{chunk-6ADVKPVV.js → chunk-OASDW5UI.js} +7 -7
  61. package/dist/cli-bundle/chunks/{chunk-EIS32UA4.js → chunk-OLKBSY4N.js} +2 -2
  62. package/dist/cli-bundle/chunks/{chunk-GF5XIBUH.js → chunk-P2PSODAQ.js} +2 -2
  63. package/dist/cli-bundle/chunks/{chunk-X3IPJU2O.js → chunk-P5BJOMBB.js} +9 -9
  64. package/dist/cli-bundle/chunks/{chunk-LYL32FT6.js → chunk-P5U5EOMA.js} +3 -3
  65. package/dist/cli-bundle/chunks/{chunk-DTRIVUTN.js → chunk-PSD7F7DX.js} +5 -5
  66. package/dist/cli-bundle/chunks/{chunk-TV6FZGVK.js → chunk-QJMGRZO2.js} +3 -3
  67. package/dist/cli-bundle/chunks/{chunk-KMMUDSSB.js → chunk-QKW5D45B.js} +5 -5
  68. package/dist/cli-bundle/chunks/{chunk-4H2NDEGJ.js → chunk-QNJSITCX.js} +7 -7
  69. package/dist/cli-bundle/chunks/{chunk-VSS3CSTF.js → chunk-RXAP6JL5.js} +9 -9
  70. package/dist/cli-bundle/chunks/{chunk-3VTWCBXL.js → chunk-S26FESD4.js} +3 -3
  71. package/dist/cli-bundle/chunks/{chunk-DEYNERFX.js → chunk-S2ZLDYGS.js} +4 -4
  72. package/dist/cli-bundle/chunks/{chunk-F2PVV7IX.js → chunk-SXKNJPQ7.js} +3 -3
  73. package/dist/cli-bundle/chunks/{chunk-5OMABP7I.js → chunk-TK5VZFHY.js} +7 -7
  74. package/dist/cli-bundle/chunks/{chunk-UY26RIBR.js → chunk-TNAP7EJX.js} +2 -2
  75. package/dist/cli-bundle/chunks/{chunk-EAQLLID6.js → chunk-UOO6BYIA.js} +4 -4
  76. package/dist/cli-bundle/chunks/{chunk-SNASEDXB.js → chunk-UUWGCWBU.js} +3 -3
  77. package/dist/cli-bundle/chunks/{chunk-6N46IM44.js → chunk-VAOUX6TK.js} +2 -2
  78. package/dist/cli-bundle/chunks/{chunk-X5YC5DZM.js → chunk-VFUZV5EB.js} +5 -5
  79. package/dist/cli-bundle/chunks/{chunk-I2FM2SMO.js → chunk-VPEAS7PS.js} +2 -2
  80. package/dist/cli-bundle/chunks/{chunk-7DUVDW7C.js → chunk-VSRZRLG3.js} +3 -3
  81. package/dist/cli-bundle/chunks/{chunk-PYULT32I.js → chunk-WUNFKP7M.js} +2 -2
  82. package/dist/cli-bundle/chunks/{chunk-LUJQJR7G.js → chunk-XJDGS74Y.js} +5 -5
  83. package/dist/cli-bundle/chunks/{chunk-TXWMLDMG.js → chunk-XMBI6TNW.js} +4 -4
  84. package/dist/cli-bundle/chunks/{chunk-4CYHWHZU.js → chunk-XTKJSVWH.js} +2 -2
  85. package/dist/cli-bundle/chunks/{chunk-T6QLB34N.js → chunk-XUC4C4PT.js} +3 -3
  86. package/dist/cli-bundle/chunks/{chunk-OROMGSBP.js → chunk-Y3YKK7CY.js} +2 -2
  87. package/dist/cli-bundle/chunks/{chunk-D6JZBUZ6.js → chunk-YW6Q3RYZ.js} +7 -7
  88. package/dist/cli-bundle/chunks/{chunk-GRHPU6EM.js → chunk-ZLMIWZUG.js} +2 -2
  89. package/dist/cli-bundle/chunks/{chunk-5HH6QRH5.js → chunk-ZMW77VWV.js} +9 -9
  90. package/dist/cli-bundle/chunks/{chunk-BE5G7HEL.js → chunk-ZYNJNPYD.js} +4 -4
  91. package/dist/cli-bundle/chunks/{claim-3TY5LE54.js → claim-2RDYMCTP.js} +10 -10
  92. package/dist/cli-bundle/chunks/{claim-LM4YY6QQ.js → claim-MJ7DZFC3.js} +10 -10
  93. package/dist/cli-bundle/chunks/close-4FMAPEMY.js +13 -0
  94. package/dist/cli-bundle/chunks/{close-CSD4LEMT.js → close-XLEKIQSW.js} +8 -8
  95. package/dist/cli-bundle/chunks/{close-many-B5SHDX6W.js → close-many-AOD4HSAZ.js} +15 -15
  96. package/dist/cli-bundle/chunks/{close-many-WRXB5KVY.js → close-many-XKAQY5CQ.js} +15 -15
  97. package/dist/cli-bundle/chunks/{comments-BDDEK3VW.js → comments-B4RWWDJT.js} +10 -10
  98. package/dist/cli-bundle/chunks/{comments-A5ALOYTG.js → comments-RN5TG4ZN.js} +10 -10
  99. package/dist/cli-bundle/chunks/{config-W2NHDNQT.js → config-3JXJ3XZ7.js} +8 -8
  100. package/dist/cli-bundle/chunks/{config-YUYBMJOW.js → config-FZ4UDC4B.js} +8 -8
  101. package/dist/cli-bundle/chunks/{context-LRJ74NSU.js → context-L36PIN35.js} +13 -13
  102. package/dist/cli-bundle/chunks/{context-R2QLOJCK.js → context-QBPO3BFM.js} +13 -13
  103. package/dist/cli-bundle/chunks/{contracts-HJHR4NCD.js → contracts-3NKWYKKU.js} +309 -6
  104. package/dist/cli-bundle/chunks/contracts-3NKWYKKU.js.map +1 -0
  105. package/dist/cli-bundle/chunks/{contracts-47X7RYUF.js → contracts-MIXBWJIB.js} +315 -5
  106. package/dist/cli-bundle/chunks/contracts-MIXBWJIB.js.map +7 -0
  107. package/dist/cli-bundle/chunks/{copy-P4UVYZ7M.js → copy-ALU5WMHA.js} +7 -7
  108. package/dist/cli-bundle/chunks/{copy-B7HFOWFB.js → copy-FWIVTLBO.js} +7 -7
  109. package/dist/cli-bundle/chunks/{create-5ERJF64D.js → create-IFA26O2I.js} +13 -13
  110. package/dist/cli-bundle/chunks/create-JVXYHYH4.js +27 -0
  111. package/dist/cli-bundle/chunks/{delete-LX3LGBCH.js → delete-IYTIYAJS.js} +7 -7
  112. package/dist/cli-bundle/chunks/{delete-S3WVK6LP.js → delete-Y2SGJBGY.js} +7 -7
  113. package/dist/cli-bundle/chunks/{deps-YSM4LZQD.js → deps-6TSPOSGU.js} +7 -7
  114. package/dist/cli-bundle/chunks/{deps-GWSNH7OZ.js → deps-CZ4PTVXU.js} +7 -7
  115. package/dist/cli-bundle/chunks/{docs-TG6JMVMY.js → docs-5WMBVQT2.js} +9 -9
  116. package/dist/cli-bundle/chunks/{docs-7RYFBHQD.js → docs-MB53UJAJ.js} +9 -9
  117. package/dist/cli-bundle/chunks/{extension-R3LUKMX7.js → extension-Q34OEWO5.js} +5 -5
  118. package/dist/cli-bundle/chunks/{extension-VNMRKIHI.js → extension-WH2FOIOZ.js} +5 -5
  119. package/dist/cli-bundle/chunks/{files-QB3EYPMO.js → files-DLB5LJEP.js} +9 -9
  120. package/dist/cli-bundle/chunks/{files-KAKU57OT.js → files-GVMNVLCB.js} +9 -9
  121. package/dist/cli-bundle/chunks/{gc-KNUPLPSW.js → gc-2WEPW6D6.js} +3 -3
  122. package/dist/cli-bundle/chunks/{gc-B747VM4M.js → gc-4Z3IKHAZ.js} +3 -3
  123. package/dist/cli-bundle/chunks/{get-GMGLIQ5I.js → get-PCHS7RA6.js} +11 -11
  124. package/dist/cli-bundle/chunks/{get-SBL6NHYQ.js → get-QARTE6BL.js} +11 -11
  125. package/dist/cli-bundle/chunks/{health-IG43Z4KL.js → health-4ZYB3IYQ.js} +13 -13
  126. package/dist/cli-bundle/chunks/{health-WWZJ5KJS.js → health-YO5LRWN4.js} +13 -13
  127. package/dist/cli-bundle/chunks/{history-XCWRXBXC.js → history-7WUAEWHW.js} +10 -10
  128. package/dist/cli-bundle/chunks/history-L2FQFRTU.js +20 -0
  129. package/dist/cli-bundle/chunks/{history-compact-KICKUCR7.js → history-compact-3EJ3L2O7.js} +11 -11
  130. package/dist/cli-bundle/chunks/{history-compact-IDH7E7VN.js → history-compact-LW27IPFK.js} +11 -11
  131. package/dist/cli-bundle/chunks/{history-redact-JJWH3QWK.js → history-redact-G72A4EJ4.js} +11 -11
  132. package/dist/cli-bundle/chunks/history-redact-QWQCX5DZ.js +19 -0
  133. package/dist/cli-bundle/chunks/{history-repair-N5HXKJOI.js → history-repair-KVPFJKOS.js} +11 -11
  134. package/dist/cli-bundle/chunks/{history-repair-7HWBZKXN.js → history-repair-RUGKD3YR.js} +11 -11
  135. package/dist/cli-bundle/chunks/init-4BKRHGWW.js +17 -0
  136. package/dist/cli-bundle/chunks/{init-OQA3TWIS.js → init-S5WEGUJY.js} +9 -9
  137. package/dist/cli-bundle/chunks/{learnings-L7VQUSVI.js → learnings-HQXSSKZ5.js} +10 -10
  138. package/dist/cli-bundle/chunks/{learnings-Z4GAIZQ5.js → learnings-XK3P4ZDR.js} +10 -10
  139. package/dist/cli-bundle/chunks/{list-W5ROBC5U.js → list-6CL3XFT6.js} +10 -10
  140. package/dist/cli-bundle/chunks/list-BYNN4ZEO.js +19 -0
  141. package/dist/cli-bundle/chunks/{notes-JJDOEDFK.js → notes-5T6P7C5V.js} +10 -10
  142. package/dist/cli-bundle/chunks/{notes-SDCK7BEN.js → notes-U5FZCSBT.js} +10 -10
  143. package/dist/cli-bundle/chunks/{plan-W2B5RYR3.js → plan-FQLMJRLZ.js} +13 -13
  144. package/dist/cli-bundle/chunks/{plan-H5HYHMBB.js → plan-VNUG3WZZ.js} +13 -13
  145. package/dist/cli-bundle/chunks/{register-list-query-V4S23735.js → register-list-query-NPE3ECJQ.js} +18 -18
  146. package/dist/cli-bundle/chunks/{register-list-query-QGRFMDWA.js → register-list-query-VHDXWEPP.js} +18 -18
  147. package/dist/cli-bundle/chunks/{register-mutation-I57PLUHA.js → register-mutation-DG53FCBV.js} +32 -32
  148. package/dist/cli-bundle/chunks/{register-mutation-ZPZNJXSA.js → register-mutation-EAYNLGOS.js} +32 -32
  149. package/dist/cli-bundle/chunks/{register-operations-KAMLXAF5.js → register-operations-AM6KTWB6.js} +30 -30
  150. package/dist/cli-bundle/chunks/{register-operations-YEN4YEZ2.js → register-operations-FWFE64JG.js} +30 -30
  151. package/dist/cli-bundle/chunks/{register-setup-WLFL3OUF.js → register-setup-G4QYI3RX.js} +15 -15
  152. package/dist/cli-bundle/chunks/{register-setup-BZ3TNE3G.js → register-setup-IKX5524L.js} +15 -15
  153. package/dist/cli-bundle/chunks/restore-CHIOQAQL.js +17 -0
  154. package/dist/cli-bundle/chunks/{restore-RGFSPG4K.js → restore-M6AFHMV4.js} +11 -11
  155. package/dist/cli-bundle/chunks/{schema-CCDU3RLC.js → schema-76HDZJCC.js} +8 -8
  156. package/dist/cli-bundle/chunks/{schema-KZASL323.js → schema-AINZ2IMM.js} +8 -8
  157. package/dist/cli-bundle/chunks/{search-7KSOLI2E.js → search-JMLFQEPJ.js} +10 -10
  158. package/dist/cli-bundle/chunks/{search-DTL7CO22.js → search-NL3TSCYB.js} +10 -10
  159. package/dist/cli-bundle/chunks/{stats-QNV7B2CE.js → stats-BKXCBIGT.js} +7 -7
  160. package/dist/cli-bundle/chunks/{stats-IOXQMGI6.js → stats-UBD56TGK.js} +7 -7
  161. package/dist/cli-bundle/chunks/{telemetry-NHR5RFXT.js → telemetry-N454RHG5.js} +4 -4
  162. package/dist/cli-bundle/chunks/{telemetry-IV5C6JOM.js → telemetry-ZJXK3H7X.js} +4 -4
  163. package/dist/cli-bundle/chunks/{test-PIL2CEEB.js → test-BQAKIXAT.js} +14 -14
  164. package/dist/cli-bundle/chunks/test-O74JFUH5.js +32 -0
  165. package/dist/cli-bundle/chunks/{test-all-MFN4MYCV.js → test-all-7LV3I6S5.js} +14 -14
  166. package/dist/cli-bundle/chunks/{test-all-GRLYHBNP.js → test-all-TDYCCBA4.js} +14 -14
  167. package/dist/cli-bundle/chunks/{test-runs-7WCSC3TY.js → test-runs-E64M6XS3.js} +5 -5
  168. package/dist/cli-bundle/chunks/{test-runs-7LRFWWCA.js → test-runs-LXZLULCI.js} +5 -5
  169. package/dist/cli-bundle/chunks/update-2EVXOC7V.js +21 -0
  170. package/dist/cli-bundle/chunks/update-5A2B6QYB.js +25 -0
  171. package/dist/cli-bundle/chunks/{update-many-LOTAYUTN.js → update-many-TUGU5YXQ.js} +22 -22
  172. package/dist/cli-bundle/chunks/{update-many-UYMTVF42.js → update-many-V4LA3C4H.js} +22 -22
  173. package/dist/cli-bundle/chunks/{upgrade-ZZSC7CLV.js → upgrade-37F7JKES.js} +5 -5
  174. package/dist/cli-bundle/chunks/{upgrade-LT2MLLPS.js → upgrade-L32JA4TZ.js} +5 -5
  175. package/dist/cli-bundle/chunks/{validate-IQIQSKUX.js → validate-EQTT6WVX.js} +16 -16
  176. package/dist/cli-bundle/chunks/{validate-3XRORNMP.js → validate-XN4I4DPL.js} +16 -16
  177. package/dist/cli-bundle/main.js +162 -21
  178. package/dist/cli-bundle/main.js.map +2 -2
  179. package/dist/core/output/query-summary.d.ts +31 -0
  180. package/dist/core/output/query-summary.js +62 -0
  181. package/dist/core/output/query-summary.js.map +1 -0
  182. package/dist/core/shared/constants.js +3 -2
  183. package/dist/core/shared/constants.js.map +1 -1
  184. package/dist/mcp/server.js +35 -260
  185. package/dist/mcp/server.js.map +1 -1
  186. package/dist/mcp/tool-definitions.d.ts +27 -0
  187. package/dist/mcp/tool-definitions.js +330 -0
  188. package/dist/mcp/tool-definitions.js.map +1 -0
  189. package/docs/AGENT_GUIDE.md +1 -1
  190. package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
  191. package/docs/COMMANDS.md +2 -1
  192. package/marketplace.json +1 -1
  193. package/package.json +1 -1
  194. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  195. package/plugins/pm-claude/README.md +7 -3
  196. package/plugins/pm-claude/commands/pm-init.md +1 -1
  197. package/plugins/pm-codex/README.md +2 -2
  198. package/dist/cli-bundle/chunks/activity-5QLX6DHN.js +0 -16
  199. package/dist/cli-bundle/chunks/chunk-OQGJSCZZ.js.map +0 -7
  200. package/dist/cli-bundle/chunks/chunk-WNMRICXH.js.map +0 -1
  201. package/dist/cli-bundle/chunks/close-SIQCDOBR.js +0 -13
  202. package/dist/cli-bundle/chunks/contracts-47X7RYUF.js.map +0 -7
  203. package/dist/cli-bundle/chunks/contracts-HJHR4NCD.js.map +0 -1
  204. package/dist/cli-bundle/chunks/create-TXNRPS4K.js +0 -27
  205. package/dist/cli-bundle/chunks/history-6UKSZTRT.js +0 -20
  206. package/dist/cli-bundle/chunks/history-redact-HKYBTK6X.js +0 -19
  207. package/dist/cli-bundle/chunks/init-27JLDUO2.js +0 -17
  208. package/dist/cli-bundle/chunks/list-6U3CJVXS.js +0 -19
  209. package/dist/cli-bundle/chunks/restore-GNI2W5CN.js +0 -17
  210. package/dist/cli-bundle/chunks/test-4Z37CXW4.js +0 -32
  211. package/dist/cli-bundle/chunks/update-I4G34LKJ.js +0 -21
  212. package/dist/cli-bundle/chunks/update-VI5DBZ3G.js +0 -25
  213. /package/dist/cli-bundle/chunks/{activity-W6TS5F2L.js.map → activity-XADJOG6G.js.map} +0 -0
  214. /package/dist/cli-bundle/chunks/{activity-5QLX6DHN.js.map → activity-XZIUPGZH.js.map} +0 -0
  215. /package/dist/cli-bundle/chunks/{aggregate-UK2WJ4Z3.js.map → aggregate-6OTS3AOO.js.map} +0 -0
  216. /package/dist/cli-bundle/chunks/{aggregate-NNJLKGEK.js.map → aggregate-OD36DJU5.js.map} +0 -0
  217. /package/dist/cli-bundle/chunks/{append-DHGTLUZW.js.map → append-JYWO4P7W.js.map} +0 -0
  218. /package/dist/cli-bundle/chunks/{append-7BS36Z2L.js.map → append-KG55G7S3.js.map} +0 -0
  219. /package/dist/cli-bundle/chunks/{chunk-XRE4CTNP.js.map → chunk-3KLPFWZ4.js.map} +0 -0
  220. /package/dist/cli-bundle/chunks/{chunk-WWEFBBVF.js.map → chunk-3SLOMKCJ.js.map} +0 -0
  221. /package/dist/cli-bundle/chunks/{chunk-WSWOQP3Z.js.map → chunk-4HFU4UO2.js.map} +0 -0
  222. /package/dist/cli-bundle/chunks/{chunk-UNH3KSHG.js.map → chunk-4JCSYR6F.js.map} +0 -0
  223. /package/dist/cli-bundle/chunks/{chunk-73PSHEMT.js.map → chunk-4YFAGDRH.js.map} +0 -0
  224. /package/dist/cli-bundle/chunks/{chunk-7GYMMDDW.js.map → chunk-5SCT2JCT.js.map} +0 -0
  225. /package/dist/cli-bundle/chunks/{chunk-Q6PSD5DZ.js.map → chunk-73ZPG2I3.js.map} +0 -0
  226. /package/dist/cli-bundle/chunks/{chunk-CTW7QAHM.js.map → chunk-7IYFN5R7.js.map} +0 -0
  227. /package/dist/cli-bundle/chunks/{chunk-QGIWURY3.js.map → chunk-7RIT3OCD.js.map} +0 -0
  228. /package/dist/cli-bundle/chunks/{chunk-OSGWBWLK.js.map → chunk-7UGSRQCL.js.map} +0 -0
  229. /package/dist/cli-bundle/chunks/{chunk-UDWUDUJI.js.map → chunk-ATEES5SX.js.map} +0 -0
  230. /package/dist/cli-bundle/chunks/{chunk-2MKBPWMK.js.map → chunk-AVGHVVF7.js.map} +0 -0
  231. /package/dist/cli-bundle/chunks/{chunk-A6XVYNQJ.js.map → chunk-B65UUCGQ.js.map} +0 -0
  232. /package/dist/cli-bundle/chunks/{chunk-344GDQTH.js.map → chunk-CCX4RSYZ.js.map} +0 -0
  233. /package/dist/cli-bundle/chunks/{chunk-6KQS23TX.js.map → chunk-CW6E4NAT.js.map} +0 -0
  234. /package/dist/cli-bundle/chunks/{chunk-K45NAJV2.js.map → chunk-DY6C42S6.js.map} +0 -0
  235. /package/dist/cli-bundle/chunks/{chunk-GP6SHEAI.js.map → chunk-E5DUIJA4.js.map} +0 -0
  236. /package/dist/cli-bundle/chunks/{chunk-ANVZCNL5.js.map → chunk-ESANVZF4.js.map} +0 -0
  237. /package/dist/cli-bundle/chunks/{chunk-6OSG3EMX.js.map → chunk-EWFY7SLA.js.map} +0 -0
  238. /package/dist/cli-bundle/chunks/{chunk-DMDEC4QP.js.map → chunk-F75JSIOZ.js.map} +0 -0
  239. /package/dist/cli-bundle/chunks/{chunk-TALBUVWF.js.map → chunk-FDH2X65L.js.map} +0 -0
  240. /package/dist/cli-bundle/chunks/{chunk-QJ2OIEOC.js.map → chunk-FXRU333M.js.map} +0 -0
  241. /package/dist/cli-bundle/chunks/{chunk-TZLGCTA5.js.map → chunk-GKIZW7SM.js.map} +0 -0
  242. /package/dist/cli-bundle/chunks/{chunk-UMWF6ZAS.js.map → chunk-GWZSYR6X.js.map} +0 -0
  243. /package/dist/cli-bundle/chunks/{chunk-KHBRV5JU.js.map → chunk-HGLC63AU.js.map} +0 -0
  244. /package/dist/cli-bundle/chunks/{chunk-CMEHZD6G.js.map → chunk-HHHJ2GI3.js.map} +0 -0
  245. /package/dist/cli-bundle/chunks/{chunk-MF6KSSMF.js.map → chunk-HI7STVF2.js.map} +0 -0
  246. /package/dist/cli-bundle/chunks/{chunk-IEQ3N7WP.js.map → chunk-I2IJY2NL.js.map} +0 -0
  247. /package/dist/cli-bundle/chunks/{chunk-O64EYNHF.js.map → chunk-I53JBTJW.js.map} +0 -0
  248. /package/dist/cli-bundle/chunks/{chunk-K7SXBA75.js.map → chunk-I7NYDZDV.js.map} +0 -0
  249. /package/dist/cli-bundle/chunks/{chunk-WBU257Z4.js.map → chunk-IGVJRZ6H.js.map} +0 -0
  250. /package/dist/cli-bundle/chunks/{chunk-KRZQGRVL.js.map → chunk-IH4MBKK7.js.map} +0 -0
  251. /package/dist/cli-bundle/chunks/{chunk-ZH7C7ZVX.js.map → chunk-IKOH24GZ.js.map} +0 -0
  252. /package/dist/cli-bundle/chunks/{chunk-7TW64BS5.js.map → chunk-IUKD4W6Z.js.map} +0 -0
  253. /package/dist/cli-bundle/chunks/{chunk-XH6RA5A5.js.map → chunk-J3GD64J2.js.map} +0 -0
  254. /package/dist/cli-bundle/chunks/{chunk-OVNSQHDG.js.map → chunk-KWAXVAXX.js.map} +0 -0
  255. /package/dist/cli-bundle/chunks/{chunk-XSCGU4WT.js.map → chunk-LCSCXBGT.js.map} +0 -0
  256. /package/dist/cli-bundle/chunks/{chunk-6ADVKPVV.js.map → chunk-OASDW5UI.js.map} +0 -0
  257. /package/dist/cli-bundle/chunks/{chunk-EIS32UA4.js.map → chunk-OLKBSY4N.js.map} +0 -0
  258. /package/dist/cli-bundle/chunks/{chunk-GF5XIBUH.js.map → chunk-P2PSODAQ.js.map} +0 -0
  259. /package/dist/cli-bundle/chunks/{chunk-X3IPJU2O.js.map → chunk-P5BJOMBB.js.map} +0 -0
  260. /package/dist/cli-bundle/chunks/{chunk-LYL32FT6.js.map → chunk-P5U5EOMA.js.map} +0 -0
  261. /package/dist/cli-bundle/chunks/{chunk-DTRIVUTN.js.map → chunk-PSD7F7DX.js.map} +0 -0
  262. /package/dist/cli-bundle/chunks/{chunk-TV6FZGVK.js.map → chunk-QJMGRZO2.js.map} +0 -0
  263. /package/dist/cli-bundle/chunks/{chunk-KMMUDSSB.js.map → chunk-QKW5D45B.js.map} +0 -0
  264. /package/dist/cli-bundle/chunks/{chunk-4H2NDEGJ.js.map → chunk-QNJSITCX.js.map} +0 -0
  265. /package/dist/cli-bundle/chunks/{chunk-VSS3CSTF.js.map → chunk-RXAP6JL5.js.map} +0 -0
  266. /package/dist/cli-bundle/chunks/{chunk-3VTWCBXL.js.map → chunk-S26FESD4.js.map} +0 -0
  267. /package/dist/cli-bundle/chunks/{chunk-DEYNERFX.js.map → chunk-S2ZLDYGS.js.map} +0 -0
  268. /package/dist/cli-bundle/chunks/{chunk-F2PVV7IX.js.map → chunk-SXKNJPQ7.js.map} +0 -0
  269. /package/dist/cli-bundle/chunks/{chunk-5OMABP7I.js.map → chunk-TK5VZFHY.js.map} +0 -0
  270. /package/dist/cli-bundle/chunks/{chunk-UY26RIBR.js.map → chunk-TNAP7EJX.js.map} +0 -0
  271. /package/dist/cli-bundle/chunks/{chunk-EAQLLID6.js.map → chunk-UOO6BYIA.js.map} +0 -0
  272. /package/dist/cli-bundle/chunks/{chunk-SNASEDXB.js.map → chunk-UUWGCWBU.js.map} +0 -0
  273. /package/dist/cli-bundle/chunks/{chunk-6N46IM44.js.map → chunk-VAOUX6TK.js.map} +0 -0
  274. /package/dist/cli-bundle/chunks/{chunk-X5YC5DZM.js.map → chunk-VFUZV5EB.js.map} +0 -0
  275. /package/dist/cli-bundle/chunks/{chunk-I2FM2SMO.js.map → chunk-VPEAS7PS.js.map} +0 -0
  276. /package/dist/cli-bundle/chunks/{chunk-7DUVDW7C.js.map → chunk-VSRZRLG3.js.map} +0 -0
  277. /package/dist/cli-bundle/chunks/{chunk-PYULT32I.js.map → chunk-WUNFKP7M.js.map} +0 -0
  278. /package/dist/cli-bundle/chunks/{chunk-LUJQJR7G.js.map → chunk-XJDGS74Y.js.map} +0 -0
  279. /package/dist/cli-bundle/chunks/{chunk-TXWMLDMG.js.map → chunk-XMBI6TNW.js.map} +0 -0
  280. /package/dist/cli-bundle/chunks/{chunk-4CYHWHZU.js.map → chunk-XTKJSVWH.js.map} +0 -0
  281. /package/dist/cli-bundle/chunks/{chunk-T6QLB34N.js.map → chunk-XUC4C4PT.js.map} +0 -0
  282. /package/dist/cli-bundle/chunks/{chunk-OROMGSBP.js.map → chunk-Y3YKK7CY.js.map} +0 -0
  283. /package/dist/cli-bundle/chunks/{chunk-D6JZBUZ6.js.map → chunk-YW6Q3RYZ.js.map} +0 -0
  284. /package/dist/cli-bundle/chunks/{chunk-GRHPU6EM.js.map → chunk-ZLMIWZUG.js.map} +0 -0
  285. /package/dist/cli-bundle/chunks/{chunk-5HH6QRH5.js.map → chunk-ZMW77VWV.js.map} +0 -0
  286. /package/dist/cli-bundle/chunks/{chunk-BE5G7HEL.js.map → chunk-ZYNJNPYD.js.map} +0 -0
  287. /package/dist/cli-bundle/chunks/{claim-3TY5LE54.js.map → claim-2RDYMCTP.js.map} +0 -0
  288. /package/dist/cli-bundle/chunks/{claim-LM4YY6QQ.js.map → claim-MJ7DZFC3.js.map} +0 -0
  289. /package/dist/cli-bundle/chunks/{close-SIQCDOBR.js.map → close-4FMAPEMY.js.map} +0 -0
  290. /package/dist/cli-bundle/chunks/{close-CSD4LEMT.js.map → close-XLEKIQSW.js.map} +0 -0
  291. /package/dist/cli-bundle/chunks/{close-many-B5SHDX6W.js.map → close-many-AOD4HSAZ.js.map} +0 -0
  292. /package/dist/cli-bundle/chunks/{close-many-WRXB5KVY.js.map → close-many-XKAQY5CQ.js.map} +0 -0
  293. /package/dist/cli-bundle/chunks/{comments-BDDEK3VW.js.map → comments-B4RWWDJT.js.map} +0 -0
  294. /package/dist/cli-bundle/chunks/{comments-A5ALOYTG.js.map → comments-RN5TG4ZN.js.map} +0 -0
  295. /package/dist/cli-bundle/chunks/{config-W2NHDNQT.js.map → config-3JXJ3XZ7.js.map} +0 -0
  296. /package/dist/cli-bundle/chunks/{config-YUYBMJOW.js.map → config-FZ4UDC4B.js.map} +0 -0
  297. /package/dist/cli-bundle/chunks/{context-LRJ74NSU.js.map → context-L36PIN35.js.map} +0 -0
  298. /package/dist/cli-bundle/chunks/{context-R2QLOJCK.js.map → context-QBPO3BFM.js.map} +0 -0
  299. /package/dist/cli-bundle/chunks/{copy-P4UVYZ7M.js.map → copy-ALU5WMHA.js.map} +0 -0
  300. /package/dist/cli-bundle/chunks/{copy-B7HFOWFB.js.map → copy-FWIVTLBO.js.map} +0 -0
  301. /package/dist/cli-bundle/chunks/{create-5ERJF64D.js.map → create-IFA26O2I.js.map} +0 -0
  302. /package/dist/cli-bundle/chunks/{create-TXNRPS4K.js.map → create-JVXYHYH4.js.map} +0 -0
  303. /package/dist/cli-bundle/chunks/{delete-LX3LGBCH.js.map → delete-IYTIYAJS.js.map} +0 -0
  304. /package/dist/cli-bundle/chunks/{delete-S3WVK6LP.js.map → delete-Y2SGJBGY.js.map} +0 -0
  305. /package/dist/cli-bundle/chunks/{deps-YSM4LZQD.js.map → deps-6TSPOSGU.js.map} +0 -0
  306. /package/dist/cli-bundle/chunks/{deps-GWSNH7OZ.js.map → deps-CZ4PTVXU.js.map} +0 -0
  307. /package/dist/cli-bundle/chunks/{docs-TG6JMVMY.js.map → docs-5WMBVQT2.js.map} +0 -0
  308. /package/dist/cli-bundle/chunks/{docs-7RYFBHQD.js.map → docs-MB53UJAJ.js.map} +0 -0
  309. /package/dist/cli-bundle/chunks/{extension-R3LUKMX7.js.map → extension-Q34OEWO5.js.map} +0 -0
  310. /package/dist/cli-bundle/chunks/{extension-VNMRKIHI.js.map → extension-WH2FOIOZ.js.map} +0 -0
  311. /package/dist/cli-bundle/chunks/{files-QB3EYPMO.js.map → files-DLB5LJEP.js.map} +0 -0
  312. /package/dist/cli-bundle/chunks/{files-KAKU57OT.js.map → files-GVMNVLCB.js.map} +0 -0
  313. /package/dist/cli-bundle/chunks/{gc-KNUPLPSW.js.map → gc-2WEPW6D6.js.map} +0 -0
  314. /package/dist/cli-bundle/chunks/{gc-B747VM4M.js.map → gc-4Z3IKHAZ.js.map} +0 -0
  315. /package/dist/cli-bundle/chunks/{get-GMGLIQ5I.js.map → get-PCHS7RA6.js.map} +0 -0
  316. /package/dist/cli-bundle/chunks/{get-SBL6NHYQ.js.map → get-QARTE6BL.js.map} +0 -0
  317. /package/dist/cli-bundle/chunks/{health-IG43Z4KL.js.map → health-4ZYB3IYQ.js.map} +0 -0
  318. /package/dist/cli-bundle/chunks/{health-WWZJ5KJS.js.map → health-YO5LRWN4.js.map} +0 -0
  319. /package/dist/cli-bundle/chunks/{history-XCWRXBXC.js.map → history-7WUAEWHW.js.map} +0 -0
  320. /package/dist/cli-bundle/chunks/{history-6UKSZTRT.js.map → history-L2FQFRTU.js.map} +0 -0
  321. /package/dist/cli-bundle/chunks/{history-compact-KICKUCR7.js.map → history-compact-3EJ3L2O7.js.map} +0 -0
  322. /package/dist/cli-bundle/chunks/{history-compact-IDH7E7VN.js.map → history-compact-LW27IPFK.js.map} +0 -0
  323. /package/dist/cli-bundle/chunks/{history-redact-JJWH3QWK.js.map → history-redact-G72A4EJ4.js.map} +0 -0
  324. /package/dist/cli-bundle/chunks/{history-redact-HKYBTK6X.js.map → history-redact-QWQCX5DZ.js.map} +0 -0
  325. /package/dist/cli-bundle/chunks/{history-repair-N5HXKJOI.js.map → history-repair-KVPFJKOS.js.map} +0 -0
  326. /package/dist/cli-bundle/chunks/{history-repair-7HWBZKXN.js.map → history-repair-RUGKD3YR.js.map} +0 -0
  327. /package/dist/cli-bundle/chunks/{init-27JLDUO2.js.map → init-4BKRHGWW.js.map} +0 -0
  328. /package/dist/cli-bundle/chunks/{init-OQA3TWIS.js.map → init-S5WEGUJY.js.map} +0 -0
  329. /package/dist/cli-bundle/chunks/{learnings-L7VQUSVI.js.map → learnings-HQXSSKZ5.js.map} +0 -0
  330. /package/dist/cli-bundle/chunks/{learnings-Z4GAIZQ5.js.map → learnings-XK3P4ZDR.js.map} +0 -0
  331. /package/dist/cli-bundle/chunks/{list-W5ROBC5U.js.map → list-6CL3XFT6.js.map} +0 -0
  332. /package/dist/cli-bundle/chunks/{list-6U3CJVXS.js.map → list-BYNN4ZEO.js.map} +0 -0
  333. /package/dist/cli-bundle/chunks/{notes-JJDOEDFK.js.map → notes-5T6P7C5V.js.map} +0 -0
  334. /package/dist/cli-bundle/chunks/{notes-SDCK7BEN.js.map → notes-U5FZCSBT.js.map} +0 -0
  335. /package/dist/cli-bundle/chunks/{plan-W2B5RYR3.js.map → plan-FQLMJRLZ.js.map} +0 -0
  336. /package/dist/cli-bundle/chunks/{plan-H5HYHMBB.js.map → plan-VNUG3WZZ.js.map} +0 -0
  337. /package/dist/cli-bundle/chunks/{register-list-query-V4S23735.js.map → register-list-query-NPE3ECJQ.js.map} +0 -0
  338. /package/dist/cli-bundle/chunks/{register-list-query-QGRFMDWA.js.map → register-list-query-VHDXWEPP.js.map} +0 -0
  339. /package/dist/cli-bundle/chunks/{register-mutation-I57PLUHA.js.map → register-mutation-DG53FCBV.js.map} +0 -0
  340. /package/dist/cli-bundle/chunks/{register-mutation-ZPZNJXSA.js.map → register-mutation-EAYNLGOS.js.map} +0 -0
  341. /package/dist/cli-bundle/chunks/{register-operations-KAMLXAF5.js.map → register-operations-AM6KTWB6.js.map} +0 -0
  342. /package/dist/cli-bundle/chunks/{register-operations-YEN4YEZ2.js.map → register-operations-FWFE64JG.js.map} +0 -0
  343. /package/dist/cli-bundle/chunks/{register-setup-WLFL3OUF.js.map → register-setup-G4QYI3RX.js.map} +0 -0
  344. /package/dist/cli-bundle/chunks/{register-setup-BZ3TNE3G.js.map → register-setup-IKX5524L.js.map} +0 -0
  345. /package/dist/cli-bundle/chunks/{restore-GNI2W5CN.js.map → restore-CHIOQAQL.js.map} +0 -0
  346. /package/dist/cli-bundle/chunks/{restore-RGFSPG4K.js.map → restore-M6AFHMV4.js.map} +0 -0
  347. /package/dist/cli-bundle/chunks/{schema-CCDU3RLC.js.map → schema-76HDZJCC.js.map} +0 -0
  348. /package/dist/cli-bundle/chunks/{schema-KZASL323.js.map → schema-AINZ2IMM.js.map} +0 -0
  349. /package/dist/cli-bundle/chunks/{search-7KSOLI2E.js.map → search-JMLFQEPJ.js.map} +0 -0
  350. /package/dist/cli-bundle/chunks/{search-DTL7CO22.js.map → search-NL3TSCYB.js.map} +0 -0
  351. /package/dist/cli-bundle/chunks/{stats-QNV7B2CE.js.map → stats-BKXCBIGT.js.map} +0 -0
  352. /package/dist/cli-bundle/chunks/{stats-IOXQMGI6.js.map → stats-UBD56TGK.js.map} +0 -0
  353. /package/dist/cli-bundle/chunks/{telemetry-NHR5RFXT.js.map → telemetry-N454RHG5.js.map} +0 -0
  354. /package/dist/cli-bundle/chunks/{telemetry-IV5C6JOM.js.map → telemetry-ZJXK3H7X.js.map} +0 -0
  355. /package/dist/cli-bundle/chunks/{test-PIL2CEEB.js.map → test-BQAKIXAT.js.map} +0 -0
  356. /package/dist/cli-bundle/chunks/{test-4Z37CXW4.js.map → test-O74JFUH5.js.map} +0 -0
  357. /package/dist/cli-bundle/chunks/{test-all-MFN4MYCV.js.map → test-all-7LV3I6S5.js.map} +0 -0
  358. /package/dist/cli-bundle/chunks/{test-all-GRLYHBNP.js.map → test-all-TDYCCBA4.js.map} +0 -0
  359. /package/dist/cli-bundle/chunks/{test-runs-7WCSC3TY.js.map → test-runs-E64M6XS3.js.map} +0 -0
  360. /package/dist/cli-bundle/chunks/{test-runs-7LRFWWCA.js.map → test-runs-LXZLULCI.js.map} +0 -0
  361. /package/dist/cli-bundle/chunks/{update-I4G34LKJ.js.map → update-2EVXOC7V.js.map} +0 -0
  362. /package/dist/cli-bundle/chunks/{update-VI5DBZ3G.js.map → update-5A2B6QYB.js.map} +0 -0
  363. /package/dist/cli-bundle/chunks/{update-many-LOTAYUTN.js.map → update-many-TUGU5YXQ.js.map} +0 -0
  364. /package/dist/cli-bundle/chunks/{update-many-UYMTVF42.js.map → update-many-V4LA3C4H.js.map} +0 -0
  365. /package/dist/cli-bundle/chunks/{upgrade-ZZSC7CLV.js.map → upgrade-37F7JKES.js.map} +0 -0
  366. /package/dist/cli-bundle/chunks/{upgrade-LT2MLLPS.js.map → upgrade-L32JA4TZ.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{validate-IQIQSKUX.js.map → validate-EQTT6WVX.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{validate-3XRORNMP.js.map → validate-XN4I4DPL.js.map} +0 -0
@@ -0,0 +1,330 @@
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]="6101f461-4390-5960-ae47-ed875ff3ee06")}catch(e){}}();
3
+ import { PM_TOOL_ACTIONS } from "../sdk/cli-contracts/enum-contracts.js";
4
+ import { RUNTIME_STATUS_ROLE_VALUES } from "../types.js";
5
+ const TOOL_SCHEMA_BASE = {
6
+ type: "object",
7
+ properties: {
8
+ cwd: {
9
+ type: "string",
10
+ description: "Workspace directory to run the native pm operation in. Defaults to the MCP server process cwd.",
11
+ },
12
+ path: {
13
+ type: "string",
14
+ description: "Optional pm data root, equivalent to PM_PATH/global --path. Leave unset for real repository tracking.",
15
+ },
16
+ author: {
17
+ type: "string",
18
+ description: "Mutation author. Defaults to PM_AUTHOR or pm settings when supported by the underlying operation.",
19
+ },
20
+ },
21
+ additionalProperties: true,
22
+ };
23
+ const idSchema = {
24
+ type: "string",
25
+ description: "pm item id, for example pm-abc1.",
26
+ };
27
+ // pm-fd8n: derive the pm_run action enumeration from the canonical
28
+ // PM_TOOL_ACTIONS contract instead of a hand-maintained prose list, so the
29
+ // MCP-facing description can never drift from the actual supported actions.
30
+ const PM_RUN_ACTION_DESCRIPTION = `Operation name (one of): ${PM_TOOL_ACTIONS.join(", ")}. ` +
31
+ "Package-owned actions (for example calendar/templates/guide/dedupe-audit/normalize/reindex/comments-audit/completion/test-runs-list/test-runs-status/test-runs-logs/test-runs-stop/test-runs-resume) are available dynamically when installed.";
32
+ const LIST_TOP_LEVEL_OPTION_PROPERTIES = {
33
+ status: { type: "string", description: "Alias for options.status." },
34
+ type: { type: "string", description: "Alias for options.type." },
35
+ tag: { type: "string", description: "Alias for options.tag." },
36
+ priority: { type: "string", description: "Alias for options.priority." },
37
+ limit: { type: ["string", "number"], description: "Alias for options.limit." },
38
+ offset: { type: ["string", "number"], description: "Alias for options.offset." },
39
+ };
40
+ const SEARCH_TOP_LEVEL_OPTION_PROPERTIES = {
41
+ mode: { type: "string", description: "Alias for options.mode." },
42
+ status: { type: "string", description: "Alias for options.status." },
43
+ type: { type: "string", description: "Alias for options.type." },
44
+ tag: { type: "string", description: "Alias for options.tag." },
45
+ priority: { type: "string", description: "Alias for options.priority." },
46
+ limit: { type: ["string", "number"], description: "Alias for options.limit." },
47
+ };
48
+ function objectSchema(properties, required = []) {
49
+ return {
50
+ ...TOOL_SCHEMA_BASE,
51
+ properties: {
52
+ ...TOOL_SCHEMA_BASE.properties,
53
+ ...properties,
54
+ },
55
+ required,
56
+ };
57
+ }
58
+ export const TOOLS = [
59
+ {
60
+ name: "pm_run",
61
+ description: "Run any supported pm operation natively through the pm library. Use this for commands not covered by narrower pm_* tools.",
62
+ inputSchema: objectSchema({
63
+ action: {
64
+ type: "string",
65
+ description: PM_RUN_ACTION_DESCRIPTION,
66
+ },
67
+ id: idSchema,
68
+ query: { type: "string", description: "Search query for action=search." },
69
+ reason: { type: "string", description: "Close reason for action=close." },
70
+ force: { type: "boolean", description: "Force ownership/terminal-state override when supported." },
71
+ // pm-v68d: the schema-specific subcommand enum and add-type/add-status
72
+ // properties migrated to the dedicated pm_schema tool. action=schema
73
+ // still accepts them as passthrough, but agents should prefer pm_schema.
74
+ subcommand: {
75
+ type: "string",
76
+ description: "Subcommand selector for actions that take one (for example telemetry, or schema — prefer the dedicated pm_schema tool for schema operations).",
77
+ },
78
+ options: { type: "object", description: "Underlying pm command options using camelCase keys." },
79
+ fullChangedFields: {
80
+ type: "boolean",
81
+ description: "For mutation actions, return the full changed_fields array instead of the default changed_field_count.",
82
+ },
83
+ idOnly: {
84
+ type: "boolean",
85
+ description: "For single-item mutation actions, return only id and status.",
86
+ },
87
+ }, ["action"]),
88
+ },
89
+ {
90
+ name: "pm_context",
91
+ description: "Return the agent-oriented project context snapshot.",
92
+ inputSchema: objectSchema({ options: { type: "object" } }),
93
+ },
94
+ {
95
+ name: "pm_search",
96
+ description: "Search pm items with keyword, semantic, or hybrid search. " +
97
+ "Defaults to a compact projection for token efficiency. " +
98
+ "Pass options.mode=keyword|semantic|hybrid, options.limit=N to cap hits, " +
99
+ "options.fields='id,title,score' for a custom projection, or options.full=true for full item bodies (can be large). " +
100
+ "The result echoes the applied filters and projection mode in query_summary.",
101
+ inputSchema: objectSchema({ query: { type: "string" }, options: { type: "object" }, ...SEARCH_TOP_LEVEL_OPTION_PROPERTIES }, ["query"]),
102
+ },
103
+ {
104
+ name: "pm_list",
105
+ description: "List pm items with status/type/tag/priority filters. Defaults to compact projection for token efficiency. " +
106
+ "options.status accepts CSV (open,in_progress). " +
107
+ "Pass options.compact=false or options.includeBody=true for full bodies/comments. " +
108
+ "Pass options.brief=true for ultra-terse (id/status/type/title only). " +
109
+ "Pass options.fields='id,title,priority' for custom projection. " +
110
+ "Pass options.limit=N to cap row count. " +
111
+ "The result echoes the applied filters and projection mode in query_summary.",
112
+ inputSchema: objectSchema({ options: { type: "object" }, ...LIST_TOP_LEVEL_OPTION_PROPERTIES }),
113
+ },
114
+ {
115
+ name: "pm_get",
116
+ description: "Read one pm item. Pass options.depth='brief' or options.fields='id,title,status' for low-token inspection.",
117
+ inputSchema: objectSchema({
118
+ id: idSchema,
119
+ options: { type: "object", description: "Get options such as depth=brief|standard|deep|full or fields=id,title,status." },
120
+ }, ["id"]),
121
+ },
122
+ {
123
+ name: "pm_create",
124
+ description: "Create a pm item natively and write pm history. " +
125
+ "Output is compact by default (changed_fields replaced with changed_field_count for token efficiency); pass fullChangedFields=true for the full changed_fields array.",
126
+ inputSchema: objectSchema({
127
+ fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
128
+ allowMissingParent: { type: "boolean", description: "Allow unresolved parent references and emit a validation warning." },
129
+ options: { type: "object", description: "Create options. title and description are required." },
130
+ }, ["options"]),
131
+ },
132
+ {
133
+ name: "pm_copy",
134
+ description: "Copy an existing pm item into a new id while resetting lifecycle fields. " +
135
+ "Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.",
136
+ inputSchema: objectSchema({
137
+ id: idSchema,
138
+ fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
139
+ options: { type: "object", description: "Copy options such as title override, author, and message." },
140
+ }, ["id"]),
141
+ },
142
+ {
143
+ name: "pm_update",
144
+ description: "Update pm item metadata/body/dependencies/log seeds natively. " +
145
+ "Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields delta.",
146
+ inputSchema: objectSchema({
147
+ id: idSchema,
148
+ fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
149
+ options: { type: "object" },
150
+ }, ["id", "options"]),
151
+ },
152
+ {
153
+ name: "pm_append",
154
+ description: "Append markdown text to a pm item body and write pm history. Useful for seeding evidence/log entries before close. " +
155
+ "Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.",
156
+ inputSchema: objectSchema({
157
+ id: idSchema,
158
+ body: {
159
+ type: "string",
160
+ description: "Markdown text to append to the item body. Required here or as options.body.",
161
+ },
162
+ fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
163
+ options: { type: "object", description: "Append options such as body, author, and message." },
164
+ }, ["id"]),
165
+ },
166
+ {
167
+ name: "pm_claim",
168
+ description: "Claim a pm item.",
169
+ inputSchema: objectSchema({ id: idSchema, force: { type: "boolean" }, options: { type: "object" } }, ["id"]),
170
+ },
171
+ {
172
+ name: "pm_release",
173
+ description: "Release a pm item claim.",
174
+ inputSchema: objectSchema({ id: idSchema, force: { type: "boolean" }, options: { type: "object" } }, ["id"]),
175
+ },
176
+ {
177
+ name: "pm_close",
178
+ description: "Close a pm item with optional close reason and optional close validation (reason requirement follows governance settings). " +
179
+ "Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.",
180
+ inputSchema: objectSchema({
181
+ id: idSchema,
182
+ reason: { type: "string", description: "Close reason text when provided or required by governance settings." },
183
+ duplicateOf: { type: "string", description: "Canonical item id when closing this item as a duplicate." },
184
+ fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
185
+ idOnly: { type: "boolean", description: "Return only id and status." },
186
+ options: { type: "object" },
187
+ }, ["id"]),
188
+ },
189
+ {
190
+ name: "pm_comments",
191
+ description: "List or add comments on a pm item. Use options.add to append. " +
192
+ "List calls default to the most recent 20 comments with total_count/has_more metadata for token efficiency. " +
193
+ "Pass options.limit=N to choose a page size, options.limit=0 for summary-only metadata, or options.full=true for full history.",
194
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"]),
195
+ },
196
+ {
197
+ name: "pm_files",
198
+ description: "List, add, remove, audit, or validate linked files for a pm item.",
199
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"]),
200
+ },
201
+ {
202
+ name: "pm_docs",
203
+ description: "List, add, or remove linked docs for a pm item.",
204
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"]),
205
+ },
206
+ {
207
+ name: "pm_notes",
208
+ description: "List or add structured notes on a pm item. Use options.add to append a note; omit it to list existing notes.",
209
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"]),
210
+ },
211
+ {
212
+ name: "pm_learnings",
213
+ description: "List or add learnings on a pm item. Use options.add to capture a learning/insight; omit it to list existing learnings.",
214
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"]),
215
+ },
216
+ {
217
+ name: "pm_deps",
218
+ description: "List, add, or remove dependencies for a pm item. Use options.add to declare a dependency and options.remove to drop one; omit both to list current dependencies.",
219
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"]),
220
+ },
221
+ {
222
+ name: "pm_test",
223
+ description: "List, add, remove, or run linked tests for a pm item.",
224
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"]),
225
+ },
226
+ {
227
+ name: "pm_validate",
228
+ description: "Run pm validation checks.",
229
+ inputSchema: objectSchema({ options: { type: "object" } }),
230
+ },
231
+ {
232
+ name: "pm_health",
233
+ description: "Run pm health diagnostics. Pass options.brief=true for compact low-token details, options.skipIntegrity=true, options.skipDrift=true, options.skipVectors=true for a fast status-only check, or options.full=true for the complete deep check.",
234
+ inputSchema: objectSchema({ options: { type: "object" } }),
235
+ },
236
+ {
237
+ name: "pm_contracts",
238
+ description: "Inspect pm command, flag, schema, and availability contracts.",
239
+ inputSchema: objectSchema({ options: { type: "object" } }),
240
+ },
241
+ {
242
+ name: "pm_schema",
243
+ description: "Inspect or modify the workspace item-type/status schema (pm schema). " +
244
+ "subcommand selects the operation; name carries the item type name (show/add-type/remove-type) or status id (show-status/add-status/remove-status). " +
245
+ "Schema mutations write workspace config files, not item history.",
246
+ inputSchema: objectSchema({
247
+ subcommand: {
248
+ type: "string",
249
+ enum: ["list", "show", "show-status", "add-type", "remove-type", "add-status", "remove-status"],
250
+ description: "Schema subcommand to run.",
251
+ },
252
+ name: {
253
+ type: "string",
254
+ description: "Item type name for show/add-type/remove-type, or status id for show-status/add-status/remove-status. Required for every subcommand except list.",
255
+ },
256
+ description: {
257
+ type: "string",
258
+ description: "Custom item type or status description for add-type/add-status.",
259
+ },
260
+ defaultStatus: { type: "string", description: "Default status for add-type." },
261
+ folder: { type: "string", description: "Storage folder for add-type." },
262
+ alias: {
263
+ type: "array",
264
+ items: { type: "string" },
265
+ description: "Aliases for add-type/add-status.",
266
+ },
267
+ role: {
268
+ type: "array",
269
+ items: { type: "string", enum: [...RUNTIME_STATUS_ROLE_VALUES] },
270
+ description: `Lifecycle roles for add-status: ${RUNTIME_STATUS_ROLE_VALUES.join(", ")}.`,
271
+ },
272
+ order: { type: "number", description: "Display/sort order for add-status." },
273
+ force: { type: "boolean", description: "Override removal guardrails for destructive schema changes when supported." },
274
+ options: { type: "object", description: "Additional schema options using camelCase keys." },
275
+ }, ["subcommand"]),
276
+ },
277
+ {
278
+ name: "pm_config",
279
+ description: "Read or write pm workspace configuration (pm config). " +
280
+ "configAction selects get/set/list/export; key/value address a single setting for get/set. " +
281
+ "scope chooses the project (default) or global settings file.",
282
+ inputSchema: objectSchema({
283
+ configAction: {
284
+ type: "string",
285
+ enum: ["get", "set", "list", "export"],
286
+ description: "Config operation to perform. get/set require key; list/export dump the resolved settings surface.",
287
+ },
288
+ key: {
289
+ type: "string",
290
+ description: "Settings key for get/set, for example governance-require-close-reason, telemetry-tracking, or a nested leaf such as search_provider (dash and underscore variants accepted; configAction=get without a key lists supported keys in the error).",
291
+ },
292
+ value: { type: "string", description: "New value for configAction=set." },
293
+ scope: {
294
+ type: "string",
295
+ enum: ["project", "global"],
296
+ description: "Settings scope to read or write. Defaults to project.",
297
+ },
298
+ options: {
299
+ type: "object",
300
+ description: "Additional config options such as criterion, clearCriteria, format, or policy.",
301
+ },
302
+ }, ["configAction"]),
303
+ },
304
+ {
305
+ name: "pm_plan",
306
+ description: "Run agent-optimized Plan workflows. options.subcommand selects: create|show|add-step|update-step|complete-step|block-step|reorder-step|remove-step|link|unlink|decision|discovery|validation|resume|approve|materialize. Provide id for all non-create subcommands; provide stepRef for step lifecycle subcommands. Plans store agent-readable steps with dependencies, decisions, discoveries, validation, and resume context.",
307
+ inputSchema: objectSchema({
308
+ id: { type: "string", description: "Plan id (required for all subcommands except create)." },
309
+ stepRef: { type: "string", description: "Step id or order for step lifecycle subcommands." },
310
+ reorderTo: { type: "number", description: "New order for reorder-step." },
311
+ options: { type: "object", description: "Plan options including subcommand, stepRef, stepStatus, link, depth, etc." },
312
+ }),
313
+ },
314
+ ];
315
+ export function buildMcpToolContracts() {
316
+ return TOOLS.map((tool) => {
317
+ const schemaRequired = tool.inputSchema["required"];
318
+ const required = Array.isArray(schemaRequired)
319
+ ? schemaRequired.map((entry) => String(entry)).sort((left, right) => left.localeCompare(right))
320
+ : [];
321
+ return {
322
+ name: tool.name,
323
+ description: tool.description,
324
+ required,
325
+ input_schema: tool.inputSchema,
326
+ };
327
+ }).sort((left, right) => left.name.localeCompare(right.name));
328
+ }
329
+ //# sourceMappingURL=tool-definitions.js.map
330
+ //# debugId=6101f461-4390-5960-ae47-ed875ff3ee06
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-definitions.js","sources":["mcp/tool-definitions.ts"],"sourceRoot":"/","sourcesContent":["import { PM_TOOL_ACTIONS } from \"../sdk/cli-contracts/enum-contracts.js\";\nimport { RUNTIME_STATUS_ROLE_VALUES } from \"../types.js\";\n\n/**\n * Static MCP tool surface for the pm MCP server.\n *\n * Kept as a dependency-light data module (only the enum contract import) so the\n * `pm contracts` command can snapshot the tool surface into the contract\n * golden file (pm-4os2) without importing the full MCP server runtime, and so\n * the server itself stays the single consumer of the dispatch handlers.\n */\nexport interface ToolDefinition {\n name: string;\n description: string;\n inputSchema: Record<string, unknown>;\n}\n\nconst TOOL_SCHEMA_BASE = {\n type: \"object\",\n properties: {\n cwd: {\n type: \"string\",\n description: \"Workspace directory to run the native pm operation in. Defaults to the MCP server process cwd.\",\n },\n path: {\n type: \"string\",\n description: \"Optional pm data root, equivalent to PM_PATH/global --path. Leave unset for real repository tracking.\",\n },\n author: {\n type: \"string\",\n description: \"Mutation author. Defaults to PM_AUTHOR or pm settings when supported by the underlying operation.\",\n },\n },\n additionalProperties: true,\n} as const;\n\nconst idSchema = {\n type: \"string\",\n description: \"pm item id, for example pm-abc1.\",\n};\n\n// pm-fd8n: derive the pm_run action enumeration from the canonical\n// PM_TOOL_ACTIONS contract instead of a hand-maintained prose list, so the\n// MCP-facing description can never drift from the actual supported actions.\nconst PM_RUN_ACTION_DESCRIPTION =\n `Operation name (one of): ${PM_TOOL_ACTIONS.join(\", \")}. ` +\n \"Package-owned actions (for example calendar/templates/guide/dedupe-audit/normalize/reindex/comments-audit/completion/test-runs-list/test-runs-status/test-runs-logs/test-runs-stop/test-runs-resume) are available dynamically when installed.\";\n\nconst LIST_TOP_LEVEL_OPTION_PROPERTIES: Record<string, unknown> = {\n status: { type: \"string\", description: \"Alias for options.status.\" },\n type: { type: \"string\", description: \"Alias for options.type.\" },\n tag: { type: \"string\", description: \"Alias for options.tag.\" },\n priority: { type: \"string\", description: \"Alias for options.priority.\" },\n limit: { type: [\"string\", \"number\"], description: \"Alias for options.limit.\" },\n offset: { type: [\"string\", \"number\"], description: \"Alias for options.offset.\" },\n};\n\nconst SEARCH_TOP_LEVEL_OPTION_PROPERTIES: Record<string, unknown> = {\n mode: { type: \"string\", description: \"Alias for options.mode.\" },\n status: { type: \"string\", description: \"Alias for options.status.\" },\n type: { type: \"string\", description: \"Alias for options.type.\" },\n tag: { type: \"string\", description: \"Alias for options.tag.\" },\n priority: { type: \"string\", description: \"Alias for options.priority.\" },\n limit: { type: [\"string\", \"number\"], description: \"Alias for options.limit.\" },\n};\n\nfunction objectSchema(properties: Record<string, unknown>, required: string[] = []): Record<string, unknown> {\n return {\n ...TOOL_SCHEMA_BASE,\n properties: {\n ...TOOL_SCHEMA_BASE.properties,\n ...properties,\n },\n required,\n };\n}\n\nexport const TOOLS: ToolDefinition[] = [\n {\n name: \"pm_run\",\n description:\n \"Run any supported pm operation natively through the pm library. Use this for commands not covered by narrower pm_* tools.\",\n inputSchema: objectSchema(\n {\n action: {\n type: \"string\",\n description: PM_RUN_ACTION_DESCRIPTION,\n },\n id: idSchema,\n query: { type: \"string\", description: \"Search query for action=search.\" },\n reason: { type: \"string\", description: \"Close reason for action=close.\" },\n force: { type: \"boolean\", description: \"Force ownership/terminal-state override when supported.\" },\n // pm-v68d: the schema-specific subcommand enum and add-type/add-status\n // properties migrated to the dedicated pm_schema tool. action=schema\n // still accepts them as passthrough, but agents should prefer pm_schema.\n subcommand: {\n type: \"string\",\n description:\n \"Subcommand selector for actions that take one (for example telemetry, or schema — prefer the dedicated pm_schema tool for schema operations).\",\n },\n options: { type: \"object\", description: \"Underlying pm command options using camelCase keys.\" },\n fullChangedFields: {\n type: \"boolean\",\n description:\n \"For mutation actions, return the full changed_fields array instead of the default changed_field_count.\",\n },\n idOnly: {\n type: \"boolean\",\n description: \"For single-item mutation actions, return only id and status.\",\n },\n },\n [\"action\"],\n ),\n },\n {\n name: \"pm_context\",\n description: \"Return the agent-oriented project context snapshot.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_search\",\n description:\n \"Search pm items with keyword, semantic, or hybrid search. \" +\n \"Defaults to a compact projection for token efficiency. \" +\n \"Pass options.mode=keyword|semantic|hybrid, options.limit=N to cap hits, \" +\n \"options.fields='id,title,score' for a custom projection, or options.full=true for full item bodies (can be large). \" +\n \"The result echoes the applied filters and projection mode in query_summary.\",\n inputSchema: objectSchema({ query: { type: \"string\" }, options: { type: \"object\" }, ...SEARCH_TOP_LEVEL_OPTION_PROPERTIES }, [\"query\"]),\n },\n {\n name: \"pm_list\",\n description:\n \"List pm items with status/type/tag/priority filters. Defaults to compact projection for token efficiency. \" +\n \"options.status accepts CSV (open,in_progress). \" +\n \"Pass options.compact=false or options.includeBody=true for full bodies/comments. \" +\n \"Pass options.brief=true for ultra-terse (id/status/type/title only). \" +\n \"Pass options.fields='id,title,priority' for custom projection. \" +\n \"Pass options.limit=N to cap row count. \" +\n \"The result echoes the applied filters and projection mode in query_summary.\",\n inputSchema: objectSchema({ options: { type: \"object\" }, ...LIST_TOP_LEVEL_OPTION_PROPERTIES }),\n },\n {\n name: \"pm_get\",\n description:\n \"Read one pm item. Pass options.depth='brief' or options.fields='id,title,status' for low-token inspection.\",\n inputSchema: objectSchema({\n id: idSchema,\n options: { type: \"object\", description: \"Get options such as depth=brief|standard|deep|full or fields=id,title,status.\" },\n }, [\"id\"]),\n },\n {\n name: \"pm_create\",\n description:\n \"Create a pm item natively and write pm history. \" +\n \"Output is compact by default (changed_fields replaced with changed_field_count for token efficiency); pass fullChangedFields=true for the full changed_fields array.\",\n inputSchema: objectSchema(\n {\n fullChangedFields: { type: \"boolean\", description: \"Return full changed_fields instead of changed_field_count.\" },\n allowMissingParent: { type: \"boolean\", description: \"Allow unresolved parent references and emit a validation warning.\" },\n options: { type: \"object\", description: \"Create options. title and description are required.\" },\n },\n [\"options\"],\n ),\n },\n {\n name: \"pm_copy\",\n description:\n \"Copy an existing pm item into a new id while resetting lifecycle fields. \" +\n \"Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.\",\n inputSchema: objectSchema(\n {\n id: idSchema,\n fullChangedFields: { type: \"boolean\", description: \"Return full changed_fields instead of changed_field_count.\" },\n options: { type: \"object\", description: \"Copy options such as title override, author, and message.\" },\n },\n [\"id\"],\n ),\n },\n {\n name: \"pm_update\",\n description:\n \"Update pm item metadata/body/dependencies/log seeds natively. \" +\n \"Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields delta.\",\n inputSchema: objectSchema(\n {\n id: idSchema,\n fullChangedFields: { type: \"boolean\", description: \"Return full changed_fields instead of changed_field_count.\" },\n options: { type: \"object\" },\n },\n [\"id\", \"options\"],\n ),\n },\n {\n name: \"pm_append\",\n description:\n \"Append markdown text to a pm item body and write pm history. Useful for seeding evidence/log entries before close. \" +\n \"Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.\",\n inputSchema: objectSchema(\n {\n id: idSchema,\n body: {\n type: \"string\",\n description: \"Markdown text to append to the item body. Required here or as options.body.\",\n },\n fullChangedFields: { type: \"boolean\", description: \"Return full changed_fields instead of changed_field_count.\" },\n options: { type: \"object\", description: \"Append options such as body, author, and message.\" },\n },\n [\"id\"],\n ),\n },\n {\n name: \"pm_claim\",\n description: \"Claim a pm item.\",\n inputSchema: objectSchema({ id: idSchema, force: { type: \"boolean\" }, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_release\",\n description: \"Release a pm item claim.\",\n inputSchema: objectSchema({ id: idSchema, force: { type: \"boolean\" }, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_close\",\n description:\n \"Close a pm item with optional close reason and optional close validation (reason requirement follows governance settings). \" +\n \"Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.\",\n inputSchema: objectSchema(\n {\n id: idSchema,\n reason: { type: \"string\", description: \"Close reason text when provided or required by governance settings.\" },\n duplicateOf: { type: \"string\", description: \"Canonical item id when closing this item as a duplicate.\" },\n fullChangedFields: { type: \"boolean\", description: \"Return full changed_fields instead of changed_field_count.\" },\n idOnly: { type: \"boolean\", description: \"Return only id and status.\" },\n options: { type: \"object\" },\n },\n [\"id\"],\n ),\n },\n {\n name: \"pm_comments\",\n description:\n \"List or add comments on a pm item. Use options.add to append. \" +\n \"List calls default to the most recent 20 comments with total_count/has_more metadata for token efficiency. \" +\n \"Pass options.limit=N to choose a page size, options.limit=0 for summary-only metadata, or options.full=true for full history.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_files\",\n description: \"List, add, remove, audit, or validate linked files for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_docs\",\n description: \"List, add, or remove linked docs for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_notes\",\n description:\n \"List or add structured notes on a pm item. Use options.add to append a note; omit it to list existing notes.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_learnings\",\n description:\n \"List or add learnings on a pm item. Use options.add to capture a learning/insight; omit it to list existing learnings.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_deps\",\n description:\n \"List, add, or remove dependencies for a pm item. Use options.add to declare a dependency and options.remove to drop one; omit both to list current dependencies.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_test\",\n description: \"List, add, remove, or run linked tests for a pm item.\",\n inputSchema: objectSchema({ id: idSchema, options: { type: \"object\" } }, [\"id\"]),\n },\n {\n name: \"pm_validate\",\n description: \"Run pm validation checks.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_health\",\n description: \"Run pm health diagnostics. Pass options.brief=true for compact low-token details, options.skipIntegrity=true, options.skipDrift=true, options.skipVectors=true for a fast status-only check, or options.full=true for the complete deep check.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_contracts\",\n description: \"Inspect pm command, flag, schema, and availability contracts.\",\n inputSchema: objectSchema({ options: { type: \"object\" } }),\n },\n {\n name: \"pm_schema\",\n description:\n \"Inspect or modify the workspace item-type/status schema (pm schema). \" +\n \"subcommand selects the operation; name carries the item type name (show/add-type/remove-type) or status id (show-status/add-status/remove-status). \" +\n \"Schema mutations write workspace config files, not item history.\",\n inputSchema: objectSchema(\n {\n subcommand: {\n type: \"string\",\n enum: [\"list\", \"show\", \"show-status\", \"add-type\", \"remove-type\", \"add-status\", \"remove-status\"],\n description: \"Schema subcommand to run.\",\n },\n name: {\n type: \"string\",\n description:\n \"Item type name for show/add-type/remove-type, or status id for show-status/add-status/remove-status. Required for every subcommand except list.\",\n },\n description: {\n type: \"string\",\n description: \"Custom item type or status description for add-type/add-status.\",\n },\n defaultStatus: { type: \"string\", description: \"Default status for add-type.\" },\n folder: { type: \"string\", description: \"Storage folder for add-type.\" },\n alias: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Aliases for add-type/add-status.\",\n },\n role: {\n type: \"array\",\n items: { type: \"string\", enum: [...RUNTIME_STATUS_ROLE_VALUES] },\n description: `Lifecycle roles for add-status: ${RUNTIME_STATUS_ROLE_VALUES.join(\", \")}.`,\n },\n order: { type: \"number\", description: \"Display/sort order for add-status.\" },\n force: { type: \"boolean\", description: \"Override removal guardrails for destructive schema changes when supported.\" },\n options: { type: \"object\", description: \"Additional schema options using camelCase keys.\" },\n },\n [\"subcommand\"],\n ),\n },\n {\n name: \"pm_config\",\n description:\n \"Read or write pm workspace configuration (pm config). \" +\n \"configAction selects get/set/list/export; key/value address a single setting for get/set. \" +\n \"scope chooses the project (default) or global settings file.\",\n inputSchema: objectSchema(\n {\n configAction: {\n type: \"string\",\n enum: [\"get\", \"set\", \"list\", \"export\"],\n description: \"Config operation to perform. get/set require key; list/export dump the resolved settings surface.\",\n },\n key: {\n type: \"string\",\n description:\n \"Settings key for get/set, for example governance-require-close-reason, telemetry-tracking, or a nested leaf such as search_provider (dash and underscore variants accepted; configAction=get without a key lists supported keys in the error).\",\n },\n value: { type: \"string\", description: \"New value for configAction=set.\" },\n scope: {\n type: \"string\",\n enum: [\"project\", \"global\"],\n description: \"Settings scope to read or write. Defaults to project.\",\n },\n options: {\n type: \"object\",\n description: \"Additional config options such as criterion, clearCriteria, format, or policy.\",\n },\n },\n [\"configAction\"],\n ),\n },\n {\n name: \"pm_plan\",\n description:\n \"Run agent-optimized Plan workflows. options.subcommand selects: create|show|add-step|update-step|complete-step|block-step|reorder-step|remove-step|link|unlink|decision|discovery|validation|resume|approve|materialize. Provide id for all non-create subcommands; provide stepRef for step lifecycle subcommands. Plans store agent-readable steps with dependencies, decisions, discoveries, validation, and resume context.\",\n inputSchema: objectSchema({\n id: { type: \"string\", description: \"Plan id (required for all subcommands except create).\" },\n stepRef: { type: \"string\", description: \"Step id or order for step lifecycle subcommands.\" },\n reorderTo: { type: \"number\", description: \"New order for reorder-step.\" },\n options: { type: \"object\", description: \"Plan options including subcommand, stepRef, stepStatus, link, depth, etc.\" },\n }),\n },\n];\n\n/**\n * Stable projection of one MCP tool definition for the contract golden file\n * (pm-4os2): tool name, description, required top-level fields, and the full\n * inputSchema shape. Any drift (typo'd property, dropped required field,\n * changed TOOL_SCHEMA_BASE) shows up in `pnpm contracts:check`.\n */\nexport interface McpToolContract {\n name: string;\n description: string;\n required: string[];\n input_schema: Record<string, unknown>;\n}\n\nexport function buildMcpToolContracts(): McpToolContract[] {\n return TOOLS.map((tool) => {\n const schemaRequired = tool.inputSchema[\"required\"];\n const required = Array.isArray(schemaRequired)\n ? schemaRequired.map((entry) => String(entry)).sort((left, right) => left.localeCompare(right))\n : [];\n return {\n name: tool.name,\n description: tool.description,\n required,\n input_schema: tool.inputSchema,\n };\n }).sort((left, right) => left.name.localeCompare(right.name));\n}\n"],"names":[],"mappings":";;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAgBzD,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gGAAgG;SAC9G;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,uGAAuG;SACrH;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,mGAAmG;SACjH;KACF;IACD,oBAAoB,EAAE,IAAI;CAClB,CAAC;AAEX,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,kCAAkC;CAChD,CAAC;AAEF,mEAAmE;AACnE,2EAA2E;AAC3E,4EAA4E;AAC5E,MAAM,yBAAyB,GAC7B,4BAA4B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1D,gPAAgP,CAAC;AAEnP,MAAM,gCAAgC,GAA4B;IAChE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACpE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAChE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;IAC9D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;IACxE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC9E,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE;CACjF,CAAC;AAEF,MAAM,kCAAkC,GAA4B;IAClE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAChE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACpE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAChE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;IAC9D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;IACxE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE;CAC/E,CAAC;AAEF,SAAS,YAAY,CAAC,UAAmC,EAAE,WAAqB,EAAE;IAChF,OAAO;QACL,GAAG,gBAAgB;QACnB,UAAU,EAAE;YACV,GAAG,gBAAgB,CAAC,UAAU;YAC9B,GAAG,UAAU;SACd;QACD,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAqB;IACrC;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,2HAA2H;QAC7H,WAAW,EAAE,YAAY,CACvB;YACE,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;YACD,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;YACzE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACzE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yDAAyD,EAAE;YAClG,uEAAuE;YACvE,qEAAqE;YACrE,yEAAyE;YACzE,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,+IAA+I;aAClJ;YACD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qDAAqD,EAAE;YAC/F,iBAAiB,EAAE;gBACjB,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,wGAAwG;aAC3G;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,8DAA8D;aAC5E;SACF,EACD,CAAC,QAAQ,CAAC,CACX;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;KAC3D;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,4DAA4D;YAC5D,yDAAyD;YACzD,0EAA0E;YAC1E,qHAAqH;YACrH,6EAA6E;QAC/E,WAAW,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,kCAAkC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;KACxI;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EACT,4GAA4G;YAC5G,iDAAiD;YACjD,mFAAmF;YACnF,uEAAuE;YACvE,iEAAiE;YACjE,yCAAyC;YACzC,6EAA6E;QAC/E,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,gCAAgC,EAAE,CAAC;KAChG;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,4GAA4G;QAC9G,WAAW,EAAE,YAAY,CAAC;YACxB,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+EAA+E,EAAE;SAC1H,EAAE,CAAC,IAAI,CAAC,CAAC;KACX;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,kDAAkD;YAClD,sKAAsK;QACxK,WAAW,EAAE,YAAY,CACvB;YACE,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4DAA4D,EAAE;YACjH,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mEAAmE,EAAE;YACzH,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qDAAqD,EAAE;SAChG,EACD,CAAC,SAAS,CAAC,CACZ;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EACT,2EAA2E;YAC3E,iJAAiJ;QACnJ,WAAW,EAAE,YAAY,CACvB;YACE,EAAE,EAAE,QAAQ;YACZ,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4DAA4D,EAAE;YACjH,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2DAA2D,EAAE;SACtG,EACD,CAAC,IAAI,CAAC,CACP;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,gEAAgE;YAChE,iJAAiJ;QACnJ,WAAW,EAAE,YAAY,CACvB;YACE,EAAE,EAAE,QAAQ;YACZ,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4DAA4D,EAAE;YACjH,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC5B,EACD,CAAC,IAAI,EAAE,SAAS,CAAC,CAClB;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,qHAAqH;YACrH,iJAAiJ;QACnJ,WAAW,EAAE,YAAY,CACvB;YACE,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6EAA6E;aAC3F;YACD,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4DAA4D,EAAE;YACjH,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mDAAmD,EAAE;SAC9F,EACD,CAAC,IAAI,CAAC,CACP;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;KAC7G;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,0BAA0B;QACvC,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;KAC7G;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,6HAA6H;YAC7H,iJAAiJ;QACnJ,WAAW,EAAE,YAAY,CACvB;YACE,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qEAAqE,EAAE;YAC9G,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0DAA0D,EAAE;YACxG,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4DAA4D,EAAE;YACjH,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;YACtE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC5B,EACD,CAAC,IAAI,CAAC,CACP;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,gEAAgE;YAChE,6GAA6G;YAC7G,+HAA+H;QACjI,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;KACjF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,mEAAmE;QAChF,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;KACjF;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;KACjF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,8GAA8G;QAChH,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;KACjF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,wHAAwH;QAC1H,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;KACjF;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EACT,kKAAkK;QACpK,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;KACjF;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;KACjF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;KAC3D;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,gPAAgP;QAC7P,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;KAC3D;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,+DAA+D;QAC5E,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;KAC3D;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,uEAAuE;YACvE,qJAAqJ;YACrJ,kEAAkE;QACpE,WAAW,EAAE,YAAY,CACvB;YACE,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,CAAC;gBAC/F,WAAW,EAAE,2BAA2B;aACzC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,iJAAiJ;aACpJ;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iEAAiE;aAC/E;YACD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;YAC9E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;YACvE,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,kCAAkC;aAChD;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,0BAA0B,CAAC,EAAE;gBAChE,WAAW,EAAE,mCAAmC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aACzF;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;YAC5E,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4EAA4E,EAAE;YACrH,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iDAAiD,EAAE;SAC5F,EACD,CAAC,YAAY,CAAC,CACf;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,wDAAwD;YACxD,4FAA4F;YAC5F,8DAA8D;QAChE,WAAW,EAAE,YAAY,CACvB;YACE,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC;gBACtC,WAAW,EAAE,mGAAmG;aACjH;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,gPAAgP;aACnP;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;YACzE,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;gBAC3B,WAAW,EAAE,uDAAuD;aACrE;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gFAAgF;aAC9F;SACF,EACD,CAAC,cAAc,CAAC,CACjB;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EACT,iaAAia;QACna,WAAW,EAAE,YAAY,CAAC;YACxB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;YAC5F,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;YAC5F,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACzE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2EAA2E,EAAE;SACtH,CAAC;KACH;CACF,CAAC;AAeF,MAAM,UAAU,qBAAqB;IACnC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;YAC5C,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC/F,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ;YACR,YAAY,EAAE,IAAI,CAAC,WAAW;SAC/B,CAAC;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC","debugId":"6101f461-4390-5960-ae47-ed875ff3ee06"}
@@ -133,7 +133,7 @@ Default TOON output is preferred for model-readable loops. Use `--json` only whe
133
133
 
134
134
  `list`/`search` compact mode is intentionally token-light: it returns compact items plus only active filters (and runtime schema filters when present), omitting default projection/sorting/now trailer metadata.
135
135
 
136
- Over MCP the mutation tools (`pm_create`/`pm_update`/`pm_close`, and `pm_run` for `append`/`update-many`) are already compact by default: they return `changed_field_count` instead of the full `changed_fields` array. Pass `fullChangedFields=true` only when you need the explicit field-level delta, or `idOnly=true` for single-item id/status output.
136
+ Over MCP the mutation tools (`pm_create`/`pm_update`/`pm_append`/`pm_close`, and `pm_run` for `update-many`) are already compact by default: they return `changed_field_count` instead of the full `changed_fields` array. Pass `fullChangedFields=true` only when you need the explicit field-level delta, or `idOnly=true` for single-item id/status output.
137
137
 
138
138
  `pm create --parent <id>` fails fast when the parent cannot be found. Use `--allow-missing-parent` only for deliberate imports or staged backlog reconstruction.
139
139
 
@@ -65,7 +65,7 @@ This clones the repo, reads `.claude-plugin/marketplace.json` at the root, insta
65
65
  claude mcp add --transport stdio pm-mcp -- npx -y --package=@unbrained/pm-cli@latest pm-mcp
66
66
  ```
67
67
 
68
- Gives you the 22 MCP tools without skills or slash commands.
68
+ Gives you the 25 MCP tools without skills or slash commands.
69
69
 
70
70
  ### 3. Direct project `.mcp.json` (project-scoped MCP only)
71
71
 
@@ -123,7 +123,7 @@ node scripts/smoke-claude-plugin.mjs
123
123
  pnpm smoke:claude-plugin
124
124
  ```
125
125
 
126
- Verifies: plugin file structure, manifest name consistency, MCP initialize, 22 tools present, full workflow (init → create → claim → update → link files/docs/tests → get → context → search → validate → health), and session-start hook.
126
+ Verifies: plugin file structure, manifest name consistency, MCP initialize, 25 tools present, full workflow (init → create → claim → update → link files/docs/tests → get → context → search → validate → health), and session-start hook.
127
127
 
128
128
  ### MCP server smoke test
129
129
 
package/docs/COMMANDS.md CHANGED
@@ -280,6 +280,7 @@ Linked files and docs keep reviews reproducible. `deps` is read-only and project
280
280
 
281
281
  ```bash
282
282
  pm test <id> --add command="node scripts/run-tests.mjs test -- tests/unit/output.spec.ts",timeout_seconds=240
283
+ pm test <id> --add command "node scripts/run-tests.mjs test -- tests/unit/output.spec.ts"
283
284
  pm test <id> --add-json '{"command":"node scripts/run-tests.mjs test -- tests/unit/output.spec.ts","timeout_seconds":240}'
284
285
  pm test <id> --run --progress
285
286
  pm test <id> --run --match output
@@ -288,7 +289,7 @@ pm test <id> --run --only-last
288
289
  pm test-all --status in_progress --progress
289
290
  ```
290
291
 
291
- Linked test commands should be sandbox-safe. Prefer `node scripts/run-tests.mjs ...` because it sets temporary `PM_PATH` and `PM_GLOBAL_PATH`. Use `--add-json` when command strings contain commas, nested quotes, shell variables, or `--` separators that are awkward to preserve through CSV-style `--add` parsing. `--match`, `--only-index`, and `--only-last` select which linked tests execute without mutating the stored linked-test list.
292
+ Linked test commands should be sandbox-safe. Prefer `node scripts/run-tests.mjs ...` because it sets temporary `PM_PATH` and `PM_GLOBAL_PATH`. The two-token form `--add command "npm test -- parser"` (and `--add path "..."` / `--remove command "..."`) is accepted when the value is quoted into a single shell argument; it is normalized to `--add command=...` before parsing. Use `--add-json` when command strings contain commas, nested quotes, shell variables, or `--` separators that are awkward to preserve through CSV-style `--add` parsing. `--match`, `--only-index`, and `--only-last` select which linked tests execute without mutating the stored linked-test list.
292
293
 
293
294
  Strict linked-test guards:
294
295
 
package/marketplace.json CHANGED
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "name": "pm-claude",
14
14
  "source": "./plugins/pm-claude",
15
- "description": "Native pm CLI integration for Claude Code — 22 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.",
15
+ "description": "Native pm CLI integration for Claude Code — 25 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
16
  "version": "1.4.0",
17
17
  "author": {
18
18
  "name": "unbrained",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-cli",
3
- "version": "2026.6.10",
3
+ "version": "2026.6.11",
4
4
  "description": "Git-native project management CLI for humans and agents.",
5
5
  "type": "module",
6
6
  "author": "unbrained",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-claude",
3
- "description": "Native pm CLI integration for Claude Code — 22 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents (coordinator, delivery-chain, triage, verification), hybrid TUI task tracking (pm as persistent store + Claude Code task panel as live view), session context injection, and full git-based project management without leaving Claude Code.",
3
+ "description": "Native pm CLI integration for Claude Code — 25 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents (coordinator, delivery-chain, triage, verification), hybrid TUI task tracking (pm as persistent store + Claude Code task panel as live view), session context injection, and full git-based project management without leaving Claude Code.",
4
4
  "version": "1.4.0",
5
5
  "author": {
6
6
  "name": "unbrained",
@@ -6,7 +6,7 @@ Native pm CLI integration for Claude Code. Use pm project management tools direc
6
6
 
7
7
  | Component | What it provides |
8
8
  |-----------|----------------|
9
- | **22 MCP tools** | Full pm surface: context, search, list, get, create, copy, update, claim, release, close, comments, files, docs, notes, learnings, deps, test, validate, health, contracts, plan + `pm_run` for everything else |
9
+ | **25 MCP tools** | Full pm surface: context, search, list, get, create, copy, update, claim, release, close, comments, files, docs, notes, learnings, deps, test, validate, health, contracts, plan, append, schema, config + `pm_run` for everything else |
10
10
  | **5 skills** | `pm-workflow`, `pm-developer`, `pm-release`, `pm-audit`, `pm-planner` — auto-loaded as Claude Code skills |
11
11
  | **14 slash commands** | Full lifecycle coverage — status, start, close, triage, audit, search, new, list, calendar, developer, planner, release, workflow, init |
12
12
  | **4 subagents** | `pm-coordinator` (batch/multi-item), `pm-triage-agent` (duplicate-safe item creation), `pm-verification-agent` (evidence + close readiness), and `pm-delivery-chain` (orchestrated delivery) |
@@ -29,7 +29,7 @@ claude plugin marketplace add /path/to/pm-cli
29
29
  # claude plugin marketplace add unbraind/pm-cli
30
30
  ```
31
31
 
32
- This installs all 22 MCP tools, 5 skills, 14 slash commands, 4 subagents, hybrid TUI tracking, and the session hook in one step.
32
+ This installs all 25 MCP tools, 5 skills, 14 slash commands, 4 subagents, hybrid TUI tracking, and the session hook in one step.
33
33
 
34
34
  ### Option B: Legacy marketplace alias (also works)
35
35
 
@@ -45,7 +45,7 @@ Both `pm` and `pm-cli` marketplace IDs resolve to the same plugin.
45
45
  claude mcp add --transport stdio pm-mcp -- npx -y --package=@unbrained/pm-cli@latest pm-mcp
46
46
  ```
47
47
 
48
- This gives you the 22 MCP tools but not the skills, slash commands, or session hook.
48
+ This gives you the 25 MCP tools but not the skills, slash commands, or session hook.
49
49
 
50
50
  ### Option D: Direct `.mcp.json` (project-scoped MCP only)
51
51
 
@@ -152,7 +152,9 @@ Spawn pm-triage-agent to set up the pm item for: add OAuth2 login support
152
152
  | `pm_list` | Filtered item list |
153
153
  | `pm_get` | Single item detail |
154
154
  | `pm_create` | Create new item |
155
+ | `pm_copy` | Copy item into a new id |
155
156
  | `pm_update` | Update metadata |
157
+ | `pm_append` | Append text to item body |
156
158
  | `pm_claim` | Claim for active work |
157
159
  | `pm_release` | Release claim |
158
160
  | `pm_close` | Close with reason |
@@ -166,6 +168,8 @@ Spawn pm-triage-agent to set up the pm item for: add OAuth2 login support
166
168
  | `pm_validate` | Run validation checks |
167
169
  | `pm_health` | Run health diagnostics |
168
170
  | `pm_contracts` | Inspect command contracts |
171
+ | `pm_schema` | Manage custom item types/statuses |
172
+ | `pm_config` | Read or write settings keys |
169
173
  | `pm_plan` | Manage durable Plan workflows |
170
174
 
171
175
  ### General tool
@@ -47,7 +47,7 @@ Initialize pm project tracking using native MCP tools. Argument: `$ARGUMENTS` (o
47
47
  - pm initialized at `.agents/pm/`
48
48
  - guidance mode defaults to `ask` (TTY prompt only); use `agentGuidance=add|skip|status` in `pm_run` options for deterministic behavior
49
49
  - Available slash commands: `/pm-status`, `/pm-new`, `/pm-start-task`, `/pm-close-task`, `/pm-list`, `/pm-search`, `/pm-triage`, `/pm-calendar`, `/pm-developer`, `/pm-planner`, `/pm-release`, `/pm-audit`, `/pm-workflow`
50
- - All 22 MCP tools available: `pm_context`, `pm_search`, `pm_list`, `pm_get`, `pm_create`, `pm_copy`, `pm_update`, `pm_claim`, `pm_release`, `pm_close`, `pm_comments`, `pm_files`, `pm_docs`, `pm_notes`, `pm_learnings`, `pm_deps`, `pm_test`, `pm_validate`, `pm_health`, `pm_contracts`, `pm_plan`, `pm_run`
50
+ - All 25 MCP tools available: `pm_context`, `pm_search`, `pm_list`, `pm_get`, `pm_create`, `pm_copy`, `pm_update`, `pm_append`, `pm_claim`, `pm_release`, `pm_close`, `pm_comments`, `pm_files`, `pm_docs`, `pm_notes`, `pm_learnings`, `pm_deps`, `pm_test`, `pm_validate`, `pm_health`, `pm_contracts`, `pm_schema`, `pm_config`, `pm_plan`, `pm_run`
51
51
  - Next: use `/pm-new <title>` to create your first item, or `/pm-status` to see the tracker state
52
52
 
53
53
  If initialization fails, report the error and suggest running `pm init` manually in the terminal.
@@ -21,9 +21,9 @@ For a published package install, keep `@unbrained/pm-cli` available through npm.
21
21
 
22
22
  ## Native Tools
23
23
 
24
- Prefer the narrow tools when they match the task: `pm_context`, `pm_search`, `pm_list`, `pm_get`, `pm_create`, `pm_update`, `pm_claim`, `pm_release`, `pm_close`, `pm_comments`, `pm_files`, `pm_docs`, `pm_test`, `pm_validate`, `pm_health`, `pm_contracts`, and `pm_plan`.
24
+ Prefer the narrow tools when they match the task: `pm_context`, `pm_search`, `pm_list`, `pm_get`, `pm_create`, `pm_copy`, `pm_update`, `pm_append`, `pm_claim`, `pm_release`, `pm_close`, `pm_comments`, `pm_files`, `pm_docs`, `pm_notes`, `pm_learnings`, `pm_deps`, `pm_test`, `pm_validate`, `pm_health`, `pm_contracts`, `pm_schema`, `pm_config`, and `pm_plan`.
25
25
 
26
- Use `pm_run` for the remaining pm surface. Supported actions include `init`, `calendar`, `activity`, `aggregate`, `dedupe-audit`, `normalize`, `reindex`, `extension`, `history`, `history-redact`, `plan`, `stats`, `append`, `notes`, `learnings`, `test-all`, `comments-audit`, `gc`, templates, and test-runs controls.
26
+ Use `pm_run` for the remaining pm surface. Supported actions include `init`, `calendar`, `activity`, `aggregate`, `dedupe-audit`, `normalize`, `reindex`, `extension`, `history`, `history-redact`, `stats`, `test-all`, `comments-audit`, `gc`, templates, and test-runs controls.
27
27
 
28
28
  `pm_plan` exposes Codex-style ExecPlans as a first-class `Plan` item type with ordered steps, evidence, decisions, discoveries, validation, and materialization. See the `pm-native` skill for the full Plan workflow recipe.
29
29
  For `init` automation, pass `options.agentGuidance` (`ask|add|skip|status`) when you need deterministic AGENTS/CLAUDE guidance behavior in non-interactive runs.
@@ -1,16 +0,0 @@
1
- import {
2
- runActivity
3
- } from "./chunk-D6JZBUZ6.js";
4
- import "./chunk-WBU257Z4.js";
5
- import "./chunk-TXWMLDMG.js";
6
- import "./chunk-TV6FZGVK.js";
7
- import "./chunk-XRE4CTNP.js";
8
- import "./chunk-I2FM2SMO.js";
9
- import "./chunk-Q6PSD5DZ.js";
10
- import "./chunk-7GYMMDDW.js";
11
- import "./chunk-7TW64BS5.js";
12
- import "./chunk-OQGJSCZZ.js";
13
- export {
14
- runActivity
15
- };
16
- //# sourceMappingURL=activity-5QLX6DHN.js.map