@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 @@
1
+ {"version":3,"sources":["../../../../../../../../mcp/tool-definitions.ts","../../../../../../../../cli/commands/contracts.ts"],"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","import { EXIT_CODE, SETTINGS_DEFAULTS } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport {\n activateExtensions,\n getActiveExtensionRegistrations,\n loadExtensions,\n} from \"../../core/extensions/index.js\";\nimport type {\n ExtensionRegistrationRegistry,\n RegisteredExtensionCommandDefinition,\n RegisteredExtensionFlagDefinitions,\n} from \"../../core/extensions/index.js\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport {\n commandOptionFlagLabel,\n resolveCommandOptionPolicyState,\n resolveItemTypeRegistry,\n} from \"../../core/item/type-registry.js\";\nimport {\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeFieldRegistry,\n} from \"../../core/schema/runtime-schema.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { buildMcpToolContracts, type McpToolContract } from \"../../mcp/tool-definitions.js\";\nimport {\n ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,\n ACTIVITY_FLAG_CONTRACTS,\n AGGREGATE_FLAG_CONTRACTS,\n APPEND_FLAG_CONTRACTS,\n CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS,\n CALENDAR_FLAG_CONTRACTS,\n CLAIM_FLAG_CONTRACTS,\n CLOSE_TASK_FLAG_CONTRACTS,\n COMMENTS_FLAG_CONTRACTS,\n COMMENTS_AUDIT_FLAG_CONTRACTS,\n CLOSE_FLAG_CONTRACTS,\n CLOSE_MANY_FLAG_CONTRACTS,\n COMPLETION_FLAG_CONTRACTS,\n CONFIG_FLAG_CONTRACTS,\n CONTRACTS_FLAG_CONTRACTS,\n CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,\n CONTEXT_FLAG_CONTRACTS,\n CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n CREATE_COMMANDER_STRING_OPTION_CONTRACTS,\n CREATE_FLAG_CONTRACTS,\n DELETE_FLAG_CONTRACTS,\n DEPS_FLAG_CONTRACTS,\n DEDUPE_AUDIT_FLAG_CONTRACTS,\n DOCS_FLAG_CONTRACTS,\n EXTENSION_ACTIVATE_FLAG_CONTRACTS,\n EXTENSION_ADOPT_ALL_FLAG_CONTRACTS,\n EXTENSION_ADOPT_FLAG_CONTRACTS,\n EXTENSION_CATALOG_FLAG_CONTRACTS,\n EXTENSION_DEACTIVATE_FLAG_CONTRACTS,\n EXTENSION_DOCTOR_FLAG_CONTRACTS,\n EXTENSION_EXPLORE_FLAG_CONTRACTS,\n EXTENSION_FLAG_CONTRACTS,\n EXTENSION_INIT_FLAG_CONTRACTS,\n EXTENSION_INSTALL_FLAG_CONTRACTS,\n EXTENSION_MANAGE_FLAG_CONTRACTS,\n EXTENSION_RELOAD_FLAG_CONTRACTS,\n EXTENSION_UNINSTALL_FLAG_CONTRACTS,\n FILES_FLAG_CONTRACTS,\n GC_FLAG_CONTRACTS,\n GET_FLAG_CONTRACTS,\n GUIDE_FLAG_CONTRACTS,\n GLOBAL_FLAG_CONTRACTS,\n HEALTH_FLAG_CONTRACTS,\n HISTORY_FLAG_CONTRACTS,\n HISTORY_COMPACT_FLAG_CONTRACTS,\n HISTORY_REDACT_FLAG_CONTRACTS,\n HISTORY_REPAIR_FLAG_CONTRACTS,\n INSTALL_FLAG_CONTRACTS,\n INIT_FLAG_CONTRACTS,\n LEARNINGS_FLAG_CONTRACTS,\n LIST_COMMANDER_STRING_OPTION_CONTRACTS,\n LIST_FILTER_FLAG_CONTRACTS,\n NORMALIZE_FLAG_CONTRACTS,\n NOTES_FLAG_CONTRACTS,\n PM_EXTENSION_CAPABILITY_CONTRACTS,\n PM_EXTENSION_POLICY_MODE_CONTRACTS,\n PM_EXTENSION_POLICY_SURFACE_CONTRACTS,\n PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS,\n PM_EXTENSION_SERVICE_NAME_CONTRACTS,\n PM_EXTENSION_TRUST_MODE_CONTRACTS,\n PLAN_FLAG_CONTRACTS,\n PM_CORE_COMMAND_NAMES,\n PM_TOOL_ACTIONS,\n PM_TOOL_PARAMETERS_SCHEMA,\n REINDEX_FLAG_CONTRACTS,\n RELEASE_FLAG_CONTRACTS,\n RESTORE_FLAG_CONTRACTS,\n SCHEMA_FLAG_CONTRACTS,\n SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,\n SEARCH_FLAG_CONTRACTS,\n STATS_FLAG_CONTRACTS,\n START_TASK_FLAG_CONTRACTS,\n PAUSE_TASK_FLAG_CONTRACTS,\n TELEMETRY_FLAG_CONTRACTS,\n TEST_ALL_FLAG_CONTRACTS,\n TEST_FLAG_CONTRACTS,\n TEST_RUNS_FLAG_CONTRACTS,\n UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,\n UPDATE_FLAG_CONTRACTS,\n UPDATE_MANY_FLAG_CONTRACTS,\n UPGRADE_FLAG_CONTRACTS,\n VALIDATE_FLAG_CONTRACTS,\n compactFlagAliasContracts,\n withFlagAliasMetadata,\n type CliFlagContract,\n type CommanderOptionAliasContract,\n} from \"../../sdk/cli-contracts.js\";\n\nexport interface ContractsCommandOptions {\n action?: string;\n command?: string;\n schemaOnly?: boolean;\n flagsOnly?: boolean;\n availabilityOnly?: boolean;\n runtimeOnly?: boolean;\n full?: boolean;\n}\n\ninterface CommandFlagSurface {\n command: string;\n flags: CliFlagContract[];\n provider?: \"core\" | \"extension\" | \"mixed\";\n extension_sources?: Array<{\n layer: \"global\" | \"project\";\n name: string;\n }>;\n}\n\ninterface CommandAliasSurface {\n canonical: string;\n aliases: string[];\n}\n\nexport interface ContractsResult {\n schema_version: string | null;\n schema_id: string | null;\n selected: {\n action: string | null;\n command: string | null;\n schema_only: boolean;\n flags_only: boolean;\n availability_only: boolean;\n runtime_only: boolean;\n command_scoped: boolean;\n };\n actions?: string[];\n action_availability?: ContractsActionAvailability[];\n commands: string[];\n schema?: Record<string, unknown>;\n schema_omitted_reason?: string;\n command_flags_omitted_reason?: string;\n commander_aliases_omitted_reason?: string;\n command_flags?: CommandFlagSurface[];\n command_aliases?: CommandAliasSurface[];\n commander_aliases?: Record<string, CommanderOptionAliasContract[]>;\n extension_commands?: ExtensionCommandContract[];\n runtime_schema?: {\n statuses: string[];\n open_status: string;\n close_status: string;\n canceled_status: string;\n types: string[];\n fields_by_command: Record<string, string[]>;\n };\n extension_contracts?: {\n capabilities: string[];\n services: string[];\n policy_modes: string[];\n policy_surfaces: string[];\n trust_modes: string[];\n sandbox_profiles: string[];\n manifest_versions: number[];\n compatibility: {\n current: string;\n previous: string[];\n breaking_strategy: string;\n };\n };\n // pm-4os2: static MCP tool surface (tool names, required fields, inputSchema\n // shapes) so the contract golden file catches unintended MCP schema drift.\n // Emitted with --full only — the snapshot script runs `pm contracts --full`.\n mcp_tools?: McpToolContract[];\n}\n\ntype PmToolAction = (typeof PM_TOOL_ACTIONS)[number];\n\nexport interface ContractsActionAvailability {\n action: string;\n invocable: boolean;\n available: boolean;\n requires_extension: boolean;\n provider: \"core\" | \"extension\";\n disabled_reason: string | null;\n command_path: string | null;\n cli_exposed: boolean;\n policy_state?: {\n mode: string;\n trust_mode: string;\n default_sandbox_profile: string;\n };\n}\n\ninterface RuntimeExtensionActionProbe {\n handlers: Set<string>;\n disabledReason: string | null;\n commandDefinitions: RegisteredExtensionCommandDefinition[];\n flagRegistrations: RegisteredExtensionFlagDefinitions[];\n registrations: ExtensionRegistrationRegistry | null;\n policyState: {\n mode: string;\n trust_mode: string;\n default_sandbox_profile: string;\n };\n}\n\ninterface ExtensionCommandContract {\n command: string;\n action: string;\n source: {\n layer: \"global\" | \"project\";\n name: string;\n } | null;\n description: string | null;\n intent: string | null;\n arguments: Array<{\n name: string;\n required: boolean;\n variadic: boolean;\n description: string | null;\n }>;\n flags: CliFlagContract[];\n examples: string[];\n failure_hints: string[];\n}\n\nconst LIST_COMMAND_NAMES = new Set([\n \"list\",\n \"list-all\",\n \"list-draft\",\n \"list-open\",\n \"list-in-progress\",\n \"list-blocked\",\n \"list-closed\",\n \"list-canceled\",\n]);\n\nconst PACKAGE_OWNED_ACTIONS = new Set<string>([\n \"calendar\",\n \"dedupe-audit\",\n \"guide\",\n \"reindex\",\n \"normalize\",\n \"comments-audit\",\n \"completion\",\n \"test-runs-list\",\n \"test-runs-status\",\n \"test-runs-logs\",\n \"test-runs-stop\",\n \"test-runs-resume\",\n \"templates-list\",\n \"templates-save\",\n \"templates-show\",\n]);\n\nconst PACKAGE_OWNED_COMMANDS = new Set<string>([\n \"cal\",\n \"calendar\",\n \"comments-audit\",\n \"completion\",\n \"completion-statuses\",\n \"completion-tags\",\n \"completion-types\",\n \"dedupe-audit\",\n \"guide\",\n \"normalize\",\n \"reindex\",\n \"templates\",\n \"templates list\",\n \"templates save\",\n \"templates show\",\n \"test-runs\",\n \"test-runs list\",\n \"test-runs status\",\n \"test-runs logs\",\n \"test-runs stop\",\n \"test-runs resume\",\n]);\n\nconst PACKAGE_OWNED_COMMAND_INSTALL_HINTS = new Map<string, string>([\n [\"cal\", \"calendar\"],\n [\"calendar\", \"calendar\"],\n [\"comments-audit\", \"governance-audit\"],\n [\"completion\", \"guide-shell\"],\n [\"completion-statuses\", \"guide-shell\"],\n [\"completion-tags\", \"guide-shell\"],\n [\"completion-types\", \"guide-shell\"],\n [\"dedupe-audit\", \"governance-audit\"],\n [\"guide\", \"guide-shell\"],\n [\"normalize\", \"governance-audit\"],\n [\"reindex\", \"search-advanced\"],\n [\"templates\", \"templates\"],\n [\"templates list\", \"templates\"],\n [\"templates save\", \"templates\"],\n [\"templates show\", \"templates\"],\n [\"test-runs\", \"linked-test-adapters\"],\n [\"test-runs list\", \"linked-test-adapters\"],\n [\"test-runs status\", \"linked-test-adapters\"],\n [\"test-runs logs\", \"linked-test-adapters\"],\n [\"test-runs stop\", \"linked-test-adapters\"],\n [\"test-runs resume\", \"linked-test-adapters\"],\n]);\n\nconst PACKAGE_OWNED_ACTION_COMMAND_PATHS = new Map<string, string>([\n [\"calendar\", \"calendar|cal\"],\n [\"dedupe-audit\", \"dedupe-audit\"],\n [\"guide\", \"guide\"],\n [\"reindex\", \"reindex\"],\n [\"normalize\", \"normalize\"],\n [\"comments-audit\", \"comments-audit\"],\n [\"completion\", \"completion\"],\n [\"test-runs-list\", \"test-runs|test-runs list\"],\n [\"test-runs-status\", \"test-runs status\"],\n [\"test-runs-logs\", \"test-runs logs\"],\n [\"test-runs-stop\", \"test-runs stop\"],\n [\"test-runs-resume\", \"test-runs resume\"],\n [\"templates-list\", \"templates|templates list\"],\n [\"templates-save\", \"templates save\"],\n [\"templates-show\", \"templates show\"],\n]);\n\nconst PACKAGE_OWNED_COMMAND_ACTIONS = new Map(\n [...PACKAGE_OWNED_ACTION_COMMAND_PATHS.entries()].flatMap(([action, commandPaths]) =>\n splitCommandPathAliases(commandPaths).map((commandPath) => [commandPath, action] as const),\n ),\n);\n\nconst CANONICAL_COMMAND_ALIASES: CommandAliasSurface[] = [\n {\n canonical: \"context\",\n aliases: [\"ctx\"],\n },\n {\n canonical: \"package\",\n aliases: [\"extension\", \"packages\", \"install\"],\n },\n];\n\nconst COMMAND_ALIAS_TO_CANONICAL = new Map(\n CANONICAL_COMMAND_ALIASES.flatMap((entry) =>\n entry.aliases.map((alias) => [alias, entry.canonical] as const),\n ),\n);\n\nconst EXTENSION_PACKAGE_LIFECYCLE_FLAG_CONTRACTS: Array<readonly [string, CliFlagContract[]]> = [\n [\"init\", EXTENSION_INIT_FLAG_CONTRACTS],\n [\"install\", EXTENSION_INSTALL_FLAG_CONTRACTS],\n [\"uninstall\", EXTENSION_UNINSTALL_FLAG_CONTRACTS],\n [\"explore\", EXTENSION_EXPLORE_FLAG_CONTRACTS],\n [\"manage\", EXTENSION_MANAGE_FLAG_CONTRACTS],\n [\"reload\", EXTENSION_RELOAD_FLAG_CONTRACTS],\n [\"doctor\", EXTENSION_DOCTOR_FLAG_CONTRACTS],\n [\"catalog\", EXTENSION_CATALOG_FLAG_CONTRACTS],\n [\"adopt\", EXTENSION_ADOPT_FLAG_CONTRACTS],\n [\"adopt-all\", EXTENSION_ADOPT_ALL_FLAG_CONTRACTS],\n [\"activate\", EXTENSION_ACTIVATE_FLAG_CONTRACTS],\n [\"deactivate\", EXTENSION_DEACTIVATE_FLAG_CONTRACTS],\n];\n\nconst CORE_COMMAND_FLAG_CONTRACT_ENTRIES: Array<readonly [string, CliFlagContract[]]> = [\n ...EXTENSION_PACKAGE_LIFECYCLE_FLAG_CONTRACTS.flatMap(([subcommand, flags]) => [\n [`extension ${subcommand}`, flags] as const,\n [`package ${subcommand}`, flags] as const,\n [`packages ${subcommand}`, flags] as const,\n ]),\n [\"init\", INIT_FLAG_CONTRACTS],\n [\"config\", CONFIG_FLAG_CONTRACTS],\n [\"extension\", EXTENSION_FLAG_CONTRACTS],\n [\"package\", EXTENSION_FLAG_CONTRACTS],\n [\"packages\", EXTENSION_FLAG_CONTRACTS],\n [\"install\", INSTALL_FLAG_CONTRACTS],\n [\"create\", CREATE_FLAG_CONTRACTS],\n [\"update\", UPDATE_FLAG_CONTRACTS],\n [\"update-many\", UPDATE_MANY_FLAG_CONTRACTS],\n [\"upgrade\", UPGRADE_FLAG_CONTRACTS],\n [\"normalize\", NORMALIZE_FLAG_CONTRACTS],\n [\"calendar\", CALENDAR_FLAG_CONTRACTS],\n [\"cal\", CALENDAR_FLAG_CONTRACTS],\n [\"context\", CONTEXT_FLAG_CONTRACTS],\n [\"ctx\", CONTEXT_FLAG_CONTRACTS],\n [\"get\", GET_FLAG_CONTRACTS],\n [\"search\", SEARCH_FLAG_CONTRACTS],\n [\"aggregate\", AGGREGATE_FLAG_CONTRACTS],\n [\"dedupe-audit\", DEDUPE_AUDIT_FLAG_CONTRACTS],\n [\"deps\", DEPS_FLAG_CONTRACTS],\n [\"guide\", GUIDE_FLAG_CONTRACTS],\n [\"reindex\", REINDEX_FLAG_CONTRACTS],\n [\"history\", HISTORY_FLAG_CONTRACTS],\n [\"history-compact\", HISTORY_COMPACT_FLAG_CONTRACTS],\n [\"history-redact\", HISTORY_REDACT_FLAG_CONTRACTS],\n [\"history-repair\", HISTORY_REPAIR_FLAG_CONTRACTS],\n [\"schema\", SCHEMA_FLAG_CONTRACTS],\n [\"plan\", PLAN_FLAG_CONTRACTS],\n [\"restore\", RESTORE_FLAG_CONTRACTS],\n [\"delete\", DELETE_FLAG_CONTRACTS],\n [\"close\", CLOSE_FLAG_CONTRACTS],\n [\"close-many\", CLOSE_MANY_FLAG_CONTRACTS],\n [\"append\", APPEND_FLAG_CONTRACTS],\n [\"claim\", CLAIM_FLAG_CONTRACTS],\n [\"release\", RELEASE_FLAG_CONTRACTS],\n [\"start-task\", START_TASK_FLAG_CONTRACTS],\n [\"pause-task\", PAUSE_TASK_FLAG_CONTRACTS],\n [\"close-task\", CLOSE_TASK_FLAG_CONTRACTS],\n [\"comments\", COMMENTS_FLAG_CONTRACTS],\n [\"notes\", NOTES_FLAG_CONTRACTS],\n [\"learnings\", LEARNINGS_FLAG_CONTRACTS],\n [\"files\", FILES_FLAG_CONTRACTS],\n [\"docs\", DOCS_FLAG_CONTRACTS],\n [\"test\", TEST_FLAG_CONTRACTS],\n [\"test-all\", TEST_ALL_FLAG_CONTRACTS],\n [\"telemetry\", TELEMETRY_FLAG_CONTRACTS],\n [\"test-runs\", TEST_RUNS_FLAG_CONTRACTS],\n [\"gc\", GC_FLAG_CONTRACTS],\n [\"stats\", STATS_FLAG_CONTRACTS],\n [\"validate\", VALIDATE_FLAG_CONTRACTS],\n [\"comments-audit\", COMMENTS_AUDIT_FLAG_CONTRACTS],\n [\"health\", HEALTH_FLAG_CONTRACTS],\n [\"contracts\", CONTRACTS_FLAG_CONTRACTS],\n [\"completion\", COMPLETION_FLAG_CONTRACTS],\n [\"activity\", ACTIVITY_FLAG_CONTRACTS],\n ...[...LIST_COMMAND_NAMES].map((command) => [command, LIST_FILTER_FLAG_CONTRACTS] as const),\n];\n\nconst CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND = new Map(CORE_COMMAND_FLAG_CONTRACT_ENTRIES);\n\nfunction packageOwnedActionForCommand(command: string): string {\n const exactAction = PACKAGE_OWNED_COMMAND_ACTIONS.get(command);\n if (exactAction) {\n return exactAction;\n }\n if (command.startsWith(\"test-runs \")) {\n return `test-runs-${command.slice(\"test-runs \".length)}`;\n }\n if (command.startsWith(\"templates \")) {\n return `templates-${command.slice(\"templates \".length)}`;\n }\n return command;\n}\n\nfunction resolveActionCommandPath(action: PmToolAction): string | null {\n if (\n PM_CORE_COMMAND_NAMES.includes(\n action as (typeof PM_CORE_COMMAND_NAMES)[number],\n )\n ) {\n return normalizeCommandPath(action);\n }\n if (action.startsWith(\"extension-\")) {\n return normalizeCommandPath(\n `extension ${action.slice(\"extension-\".length)}`,\n );\n }\n if (action.startsWith(\"package-\")) {\n return normalizeCommandPath(`package ${action.slice(\"package-\".length)}`);\n }\n if (action.startsWith(\"test-runs-\")) {\n return normalizeCommandPath(\n `test-runs ${action.slice(\"test-runs-\".length)}`,\n );\n }\n if (action.startsWith(\"templates-\")) {\n return normalizeCommandPath(\n `templates ${action.slice(\"templates-\".length)}`,\n );\n }\n if (PACKAGE_OWNED_ACTIONS.has(action)) {\n return PACKAGE_OWNED_ACTION_COMMAND_PATHS.get(action) ?? normalizeCommandPath(action);\n }\n return null;\n}\n\nfunction actionDescriptorMatchesSelectedCommand(\n descriptor: ActionContractDescriptor,\n selectedCommand: string,\n): boolean {\n if (descriptor.command_path === null) {\n return false;\n }\n return splitCommandPathAliases(descriptor.command_path).some((commandPath) => {\n if (commandPath === selectedCommand) {\n return true;\n }\n return commandPath.startsWith(`${selectedCommand} `);\n });\n}\n\nfunction splitCommandPathAliases(commandPath: string): string[] {\n return commandPath\n .split(\"|\")\n .map((entry) => normalizeCommandPath(entry))\n .filter((entry) => entry.length > 0);\n}\n\nfunction resolveScopedCommandsFromActionDescriptors(\n descriptors: ActionContractDescriptor[],\n commandCatalog: string[],\n): string[] {\n const commandSet = new Set(commandCatalog);\n const scoped = new Set<string>();\n for (const descriptor of descriptors) {\n if (!descriptor.command_path) {\n continue;\n }\n for (const commandPath of splitCommandPathAliases(descriptor.command_path)) {\n const tokens = commandPath.split(\" \").filter((entry) => entry.length > 0);\n if (tokens.length === 0) {\n continue;\n }\n for (let end = tokens.length; end > 0; end -= 1) {\n const candidate = tokens.slice(0, end).join(\" \");\n if (!commandSet.has(candidate)) {\n continue;\n }\n scoped.add(candidate);\n break;\n }\n }\n }\n return [...scoped].sort((left, right) => left.localeCompare(right));\n}\n\nfunction normalizeToken(value: string | undefined): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const trimmed = value.trim().toLowerCase();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction extractActionBranches(\n schema: Record<string, unknown>,\n): Record<string, unknown>[] {\n const oneOf = schema.oneOf;\n if (!Array.isArray(oneOf)) {\n return [];\n }\n return oneOf.filter(\n (entry): entry is Record<string, unknown> =>\n typeof entry === \"object\" && entry !== null,\n );\n}\n\nfunction filterSchemaByAction(\n schema: Record<string, unknown>,\n action: string | undefined,\n): Record<string, unknown> {\n if (!action) {\n return { ...schema };\n }\n const branches = extractActionBranches(schema);\n const filtered = branches.filter((entry) => {\n const properties = entry.properties;\n if (typeof properties !== \"object\" || properties === null) {\n return false;\n }\n const actionProperty = (properties as Record<string, unknown>).action;\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return false;\n }\n return (actionProperty as { const?: unknown }).const === action;\n });\n return {\n ...schema,\n oneOf: filtered,\n };\n}\n\nfunction filterSchemaByActions(\n schema: Record<string, unknown>,\n actions: ReadonlySet<string>,\n): Record<string, unknown> {\n const branches = extractActionBranches(schema);\n const filtered = branches.filter((entry) => {\n const properties = entry.properties;\n if (typeof properties !== \"object\" || properties === null) {\n return false;\n }\n const actionProperty = (properties as Record<string, unknown>).action;\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return false;\n }\n const actionConst = (actionProperty as { const?: unknown }).const;\n return typeof actionConst === \"string\" && actions.has(actionConst);\n });\n return {\n ...schema,\n oneOf: filtered,\n };\n}\n\nfunction normalizeCommandPath(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .split(/\\s+/)\n .filter((entry) => entry.length > 0)\n .join(\" \");\n}\n\nfunction normalizeActionNameFromCommand(commandPath: string): string {\n return commandPath.replace(/\\s+/g, \"-\");\n}\n\nfunction toOptionalTrimmedString(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nfunction normalizeStringList(values: string[] | undefined): string[] {\n if (!Array.isArray(values)) {\n return [];\n }\n const normalized: string[] = [];\n const seen = new Set<string>();\n for (const value of values) {\n const trimmed = toOptionalTrimmedString(value);\n if (!trimmed || seen.has(trimmed)) {\n continue;\n }\n seen.add(trimmed);\n normalized.push(trimmed);\n }\n return normalized;\n}\n\nfunction toExtensionFlagContract(\n definition: Record<string, unknown>,\n): CliFlagContract | null {\n const longName = toOptionalTrimmedString(definition.long);\n const shortName = toOptionalTrimmedString(definition.short);\n const normalizedLong =\n longName && longName.startsWith(\"--\") && longName.length > 2\n ? longName\n : null;\n const normalizedShort =\n shortName && shortName.startsWith(\"-\") && !shortName.startsWith(\"--\")\n ? shortName\n : null;\n const flag = normalizedLong ?? normalizedShort;\n if (!flag) {\n return null;\n }\n const contract: CliFlagContract = { flag };\n if (normalizedShort && normalizedLong) {\n contract.short = normalizedShort;\n }\n const description = toOptionalTrimmedString(definition.description);\n if (description) {\n contract.description = description;\n }\n if (definition.required === true) {\n contract.required = true;\n }\n if (definition.repeatable === true) {\n contract.repeatable = true;\n }\n const valueName = toOptionalTrimmedString(definition.value_name);\n if (valueName) {\n contract.value_name = valueName;\n }\n const rawValueType = [\n toOptionalTrimmedString(definition.value_type),\n toOptionalTrimmedString(definition.type),\n valueName ? \"string\" : null,\n ].find((candidate): candidate is \"string\" | \"number\" | \"boolean\" =>\n candidate === \"string\" || candidate === \"number\" || candidate === \"boolean\",\n );\n if (rawValueType) {\n contract.value_type = rawValueType;\n }\n return contract;\n}\n\nfunction collectExtensionFlagContractsByCommand(\n registrations: RegisteredExtensionFlagDefinitions[],\n): Map<\n string,\n {\n flags: CliFlagContract[];\n sources: Array<{ layer: \"global\" | \"project\"; name: string }>;\n }\n> {\n const grouped = new Map<\n string,\n {\n flags: CliFlagContract[];\n sources: Array<{ layer: \"global\" | \"project\"; name: string }>;\n dedupe: Set<string>;\n sourceDedupe: Set<string>;\n }\n >();\n for (const registration of registrations) {\n const commandPath = normalizeCommandPath(registration.target_command);\n if (commandPath.length === 0) {\n continue;\n }\n const bucket = grouped.get(commandPath) ?? {\n flags: [],\n sources: [],\n dedupe: new Set<string>(),\n sourceDedupe: new Set<string>(),\n };\n const sourceKey = `${registration.layer}:${registration.name}`;\n if (!bucket.sourceDedupe.has(sourceKey)) {\n bucket.sourceDedupe.add(sourceKey);\n bucket.sources.push({\n layer: registration.layer,\n name: registration.name,\n });\n }\n for (const definition of registration.flags) {\n const contract = toExtensionFlagContract(definition);\n if (!contract) {\n continue;\n }\n const key = `${contract.flag}|${contract.short ?? \"\"}`;\n if (bucket.dedupe.has(key)) {\n continue;\n }\n bucket.dedupe.add(key);\n bucket.flags.push(contract);\n }\n grouped.set(commandPath, bucket);\n }\n const normalized = new Map<\n string,\n {\n flags: CliFlagContract[];\n sources: Array<{ layer: \"global\" | \"project\"; name: string }>;\n }\n >();\n for (const [commandPath, bucket] of grouped.entries()) {\n normalized.set(commandPath, {\n flags: bucket.flags,\n sources: bucket.sources.sort((left, right) => {\n const layerOrder = left.layer.localeCompare(right.layer);\n if (layerOrder !== 0) {\n return layerOrder;\n }\n return (left.name ?? \"\").localeCompare(right.name ?? \"\");\n }),\n });\n }\n return normalized;\n}\n\nfunction collectExtensionCommandContracts(\n runtimeProbe: RuntimeExtensionActionProbe,\n): ExtensionCommandContract[] {\n const flagsByCommand = collectExtensionFlagContractsByCommand(\n runtimeProbe.flagRegistrations,\n );\n const definitionsByCommand = new Map<string, ExtensionCommandContract>();\n for (const definition of runtimeProbe.commandDefinitions) {\n const command = normalizeCommandPath(definition.command);\n if (command.length === 0) {\n continue;\n }\n const action =\n toOptionalTrimmedString(definition.action) ??\n normalizeActionNameFromCommand(command);\n const args = Array.isArray(definition.arguments)\n ? definition.arguments\n .map((argument) => {\n const name = toOptionalTrimmedString(argument.name);\n if (!name) {\n return null;\n }\n return {\n name,\n required: argument.required === true,\n variadic: argument.variadic === true,\n description: toOptionalTrimmedString(argument.description),\n };\n })\n .filter(\n (\n argument,\n ): argument is {\n name: string;\n required: boolean;\n variadic: boolean;\n description: string | null;\n } => argument !== null,\n )\n : [];\n definitionsByCommand.set(command, {\n command,\n action,\n source: {\n layer: definition.layer,\n name: definition.name,\n },\n description: toOptionalTrimmedString(definition.description),\n intent: toOptionalTrimmedString(definition.intent),\n arguments: args,\n flags: flagsByCommand.get(command)?.flags ?? [],\n examples: normalizeStringList(definition.examples),\n failure_hints: normalizeStringList(definition.failure_hints),\n });\n }\n\n const extensionCommands = new Set<string>();\n for (const command of runtimeProbe.handlers) {\n extensionCommands.add(normalizeCommandPath(command));\n }\n for (const command of definitionsByCommand.keys()) {\n extensionCommands.add(command);\n }\n for (const command of flagsByCommand.keys()) {\n extensionCommands.add(command);\n }\n\n const contracts: ExtensionCommandContract[] = [];\n for (const command of [...extensionCommands].sort((left, right) =>\n left.localeCompare(right),\n )) {\n const definition = definitionsByCommand.get(command);\n if (definition) {\n contracts.push({\n ...definition,\n flags:\n definition.flags.length > 0\n ? definition.flags\n : (flagsByCommand.get(command)?.flags ?? []),\n });\n continue;\n }\n contracts.push({\n command,\n action: normalizeActionNameFromCommand(command),\n source: null,\n description: null,\n intent: null,\n arguments: [],\n flags: flagsByCommand.get(command)?.flags ?? [],\n examples: [],\n failure_hints: [],\n });\n }\n return contracts;\n}\n\nfunction extensionSchemaPropertyNameFromFlag(\n flag: CliFlagContract,\n): string | null {\n const normalized = flag.flag.replace(/^-+/, \"\").trim();\n if (normalized.length === 0) {\n return null;\n }\n const camelCased = normalized.replace(\n /-([a-z0-9])/g,\n (_match, char: string) => char.toUpperCase(),\n );\n const cleaned = camelCased.replace(/[^a-zA-Z0-9]/g, \"\");\n return cleaned.length > 0 ? cleaned : null;\n}\n\nfunction buildExtensionActionSchemaBranch(\n contract: ExtensionCommandContract,\n): Record<string, unknown> {\n const commands = contract.command\n .split(\"|\")\n .map((command) => command.trim())\n .filter((command) => command.length > 0);\n const properties: Record<string, unknown> = {\n action: {\n type: \"string\",\n const: contract.action,\n description:\n contract.intent ??\n contract.description ??\n `Invoke extension command '${contract.command}'.`,\n },\n };\n const required: string[] = [\"action\"];\n for (const argument of contract.arguments) {\n if (argument.variadic) {\n properties[argument.name] = {\n type: \"array\",\n items: { type: \"string\" },\n description:\n argument.description ??\n `Variadic argument '${argument.name}' for extension action '${contract.action}'.`,\n };\n } else {\n properties[argument.name] = {\n type: \"string\",\n description:\n argument.description ??\n `Argument '${argument.name}' for extension action '${contract.action}'.`,\n };\n }\n if (argument.required) {\n required.push(argument.name);\n }\n }\n for (const flag of contract.flags) {\n const propertyName = extensionSchemaPropertyNameFromFlag(flag);\n if (!propertyName || properties[propertyName] !== undefined) {\n continue;\n }\n const valueType = flag.value_type ?? \"boolean\";\n const schemaType =\n valueType === \"boolean\" ? \"boolean\" : valueType === \"number\" ? [\"number\", \"string\"] : \"string\";\n properties[propertyName] = {\n type: flag.repeatable ? \"array\" : schemaType,\n ...(flag.repeatable ? { items: { type: schemaType } } : {}),\n description: flag.description ?? `Extension option '${flag.flag}' for action '${contract.action}'.`,\n };\n if (flag.required === true) {\n required.push(propertyName);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required,\n additionalProperties: true,\n \"x-extension-source\": contract.source,\n \"x-extension-command\": commands[0] ?? contract.command,\n \"x-extension-commands\": commands,\n };\n}\n\nfunction mergeExtensionFlagContract(existing: CliFlagContract, incoming: CliFlagContract): void {\n existing.description ??= incoming.description;\n existing.value_name ??= incoming.value_name;\n existing.value_type ??= incoming.value_type;\n if (incoming.required === true) {\n existing.required = true;\n }\n if (incoming.repeatable === true) {\n existing.repeatable = true;\n }\n}\n\nfunction mergeExtensionContractsByAction(\n contracts: ExtensionCommandContract[],\n): ExtensionCommandContract[] {\n const byAction = new Map<string, ExtensionCommandContract>();\n for (const contract of contracts) {\n const existing = byAction.get(contract.action);\n if (!existing) {\n byAction.set(contract.action, {\n ...contract,\n flags: [...contract.flags],\n examples: [...contract.examples],\n failure_hints: [...contract.failure_hints],\n });\n continue;\n }\n existing.command = [...new Set([existing.command, contract.command])]\n .sort((left, right) => left.localeCompare(right))\n .join(\"|\");\n existing.arguments = existing.arguments.length >= contract.arguments.length ? existing.arguments : contract.arguments;\n const flagKeys = new Set(existing.flags.map((flag) => `${flag.flag}|${flag.short ?? \"\"}`));\n for (const flag of contract.flags) {\n const key = `${flag.flag}|${flag.short ?? \"\"}`;\n if (!flagKeys.has(key)) {\n flagKeys.add(key);\n existing.flags.push(flag);\n } else {\n const existingFlag = existing.flags.find((candidate) => `${candidate.flag}|${candidate.short ?? \"\"}` === key);\n if (existingFlag) {\n mergeExtensionFlagContract(existingFlag, flag);\n }\n }\n }\n existing.examples = [...new Set([...existing.examples, ...contract.examples])];\n existing.failure_hints = [...new Set([...existing.failure_hints, ...contract.failure_hints])];\n }\n return [...byAction.values()].sort((left, right) => left.action.localeCompare(right.action));\n}\n\nasync function resolveRuntimeExtensionActionProbe(\n global: GlobalOptions,\n): Promise<RuntimeExtensionActionProbe> {\n const defaultPolicyState = {\n mode: SETTINGS_DEFAULTS.extensions.policy.mode,\n trust_mode: SETTINGS_DEFAULTS.extensions.policy.trust_mode,\n default_sandbox_profile:\n SETTINGS_DEFAULTS.extensions.policy.default_sandbox_profile,\n };\n if (global.noExtensions) {\n return {\n handlers: new Set<string>(),\n disabledReason: \"extensions_disabled\",\n commandDefinitions: [],\n flagRegistrations: [],\n registrations: null,\n policyState: defaultPolicyState,\n };\n }\n\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n return {\n handlers: new Set<string>(),\n disabledReason: null,\n commandDefinitions: [],\n flagRegistrations: [],\n registrations: null,\n policyState: defaultPolicyState,\n };\n }\n\n try {\n const settings = await readSettings(pmRoot);\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: false,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n const handlers = new Set<string>(\n activationResult.commands.handlers.map((entry) =>\n normalizeCommandPath(entry.command),\n ),\n );\n return {\n handlers,\n disabledReason: null,\n commandDefinitions: activationResult.registrations.commands,\n flagRegistrations: activationResult.registrations.flags,\n registrations: activationResult.registrations,\n policyState: {\n mode: loadResult.policy.mode,\n trust_mode: loadResult.policy.trust_mode,\n default_sandbox_profile: loadResult.policy.default_sandbox_profile,\n },\n };\n } catch {\n return {\n handlers: new Set<string>(),\n disabledReason: \"extension_runtime_probe_failed\",\n commandDefinitions: [],\n flagRegistrations: [],\n registrations: null,\n policyState: defaultPolicyState,\n };\n }\n}\n\ninterface ActionContractDescriptor {\n action: string;\n provider: \"core\" | \"extension\";\n requires_extension: boolean;\n command_path: string | null;\n}\n\nfunction collectActionContractDescriptors(\n extensionContracts: ExtensionCommandContract[],\n options: { includePackageOwnedActions?: boolean } = {},\n): ActionContractDescriptor[] {\n const descriptors = new Map<string, ActionContractDescriptor>();\n for (const action of PM_TOOL_ACTIONS) {\n const packageOwned = PACKAGE_OWNED_ACTIONS.has(action);\n if (packageOwned && !options.includePackageOwnedActions) {\n continue;\n }\n const commandPath = resolveActionCommandPath(action as PmToolAction);\n descriptors.set(action, {\n action,\n provider: packageOwned ? \"extension\" : \"core\",\n requires_extension: packageOwned,\n command_path: commandPath,\n });\n }\n if (options.includePackageOwnedActions) {\n for (const action of PACKAGE_OWNED_ACTIONS) {\n if (descriptors.has(action)) {\n continue;\n }\n descriptors.set(action, {\n action,\n provider: \"extension\",\n requires_extension: true,\n command_path: resolveActionCommandPath(action as PmToolAction),\n });\n }\n }\n for (const contract of extensionContracts) {\n if (descriptors.has(contract.action)) {\n continue;\n }\n descriptors.set(contract.action, {\n action: contract.action,\n provider: \"extension\",\n requires_extension: true,\n command_path: normalizeCommandPath(contract.command),\n });\n }\n return [...descriptors.values()].sort((left, right) =>\n (left.action ?? \"\").localeCompare(right.action ?? \"\"),\n );\n}\n\nfunction resolveActionAvailability(\n descriptor: ActionContractDescriptor,\n runtimeProbe: RuntimeExtensionActionProbe,\n): ContractsActionAvailability {\n if (descriptor.provider === \"core\" && !descriptor.requires_extension) {\n return {\n action: descriptor.action,\n invocable: true,\n available: true,\n requires_extension: false,\n provider: \"core\",\n disabled_reason: null,\n command_path: descriptor.command_path,\n cli_exposed: descriptor.command_path !== null,\n };\n }\n\n const commandPaths = descriptor.command_path\n ? splitCommandPathAliases(descriptor.command_path)\n : [];\n const extensionCommandAvailable = commandPaths.some((commandPath) =>\n runtimeProbe.handlers.has(commandPath),\n );\n const optionalPackageHint = commandPaths\n .map((commandPath) => PACKAGE_OWNED_COMMAND_INSTALL_HINTS.get(commandPath))\n .find((hint): hint is string => typeof hint === \"string\");\n const invocable =\n runtimeProbe.disabledReason === null && extensionCommandAvailable;\n return {\n action: descriptor.action,\n invocable,\n available: invocable,\n requires_extension: true,\n provider: \"extension\",\n disabled_reason: invocable\n ? null\n : (runtimeProbe.disabledReason ?? (optionalPackageHint ? `optional_package_not_installed:${optionalPackageHint}` : \"extension_command_not_registered\")),\n command_path: descriptor.command_path,\n cli_exposed: extensionCommandAvailable,\n policy_state: {\n mode: runtimeProbe.policyState.mode,\n trust_mode: runtimeProbe.policyState.trust_mode,\n default_sandbox_profile: runtimeProbe.policyState.default_sandbox_profile,\n },\n };\n}\n\nfunction resolveCoreCommandFlags(command: string): CliFlagContract[] {\n return CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND.get(command) ?? GLOBAL_FLAG_CONTRACTS;\n}\n\nfunction isCoreCommandPath(command: string): boolean {\n if (PACKAGE_OWNED_COMMANDS.has(command)) {\n return false;\n }\n return CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND.has(command);\n}\n\nfunction normalizeCommandForRuntimeFieldFlags(command: string): string {\n if (LIST_COMMAND_NAMES.has(command)) {\n return \"list\";\n }\n if (command === \"cal\") {\n return \"calendar\";\n }\n if (command === \"ctx\") {\n return \"context\";\n }\n if (command === \"update-many\") {\n return \"update_many\";\n }\n return command;\n}\n\nfunction toRuntimeLongFlagToken(token: string): string | null {\n const trimmed = token.trim();\n if (!trimmed) {\n return null;\n }\n if (trimmed.startsWith(\"--\")) {\n return trimmed;\n }\n if (trimmed.startsWith(\"-\")) {\n return null;\n }\n return `--${trimmed}`;\n}\n\nfunction toRuntimeShortFlagToken(token: string): string | null {\n const trimmed = token.trim();\n if (!trimmed) {\n return null;\n }\n if (trimmed.startsWith(\"--\")) {\n return null;\n }\n if (trimmed.startsWith(\"-\")) {\n return trimmed;\n }\n return null;\n}\n\nfunction buildRuntimeFieldFlagContracts(\n fieldRegistry: RuntimeFieldRegistry,\n): Map<string, CliFlagContract[]> {\n const buckets = new Map<\n string,\n { flags: CliFlagContract[]; seen: Set<string> }\n >();\n for (const definition of fieldRegistry.definitions) {\n const primaryFlag = toRuntimeLongFlagToken(definition.cli_flag);\n if (!primaryFlag) {\n continue;\n }\n const shortAlias = definition.cli_aliases\n .map((alias) => toRuntimeShortFlagToken(alias))\n .find((alias) => alias !== null);\n const longAliases = definition.cli_aliases\n .map((alias) => toRuntimeLongFlagToken(alias))\n .filter(\n (alias): alias is string => alias !== null && alias !== primaryFlag,\n );\n for (const command of definition.commands) {\n const bucket = buckets.get(command) ?? {\n flags: [],\n seen: new Set<string>(),\n };\n const primaryContract: CliFlagContract = shortAlias\n ? { flag: primaryFlag, short: shortAlias }\n : { flag: primaryFlag };\n const primaryKey = `${primaryContract.flag}|${primaryContract.short ?? \"\"}`;\n if (!bucket.seen.has(primaryKey)) {\n bucket.seen.add(primaryKey);\n bucket.flags.push(primaryContract);\n }\n for (const alias of longAliases) {\n const key = `${alias}|`;\n if (bucket.seen.has(key)) {\n continue;\n }\n bucket.seen.add(key);\n bucket.flags.push({ flag: alias });\n }\n buckets.set(command, bucket);\n }\n }\n const result = new Map<string, CliFlagContract[]>();\n for (const [command, bucket] of buckets.entries()) {\n result.set(command, compactFlagAliasContracts(bucket.flags));\n }\n return result;\n}\n\nfunction mergeFlagContracts(\n primary: CliFlagContract[],\n secondary: CliFlagContract[],\n): CliFlagContract[] {\n const merged: CliFlagContract[] = [];\n const seen = new Set<string>();\n for (const contract of [...primary, ...secondary]) {\n const key = `${contract.flag}|${contract.short ?? \"\"}`;\n if (seen.has(key)) {\n continue;\n }\n seen.add(key);\n merged.push(contract);\n }\n return compactFlagAliasContracts(merged);\n}\n\nfunction buildCommandFlagSurface(\n commands: string[],\n extensionFlagMap: ReturnType<typeof collectExtensionFlagContractsByCommand>,\n runtimeFieldFlagMap: Map<string, CliFlagContract[]>,\n): CommandFlagSurface[] {\n return commands\n .map((command) => {\n const isCoreCommand = isCoreCommandPath(command);\n const coreFlags = isCoreCommand ? resolveCoreCommandFlags(command) : [];\n const runtimeFlags =\n runtimeFieldFlagMap.get(\n normalizeCommandForRuntimeFieldFlags(command),\n ) ?? [];\n const extensionFlags = extensionFlagMap.get(command);\n const coreWithRuntime = mergeFlagContracts(coreFlags, runtimeFlags);\n const flags = mergeFlagContracts(\n coreWithRuntime,\n extensionFlags?.flags ?? [],\n );\n const provider: CommandFlagSurface[\"provider\"] =\n coreFlags.length > 0 && (extensionFlags?.flags.length ?? 0) > 0\n ? \"mixed\"\n : isCoreCommand\n ? \"core\"\n : \"extension\";\n return {\n command,\n flags,\n provider,\n extension_sources: extensionFlags?.sources,\n };\n })\n .sort((left, right) => left.command.localeCompare(right.command));\n}\n\nfunction compactCommandAliasSurface(commands: string[]): string[] {\n const commandSet = new Set(commands);\n const result: string[] = [];\n for (const command of commands) {\n const canonical = COMMAND_ALIAS_TO_CANONICAL.get(command);\n if (canonical && commandSet.has(canonical)) {\n continue;\n }\n result.push(command);\n }\n return result;\n}\n\nfunction buildCommandAliasSurface(commands: string[]): CommandAliasSurface[] {\n const commandSet = new Set(commands);\n return CANONICAL_COMMAND_ALIASES.map((entry) => ({\n canonical: entry.canonical,\n aliases: entry.aliases.filter((alias) => commandSet.has(alias)),\n })).filter(\n (entry) => commandSet.has(entry.canonical) && entry.aliases.length > 0,\n );\n}\n\nfunction buildCommanderAliasSurface(): Record<\n string,\n CommanderOptionAliasContract[]\n> {\n return {\n create_string_options: CREATE_COMMANDER_STRING_OPTION_CONTRACTS,\n create_repeatable_options: CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n update_string_options: UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,\n update_repeatable_options: UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,\n list_string_options: LIST_COMMANDER_STRING_OPTION_CONTRACTS,\n search_string_options: SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,\n calendar_string_options: CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS,\n context_string_options: CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,\n activity_string_options: ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,\n };\n}\n\nfunction resolveCreateRequiredOptionContract(\n typeDefinition: ReturnType<typeof resolveItemTypeRegistry>[\"by_type\"][string],\n createMode: \"strict\" | \"progressive\",\n): {\n required_option_keys: string[];\n required_flags: string[];\n required_type_options: string[];\n policy_errors: string[];\n} {\n const baseRequiredOptions = new Set<string>([\"title\", \"type\"]);\n if (createMode === \"strict\") {\n for (const field of typeDefinition.required_create_fields) {\n baseRequiredOptions.add(field);\n }\n for (const field of typeDefinition.required_create_repeatables) {\n baseRequiredOptions.add(field);\n }\n }\n const policyState = resolveCommandOptionPolicyState(\n typeDefinition,\n \"create\",\n baseRequiredOptions,\n );\n const requiredOptionKeys = [...new Set(policyState.required)].sort(\n (left, right) => left.localeCompare(right),\n );\n const requiredFlags = [\n ...new Set(\n requiredOptionKeys.map((option) =>\n commandOptionFlagLabel(\"create\", option),\n ),\n ),\n ].sort((left, right) => left.localeCompare(right));\n const requiredTypeOptions = [\n ...new Set(\n typeDefinition.options\n .filter((option) => option.required === true)\n .map((option) => option.key),\n ),\n ].sort((left, right) => left.localeCompare(right));\n return {\n required_option_keys: requiredOptionKeys,\n required_flags: requiredFlags,\n required_type_options: requiredTypeOptions,\n policy_errors: [...new Set(policyState.errors)].sort((left, right) =>\n left.localeCompare(right),\n ),\n };\n}\n\nfunction buildCreateRequiredOptionContracts(\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>,\n): Record<string, unknown> {\n const byTypeStrict: Record<string, unknown> = {};\n const byTypeProgressive: Record<string, unknown> = {};\n for (const typeName of [...typeRegistry.types].sort((left, right) =>\n left.localeCompare(right),\n )) {\n const typeDefinition = typeRegistry.by_type[typeName];\n byTypeStrict[typeName] = resolveCreateRequiredOptionContract(\n typeDefinition,\n \"strict\",\n );\n byTypeProgressive[typeName] = resolveCreateRequiredOptionContract(\n typeDefinition,\n \"progressive\",\n );\n }\n return {\n default_create_mode: \"strict\",\n by_create_mode: {\n strict: {\n by_type: byTypeStrict,\n },\n progressive: {\n by_type: byTypeProgressive,\n },\n },\n };\n}\n\nfunction attachCreateRequiredOptionContracts(\n schema: Record<string, unknown>,\n metadata: Record<string, unknown>,\n): Record<string, unknown> {\n const branches = extractActionBranches(schema);\n if (branches.length === 0) {\n return schema;\n }\n let touched = false;\n const enrichedBranches = branches.map((branch) => {\n const properties = branch.properties;\n if (typeof properties !== \"object\" || properties === null) {\n return branch;\n }\n const actionProperty = (properties as Record<string, unknown>).action;\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return branch;\n }\n if ((actionProperty as { const?: unknown }).const !== \"create\") {\n return branch;\n }\n touched = true;\n return {\n ...branch,\n \"x-create-required-options\": metadata,\n };\n });\n if (!touched) {\n return schema;\n }\n return {\n ...schema,\n oneOf: enrichedBranches,\n };\n}\n\nexport async function runContracts(\n options: ContractsCommandOptions,\n global: GlobalOptions,\n): Promise<ContractsResult> {\n const selectedAction = normalizeToken(options.action);\n const selectedCommand = normalizeToken(options.command);\n const schemaOnly = options.schemaOnly === true;\n const flagsOnly = options.flagsOnly === true;\n const availabilityOnly = options.availabilityOnly === true;\n const runtimeOnly = options.runtimeOnly === true;\n const fullOutput = options.full === true;\n const unfilteredDefaultBriefMode =\n !fullOutput && !schemaOnly && !flagsOnly && !availabilityOnly && !selectedAction && !selectedCommand;\n // Agent token-cost guard: when no filter and no projection flag and not --full,\n // skip the giant schema oneOf union (the 200KB+ chunk). Restore via --full\n // or by scoping to a specific --command/--action.\n const omitUnfilteredSchema = unfilteredDefaultBriefMode;\n const omitUnfilteredCommandFlags = unfilteredDefaultBriefMode;\n const omitUnfilteredCommanderAliases = unfilteredDefaultBriefMode;\n const projectionFlagsEnabled = [\n schemaOnly,\n flagsOnly,\n availabilityOnly,\n ].filter((value) => value).length;\n if (projectionFlagsEnabled > 1) {\n throw new PmCliError(\n \"Choose only one projection flag: --schema-only, --flags-only, or --availability-only.\",\n EXIT_CODE.USAGE,\n );\n }\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n let settings = structuredClone(SETTINGS_DEFAULTS);\n try {\n settings = await readSettings(pmRoot);\n } catch {\n settings = structuredClone(SETTINGS_DEFAULTS);\n }\n const runtimeProbe = await resolveRuntimeExtensionActionProbe(global);\n const typeRegistry = resolveItemTypeRegistry(\n settings,\n runtimeProbe.registrations ?? getActiveExtensionRegistrations(),\n );\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const runtimeFieldFlagMap =\n buildRuntimeFieldFlagContracts(runtimeFieldRegistry);\n const createRequiredOptionContracts =\n buildCreateRequiredOptionContracts(typeRegistry);\n const extensionContracts = collectExtensionCommandContracts(runtimeProbe);\n const mergedExtensionContracts = mergeExtensionContractsByAction(extensionContracts);\n const extensionFlagMap = collectExtensionFlagContractsByCommand(\n runtimeProbe.flagRegistrations,\n );\n const includePackageOwnedActions =\n (selectedAction !== undefined && PACKAGE_OWNED_ACTIONS.has(selectedAction) && availabilityOnly) ||\n (selectedCommand !== undefined && PACKAGE_OWNED_COMMANDS.has(selectedCommand) && availabilityOnly);\n const actionDescriptors =\n collectActionContractDescriptors(mergedExtensionContracts, { includePackageOwnedActions });\n if (\n includePackageOwnedActions &&\n selectedCommand !== undefined &&\n PACKAGE_OWNED_COMMANDS.has(selectedCommand) &&\n !actionDescriptors.some((entry) => entry.command_path === selectedCommand)\n ) {\n actionDescriptors.push({\n action: packageOwnedActionForCommand(selectedCommand),\n provider: \"extension\",\n requires_extension: true,\n command_path: selectedCommand,\n });\n }\n const actionNames = new Set(actionDescriptors.map((entry) => entry.action));\n if (selectedAction && !actionNames.has(selectedAction)) {\n throw new PmCliError(\n `Unknown action: \"${options.action}\".`,\n EXIT_CODE.USAGE,\n );\n }\n\n const commandCatalog = [\n ...new Set([\n ...PM_CORE_COMMAND_NAMES.filter(\n (entry) => !PACKAGE_OWNED_COMMANDS.has(entry),\n ),\n ...[...CORE_COMMAND_FLAG_CONTRACTS_BY_COMMAND.keys()].filter(\n (entry) => !PACKAGE_OWNED_COMMANDS.has(entry),\n ),\n ...actionDescriptors.flatMap((entry) =>\n entry.command_path ? splitCommandPathAliases(entry.command_path) : [],\n ),\n ...mergedExtensionContracts.flatMap((entry) => entry.command.split(\"|\")),\n ]),\n ]\n .map((entry) => normalizeCommandPath(entry))\n .filter((entry) => entry.length > 0)\n .sort((left, right) => left.localeCompare(right));\n const commandNames = new Set(commandCatalog);\n if (selectedCommand && !commandNames.has(selectedCommand)) {\n const packageHint = PACKAGE_OWNED_COMMAND_INSTALL_HINTS.get(selectedCommand);\n if (packageHint) {\n throw new PmCliError(\n `Unknown command: \"${options.command}\". Command \"${selectedCommand}\" is provided by the optional \"${packageHint}\" package. Run \"pm install ${packageHint} --project\" and retry.`,\n EXIT_CODE.USAGE,\n {\n code: \"unknown_command\",\n required: `Install the optional \"${packageHint}\" package, or choose a command from pm contracts --flags-only --json.`,\n why: \"Command contracts include core commands plus commands registered by active packages and extensions.\",\n examples: [`pm install ${packageHint} --project`, `pm contracts --command ${selectedCommand} --flags-only --json`],\n nextSteps: [`Install the optional package first: pm install ${packageHint} --project`],\n recovery: {\n suggested_retry: `pm install ${packageHint} --project`,\n },\n },\n );\n }\n throw new PmCliError(\n `Unknown command: \"${options.command}\".`,\n EXIT_CODE.USAGE,\n {\n code: \"unknown_command\",\n required: \"Use a command path listed by pm contracts --flags-only --json.\",\n why: \"Command contracts are generated from the active core, package, and extension command registry.\",\n examples: [\"pm contracts --flags-only --json\", \"pm --help\"],\n nextSteps: [\"Verify spelling and active packages/extensions, then rerun with a known command path.\"],\n recovery: {\n suggested_retry: \"pm contracts --flags-only --json\",\n },\n },\n );\n }\n const selectedPackageOwnedAction = selectedCommand\n ? PACKAGE_OWNED_COMMAND_ACTIONS.get(selectedCommand)\n : undefined;\n const commandScopedDescriptors = selectedCommand\n ? actionDescriptors.filter((descriptor) =>\n selectedPackageOwnedAction\n ? descriptor.action === selectedPackageOwnedAction\n : actionDescriptorMatchesSelectedCommand(descriptor, selectedCommand),\n )\n : actionDescriptors;\n if (\n selectedCommand &&\n selectedAction &&\n !commandScopedDescriptors.some(\n (descriptor) => descriptor.action === selectedAction,\n )\n ) {\n throw new PmCliError(\n `Action \"${options.action}\" is not mapped to command \"${options.command}\" in contracts output.`,\n EXIT_CODE.USAGE,\n );\n }\n\n const schema = PM_TOOL_PARAMETERS_SCHEMA as Record<string, unknown>;\n const schemaBranches = extractActionBranches(schema);\n const schemaActionSet = new Set(\n schemaBranches\n .map((entry) => {\n const properties = entry.properties;\n if (typeof properties !== \"object\" || properties === null) {\n return null;\n }\n const actionProperty = (properties as Record<string, unknown>).action;\n if (typeof actionProperty !== \"object\" || actionProperty === null) {\n return null;\n }\n const actionConst = (actionProperty as { const?: unknown }).const;\n return typeof actionConst === \"string\" ? actionConst : null;\n })\n .filter((entry): entry is string => entry !== null),\n );\n const extensionBranches = mergedExtensionContracts\n .filter((contract) => !schemaActionSet.has(contract.action))\n .map((contract) => buildExtensionActionSchemaBranch(contract));\n const mergedSchema =\n extensionBranches.length > 0\n ? {\n ...schema,\n oneOf: [...schemaBranches, ...extensionBranches],\n }\n : schema;\n\n const scopedActionDescriptors = selectedAction\n ? commandScopedDescriptors.filter(\n (descriptor) => descriptor.action === selectedAction,\n )\n : commandScopedDescriptors;\n const allActionAvailability = [\n ...new Map(\n scopedActionDescriptors\n .map((descriptor) => resolveActionAvailability(descriptor, runtimeProbe))\n .map((entry) => [\n selectedPackageOwnedAction ? entry.action : `${entry.action}|${entry.command_path ?? \"\"}`,\n entry,\n ] as const),\n ).values(),\n ];\n const actionAvailability =\n runtimeOnly && !selectedAction && !availabilityOnly\n ? allActionAvailability.filter((entry) => entry.invocable)\n : allActionAvailability;\n const actions = [...new Set(actionAvailability.map((entry) => entry.action))];\n const descriptorActionSet = new Set(\n actionDescriptors.map((descriptor) => descriptor.action),\n );\n let filteredSchema = selectedAction\n ? filterSchemaByAction(mergedSchema, selectedAction)\n : selectedCommand\n ? filterSchemaByActions(\n mergedSchema,\n new Set(\n scopedActionDescriptors.map((descriptor) => descriptor.action),\n ),\n )\n : filterSchemaByActions(mergedSchema, descriptorActionSet);\n if (runtimeOnly && !selectedAction) {\n filteredSchema = filterSchemaByActions(filteredSchema, new Set(actions));\n }\n const includeSchemaSurface = !flagsOnly && !availabilityOnly;\n if (includeSchemaSurface) {\n filteredSchema = attachCreateRequiredOptionContracts(\n filteredSchema,\n createRequiredOptionContracts,\n );\n }\n const commands =\n selectedCommand !== undefined\n ? [selectedCommand]\n : selectedAction\n ? resolveScopedCommandsFromActionDescriptors(\n scopedActionDescriptors,\n commandCatalog,\n )\n : commandCatalog;\n const outputCommands =\n flagsOnly && selectedCommand === undefined && selectedAction === undefined\n ? compactCommandAliasSurface(commands)\n : commands;\n const commandAliases = buildCommandAliasSurface(commands);\n const extensionCommandContracts = selectedCommand\n ? extensionContracts.filter((entry) => entry.command === selectedCommand)\n : selectedAction\n ? extensionContracts.filter((entry) =>\n outputCommands.includes(normalizeCommandPath(entry.command)),\n )\n : extensionContracts;\n\n const includeRuntimeContractSections = !(flagsOnly && !fullOutput);\n const result: ContractsResult = {\n schema_version:\n typeof mergedSchema[\"x-schema-version\"] === \"string\"\n ? (mergedSchema[\"x-schema-version\"] as string)\n : null,\n schema_id:\n typeof mergedSchema.$id === \"string\"\n ? (mergedSchema.$id as string)\n : null,\n selected: {\n action: selectedAction ?? null,\n command: selectedCommand ?? null,\n schema_only: schemaOnly,\n flags_only: flagsOnly,\n availability_only: availabilityOnly,\n runtime_only: runtimeOnly,\n command_scoped: selectedCommand !== undefined,\n },\n commands: outputCommands,\n };\n\n if (includeRuntimeContractSections) {\n result.runtime_schema = {\n statuses: statusRegistry.definitions.map((definition) => definition.id),\n open_status: statusRegistry.open_status,\n close_status: statusRegistry.close_status,\n canceled_status: statusRegistry.canceled_status,\n types: [...typeRegistry.types],\n fields_by_command: Object.fromEntries(\n [...runtimeFieldRegistry.command_to_fields.entries()].map(\n ([command, definitions]) => [\n command,\n [\n ...new Set(\n definitions.map((definition) => `--${definition.cli_flag}`),\n ),\n ].sort((left, right) => left.localeCompare(right)),\n ],\n ),\n ),\n };\n result.extension_contracts = {\n capabilities: [...PM_EXTENSION_CAPABILITY_CONTRACTS],\n services: [...PM_EXTENSION_SERVICE_NAME_CONTRACTS],\n policy_modes: [...PM_EXTENSION_POLICY_MODE_CONTRACTS],\n policy_surfaces: [...PM_EXTENSION_POLICY_SURFACE_CONTRACTS],\n trust_modes: [...PM_EXTENSION_TRUST_MODE_CONTRACTS],\n sandbox_profiles: [...PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS],\n manifest_versions: [1, 2],\n compatibility: {\n current: \"v2\",\n previous: [\"v1\"],\n breaking_strategy: \"versioned_breaking\",\n },\n };\n }\n\n if (!flagsOnly) {\n result.actions = actions;\n result.action_availability = actionAvailability;\n }\n\n if (includeSchemaSurface && !omitUnfilteredSchema) {\n result.schema = filteredSchema;\n result.extension_commands = extensionCommandContracts;\n } else if (includeSchemaSurface && omitUnfilteredSchema) {\n result.schema_omitted_reason = \"unfiltered_default_brief\";\n result.extension_commands = extensionCommandContracts;\n }\n\n if (!schemaOnly && !availabilityOnly) {\n if (!omitUnfilteredCommandFlags) {\n result.command_flags = buildCommandFlagSurface(\n outputCommands,\n extensionFlagMap,\n runtimeFieldFlagMap,\n );\n } else {\n result.command_flags_omitted_reason = \"unfiltered_default_brief\";\n }\n if (commandAliases.length > 0) {\n result.command_aliases = commandAliases;\n }\n }\n\n if (!schemaOnly && !flagsOnly && !availabilityOnly) {\n if (!omitUnfilteredCommanderAliases) {\n result.commander_aliases = buildCommanderAliasSurface();\n } else {\n result.commander_aliases_omitted_reason = \"unfiltered_default_brief\";\n }\n }\n\n // pm-4os2: snapshot the static MCP tool surface in the full projection so\n // `pnpm contracts:check` (CI static gate) fails on unintended inputSchema\n // drift in src/mcp/tool-definitions.ts.\n if (fullOutput && !schemaOnly && !flagsOnly && !availabilityOnly) {\n result.mcp_tools = buildMcpToolContracts();\n }\n\n return result;\n}\n"],"names":[],"mappings":"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","debugId":"9a644368-c7ae-5fc2-a886-bc44dcaf3c42"}
@@ -83,15 +83,16 @@ import {
83
83
  UPGRADE_FLAG_CONTRACTS,
84
84
  VALIDATE_FLAG_CONTRACTS,
85
85
  compactFlagAliasContracts
86
- } from "./chunk-GF5XIBUH.js";
86
+ } from "./chunk-P2PSODAQ.js";
87
87
  import {
88
88
  commandOptionFlagLabel,
89
89
  resolveCommandOptionPolicyState,
90
90
  resolveItemTypeRegistry
91
- } from "./chunk-7GYMMDDW.js";
91
+ } from "./chunk-5SCT2JCT.js";
92
92
  import {
93
93
  EXIT_CODE,
94
94
  PmCliError,
95
+ RUNTIME_STATUS_ROLE_VALUES,
95
96
  SETTINGS_DEFAULTS,
96
97
  activateExtensions,
97
98
  getActiveExtensionRegistrations,
@@ -102,13 +103,319 @@ import {
102
103
  resolvePmRoot,
103
104
  resolveRuntimeFieldRegistry,
104
105
  resolveRuntimeStatusRegistry
105
- } from "./chunk-OQGJSCZZ.js";
106
+ } from "./chunk-FY4SPXSC.js";
107
+
108
+ // dist/mcp/tool-definitions.js
109
+ !(function() {
110
+ try {
111
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
112
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "6101f461-4390-5960-ae47-ed875ff3ee06");
113
+ } catch (e2) {
114
+ }
115
+ })();
116
+ var TOOL_SCHEMA_BASE = {
117
+ type: "object",
118
+ properties: {
119
+ cwd: {
120
+ type: "string",
121
+ description: "Workspace directory to run the native pm operation in. Defaults to the MCP server process cwd."
122
+ },
123
+ path: {
124
+ type: "string",
125
+ description: "Optional pm data root, equivalent to PM_PATH/global --path. Leave unset for real repository tracking."
126
+ },
127
+ author: {
128
+ type: "string",
129
+ description: "Mutation author. Defaults to PM_AUTHOR or pm settings when supported by the underlying operation."
130
+ }
131
+ },
132
+ additionalProperties: true
133
+ };
134
+ var idSchema = {
135
+ type: "string",
136
+ description: "pm item id, for example pm-abc1."
137
+ };
138
+ var PM_RUN_ACTION_DESCRIPTION = `Operation name (one of): ${PM_TOOL_ACTIONS.join(", ")}. 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.`;
139
+ var LIST_TOP_LEVEL_OPTION_PROPERTIES = {
140
+ status: { type: "string", description: "Alias for options.status." },
141
+ type: { type: "string", description: "Alias for options.type." },
142
+ tag: { type: "string", description: "Alias for options.tag." },
143
+ priority: { type: "string", description: "Alias for options.priority." },
144
+ limit: { type: ["string", "number"], description: "Alias for options.limit." },
145
+ offset: { type: ["string", "number"], description: "Alias for options.offset." }
146
+ };
147
+ var SEARCH_TOP_LEVEL_OPTION_PROPERTIES = {
148
+ mode: { type: "string", description: "Alias for options.mode." },
149
+ status: { type: "string", description: "Alias for options.status." },
150
+ type: { type: "string", description: "Alias for options.type." },
151
+ tag: { type: "string", description: "Alias for options.tag." },
152
+ priority: { type: "string", description: "Alias for options.priority." },
153
+ limit: { type: ["string", "number"], description: "Alias for options.limit." }
154
+ };
155
+ function objectSchema(properties, required = []) {
156
+ return {
157
+ ...TOOL_SCHEMA_BASE,
158
+ properties: {
159
+ ...TOOL_SCHEMA_BASE.properties,
160
+ ...properties
161
+ },
162
+ required
163
+ };
164
+ }
165
+ var TOOLS = [
166
+ {
167
+ name: "pm_run",
168
+ description: "Run any supported pm operation natively through the pm library. Use this for commands not covered by narrower pm_* tools.",
169
+ inputSchema: objectSchema({
170
+ action: {
171
+ type: "string",
172
+ description: PM_RUN_ACTION_DESCRIPTION
173
+ },
174
+ id: idSchema,
175
+ query: { type: "string", description: "Search query for action=search." },
176
+ reason: { type: "string", description: "Close reason for action=close." },
177
+ force: { type: "boolean", description: "Force ownership/terminal-state override when supported." },
178
+ // pm-v68d: the schema-specific subcommand enum and add-type/add-status
179
+ // properties migrated to the dedicated pm_schema tool. action=schema
180
+ // still accepts them as passthrough, but agents should prefer pm_schema.
181
+ subcommand: {
182
+ type: "string",
183
+ description: "Subcommand selector for actions that take one (for example telemetry, or schema \u2014 prefer the dedicated pm_schema tool for schema operations)."
184
+ },
185
+ options: { type: "object", description: "Underlying pm command options using camelCase keys." },
186
+ fullChangedFields: {
187
+ type: "boolean",
188
+ description: "For mutation actions, return the full changed_fields array instead of the default changed_field_count."
189
+ },
190
+ idOnly: {
191
+ type: "boolean",
192
+ description: "For single-item mutation actions, return only id and status."
193
+ }
194
+ }, ["action"])
195
+ },
196
+ {
197
+ name: "pm_context",
198
+ description: "Return the agent-oriented project context snapshot.",
199
+ inputSchema: objectSchema({ options: { type: "object" } })
200
+ },
201
+ {
202
+ name: "pm_search",
203
+ description: "Search pm items with keyword, semantic, or hybrid search. Defaults to a compact projection for token efficiency. Pass options.mode=keyword|semantic|hybrid, options.limit=N to cap hits, options.fields='id,title,score' for a custom projection, or options.full=true for full item bodies (can be large). The result echoes the applied filters and projection mode in query_summary.",
204
+ inputSchema: objectSchema({ query: { type: "string" }, options: { type: "object" }, ...SEARCH_TOP_LEVEL_OPTION_PROPERTIES }, ["query"])
205
+ },
206
+ {
207
+ name: "pm_list",
208
+ description: "List pm items with status/type/tag/priority filters. Defaults to compact projection for token efficiency. options.status accepts CSV (open,in_progress). Pass options.compact=false or options.includeBody=true for full bodies/comments. Pass options.brief=true for ultra-terse (id/status/type/title only). Pass options.fields='id,title,priority' for custom projection. Pass options.limit=N to cap row count. The result echoes the applied filters and projection mode in query_summary.",
209
+ inputSchema: objectSchema({ options: { type: "object" }, ...LIST_TOP_LEVEL_OPTION_PROPERTIES })
210
+ },
211
+ {
212
+ name: "pm_get",
213
+ description: "Read one pm item. Pass options.depth='brief' or options.fields='id,title,status' for low-token inspection.",
214
+ inputSchema: objectSchema({
215
+ id: idSchema,
216
+ options: { type: "object", description: "Get options such as depth=brief|standard|deep|full or fields=id,title,status." }
217
+ }, ["id"])
218
+ },
219
+ {
220
+ name: "pm_create",
221
+ description: "Create a pm item natively and write pm history. Output is compact by default (changed_fields replaced with changed_field_count for token efficiency); pass fullChangedFields=true for the full changed_fields array.",
222
+ inputSchema: objectSchema({
223
+ fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
224
+ allowMissingParent: { type: "boolean", description: "Allow unresolved parent references and emit a validation warning." },
225
+ options: { type: "object", description: "Create options. title and description are required." }
226
+ }, ["options"])
227
+ },
228
+ {
229
+ name: "pm_copy",
230
+ description: "Copy an existing pm item into a new id while resetting lifecycle fields. Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.",
231
+ inputSchema: objectSchema({
232
+ id: idSchema,
233
+ fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
234
+ options: { type: "object", description: "Copy options such as title override, author, and message." }
235
+ }, ["id"])
236
+ },
237
+ {
238
+ name: "pm_update",
239
+ description: "Update pm item metadata/body/dependencies/log seeds natively. Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields delta.",
240
+ inputSchema: objectSchema({
241
+ id: idSchema,
242
+ fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
243
+ options: { type: "object" }
244
+ }, ["id", "options"])
245
+ },
246
+ {
247
+ name: "pm_append",
248
+ description: "Append markdown text to a pm item body and write pm history. Useful for seeding evidence/log entries before close. Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.",
249
+ inputSchema: objectSchema({
250
+ id: idSchema,
251
+ body: {
252
+ type: "string",
253
+ description: "Markdown text to append to the item body. Required here or as options.body."
254
+ },
255
+ fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
256
+ options: { type: "object", description: "Append options such as body, author, and message." }
257
+ }, ["id"])
258
+ },
259
+ {
260
+ name: "pm_claim",
261
+ description: "Claim a pm item.",
262
+ inputSchema: objectSchema({ id: idSchema, force: { type: "boolean" }, options: { type: "object" } }, ["id"])
263
+ },
264
+ {
265
+ name: "pm_release",
266
+ description: "Release a pm item claim.",
267
+ inputSchema: objectSchema({ id: idSchema, force: { type: "boolean" }, options: { type: "object" } }, ["id"])
268
+ },
269
+ {
270
+ name: "pm_close",
271
+ description: "Close a pm item with optional close reason and optional close validation (reason requirement follows governance settings). Output is compact by default (changed_fields replaced with changed_field_count); pass fullChangedFields=true for the full changed_fields array.",
272
+ inputSchema: objectSchema({
273
+ id: idSchema,
274
+ reason: { type: "string", description: "Close reason text when provided or required by governance settings." },
275
+ duplicateOf: { type: "string", description: "Canonical item id when closing this item as a duplicate." },
276
+ fullChangedFields: { type: "boolean", description: "Return full changed_fields instead of changed_field_count." },
277
+ idOnly: { type: "boolean", description: "Return only id and status." },
278
+ options: { type: "object" }
279
+ }, ["id"])
280
+ },
281
+ {
282
+ name: "pm_comments",
283
+ description: "List or add comments on a pm item. Use options.add to append. List calls default to the most recent 20 comments with total_count/has_more metadata for token efficiency. Pass options.limit=N to choose a page size, options.limit=0 for summary-only metadata, or options.full=true for full history.",
284
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
285
+ },
286
+ {
287
+ name: "pm_files",
288
+ description: "List, add, remove, audit, or validate linked files for a pm item.",
289
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
290
+ },
291
+ {
292
+ name: "pm_docs",
293
+ description: "List, add, or remove linked docs for a pm item.",
294
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
295
+ },
296
+ {
297
+ name: "pm_notes",
298
+ description: "List or add structured notes on a pm item. Use options.add to append a note; omit it to list existing notes.",
299
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
300
+ },
301
+ {
302
+ name: "pm_learnings",
303
+ description: "List or add learnings on a pm item. Use options.add to capture a learning/insight; omit it to list existing learnings.",
304
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
305
+ },
306
+ {
307
+ name: "pm_deps",
308
+ 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.",
309
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
310
+ },
311
+ {
312
+ name: "pm_test",
313
+ description: "List, add, remove, or run linked tests for a pm item.",
314
+ inputSchema: objectSchema({ id: idSchema, options: { type: "object" } }, ["id"])
315
+ },
316
+ {
317
+ name: "pm_validate",
318
+ description: "Run pm validation checks.",
319
+ inputSchema: objectSchema({ options: { type: "object" } })
320
+ },
321
+ {
322
+ name: "pm_health",
323
+ 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.",
324
+ inputSchema: objectSchema({ options: { type: "object" } })
325
+ },
326
+ {
327
+ name: "pm_contracts",
328
+ description: "Inspect pm command, flag, schema, and availability contracts.",
329
+ inputSchema: objectSchema({ options: { type: "object" } })
330
+ },
331
+ {
332
+ name: "pm_schema",
333
+ description: "Inspect or modify the workspace item-type/status schema (pm schema). subcommand selects the operation; name carries the item type name (show/add-type/remove-type) or status id (show-status/add-status/remove-status). Schema mutations write workspace config files, not item history.",
334
+ inputSchema: objectSchema({
335
+ subcommand: {
336
+ type: "string",
337
+ enum: ["list", "show", "show-status", "add-type", "remove-type", "add-status", "remove-status"],
338
+ description: "Schema subcommand to run."
339
+ },
340
+ name: {
341
+ type: "string",
342
+ 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."
343
+ },
344
+ description: {
345
+ type: "string",
346
+ description: "Custom item type or status description for add-type/add-status."
347
+ },
348
+ defaultStatus: { type: "string", description: "Default status for add-type." },
349
+ folder: { type: "string", description: "Storage folder for add-type." },
350
+ alias: {
351
+ type: "array",
352
+ items: { type: "string" },
353
+ description: "Aliases for add-type/add-status."
354
+ },
355
+ role: {
356
+ type: "array",
357
+ items: { type: "string", enum: [...RUNTIME_STATUS_ROLE_VALUES] },
358
+ description: `Lifecycle roles for add-status: ${RUNTIME_STATUS_ROLE_VALUES.join(", ")}.`
359
+ },
360
+ order: { type: "number", description: "Display/sort order for add-status." },
361
+ force: { type: "boolean", description: "Override removal guardrails for destructive schema changes when supported." },
362
+ options: { type: "object", description: "Additional schema options using camelCase keys." }
363
+ }, ["subcommand"])
364
+ },
365
+ {
366
+ name: "pm_config",
367
+ description: "Read or write pm workspace configuration (pm config). configAction selects get/set/list/export; key/value address a single setting for get/set. scope chooses the project (default) or global settings file.",
368
+ inputSchema: objectSchema({
369
+ configAction: {
370
+ type: "string",
371
+ enum: ["get", "set", "list", "export"],
372
+ description: "Config operation to perform. get/set require key; list/export dump the resolved settings surface."
373
+ },
374
+ key: {
375
+ type: "string",
376
+ 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)."
377
+ },
378
+ value: { type: "string", description: "New value for configAction=set." },
379
+ scope: {
380
+ type: "string",
381
+ enum: ["project", "global"],
382
+ description: "Settings scope to read or write. Defaults to project."
383
+ },
384
+ options: {
385
+ type: "object",
386
+ description: "Additional config options such as criterion, clearCriteria, format, or policy."
387
+ }
388
+ }, ["configAction"])
389
+ },
390
+ {
391
+ name: "pm_plan",
392
+ 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.",
393
+ inputSchema: objectSchema({
394
+ id: { type: "string", description: "Plan id (required for all subcommands except create)." },
395
+ stepRef: { type: "string", description: "Step id or order for step lifecycle subcommands." },
396
+ reorderTo: { type: "number", description: "New order for reorder-step." },
397
+ options: { type: "object", description: "Plan options including subcommand, stepRef, stepStatus, link, depth, etc." }
398
+ })
399
+ }
400
+ ];
401
+ function buildMcpToolContracts() {
402
+ return TOOLS.map((tool) => {
403
+ const schemaRequired = tool.inputSchema["required"];
404
+ const required = Array.isArray(schemaRequired) ? schemaRequired.map((entry) => String(entry)).sort((left, right) => left.localeCompare(right)) : [];
405
+ return {
406
+ name: tool.name,
407
+ description: tool.description,
408
+ required,
409
+ input_schema: tool.inputSchema
410
+ };
411
+ }).sort((left, right) => left.name.localeCompare(right.name));
412
+ }
106
413
 
107
414
  // dist/cli/commands/contracts.js
108
415
  !(function() {
109
416
  try {
110
417
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
111
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "9908a1a7-392d-5712-b02f-9826c2622970");
418
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "12e83af6-c58e-5160-953b-125058fcf224");
112
419
  } catch (e2) {
113
420
  }
114
421
  })();
@@ -1275,9 +1582,12 @@ async function runContracts(options, global2) {
1275
1582
  result.commander_aliases_omitted_reason = "unfiltered_default_brief";
1276
1583
  }
1277
1584
  }
1585
+ if (fullOutput && !schemaOnly && !flagsOnly && !availabilityOnly) {
1586
+ result.mcp_tools = buildMcpToolContracts();
1587
+ }
1278
1588
  return result;
1279
1589
  }
1280
1590
  export {
1281
1591
  runContracts
1282
1592
  };
1283
- //# sourceMappingURL=contracts-47X7RYUF.js.map
1593
+ //# sourceMappingURL=contracts-MIXBWJIB.js.map