@unbrained/pm-cli 2026.6.24 → 2026.7.1

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 (744) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +113 -1
  3. package/CONTRIBUTING.md +30 -0
  4. package/README.md +16 -3
  5. package/dist/cli/bootstrap-args.js +89 -79
  6. package/dist/cli/bootstrap-args.js.map +1 -1
  7. package/dist/cli/commander-usage.js +3 -3
  8. package/dist/cli/commander-usage.js.map +1 -1
  9. package/dist/cli/commands/aggregate.js +8 -7
  10. package/dist/cli/commands/aggregate.js.map +1 -1
  11. package/dist/cli/commands/calendar.js +63 -62
  12. package/dist/cli/commands/calendar.js.map +1 -1
  13. package/dist/cli/commands/close.d.ts +2 -4
  14. package/dist/cli/commands/close.js +5 -17
  15. package/dist/cli/commands/close.js.map +1 -1
  16. package/dist/cli/commands/completion.js +158 -9
  17. package/dist/cli/commands/completion.js.map +1 -1
  18. package/dist/cli/commands/config.d.ts +1 -1
  19. package/dist/cli/commands/config.js +2 -2
  20. package/dist/cli/commands/config.js.map +1 -1
  21. package/dist/cli/commands/context.d.ts +31 -4
  22. package/dist/cli/commands/context.js +33 -10
  23. package/dist/cli/commands/context.js.map +1 -1
  24. package/dist/cli/commands/contracts.js +48 -8
  25. package/dist/cli/commands/contracts.js.map +1 -1
  26. package/dist/cli/commands/create.d.ts +1 -6
  27. package/dist/cli/commands/create.js +491 -587
  28. package/dist/cli/commands/create.js.map +1 -1
  29. package/dist/cli/commands/extension/bundled-catalog.js +59 -46
  30. package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
  31. package/dist/cli/commands/extension/describe.d.ts +15 -0
  32. package/dist/cli/commands/extension/describe.js +48 -2
  33. package/dist/cli/commands/extension/describe.js.map +1 -1
  34. package/dist/cli/commands/extension/doctor.js +129 -75
  35. package/dist/cli/commands/extension/doctor.js.map +1 -1
  36. package/dist/cli/commands/extension/install-sources.js +37 -7
  37. package/dist/cli/commands/extension/install-sources.js.map +1 -1
  38. package/dist/cli/commands/extension/managed-state.js +101 -57
  39. package/dist/cli/commands/extension/managed-state.js.map +1 -1
  40. package/dist/cli/commands/extension/scaffold.d.ts +38 -8
  41. package/dist/cli/commands/extension/scaffold.js +1956 -242
  42. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  43. package/dist/cli/commands/extension.d.ts +28 -3
  44. package/dist/cli/commands/extension.js +1181 -880
  45. package/dist/cli/commands/extension.js.map +1 -1
  46. package/dist/cli/commands/index.d.ts +3 -1
  47. package/dist/cli/commands/index.js +5 -3
  48. package/dist/cli/commands/index.js.map +1 -1
  49. package/dist/cli/commands/item-filter-options.d.ts +63 -0
  50. package/dist/cli/commands/item-filter-options.js +10 -0
  51. package/dist/cli/commands/item-filter-options.js.map +1 -0
  52. package/dist/cli/commands/legacy-none-tokens.d.ts +14 -0
  53. package/dist/cli/commands/legacy-none-tokens.js +31 -2
  54. package/dist/cli/commands/legacy-none-tokens.js.map +1 -1
  55. package/dist/cli/commands/linked-artifacts.d.ts +7 -0
  56. package/dist/cli/commands/linked-artifacts.js +12 -2
  57. package/dist/cli/commands/linked-artifacts.js.map +1 -1
  58. package/dist/cli/commands/list-filter-shared.js +55 -48
  59. package/dist/cli/commands/list-filter-shared.js.map +1 -1
  60. package/dist/cli/commands/list.d.ts +16 -39
  61. package/dist/cli/commands/list.js +127 -118
  62. package/dist/cli/commands/list.js.map +1 -1
  63. package/dist/cli/commands/next.d.ts +98 -0
  64. package/dist/cli/commands/next.js +304 -0
  65. package/dist/cli/commands/next.js.map +1 -0
  66. package/dist/cli/commands/profile.d.ts +208 -0
  67. package/dist/cli/commands/profile.js +418 -0
  68. package/dist/cli/commands/profile.js.map +1 -0
  69. package/dist/cli/commands/repeatable-metadata-parsers.js +12 -13
  70. package/dist/cli/commands/repeatable-metadata-parsers.js.map +1 -1
  71. package/dist/cli/commands/schema.d.ts +7 -0
  72. package/dist/cli/commands/schema.js +9 -3
  73. package/dist/cli/commands/schema.js.map +1 -1
  74. package/dist/cli/commands/search.d.ts +2 -39
  75. package/dist/cli/commands/search.js +196 -172
  76. package/dist/cli/commands/search.js.map +1 -1
  77. package/dist/cli/commands/shared-unset-fields.d.ts +30 -0
  78. package/dist/cli/commands/shared-unset-fields.js +161 -0
  79. package/dist/cli/commands/shared-unset-fields.js.map +1 -0
  80. package/dist/cli/commands/stats.js +15 -3
  81. package/dist/cli/commands/stats.js.map +1 -1
  82. package/dist/cli/commands/test.js +115 -125
  83. package/dist/cli/commands/test.js.map +1 -1
  84. package/dist/cli/commands/update.d.ts +1 -6
  85. package/dist/cli/commands/update.js +37 -232
  86. package/dist/cli/commands/update.js.map +1 -1
  87. package/dist/cli/commands/validate.js +20 -5
  88. package/dist/cli/commands/validate.js.map +1 -1
  89. package/dist/cli/extension-command-options.js +48 -21
  90. package/dist/cli/extension-command-options.js.map +1 -1
  91. package/dist/cli/help-content.js +26 -2
  92. package/dist/cli/help-content.js.map +1 -1
  93. package/dist/cli/help-json-payload.js +3 -3
  94. package/dist/cli/help-json-payload.js.map +1 -1
  95. package/dist/cli/main.js +27 -12
  96. package/dist/cli/main.js.map +1 -1
  97. package/dist/cli/register-list-query.js +42 -3
  98. package/dist/cli/register-list-query.js.map +1 -1
  99. package/dist/cli/register-mutation.js +86 -2
  100. package/dist/cli/register-mutation.js.map +1 -1
  101. package/dist/cli/register-setup.js +67 -6
  102. package/dist/cli/register-setup.js.map +1 -1
  103. package/dist/cli/registration-helpers.d.ts +9 -1
  104. package/dist/cli/registration-helpers.js +149 -123
  105. package/dist/cli/registration-helpers.js.map +1 -1
  106. package/dist/cli-bundle/chunks/activity-AW6XVFH6.js +16 -0
  107. package/dist/cli-bundle/chunks/{activity-N7RVTLBQ.js → activity-DBLQVIP6.js} +9 -11
  108. package/dist/cli-bundle/chunks/{aggregate-63NWNIBR.js → aggregate-JTEF4BP7.js} +17 -18
  109. package/dist/cli-bundle/chunks/aggregate-JTEF4BP7.js.map +1 -0
  110. package/dist/cli-bundle/chunks/{aggregate-YHCYX2EV.js → aggregate-SDF7DUOD.js} +16 -17
  111. package/dist/cli-bundle/chunks/aggregate-SDF7DUOD.js.map +7 -0
  112. package/dist/cli-bundle/chunks/{append-VLQQDHMJ.js → append-LOVPGVPT.js} +8 -10
  113. package/dist/cli-bundle/chunks/{append-VLQQDHMJ.js.map → append-LOVPGVPT.js.map} +1 -1
  114. package/dist/cli-bundle/chunks/{append-PUKREFV5.js → append-QCFJSDFL.js} +10 -12
  115. package/dist/cli-bundle/chunks/{append-PUKREFV5.js.map → append-QCFJSDFL.js.map} +1 -1
  116. package/dist/cli-bundle/chunks/{chunk-ABYCA5VX.js → chunk-22WKIL3H.js} +9 -11
  117. package/dist/cli-bundle/chunks/{chunk-ABYCA5VX.js.map → chunk-22WKIL3H.js.map} +1 -1
  118. package/dist/cli-bundle/chunks/{chunk-A66VYUOV.js → chunk-2466X6E4.js} +9 -11
  119. package/dist/cli-bundle/chunks/{chunk-A66VYUOV.js.map → chunk-2466X6E4.js.map} +1 -1
  120. package/dist/cli-bundle/chunks/{chunk-F32L4HR6.js → chunk-27BXPBAY.js} +3 -3
  121. package/dist/cli-bundle/chunks/{schema-QO5I4FBL.js → chunk-2D4HATP2.js} +136 -66
  122. package/dist/cli-bundle/chunks/chunk-2D4HATP2.js.map +1 -0
  123. package/dist/cli-bundle/chunks/{chunk-J7I4C5ZB.js → chunk-3J6JRJ3I.js} +153 -125
  124. package/dist/cli-bundle/chunks/chunk-3J6JRJ3I.js.map +7 -0
  125. package/dist/cli-bundle/chunks/{chunk-OHDQNKJB.js → chunk-3K2M5OYU.js} +106 -34
  126. package/dist/cli-bundle/chunks/chunk-3K2M5OYU.js.map +7 -0
  127. package/dist/cli-bundle/chunks/{chunk-XVYKWZNL.js → chunk-3S2KT7NG.js} +127 -127
  128. package/dist/cli-bundle/chunks/chunk-3S2KT7NG.js.map +7 -0
  129. package/dist/cli-bundle/chunks/{chunk-5BBEWX6C.js → chunk-3VGN2UWE.js} +2 -2
  130. package/dist/cli-bundle/chunks/{chunk-N5B6WZC5.js → chunk-3XZCOZ5J.js} +115 -123
  131. package/dist/cli-bundle/chunks/chunk-3XZCOZ5J.js.map +1 -0
  132. package/dist/cli-bundle/chunks/chunk-4A3BJ675.js +799 -0
  133. package/dist/cli-bundle/chunks/chunk-4A3BJ675.js.map +1 -0
  134. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js +87 -0
  135. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js.map +7 -0
  136. package/dist/cli-bundle/chunks/{chunk-HZF5RLKX.js → chunk-4DSGXSBL.js} +5 -7
  137. package/dist/cli-bundle/chunks/{chunk-HZF5RLKX.js.map → chunk-4DSGXSBL.js.map} +1 -1
  138. package/dist/cli-bundle/chunks/{chunk-JV27C7OZ.js → chunk-4DUVCVLZ.js} +4 -6
  139. package/dist/cli-bundle/chunks/{chunk-JV27C7OZ.js.map → chunk-4DUVCVLZ.js.map} +1 -1
  140. package/dist/cli-bundle/chunks/{chunk-IAP5KYBQ.js → chunk-4XOIEKSD.js} +563 -506
  141. package/dist/cli-bundle/chunks/chunk-4XOIEKSD.js.map +1 -0
  142. package/dist/cli-bundle/chunks/{context-5LB7UGKE.js → chunk-55SNVXRQ.js} +79 -82
  143. package/dist/cli-bundle/chunks/chunk-55SNVXRQ.js.map +7 -0
  144. package/dist/cli-bundle/chunks/{chunk-BFFO3AIB.js → chunk-5CGRF3L5.js} +128 -128
  145. package/dist/cli-bundle/chunks/chunk-5CGRF3L5.js.map +1 -0
  146. package/dist/cli-bundle/chunks/{chunk-JKL6HRMV.js → chunk-5QFDBI4F.js} +1260 -1046
  147. package/dist/cli-bundle/chunks/chunk-5QFDBI4F.js.map +7 -0
  148. package/dist/cli-bundle/chunks/{chunk-LU36E6GU.js → chunk-64HNBBFQ.js} +8 -12
  149. package/dist/cli-bundle/chunks/{chunk-LU36E6GU.js.map → chunk-64HNBBFQ.js.map} +1 -1
  150. package/dist/cli-bundle/chunks/chunk-6AQZPVHQ.js +2444 -0
  151. package/dist/cli-bundle/chunks/chunk-6AQZPVHQ.js.map +1 -0
  152. package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js +17 -0
  153. package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js.map +7 -0
  154. package/dist/cli-bundle/chunks/{chunk-VSAABFGQ.js → chunk-7R4QEMZZ.js} +1490 -734
  155. package/dist/cli-bundle/chunks/chunk-7R4QEMZZ.js.map +1 -0
  156. package/dist/cli-bundle/chunks/{chunk-M6TUBOGW.js → chunk-A7FPBAQS.js} +19 -12
  157. package/dist/cli-bundle/chunks/chunk-A7FPBAQS.js.map +1 -0
  158. package/dist/cli-bundle/chunks/{chunk-GQYJEEFX.js → chunk-AVEE5EHK.js} +53 -54
  159. package/dist/cli-bundle/chunks/chunk-AVEE5EHK.js.map +1 -0
  160. package/dist/cli-bundle/chunks/{chunk-FMWW2JDU.js → chunk-AXIDKKAT.js} +2 -2
  161. package/dist/cli-bundle/chunks/{chunk-TIM4OD74.js → chunk-BDTISOSD.js} +2 -2
  162. package/dist/cli-bundle/chunks/{chunk-C4C3EJCJ.js → chunk-BHO33VBQ.js} +509 -363
  163. package/dist/cli-bundle/chunks/chunk-BHO33VBQ.js.map +7 -0
  164. package/dist/cli-bundle/chunks/{chunk-6W3Y65PL.js → chunk-BZCEN4JA.js} +198 -177
  165. package/dist/cli-bundle/chunks/chunk-BZCEN4JA.js.map +7 -0
  166. package/dist/cli-bundle/chunks/{chunk-RRP6D345.js → chunk-CF7RL6FR.js} +12 -16
  167. package/dist/cli-bundle/chunks/{chunk-RRP6D345.js.map → chunk-CF7RL6FR.js.map} +1 -1
  168. package/dist/cli-bundle/chunks/{chunk-HC2S36NB.js → chunk-CWFNTKQJ.js} +154 -126
  169. package/dist/cli-bundle/chunks/chunk-CWFNTKQJ.js.map +1 -0
  170. package/dist/cli-bundle/chunks/chunk-CZVISY5A.js +87 -0
  171. package/dist/cli-bundle/chunks/chunk-CZVISY5A.js.map +7 -0
  172. package/dist/cli-bundle/chunks/{chunk-CZIFFMZI.js → chunk-DDPTYJIM.js} +2 -2
  173. package/dist/cli-bundle/chunks/{chunk-AYPQUFCX.js → chunk-EJUDVUYZ.js} +3 -3
  174. package/dist/cli-bundle/chunks/{chunk-EOGBMLCE.js → chunk-EVMTBV6V.js} +3 -3
  175. package/dist/cli-bundle/chunks/{chunk-RAWA3Y7O.js → chunk-FFMQB7WR.js} +199 -178
  176. package/dist/cli-bundle/chunks/chunk-FFMQB7WR.js.map +1 -0
  177. package/dist/cli-bundle/chunks/{chunk-CG3KP6I5.js → chunk-G7I7DEZA.js} +4 -4
  178. package/dist/cli-bundle/chunks/{chunk-MEXZ5XUM.js → chunk-GJ326ZKX.js} +53 -54
  179. package/dist/cli-bundle/chunks/chunk-GJ326ZKX.js.map +7 -0
  180. package/dist/cli-bundle/chunks/chunk-HPPFYYOV.js +119 -0
  181. package/dist/cli-bundle/chunks/chunk-HPPFYYOV.js.map +7 -0
  182. package/dist/cli-bundle/chunks/{chunk-OF7V47P3.js → chunk-HXTQJXWT.js} +2172 -2146
  183. package/dist/cli-bundle/chunks/chunk-HXTQJXWT.js.map +1 -0
  184. package/dist/cli-bundle/chunks/{chunk-F4BNR2IN.js → chunk-HYTGA6GI.js} +3 -3
  185. package/dist/cli-bundle/chunks/{chunk-2WCYE3IF.js → chunk-HZZEHPRG.js} +2 -2
  186. package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js +14 -0
  187. package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js.map +1 -0
  188. package/dist/cli-bundle/chunks/{chunk-YV2OSAMS.js → chunk-IJYK2T43.js} +2 -2
  189. package/dist/cli-bundle/chunks/{chunk-4XDGYFHL.js → chunk-IPYBJWTE.js} +10 -14
  190. package/dist/cli-bundle/chunks/{chunk-4XDGYFHL.js.map → chunk-IPYBJWTE.js.map} +1 -1
  191. package/dist/cli-bundle/chunks/{chunk-6EBNFQOR.js → chunk-IZBR4NRW.js} +10 -14
  192. package/dist/cli-bundle/chunks/{chunk-6EBNFQOR.js.map → chunk-IZBR4NRW.js.map} +1 -1
  193. package/dist/cli-bundle/chunks/{chunk-VFJYVXHL.js → chunk-JLM7BHI7.js} +7 -9
  194. package/dist/cli-bundle/chunks/{chunk-VFJYVXHL.js.map → chunk-JLM7BHI7.js.map} +1 -1
  195. package/dist/cli-bundle/chunks/{chunk-6EL7SW5C.js → chunk-JMP4E6D7.js} +114 -122
  196. package/dist/cli-bundle/chunks/chunk-JMP4E6D7.js.map +7 -0
  197. package/dist/cli-bundle/chunks/{chunk-QOUOMPHO.js → chunk-JPECA746.js} +2 -2
  198. package/dist/cli-bundle/chunks/{chunk-KJZOSF7J.js → chunk-JSU5P7VS.js} +100 -35
  199. package/dist/cli-bundle/chunks/chunk-JSU5P7VS.js.map +1 -0
  200. package/dist/cli-bundle/chunks/{context-55VEOYI3.js → chunk-JWXRETDF.js} +79 -82
  201. package/dist/cli-bundle/chunks/chunk-JWXRETDF.js.map +1 -0
  202. package/dist/cli-bundle/chunks/{chunk-OQ2E64FH.js → chunk-KNPEF7QG.js} +4 -4
  203. package/dist/cli-bundle/chunks/{chunk-3BKH2CL3.js → chunk-L5OEFZQG.js} +3 -3
  204. package/dist/cli-bundle/chunks/{chunk-DTABLLVE.js → chunk-LB6TP6MC.js} +5 -7
  205. package/dist/cli-bundle/chunks/{chunk-DTABLLVE.js.map → chunk-LB6TP6MC.js.map} +2 -2
  206. package/dist/cli-bundle/chunks/{chunk-TSI32UEL.js → chunk-MAUKX7JC.js} +6 -8
  207. package/dist/cli-bundle/chunks/{chunk-TSI32UEL.js.map → chunk-MAUKX7JC.js.map} +1 -1
  208. package/dist/cli-bundle/chunks/{chunk-SMXSDY7J.js → chunk-MDPEOIGN.js} +2221 -2172
  209. package/dist/cli-bundle/chunks/chunk-MDPEOIGN.js.map +7 -0
  210. package/dist/cli-bundle/chunks/{chunk-5S4ZGDB2.js → chunk-N74UMG5H.js} +2 -2
  211. package/dist/cli-bundle/chunks/{chunk-IXAZI443.js → chunk-NFDPYAIP.js} +2 -2
  212. package/dist/cli-bundle/chunks/{chunk-SKC4UTRP.js → chunk-NKZAN7BD.js} +3 -3
  213. package/dist/cli-bundle/chunks/chunk-NOLPZMSV.js +116 -0
  214. package/dist/cli-bundle/chunks/chunk-NOLPZMSV.js.map +1 -0
  215. package/dist/cli-bundle/chunks/{chunk-L7UXKP2I.js → chunk-NU2UEROZ.js} +1257 -1029
  216. package/dist/cli-bundle/chunks/chunk-NU2UEROZ.js.map +1 -0
  217. package/dist/cli-bundle/chunks/{chunk-HBAEFWX3.js → chunk-NUHHPVVS.js} +65 -335
  218. package/dist/cli-bundle/chunks/chunk-NUHHPVVS.js.map +7 -0
  219. package/dist/cli-bundle/chunks/{chunk-JPJDP4VU.js → chunk-NWMZWYYB.js} +2 -2
  220. package/dist/cli-bundle/chunks/{chunk-MWMHZOZZ.js → chunk-OGXLACHC.js} +10 -14
  221. package/dist/cli-bundle/chunks/{chunk-MWMHZOZZ.js.map → chunk-OGXLACHC.js.map} +1 -1
  222. package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js +379 -0
  223. package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js.map +1 -0
  224. package/dist/cli-bundle/chunks/{chunk-KKX4Z2SE.js → chunk-OTUHB4HS.js} +4 -4
  225. package/dist/cli-bundle/chunks/{chunk-ZLWRPBOW.js → chunk-QCWF6IYD.js} +510 -364
  226. package/dist/cli-bundle/chunks/chunk-QCWF6IYD.js.map +1 -0
  227. package/dist/cli-bundle/chunks/{chunk-PRVTGX64.js → chunk-RGEMWD6Q.js} +11 -23
  228. package/dist/cli-bundle/chunks/chunk-RGEMWD6Q.js.map +7 -0
  229. package/dist/cli-bundle/chunks/chunk-RH5ZBYFD.js +809 -0
  230. package/dist/cli-bundle/chunks/chunk-RH5ZBYFD.js.map +7 -0
  231. package/dist/cli-bundle/chunks/{chunk-ALQKV6U7.js → chunk-RLDHZHQS.js} +12 -16
  232. package/dist/cli-bundle/chunks/{chunk-ALQKV6U7.js.map → chunk-RLDHZHQS.js.map} +1 -1
  233. package/dist/cli-bundle/chunks/{schema-C6QA367T.js → chunk-RMMQ74TG.js} +144 -67
  234. package/dist/cli-bundle/chunks/chunk-RMMQ74TG.js.map +7 -0
  235. package/dist/cli-bundle/chunks/{chunk-EYPINTFR.js → chunk-RVUALSJF.js} +1516 -753
  236. package/dist/cli-bundle/chunks/chunk-RVUALSJF.js.map +7 -0
  237. package/dist/cli-bundle/chunks/chunk-SDR5J34Q.js +2468 -0
  238. package/dist/cli-bundle/chunks/chunk-SDR5J34Q.js.map +7 -0
  239. package/dist/cli-bundle/chunks/{chunk-WB5BYQMF.js → chunk-SLMUGTK3.js} +4 -4
  240. package/dist/cli-bundle/chunks/{chunk-SUREE24M.js → chunk-TP5Q5ZD3.js} +12 -24
  241. package/dist/cli-bundle/chunks/chunk-TP5Q5ZD3.js.map +1 -0
  242. package/dist/cli-bundle/chunks/{chunk-UACWNBL2.js → chunk-UYUYDGIB.js} +7 -9
  243. package/dist/cli-bundle/chunks/{chunk-UACWNBL2.js.map → chunk-UYUYDGIB.js.map} +1 -1
  244. package/dist/cli-bundle/chunks/{chunk-V4UYNSEM.js → chunk-UZIWVBE6.js} +6 -8
  245. package/dist/cli-bundle/chunks/{chunk-V4UYNSEM.js.map → chunk-UZIWVBE6.js.map} +1 -1
  246. package/dist/cli-bundle/chunks/{chunk-EWRSXOIZ.js → chunk-V3NOKJF2.js} +11 -13
  247. package/dist/cli-bundle/chunks/{chunk-EWRSXOIZ.js.map → chunk-V3NOKJF2.js.map} +1 -1
  248. package/dist/cli-bundle/chunks/{chunk-XXKV4UWE.js → chunk-VARHOHYV.js} +571 -507
  249. package/dist/cli-bundle/chunks/chunk-VARHOHYV.js.map +7 -0
  250. package/dist/cli-bundle/chunks/{chunk-AEACLRVH.js → chunk-VICZWYGZ.js} +18 -11
  251. package/dist/cli-bundle/chunks/chunk-VICZWYGZ.js.map +7 -0
  252. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js +84 -0
  253. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js.map +1 -0
  254. package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js +382 -0
  255. package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js.map +7 -0
  256. package/dist/cli-bundle/chunks/{chunk-GDUMGZK3.js → chunk-W4ULYO7Z.js} +11 -13
  257. package/dist/cli-bundle/chunks/{chunk-GDUMGZK3.js.map → chunk-W4ULYO7Z.js.map} +1 -1
  258. package/dist/cli-bundle/chunks/{chunk-I6QMJ2XT.js → chunk-WYDHYJPO.js} +2 -2
  259. package/dist/cli-bundle/chunks/{chunk-ALKFCIIB.js → chunk-YITK2PJ6.js} +9 -11
  260. package/dist/cli-bundle/chunks/{chunk-ALKFCIIB.js.map → chunk-YITK2PJ6.js.map} +1 -1
  261. package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js +84 -0
  262. package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js.map +1 -0
  263. package/dist/cli-bundle/chunks/{chunk-LNEDHJNQ.js → chunk-ZETXE4SE.js} +66 -329
  264. package/dist/cli-bundle/chunks/chunk-ZETXE4SE.js.map +1 -0
  265. package/dist/cli-bundle/chunks/{chunk-KIEAK7YE.js → chunk-ZRP4VG5U.js} +2 -2
  266. package/dist/cli-bundle/chunks/{claim-FZZZCAY6.js → claim-EMQLYPRW.js} +10 -12
  267. package/dist/cli-bundle/chunks/{claim-FZZZCAY6.js.map → claim-EMQLYPRW.js.map} +1 -1
  268. package/dist/cli-bundle/chunks/{claim-XK5QBZE3.js → claim-T3GCKV7C.js} +8 -10
  269. package/dist/cli-bundle/chunks/{claim-XK5QBZE3.js.map → claim-T3GCKV7C.js.map} +1 -1
  270. package/dist/cli-bundle/chunks/close-E6ZZGCJY.js +14 -0
  271. package/dist/cli-bundle/chunks/{close-QHMVWM7M.js → close-TQYAAFJP.js} +7 -8
  272. package/dist/cli-bundle/chunks/{close-many-OIXJE2JZ.js → close-many-BG5QQIDQ.js} +16 -18
  273. package/dist/cli-bundle/chunks/{close-many-OIXJE2JZ.js.map → close-many-BG5QQIDQ.js.map} +1 -1
  274. package/dist/cli-bundle/chunks/{close-many-SUU5BS2C.js → close-many-LDRVEQY2.js} +18 -20
  275. package/dist/cli-bundle/chunks/{close-many-SUU5BS2C.js.map → close-many-LDRVEQY2.js.map} +1 -1
  276. package/dist/cli-bundle/chunks/{comments-5YM62D75.js → comments-QCKR2YY2.js} +11 -13
  277. package/dist/cli-bundle/chunks/{comments-5YM62D75.js.map → comments-QCKR2YY2.js.map} +1 -1
  278. package/dist/cli-bundle/chunks/{comments-RH3IBIRH.js → comments-YUXJRZPQ.js} +9 -11
  279. package/dist/cli-bundle/chunks/{comments-RH3IBIRH.js.map → comments-YUXJRZPQ.js.map} +1 -1
  280. package/dist/cli-bundle/chunks/{config-NCNNWF6R.js → config-DMSU64QO.js} +18 -387
  281. package/dist/cli-bundle/chunks/config-DMSU64QO.js.map +7 -0
  282. package/dist/cli-bundle/chunks/{config-SW3U7XP2.js → config-QH2DICD6.js} +18 -380
  283. package/dist/cli-bundle/chunks/config-QH2DICD6.js.map +1 -0
  284. package/dist/cli-bundle/chunks/context-B6275WPX.js +46 -0
  285. package/dist/cli-bundle/chunks/context-OCZ3FJ4Z.js +42 -0
  286. package/dist/cli-bundle/chunks/{contracts-SY6PDFIK.js → contracts-HN7ABKLP.js} +72 -15
  287. package/dist/cli-bundle/chunks/contracts-HN7ABKLP.js.map +7 -0
  288. package/dist/cli-bundle/chunks/{contracts-JXFGBOYT.js → contracts-W4FZVVD6.js} +72 -15
  289. package/dist/cli-bundle/chunks/contracts-W4FZVVD6.js.map +1 -0
  290. package/dist/cli-bundle/chunks/{copy-N3GE6FYS.js → copy-BTJOSKKT.js} +7 -11
  291. package/dist/cli-bundle/chunks/{copy-N3GE6FYS.js.map → copy-BTJOSKKT.js.map} +1 -1
  292. package/dist/cli-bundle/chunks/{copy-IEDBJOOX.js → copy-DEM4DATS.js} +9 -13
  293. package/dist/cli-bundle/chunks/{copy-IEDBJOOX.js.map → copy-DEM4DATS.js.map} +1 -1
  294. package/dist/cli-bundle/chunks/create-OH3BDGBB.js +28 -0
  295. package/dist/cli-bundle/chunks/{create-O4VONGPG.js → create-RLRJMRTM.js} +12 -14
  296. package/dist/cli-bundle/chunks/{delete-LPEIF7RU.js → delete-BHK7VB2Z.js} +5 -7
  297. package/dist/cli-bundle/chunks/{delete-LPEIF7RU.js.map → delete-BHK7VB2Z.js.map} +1 -1
  298. package/dist/cli-bundle/chunks/{delete-724EQ6OS.js → delete-LSVHAB4Y.js} +7 -9
  299. package/dist/cli-bundle/chunks/{delete-724EQ6OS.js.map → delete-LSVHAB4Y.js.map} +1 -1
  300. package/dist/cli-bundle/chunks/{deps-RSBU4SIU.js → deps-4UDFJRUA.js} +8 -11
  301. package/dist/cli-bundle/chunks/{deps-RSBU4SIU.js.map → deps-4UDFJRUA.js.map} +1 -1
  302. package/dist/cli-bundle/chunks/{deps-T3Y6Y7RT.js → deps-XHYXWEPT.js} +6 -9
  303. package/dist/cli-bundle/chunks/{deps-T3Y6Y7RT.js.map → deps-XHYXWEPT.js.map} +1 -1
  304. package/dist/cli-bundle/chunks/{docs-IFS7HZPP.js → docs-26S44RXU.js} +8 -9
  305. package/dist/cli-bundle/chunks/{docs-IFS7HZPP.js.map → docs-26S44RXU.js.map} +1 -1
  306. package/dist/cli-bundle/chunks/{docs-75ZLCO3G.js → docs-GYZNVS26.js} +10 -11
  307. package/dist/cli-bundle/chunks/{docs-75ZLCO3G.js.map → docs-GYZNVS26.js.map} +1 -1
  308. package/dist/cli-bundle/chunks/{eval-L2KD7W3M.js → eval-PGRVIJQU.js} +12 -14
  309. package/dist/cli-bundle/chunks/{eval-L2KD7W3M.js.map → eval-PGRVIJQU.js.map} +1 -1
  310. package/dist/cli-bundle/chunks/{eval-QGR7JCQO.js → eval-UYF3ZPVO.js} +10 -12
  311. package/dist/cli-bundle/chunks/{eval-QGR7JCQO.js.map → eval-UYF3ZPVO.js.map} +1 -1
  312. package/dist/cli-bundle/chunks/{extension-YQF4CPIR.js → extension-CPSLJQVE.js} +12 -7
  313. package/dist/cli-bundle/chunks/{extension-3JYWJ5K2.js → extension-CXJ6RELI.js} +12 -7
  314. package/dist/cli-bundle/chunks/{files-EPEJMJHQ.js → files-MBNICQFM.js} +9 -11
  315. package/dist/cli-bundle/chunks/{files-EPEJMJHQ.js.map → files-MBNICQFM.js.map} +1 -1
  316. package/dist/cli-bundle/chunks/{files-5BQWDRDT.js → files-NQHEXUZD.js} +11 -13
  317. package/dist/cli-bundle/chunks/{files-5BQWDRDT.js.map → files-NQHEXUZD.js.map} +1 -1
  318. package/dist/cli-bundle/chunks/{focus-RWGKD76E.js → focus-DWYIG7GU.js} +10 -14
  319. package/dist/cli-bundle/chunks/{focus-RWGKD76E.js.map → focus-DWYIG7GU.js.map} +1 -1
  320. package/dist/cli-bundle/chunks/{focus-DQVJAPOE.js → focus-XZW5423D.js} +8 -12
  321. package/dist/cli-bundle/chunks/{focus-DQVJAPOE.js.map → focus-XZW5423D.js.map} +1 -1
  322. package/dist/cli-bundle/chunks/{gc-BEJMQT64.js → gc-7GQYOS2G.js} +3 -3
  323. package/dist/cli-bundle/chunks/{gc-JEFQDJPA.js → gc-LPVMKJQJ.js} +3 -3
  324. package/dist/cli-bundle/chunks/{get-LQG6PEVG.js → get-A7MAOHCU.js} +10 -13
  325. package/dist/cli-bundle/chunks/{get-LQG6PEVG.js.map → get-A7MAOHCU.js.map} +1 -1
  326. package/dist/cli-bundle/chunks/{get-WVN75H42.js → get-DSDEKJ3L.js} +12 -15
  327. package/dist/cli-bundle/chunks/{get-WVN75H42.js.map → get-DSDEKJ3L.js.map} +1 -1
  328. package/dist/cli-bundle/chunks/{health-JJJOY7DJ.js → health-3IPFLKXB.js} +17 -17
  329. package/dist/cli-bundle/chunks/{health-P67NZ6TT.js → health-GZXGBZ36.js} +17 -17
  330. package/dist/cli-bundle/chunks/{history-RUKPKNY7.js → history-NERDJNUB.js} +8 -10
  331. package/dist/cli-bundle/chunks/history-WSZHY3PN.js +18 -0
  332. package/dist/cli-bundle/chunks/{history-compact-NQ7VPRVT.js → history-compact-2WRZ2WK4.js} +11 -14
  333. package/dist/cli-bundle/chunks/{history-compact-NQ7VPRVT.js.map → history-compact-2WRZ2WK4.js.map} +1 -1
  334. package/dist/cli-bundle/chunks/{history-compact-ZAOWR7GD.js → history-compact-HR7BB4LR.js} +13 -16
  335. package/dist/cli-bundle/chunks/{history-compact-ZAOWR7GD.js.map → history-compact-HR7BB4LR.js.map} +1 -1
  336. package/dist/cli-bundle/chunks/history-redact-MP6CH7U5.js +19 -0
  337. package/dist/cli-bundle/chunks/{history-redact-YY4XYVEP.js → history-redact-O3NBCNWC.js} +9 -11
  338. package/dist/cli-bundle/chunks/{history-repair-EHL4ODQY.js → history-repair-LCMOS45X.js} +11 -14
  339. package/dist/cli-bundle/chunks/{history-repair-EHL4ODQY.js.map → history-repair-LCMOS45X.js.map} +1 -1
  340. package/dist/cli-bundle/chunks/{history-repair-YSQH6SY6.js → history-repair-XA3LC4GA.js} +13 -16
  341. package/dist/cli-bundle/chunks/{history-repair-YSQH6SY6.js.map → history-repair-XA3LC4GA.js.map} +1 -1
  342. package/dist/cli-bundle/chunks/{init-HBFGYS66.js → init-64XDLQJB.js} +12 -11
  343. package/dist/cli-bundle/chunks/init-PAX32BJA.js +22 -0
  344. package/dist/cli-bundle/chunks/{learnings-KFQO7GEZ.js → learnings-JR6MA5TI.js} +9 -11
  345. package/dist/cli-bundle/chunks/{learnings-KFQO7GEZ.js.map → learnings-JR6MA5TI.js.map} +1 -1
  346. package/dist/cli-bundle/chunks/{learnings-J555ZFPD.js → learnings-LPKCSJX7.js} +11 -13
  347. package/dist/cli-bundle/chunks/{learnings-J555ZFPD.js.map → learnings-LPKCSJX7.js.map} +1 -1
  348. package/dist/cli-bundle/chunks/{list-C7R33MD5.js → list-DNBJVO3E.js} +10 -10
  349. package/dist/cli-bundle/chunks/{list-DSN6UNFB.js → list-G5Y65VF6.js} +10 -10
  350. package/dist/cli-bundle/chunks/next-BCERKDUR.js +277 -0
  351. package/dist/cli-bundle/chunks/next-BCERKDUR.js.map +7 -0
  352. package/dist/cli-bundle/chunks/next-FYTQF6HG.js +274 -0
  353. package/dist/cli-bundle/chunks/next-FYTQF6HG.js.map +1 -0
  354. package/dist/cli-bundle/chunks/{notes-V4VNIQL4.js → notes-2BMU3VVQ.js} +9 -11
  355. package/dist/cli-bundle/chunks/{notes-V4VNIQL4.js.map → notes-2BMU3VVQ.js.map} +1 -1
  356. package/dist/cli-bundle/chunks/{notes-VYJFN2A3.js → notes-6KTGO2OJ.js} +11 -13
  357. package/dist/cli-bundle/chunks/{notes-VYJFN2A3.js.map → notes-6KTGO2OJ.js.map} +1 -1
  358. package/dist/cli-bundle/chunks/{plan-RBHQ5PO7.js → plan-4WXEQCTN.js} +15 -18
  359. package/dist/cli-bundle/chunks/{plan-RBHQ5PO7.js.map → plan-4WXEQCTN.js.map} +1 -1
  360. package/dist/cli-bundle/chunks/{plan-DHRSVSHR.js → plan-RKZHQVXR.js} +17 -20
  361. package/dist/cli-bundle/chunks/{plan-DHRSVSHR.js.map → plan-RKZHQVXR.js.map} +1 -1
  362. package/dist/cli-bundle/chunks/profile-4OMM32CD.js +1235 -0
  363. package/dist/cli-bundle/chunks/profile-4OMM32CD.js.map +7 -0
  364. package/dist/cli-bundle/chunks/profile-QLER5ENE.js +1197 -0
  365. package/dist/cli-bundle/chunks/profile-QLER5ENE.js.map +1 -0
  366. package/dist/cli-bundle/chunks/{register-list-query-OM3E2KMY.js → register-list-query-7LV46VAU.js} +45 -21
  367. package/dist/cli-bundle/chunks/register-list-query-7LV46VAU.js.map +1 -0
  368. package/dist/cli-bundle/chunks/{register-list-query-CCMHGZTF.js → register-list-query-SNG5PGA4.js} +44 -20
  369. package/dist/cli-bundle/chunks/register-list-query-SNG5PGA4.js.map +7 -0
  370. package/dist/cli-bundle/chunks/{register-mutation-N3CDEGZU.js → register-mutation-ENNDUAZG.js} +106 -40
  371. package/dist/cli-bundle/chunks/register-mutation-ENNDUAZG.js.map +1 -0
  372. package/dist/cli-bundle/chunks/{register-mutation-UXTTWL6N.js → register-mutation-KK7PHYYU.js} +105 -39
  373. package/dist/cli-bundle/chunks/register-mutation-KK7PHYYU.js.map +7 -0
  374. package/dist/cli-bundle/chunks/{register-operations-UDIFMQKD.js → register-operations-C6OWLDSH.js} +32 -34
  375. package/dist/cli-bundle/chunks/{register-operations-UDIFMQKD.js.map → register-operations-C6OWLDSH.js.map} +1 -1
  376. package/dist/cli-bundle/chunks/{register-operations-R2FLOCRI.js → register-operations-HZ6XERQG.js} +30 -32
  377. package/dist/cli-bundle/chunks/{register-operations-R2FLOCRI.js.map → register-operations-HZ6XERQG.js.map} +1 -1
  378. package/dist/cli-bundle/chunks/{register-setup-G5LTSFYK.js → register-setup-P67EMBDJ.js} +68 -25
  379. package/dist/cli-bundle/chunks/register-setup-P67EMBDJ.js.map +1 -0
  380. package/dist/cli-bundle/chunks/{register-setup-TWHKICM2.js → register-setup-ZKJ53RS7.js} +67 -24
  381. package/dist/cli-bundle/chunks/register-setup-ZKJ53RS7.js.map +7 -0
  382. package/dist/cli-bundle/chunks/{restore-LL2WLEDG.js → restore-4MHZFJ2E.js} +9 -11
  383. package/dist/cli-bundle/chunks/restore-YALDGTQR.js +17 -0
  384. package/dist/cli-bundle/chunks/{scheduling-shortcuts-M4H2ZI64.js → scheduling-shortcuts-LB6DOLRL.js} +14 -16
  385. package/dist/cli-bundle/chunks/{scheduling-shortcuts-M4H2ZI64.js.map → scheduling-shortcuts-LB6DOLRL.js.map} +1 -1
  386. package/dist/cli-bundle/chunks/{scheduling-shortcuts-255GI3BU.js → scheduling-shortcuts-UTOYKLXQ.js} +12 -14
  387. package/dist/cli-bundle/chunks/{scheduling-shortcuts-255GI3BU.js.map → scheduling-shortcuts-UTOYKLXQ.js.map} +1 -1
  388. package/dist/cli-bundle/chunks/schema-73HR2OJW.js +75 -0
  389. package/dist/cli-bundle/chunks/schema-U6LJKSIR.js +71 -0
  390. package/dist/cli-bundle/chunks/{search-2EI6EAXH.js → search-AXPXKZER.js} +10 -12
  391. package/dist/cli-bundle/chunks/{search-QBFBLQRO.js → search-KILGT37L.js} +10 -12
  392. package/dist/cli-bundle/chunks/{stats-TKC6CAKB.js → stats-PSYVVTNZ.js} +21 -13
  393. package/dist/cli-bundle/chunks/stats-PSYVVTNZ.js.map +1 -0
  394. package/dist/cli-bundle/chunks/{stats-TCW2SZQG.js → stats-W5KNVJWQ.js} +20 -12
  395. package/dist/cli-bundle/chunks/stats-W5KNVJWQ.js.map +7 -0
  396. package/dist/cli-bundle/chunks/{telemetry-BT2VSWU2.js → telemetry-BZUF6H7G.js} +4 -4
  397. package/dist/cli-bundle/chunks/{telemetry-LQ6FRTUT.js → telemetry-GAHHQTOS.js} +4 -4
  398. package/dist/cli-bundle/chunks/test-ACD52Z3S.js +35 -0
  399. package/dist/cli-bundle/chunks/test-ACD52Z3S.js.map +7 -0
  400. package/dist/cli-bundle/chunks/{test-NV2DRPUS.js → test-PWDIZ255.js} +15 -16
  401. package/dist/cli-bundle/chunks/test-PWDIZ255.js.map +1 -0
  402. package/dist/cli-bundle/chunks/{test-all-DZ76VTPQ.js → test-all-L2MDDUCA.js} +20 -22
  403. package/dist/cli-bundle/chunks/{test-all-DZ76VTPQ.js.map → test-all-L2MDDUCA.js.map} +1 -1
  404. package/dist/cli-bundle/chunks/{test-all-REW67LXT.js → test-all-RBZ6DLU2.js} +18 -20
  405. package/dist/cli-bundle/chunks/{test-all-REW67LXT.js.map → test-all-RBZ6DLU2.js.map} +1 -1
  406. package/dist/cli-bundle/chunks/{test-runs-PX73DMMI.js → test-runs-PLRAZEFW.js} +5 -6
  407. package/dist/cli-bundle/chunks/test-runs-PLRAZEFW.js.map +7 -0
  408. package/dist/cli-bundle/chunks/{test-runs-FQ5WNQLP.js → test-runs-UXIXPDKU.js} +6 -7
  409. package/dist/cli-bundle/chunks/test-runs-UXIXPDKU.js.map +1 -0
  410. package/dist/cli-bundle/chunks/update-AMRSOIWP.js +24 -0
  411. package/dist/cli-bundle/chunks/update-AMRSOIWP.js.map +7 -0
  412. package/dist/cli-bundle/chunks/update-KFX2SIAC.js +28 -0
  413. package/dist/cli-bundle/chunks/update-KFX2SIAC.js.map +1 -0
  414. package/dist/cli-bundle/chunks/{update-many-Q5ZEI64S.js → update-many-RNSBX2TA.js} +35 -36
  415. package/dist/cli-bundle/chunks/{update-many-Q5ZEI64S.js.map → update-many-RNSBX2TA.js.map} +1 -1
  416. package/dist/cli-bundle/chunks/{update-many-2ILP6E4Y.js → update-many-Z5GJS5LC.js} +33 -34
  417. package/dist/cli-bundle/chunks/{update-many-2ILP6E4Y.js.map → update-many-Z5GJS5LC.js.map} +1 -1
  418. package/dist/cli-bundle/chunks/{upgrade-FOZKQTQF.js → upgrade-BRL6KCOJ.js} +13 -8
  419. package/dist/cli-bundle/chunks/{upgrade-FOZKQTQF.js.map → upgrade-BRL6KCOJ.js.map} +1 -1
  420. package/dist/cli-bundle/chunks/{upgrade-DHL74PQH.js → upgrade-HAK6JG2O.js} +11 -6
  421. package/dist/cli-bundle/chunks/{upgrade-DHL74PQH.js.map → upgrade-HAK6JG2O.js.map} +1 -1
  422. package/dist/cli-bundle/chunks/{validate-HYZNIB6W.js → validate-MTUVL5VC.js} +38 -28
  423. package/dist/cli-bundle/chunks/validate-MTUVL5VC.js.map +7 -0
  424. package/dist/cli-bundle/chunks/{validate-54SYJ7QW.js → validate-X5W76YJL.js} +39 -29
  425. package/dist/cli-bundle/chunks/validate-X5W76YJL.js.map +1 -0
  426. package/dist/cli-bundle/main.js +95 -724
  427. package/dist/cli-bundle/main.js.map +4 -4
  428. package/dist/core/config/positional-value.d.ts +2 -0
  429. package/dist/core/config/positional-value.js +2 -2
  430. package/dist/core/config/positional-value.js.map +1 -1
  431. package/dist/core/extensions/activation-summary-markdown.d.ts +71 -0
  432. package/dist/core/extensions/activation-summary-markdown.js +151 -0
  433. package/dist/core/extensions/activation-summary-markdown.js.map +1 -0
  434. package/dist/core/extensions/activation-summary.d.ts +2 -0
  435. package/dist/core/extensions/activation-summary.js +3 -2
  436. package/dist/core/extensions/activation-summary.js.map +1 -1
  437. package/dist/core/extensions/capability-usage.d.ts +1 -1
  438. package/dist/core/extensions/capability-usage.js +4 -3
  439. package/dist/core/extensions/capability-usage.js.map +1 -1
  440. package/dist/core/extensions/extension-policy.d.ts +18 -3
  441. package/dist/core/extensions/extension-policy.js +116 -106
  442. package/dist/core/extensions/extension-policy.js.map +1 -1
  443. package/dist/core/extensions/extension-registries.js +3 -2
  444. package/dist/core/extensions/extension-registries.js.map +1 -1
  445. package/dist/core/extensions/extension-types.d.ts +21 -1
  446. package/dist/core/extensions/extension-types.js +3 -2
  447. package/dist/core/extensions/extension-types.js.map +1 -1
  448. package/dist/core/extensions/loader.js +439 -232
  449. package/dist/core/extensions/loader.js.map +1 -1
  450. package/dist/core/fs/fs-utils.js +27 -2
  451. package/dist/core/fs/fs-utils.js.map +1 -1
  452. package/dist/core/item/actionability.d.ts +57 -0
  453. package/dist/core/item/actionability.js +178 -0
  454. package/dist/core/item/actionability.js.map +1 -0
  455. package/dist/core/item/item-format.js +523 -410
  456. package/dist/core/item/item-format.js.map +1 -1
  457. package/dist/core/item/type-registry.js +18 -45
  458. package/dist/core/item/type-registry.js.map +1 -1
  459. package/dist/core/profile/profile-describe.d.ts +64 -0
  460. package/dist/core/profile/profile-describe.js +83 -0
  461. package/dist/core/profile/profile-describe.js.map +1 -0
  462. package/dist/core/profile/profile-lint.d.ts +53 -0
  463. package/dist/core/profile/profile-lint.js +422 -0
  464. package/dist/core/profile/profile-lint.js.map +1 -0
  465. package/dist/core/profile/profile-plan.d.ts +145 -0
  466. package/dist/core/profile/profile-plan.js +0 -0
  467. package/dist/core/profile/profile-plan.js.map +1 -0
  468. package/dist/core/profile/profile-presets.d.ts +218 -0
  469. package/dist/core/profile/profile-presets.js +325 -0
  470. package/dist/core/profile/profile-presets.js.map +1 -0
  471. package/dist/core/schema/fields-file.js +25 -25
  472. package/dist/core/schema/fields-file.js.map +1 -1
  473. package/dist/core/schema/item-types-file.js +3 -3
  474. package/dist/core/schema/item-types-file.js.map +1 -1
  475. package/dist/core/schema/runtime-schema.js +4 -4
  476. package/dist/core/schema/runtime-schema.js.map +1 -1
  477. package/dist/core/schema/status-defs-file.js +3 -3
  478. package/dist/core/schema/status-defs-file.js.map +1 -1
  479. package/dist/core/shared/serialization.js +83 -62
  480. package/dist/core/shared/serialization.js.map +1 -1
  481. package/dist/core/store/item-store.d.ts +1 -0
  482. package/dist/core/store/item-store.js +16 -8
  483. package/dist/core/store/item-store.js.map +1 -1
  484. package/dist/core/store/paths.js +4 -32
  485. package/dist/core/store/paths.js.map +1 -1
  486. package/dist/core/store/settings.js +14 -14
  487. package/dist/core/store/settings.js.map +1 -1
  488. package/dist/core/telemetry/observability.js +50 -54
  489. package/dist/core/telemetry/observability.js.map +1 -1
  490. package/dist/core/telemetry/runtime.js +11 -2
  491. package/dist/core/telemetry/runtime.js.map +1 -1
  492. package/dist/core/test/background-runs.js +3 -2
  493. package/dist/core/test/background-runs.js.map +1 -1
  494. package/dist/core/validate/linked-artifact-reference.d.ts +24 -0
  495. package/dist/core/validate/linked-artifact-reference.js +41 -0
  496. package/dist/core/validate/linked-artifact-reference.js.map +1 -0
  497. package/dist/mcp/server.js +540 -420
  498. package/dist/mcp/server.js.map +1 -1
  499. package/dist/mcp/tool-definitions.js +33 -2
  500. package/dist/mcp/tool-definitions.js.map +1 -1
  501. package/dist/sdk/cli-contracts/commander-types.d.ts +1 -0
  502. package/dist/sdk/cli-contracts/commander-types.js +15 -2
  503. package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
  504. package/dist/sdk/cli-contracts/enum-contracts.d.ts +3 -3
  505. package/dist/sdk/cli-contracts/enum-contracts.js +6 -2
  506. package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
  507. package/dist/sdk/cli-contracts/flag-contracts.d.ts +149 -0
  508. package/dist/sdk/cli-contracts/flag-contracts.js +1514 -0
  509. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -0
  510. package/dist/sdk/cli-contracts/string-lists.d.ts +14 -0
  511. package/dist/sdk/cli-contracts/string-lists.js +20 -0
  512. package/dist/sdk/cli-contracts/string-lists.js.map +1 -0
  513. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +1 -1
  514. package/dist/sdk/cli-contracts/tool-option-contracts.js +51 -109
  515. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  516. package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +17 -0
  517. package/dist/sdk/cli-contracts/tool-parameter-tables.js +54 -5
  518. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  519. package/dist/sdk/cli-contracts/tool-schema.d.ts +74 -0
  520. package/dist/sdk/cli-contracts/tool-schema.js +871 -0
  521. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -0
  522. package/dist/sdk/cli-contracts.d.ts +13 -193
  523. package/dist/sdk/cli-contracts.js +5 -2277
  524. package/dist/sdk/cli-contracts.js.map +1 -1
  525. package/dist/sdk/compose.d.ts +11 -5
  526. package/dist/sdk/compose.js +240 -124
  527. package/dist/sdk/compose.js.map +1 -1
  528. package/dist/sdk/define.d.ts +14 -0
  529. package/dist/sdk/define.js +17 -2
  530. package/dist/sdk/define.js.map +1 -1
  531. package/dist/sdk/index.d.ts +14 -3
  532. package/dist/sdk/index.js +14 -3
  533. package/dist/sdk/index.js.map +1 -1
  534. package/dist/sdk/testing.d.ts +82 -2
  535. package/dist/sdk/testing.js +74 -3
  536. package/dist/sdk/testing.js.map +1 -1
  537. package/docs/AGENT_GUIDE.md +2 -0
  538. package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
  539. package/docs/COMMANDS.md +37 -0
  540. package/docs/EXTENSIONS.md +12 -13
  541. package/docs/RELEASING.md +8 -4
  542. package/docs/SDK.md +184 -17
  543. package/docs/TESTING.md +12 -0
  544. package/docs/examples/policy-restricted-extension/README.md +6 -0
  545. package/docs/examples/policy-restricted-extension/index.ts +40 -0
  546. package/docs/examples/policy-restricted-extension/manifest.json +2 -2
  547. package/docs/examples/starter-extension/README.md +14 -2
  548. package/docs/examples/starter-extension/{index.js → index.ts} +51 -6
  549. package/docs/examples/starter-extension/manifest.json +2 -2
  550. package/package.json +20 -7
  551. package/packages/pm-beads/extensions/beads/index.ts +3 -3
  552. package/packages/pm-beads/extensions/beads/manifest.json +2 -2
  553. package/packages/pm-beads/extensions/beads/runtime-loader.ts +19 -7
  554. package/packages/pm-beads/extensions/beads/runtime.ts +155 -37
  555. package/packages/pm-calendar/extensions/calendar/index.ts +3 -3
  556. package/packages/pm-calendar/extensions/calendar/manifest.json +2 -2
  557. package/packages/pm-calendar/extensions/calendar/runtime.ts +2 -2
  558. package/packages/pm-command-kit/extensions/command-kit/index.ts +1 -1
  559. package/packages/pm-command-kit/extensions/command-kit/manifest.json +2 -2
  560. package/packages/pm-governance-audit/extensions/governance-audit/index.ts +2 -2
  561. package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +2 -2
  562. package/packages/pm-governance-audit/extensions/governance-audit/runtime.ts +1 -1
  563. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +2 -2
  564. package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +2 -2
  565. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +1 -1
  566. package/packages/pm-kanban/README.md +97 -0
  567. package/packages/pm-kanban/extensions/kanban/index.ts +191 -0
  568. package/packages/pm-kanban/extensions/kanban/manifest.json +19 -0
  569. package/packages/pm-kanban/package.json +57 -0
  570. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.ts +1 -1
  571. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +2 -2
  572. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +2 -2
  573. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +2 -2
  574. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.ts +1 -1
  575. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -2
  576. package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +2 -2
  577. package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +1 -1
  578. package/packages/pm-templates/extensions/templates/index.ts +2 -2
  579. package/packages/pm-templates/extensions/templates/manifest.json +2 -2
  580. package/packages/pm-templates/extensions/templates/runtime.ts +1 -1
  581. package/packages/pm-todos/extensions/todos/index.ts +3 -3
  582. package/packages/pm-todos/extensions/todos/manifest.json +2 -2
  583. package/packages/pm-todos/extensions/todos/runtime-loader.ts +19 -7
  584. package/packages/pm-todos/extensions/todos/runtime.ts +177 -43
  585. package/plugins/pm-claude/scripts/pm-mcp-server.mjs +2 -2
  586. package/plugins/pm-codex/scripts/pm-mcp-server.mjs +2 -2
  587. package/scripts/bundle-cli.mjs +1 -1
  588. package/dist/cli-bundle/chunks/activity-54TXGJ2T.js +0 -18
  589. package/dist/cli-bundle/chunks/aggregate-63NWNIBR.js.map +0 -1
  590. package/dist/cli-bundle/chunks/aggregate-YHCYX2EV.js.map +0 -7
  591. package/dist/cli-bundle/chunks/chunk-6EL7SW5C.js.map +0 -7
  592. package/dist/cli-bundle/chunks/chunk-6W3Y65PL.js.map +0 -7
  593. package/dist/cli-bundle/chunks/chunk-AEACLRVH.js.map +0 -7
  594. package/dist/cli-bundle/chunks/chunk-B74BP6IS.js +0 -78
  595. package/dist/cli-bundle/chunks/chunk-B74BP6IS.js.map +0 -7
  596. package/dist/cli-bundle/chunks/chunk-BFFO3AIB.js.map +0 -1
  597. package/dist/cli-bundle/chunks/chunk-C4C3EJCJ.js.map +0 -7
  598. package/dist/cli-bundle/chunks/chunk-EYPINTFR.js.map +0 -7
  599. package/dist/cli-bundle/chunks/chunk-FBLT6WGK.js +0 -75
  600. package/dist/cli-bundle/chunks/chunk-FBLT6WGK.js.map +0 -1
  601. package/dist/cli-bundle/chunks/chunk-GQYJEEFX.js.map +0 -1
  602. package/dist/cli-bundle/chunks/chunk-HBAEFWX3.js.map +0 -7
  603. package/dist/cli-bundle/chunks/chunk-HC2S36NB.js.map +0 -1
  604. package/dist/cli-bundle/chunks/chunk-IAP5KYBQ.js.map +0 -1
  605. package/dist/cli-bundle/chunks/chunk-INPHFO33.js +0 -764
  606. package/dist/cli-bundle/chunks/chunk-INPHFO33.js.map +0 -7
  607. package/dist/cli-bundle/chunks/chunk-IOT6WRL5.js +0 -86
  608. package/dist/cli-bundle/chunks/chunk-IOT6WRL5.js.map +0 -7
  609. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js +0 -35
  610. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js.map +0 -7
  611. package/dist/cli-bundle/chunks/chunk-J3NMWFIN.js +0 -115
  612. package/dist/cli-bundle/chunks/chunk-J3NMWFIN.js.map +0 -1
  613. package/dist/cli-bundle/chunks/chunk-J7I4C5ZB.js.map +0 -7
  614. package/dist/cli-bundle/chunks/chunk-JKL6HRMV.js.map +0 -7
  615. package/dist/cli-bundle/chunks/chunk-KJZOSF7J.js.map +0 -1
  616. package/dist/cli-bundle/chunks/chunk-L7UXKP2I.js.map +0 -1
  617. package/dist/cli-bundle/chunks/chunk-LNEDHJNQ.js.map +0 -1
  618. package/dist/cli-bundle/chunks/chunk-M6TUBOGW.js.map +0 -1
  619. package/dist/cli-bundle/chunks/chunk-MEXZ5XUM.js.map +0 -7
  620. package/dist/cli-bundle/chunks/chunk-N5B6WZC5.js.map +0 -1
  621. package/dist/cli-bundle/chunks/chunk-NJ73ALW2.js +0 -761
  622. package/dist/cli-bundle/chunks/chunk-NJ73ALW2.js.map +0 -1
  623. package/dist/cli-bundle/chunks/chunk-NVXGVEFD.js +0 -83
  624. package/dist/cli-bundle/chunks/chunk-NVXGVEFD.js.map +0 -1
  625. package/dist/cli-bundle/chunks/chunk-OF7V47P3.js.map +0 -1
  626. package/dist/cli-bundle/chunks/chunk-OHDQNKJB.js.map +0 -7
  627. package/dist/cli-bundle/chunks/chunk-PEL2NLQE.js +0 -118
  628. package/dist/cli-bundle/chunks/chunk-PEL2NLQE.js.map +0 -7
  629. package/dist/cli-bundle/chunks/chunk-PRVTGX64.js.map +0 -7
  630. package/dist/cli-bundle/chunks/chunk-RAWA3Y7O.js.map +0 -1
  631. package/dist/cli-bundle/chunks/chunk-SMXSDY7J.js.map +0 -7
  632. package/dist/cli-bundle/chunks/chunk-SUREE24M.js.map +0 -1
  633. package/dist/cli-bundle/chunks/chunk-TKPP4GOO.js +0 -654
  634. package/dist/cli-bundle/chunks/chunk-TKPP4GOO.js.map +0 -1
  635. package/dist/cli-bundle/chunks/chunk-VSAABFGQ.js.map +0 -1
  636. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js +0 -32
  637. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js.map +0 -1
  638. package/dist/cli-bundle/chunks/chunk-XVYKWZNL.js.map +0 -7
  639. package/dist/cli-bundle/chunks/chunk-XXKV4UWE.js.map +0 -7
  640. package/dist/cli-bundle/chunks/chunk-ZLWRPBOW.js.map +0 -1
  641. package/dist/cli-bundle/chunks/chunk-ZV7IQ23N.js +0 -657
  642. package/dist/cli-bundle/chunks/chunk-ZV7IQ23N.js.map +0 -7
  643. package/dist/cli-bundle/chunks/close-JEBZXONN.js +0 -15
  644. package/dist/cli-bundle/chunks/config-NCNNWF6R.js.map +0 -7
  645. package/dist/cli-bundle/chunks/config-SW3U7XP2.js.map +0 -1
  646. package/dist/cli-bundle/chunks/context-55VEOYI3.js.map +0 -1
  647. package/dist/cli-bundle/chunks/context-5LB7UGKE.js.map +0 -7
  648. package/dist/cli-bundle/chunks/contracts-JXFGBOYT.js.map +0 -1
  649. package/dist/cli-bundle/chunks/contracts-SY6PDFIK.js.map +0 -7
  650. package/dist/cli-bundle/chunks/create-CLSCHGJJ.js +0 -30
  651. package/dist/cli-bundle/chunks/history-ALTM2RRP.js +0 -20
  652. package/dist/cli-bundle/chunks/history-redact-5YGLWUDH.js +0 -21
  653. package/dist/cli-bundle/chunks/init-C4CRHW22.js +0 -21
  654. package/dist/cli-bundle/chunks/register-list-query-CCMHGZTF.js.map +0 -7
  655. package/dist/cli-bundle/chunks/register-list-query-OM3E2KMY.js.map +0 -1
  656. package/dist/cli-bundle/chunks/register-mutation-N3CDEGZU.js.map +0 -1
  657. package/dist/cli-bundle/chunks/register-mutation-UXTTWL6N.js.map +0 -7
  658. package/dist/cli-bundle/chunks/register-setup-G5LTSFYK.js.map +0 -1
  659. package/dist/cli-bundle/chunks/register-setup-TWHKICM2.js.map +0 -7
  660. package/dist/cli-bundle/chunks/restore-LQHXBAY5.js +0 -19
  661. package/dist/cli-bundle/chunks/schema-C6QA367T.js.map +0 -7
  662. package/dist/cli-bundle/chunks/schema-QO5I4FBL.js.map +0 -1
  663. package/dist/cli-bundle/chunks/stats-TCW2SZQG.js.map +0 -7
  664. package/dist/cli-bundle/chunks/stats-TKC6CAKB.js.map +0 -1
  665. package/dist/cli-bundle/chunks/test-WA6RZGM2.js +0 -36
  666. package/dist/cli-bundle/chunks/test-runs-FQ5WNQLP.js.map +0 -1
  667. package/dist/cli-bundle/chunks/test-runs-PX73DMMI.js.map +0 -7
  668. package/dist/cli-bundle/chunks/update-BSKMQOYH.js +0 -28
  669. package/dist/cli-bundle/chunks/update-FIGYNQ2I.js +0 -24
  670. package/dist/cli-bundle/chunks/validate-54SYJ7QW.js.map +0 -1
  671. package/dist/cli-bundle/chunks/validate-HYZNIB6W.js.map +0 -7
  672. package/docs/examples/policy-restricted-extension/index.js +0 -21
  673. package/packages/pm-beads/extensions/beads/index.js +0 -64
  674. package/packages/pm-beads/extensions/beads/runtime-loader.js +0 -86
  675. package/packages/pm-beads/extensions/beads/runtime.js +0 -482
  676. package/packages/pm-calendar/extensions/calendar/index.js +0 -150
  677. package/packages/pm-calendar/extensions/calendar/runtime.js +0 -126
  678. package/packages/pm-command-kit/extensions/command-kit/index.js +0 -181
  679. package/packages/pm-governance-audit/extensions/governance-audit/index.js +0 -177
  680. package/packages/pm-governance-audit/extensions/governance-audit/runtime.js +0 -153
  681. package/packages/pm-guide-shell/extensions/guide-shell/index.js +0 -98
  682. package/packages/pm-guide-shell/extensions/guide-shell/runtime.js +0 -294
  683. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.js +0 -18
  684. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.js +0 -124
  685. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.js +0 -110
  686. package/packages/pm-search-advanced/extensions/search-advanced/index.js +0 -258
  687. package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +0 -361
  688. package/packages/pm-templates/extensions/templates/index.js +0 -132
  689. package/packages/pm-templates/extensions/templates/runtime.js +0 -35
  690. package/packages/pm-todos/extensions/todos/index.js +0 -81
  691. package/packages/pm-todos/extensions/todos/runtime-loader.js +0 -86
  692. package/packages/pm-todos/extensions/todos/runtime.js +0 -545
  693. /package/dist/cli-bundle/chunks/{activity-54TXGJ2T.js.map → activity-AW6XVFH6.js.map} +0 -0
  694. /package/dist/cli-bundle/chunks/{activity-N7RVTLBQ.js.map → activity-DBLQVIP6.js.map} +0 -0
  695. /package/dist/cli-bundle/chunks/{chunk-F32L4HR6.js.map → chunk-27BXPBAY.js.map} +0 -0
  696. /package/dist/cli-bundle/chunks/{chunk-5BBEWX6C.js.map → chunk-3VGN2UWE.js.map} +0 -0
  697. /package/dist/cli-bundle/chunks/{chunk-FMWW2JDU.js.map → chunk-AXIDKKAT.js.map} +0 -0
  698. /package/dist/cli-bundle/chunks/{chunk-TIM4OD74.js.map → chunk-BDTISOSD.js.map} +0 -0
  699. /package/dist/cli-bundle/chunks/{chunk-CZIFFMZI.js.map → chunk-DDPTYJIM.js.map} +0 -0
  700. /package/dist/cli-bundle/chunks/{chunk-AYPQUFCX.js.map → chunk-EJUDVUYZ.js.map} +0 -0
  701. /package/dist/cli-bundle/chunks/{chunk-EOGBMLCE.js.map → chunk-EVMTBV6V.js.map} +0 -0
  702. /package/dist/cli-bundle/chunks/{chunk-CG3KP6I5.js.map → chunk-G7I7DEZA.js.map} +0 -0
  703. /package/dist/cli-bundle/chunks/{chunk-F4BNR2IN.js.map → chunk-HYTGA6GI.js.map} +0 -0
  704. /package/dist/cli-bundle/chunks/{chunk-2WCYE3IF.js.map → chunk-HZZEHPRG.js.map} +0 -0
  705. /package/dist/cli-bundle/chunks/{chunk-YV2OSAMS.js.map → chunk-IJYK2T43.js.map} +0 -0
  706. /package/dist/cli-bundle/chunks/{chunk-QOUOMPHO.js.map → chunk-JPECA746.js.map} +0 -0
  707. /package/dist/cli-bundle/chunks/{chunk-OQ2E64FH.js.map → chunk-KNPEF7QG.js.map} +0 -0
  708. /package/dist/cli-bundle/chunks/{chunk-3BKH2CL3.js.map → chunk-L5OEFZQG.js.map} +0 -0
  709. /package/dist/cli-bundle/chunks/{chunk-5S4ZGDB2.js.map → chunk-N74UMG5H.js.map} +0 -0
  710. /package/dist/cli-bundle/chunks/{chunk-IXAZI443.js.map → chunk-NFDPYAIP.js.map} +0 -0
  711. /package/dist/cli-bundle/chunks/{chunk-SKC4UTRP.js.map → chunk-NKZAN7BD.js.map} +0 -0
  712. /package/dist/cli-bundle/chunks/{chunk-JPJDP4VU.js.map → chunk-NWMZWYYB.js.map} +0 -0
  713. /package/dist/cli-bundle/chunks/{chunk-KKX4Z2SE.js.map → chunk-OTUHB4HS.js.map} +0 -0
  714. /package/dist/cli-bundle/chunks/{chunk-WB5BYQMF.js.map → chunk-SLMUGTK3.js.map} +0 -0
  715. /package/dist/cli-bundle/chunks/{chunk-I6QMJ2XT.js.map → chunk-WYDHYJPO.js.map} +0 -0
  716. /package/dist/cli-bundle/chunks/{chunk-KIEAK7YE.js.map → chunk-ZRP4VG5U.js.map} +0 -0
  717. /package/dist/cli-bundle/chunks/{close-JEBZXONN.js.map → close-E6ZZGCJY.js.map} +0 -0
  718. /package/dist/cli-bundle/chunks/{close-QHMVWM7M.js.map → close-TQYAAFJP.js.map} +0 -0
  719. /package/dist/cli-bundle/chunks/{create-O4VONGPG.js.map → context-B6275WPX.js.map} +0 -0
  720. /package/dist/cli-bundle/chunks/{create-CLSCHGJJ.js.map → context-OCZ3FJ4Z.js.map} +0 -0
  721. /package/dist/cli-bundle/chunks/{extension-YQF4CPIR.js.map → create-OH3BDGBB.js.map} +0 -0
  722. /package/dist/cli-bundle/chunks/{extension-3JYWJ5K2.js.map → create-RLRJMRTM.js.map} +0 -0
  723. /package/dist/cli-bundle/chunks/{history-ALTM2RRP.js.map → extension-CPSLJQVE.js.map} +0 -0
  724. /package/dist/cli-bundle/chunks/{history-RUKPKNY7.js.map → extension-CXJ6RELI.js.map} +0 -0
  725. /package/dist/cli-bundle/chunks/{gc-BEJMQT64.js.map → gc-7GQYOS2G.js.map} +0 -0
  726. /package/dist/cli-bundle/chunks/{gc-JEFQDJPA.js.map → gc-LPVMKJQJ.js.map} +0 -0
  727. /package/dist/cli-bundle/chunks/{health-JJJOY7DJ.js.map → health-3IPFLKXB.js.map} +0 -0
  728. /package/dist/cli-bundle/chunks/{health-P67NZ6TT.js.map → health-GZXGBZ36.js.map} +0 -0
  729. /package/dist/cli-bundle/chunks/{history-redact-YY4XYVEP.js.map → history-NERDJNUB.js.map} +0 -0
  730. /package/dist/cli-bundle/chunks/{history-redact-5YGLWUDH.js.map → history-WSZHY3PN.js.map} +0 -0
  731. /package/dist/cli-bundle/chunks/{init-C4CRHW22.js.map → history-redact-MP6CH7U5.js.map} +0 -0
  732. /package/dist/cli-bundle/chunks/{init-HBFGYS66.js.map → history-redact-O3NBCNWC.js.map} +0 -0
  733. /package/dist/cli-bundle/chunks/{list-C7R33MD5.js.map → init-64XDLQJB.js.map} +0 -0
  734. /package/dist/cli-bundle/chunks/{list-DSN6UNFB.js.map → init-PAX32BJA.js.map} +0 -0
  735. /package/dist/cli-bundle/chunks/{restore-LL2WLEDG.js.map → list-DNBJVO3E.js.map} +0 -0
  736. /package/dist/cli-bundle/chunks/{restore-LQHXBAY5.js.map → list-G5Y65VF6.js.map} +0 -0
  737. /package/dist/cli-bundle/chunks/{search-2EI6EAXH.js.map → restore-4MHZFJ2E.js.map} +0 -0
  738. /package/dist/cli-bundle/chunks/{search-QBFBLQRO.js.map → restore-YALDGTQR.js.map} +0 -0
  739. /package/dist/cli-bundle/chunks/{test-NV2DRPUS.js.map → schema-73HR2OJW.js.map} +0 -0
  740. /package/dist/cli-bundle/chunks/{test-WA6RZGM2.js.map → schema-U6LJKSIR.js.map} +0 -0
  741. /package/dist/cli-bundle/chunks/{update-BSKMQOYH.js.map → search-AXPXKZER.js.map} +0 -0
  742. /package/dist/cli-bundle/chunks/{update-FIGYNQ2I.js.map → search-KILGT37L.js.map} +0 -0
  743. /package/dist/cli-bundle/chunks/{telemetry-BT2VSWU2.js.map → telemetry-BZUF6H7G.js.map} +0 -0
  744. /package/dist/cli-bundle/chunks/{telemetry-LQ6FRTUT.js.map → telemetry-GAHHQTOS.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="358fc257-d2e2-5538-b106-a600db4ae795")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="43af9766-fa42-5af2-8e94-459bc0205f26")}catch(e){}}();
3
3
  import {
4
4
  KNOWN_EXTENSION_CAPABILITIES,
5
5
  KNOWN_EXTENSION_POLICY_MODES,
@@ -11,7 +11,7 @@ import {
11
11
  PLAN_MODE_VALUES,
12
12
  PLAN_STEP_LINK_KIND_VALUES,
13
13
  PLAN_STEP_STATUS_VALUES
14
- } from "./chunk-VSAABFGQ.js";
14
+ } from "./chunk-7R4QEMZZ.js";
15
15
 
16
16
  // dist/sdk/cli-contracts/commander-types.js
17
17
  var LIST_COMMANDER_STRING_OPTION_CONTRACTS = [
@@ -99,6 +99,19 @@ var CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS = [
99
99
  { target: "activityLimit", keys: ["activityLimit", "activity_limit"] },
100
100
  { target: "staleThreshold", keys: ["staleThreshold", "stale_threshold"] }
101
101
  ];
102
+ var NEXT_COMMANDER_STRING_OPTION_CONTRACTS = [
103
+ { target: "type", keys: ["type"] },
104
+ { target: "tag", keys: ["tag"] },
105
+ { target: "priority", keys: ["priority"] },
106
+ { target: "assignee", keys: ["assignee"] },
107
+ { target: "assigneeFilter", keys: ["assigneeFilter", "assignee_filter"] },
108
+ { target: "sprint", keys: ["sprint"] },
109
+ { target: "release", keys: ["release"] },
110
+ { target: "parent", keys: ["parent"] },
111
+ { target: "limit", keys: ["limit"] },
112
+ { target: "blockedLimit", keys: ["blockedLimit", "blocked_limit"] },
113
+ { target: "format", keys: ["format"] }
114
+ ];
102
115
  var ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS = [
103
116
  { target: "id", keys: ["id"] },
104
117
  { target: "op", keys: ["op"] },
@@ -691,11 +704,13 @@ var PM_CORE_COMMAND_NAMES = [
691
704
  "get",
692
705
  "search",
693
706
  "eval",
707
+ "next",
694
708
  "history",
695
709
  "history-redact",
696
710
  "history-repair",
697
711
  "history-compact",
698
712
  "schema",
713
+ "profile",
699
714
  "activity",
700
715
  "restore",
701
716
  "update",
@@ -778,11 +793,13 @@ var PM_TOOL_ACTIONS = [
778
793
  "ctx",
779
794
  "get",
780
795
  "search",
796
+ "next",
781
797
  "history",
782
798
  "history-redact",
783
799
  "history-repair",
784
800
  "history-compact",
785
801
  "schema",
802
+ "profile",
786
803
  "activity",
787
804
  "restore",
788
805
  "update",
@@ -813,1817 +830,257 @@ var PM_TOOL_ACTIONS = [
813
830
  "close-task"
814
831
  ];
815
832
 
816
- // dist/sdk/cli-contracts/tool-option-contracts.js
817
- var TOOL_LIST_FILTER_OPTION_CONTRACTS = [
818
- { param: "status", flag: "--status" },
819
- { param: "type", flag: "--type" },
820
- { param: "tag", flag: "--tag" },
821
- { param: "priority", flag: "--priority" },
822
- { param: "deadlineBefore", flag: "--deadline-before" },
823
- { param: "deadlineAfter", flag: "--deadline-after" },
824
- { param: "updatedAfter", flag: "--updated-after" },
825
- { param: "updatedBefore", flag: "--updated-before" },
826
- { param: "createdAfter", flag: "--created-after" },
827
- { param: "createdBefore", flag: "--created-before" },
828
- { param: "ids", flag: "--ids" },
829
- { param: "assignee", flag: "--assignee" },
830
- { param: "assigneeFilter", flag: "--assignee-filter" },
831
- { param: "parent", flag: "--parent" },
832
- { param: "sprint", flag: "--sprint" },
833
- { param: "release", flag: "--release" },
834
- { param: "filterAcMissing", flag: "--filter-ac-missing" },
835
- { param: "filterEstimatesMissing", flag: "--filter-estimates-missing" },
836
- { param: "filterResolutionMissing", flag: "--filter-resolution-missing" },
837
- { param: "filterMetadataMissing", flag: "--filter-metadata-missing" },
838
- { param: "filterReviewerMissing", flag: "--filter-reviewer-missing" },
839
- { param: "filterRiskMissing", flag: "--filter-risk-missing" },
840
- { param: "filterConfidenceMissing", flag: "--filter-confidence-missing" },
841
- { param: "filterSprintMissing", flag: "--filter-sprint-missing" },
842
- { param: "filterReleaseMissing", flag: "--filter-release-missing" },
843
- { param: "hasNotes", flag: "--has-notes" },
844
- { param: "noNotes", flag: "--no-notes" },
845
- { param: "hasLearnings", flag: "--has-learnings" },
846
- { param: "noLearnings", flag: "--no-learnings" },
847
- { param: "hasFiles", flag: "--has-files" },
848
- { param: "noFiles", flag: "--no-files" },
849
- { param: "hasDocs", flag: "--has-docs" },
850
- { param: "noDocs", flag: "--no-docs" },
851
- { param: "hasTests", flag: "--has-tests" },
852
- { param: "noTests", flag: "--no-tests" },
853
- { param: "hasComments", flag: "--has-comments" },
854
- { param: "noComments", flag: "--no-comments" },
855
- { param: "hasDeps", flag: "--has-deps" },
856
- { param: "noDeps", flag: "--no-deps" },
857
- { param: "hasBody", flag: "--has-body" },
858
- { param: "emptyBody", flag: "--empty-body" },
859
- { param: "hasLinkedCommand", flag: "--has-linked-command" },
860
- { param: "noLinkedCommand", flag: "--no-linked-command" },
861
- { param: "limit", flag: "--limit" },
862
- { param: "offset", flag: "--offset" },
863
- { param: "fields", flag: "--fields" },
864
- { param: "sort", flag: "--sort" },
865
- { param: "order", flag: "--order" },
866
- { param: "tree", flag: "--tree" },
867
- { param: "treeDepth", flag: "--tree-depth" }
868
- ];
869
- var TOOL_AGGREGATE_OPTION_CONTRACTS = [
870
- { param: "groupBy", flag: "--group-by" },
871
- { param: "sum", flag: "--sum" },
872
- { param: "avg", flag: "--avg" },
873
- { param: "status", flag: "--status" },
874
- { param: "type", flag: "--type" },
875
- { param: "tag", flag: "--tag" },
876
- { param: "priority", flag: "--priority" },
877
- { param: "deadlineBefore", flag: "--deadline-before" },
878
- { param: "deadlineAfter", flag: "--deadline-after" },
879
- { param: "assignee", flag: "--assignee" },
880
- { param: "assigneeFilter", flag: "--assignee-filter" },
881
- { param: "parent", flag: "--parent" },
882
- { param: "sprint", flag: "--sprint" },
883
- { param: "release", flag: "--release" }
833
+ // dist/sdk/cli-contracts/string-lists.js
834
+ function normalizeUniqueStringList(values) {
835
+ return [...new Set(Array.from(values, (value) => value.trim()).filter((value) => value.length > 0))];
836
+ }
837
+
838
+ // dist/sdk/cli-contracts/flag-contracts.js
839
+ function normalizeFlagAliasKey(flag) {
840
+ if (!flag.startsWith("--")) {
841
+ return flag;
842
+ }
843
+ return `--${flag.slice(2).replaceAll("_", "-")}`;
844
+ }
845
+ function withFlagAliasMetadata(flagContracts) {
846
+ const aliasesByCanonical = /* @__PURE__ */ new Map();
847
+ for (const contract of flagContracts) {
848
+ const canonical = normalizeFlagAliasKey(contract.flag);
849
+ const bucket = aliasesByCanonical.get(canonical) ?? /* @__PURE__ */ new Set();
850
+ if (contract.flag !== canonical) {
851
+ bucket.add(contract.flag);
852
+ }
853
+ for (const alias of contract.aliases ?? []) {
854
+ if (alias !== canonical) {
855
+ bucket.add(alias);
856
+ }
857
+ }
858
+ aliasesByCanonical.set(canonical, bucket);
859
+ }
860
+ return flagContracts.map((contract) => {
861
+ const canonical = normalizeFlagAliasKey(contract.flag);
862
+ if (contract.flag !== canonical) {
863
+ return contract;
864
+ }
865
+ const aliases = normalizeUniqueStringList([
866
+ ...contract.aliases ?? [],
867
+ ...aliasesByCanonical.get(canonical)
868
+ ]).filter((alias) => alias !== canonical);
869
+ if (aliases.length === 0) {
870
+ return contract;
871
+ }
872
+ return {
873
+ ...contract,
874
+ aliases
875
+ };
876
+ });
877
+ }
878
+ function compactFlagAliasContracts(flagContracts) {
879
+ const withAliases = withFlagAliasMetadata(flagContracts);
880
+ const canonicalFlags = new Set(withAliases.map((contract) => contract.flag));
881
+ return withAliases.filter((contract) => {
882
+ const canonical = normalizeFlagAliasKey(contract.flag);
883
+ return contract.flag === canonical || !canonicalFlags.has(canonical);
884
+ });
885
+ }
886
+ var SUBCOMMAND_GLOBAL_FLAG_CONTRACTS = [
887
+ { flag: "--json" },
888
+ { flag: "--quiet" },
889
+ { flag: "--no-changed-fields" },
890
+ { flag: "--id-only" },
891
+ { flag: "--pm-path", aliases: ["--path"] },
892
+ { flag: "--no-extensions" },
893
+ { flag: "--no-pager" },
894
+ { flag: "--profile" },
895
+ { flag: "--help" }
884
896
  ];
885
- var TOOL_DEDUPE_AUDIT_OPTION_CONTRACTS = [
886
- { param: "mode", flag: "--mode" },
887
- { param: "limit", flag: "--limit" },
888
- { param: "threshold", flag: "--threshold" },
889
- { param: "status", flag: "--status" },
890
- { param: "type", flag: "--type" },
891
- { param: "tag", flag: "--tag" },
892
- { param: "priority", flag: "--priority" },
893
- { param: "deadlineBefore", flag: "--deadline-before" },
894
- { param: "deadlineAfter", flag: "--deadline-after" },
895
- { param: "assignee", flag: "--assignee" },
896
- { param: "assigneeFilter", flag: "--assignee-filter" },
897
- { param: "parent", flag: "--parent" },
898
- { param: "sprint", flag: "--sprint" },
899
- { param: "release", flag: "--release" }
897
+ var GLOBAL_FLAG_CONTRACTS = [
898
+ ...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS,
899
+ { flag: "--version" }
900
900
  ];
901
- var TOOL_SEARCH_FILTER_OPTION_CONTRACTS = [
902
- { param: "matchMode", flag: "--match-mode" },
903
- { param: "minScore", flag: "--min-score" },
904
- { param: "count", flag: "--count", booleanish: true },
905
- { param: "semanticWeight", flag: "--semantic-weight" },
906
- { param: "status", flag: "--status" },
907
- { param: "type", flag: "--type" },
908
- { param: "tag", flag: "--tag" },
909
- { param: "priority", flag: "--priority" },
910
- { param: "deadlineBefore", flag: "--deadline-before" },
911
- { param: "deadlineAfter", flag: "--deadline-after" },
912
- { param: "updatedAfter", flag: "--updated-after" },
913
- { param: "updatedBefore", flag: "--updated-before" },
914
- { param: "createdAfter", flag: "--created-after" },
915
- { param: "createdBefore", flag: "--created-before" },
916
- { param: "assignee", flag: "--assignee" },
917
- { param: "sprint", flag: "--sprint" },
918
- { param: "release", flag: "--release" },
919
- { param: "parent", flag: "--parent" },
920
- { param: "filterReviewerMissing", flag: "--filter-reviewer-missing" },
921
- { param: "filterRiskMissing", flag: "--filter-risk-missing" },
922
- { param: "filterConfidenceMissing", flag: "--filter-confidence-missing" },
923
- { param: "filterSprintMissing", flag: "--filter-sprint-missing" },
924
- { param: "filterReleaseMissing", flag: "--filter-release-missing" },
925
- { param: "hasNotes", flag: "--has-notes" },
926
- { param: "noNotes", flag: "--no-notes" },
927
- { param: "hasLearnings", flag: "--has-learnings" },
928
- { param: "noLearnings", flag: "--no-learnings" },
929
- { param: "hasFiles", flag: "--has-files" },
930
- { param: "noFiles", flag: "--no-files" },
931
- { param: "hasDocs", flag: "--has-docs" },
932
- { param: "noDocs", flag: "--no-docs" },
933
- { param: "hasTests", flag: "--has-tests" },
934
- { param: "noTests", flag: "--no-tests" },
935
- { param: "hasComments", flag: "--has-comments" },
936
- { param: "noComments", flag: "--no-comments" },
937
- { param: "hasDeps", flag: "--has-deps" },
938
- { param: "noDeps", flag: "--no-deps" },
939
- { param: "hasBody", flag: "--has-body" },
940
- { param: "emptyBody", flag: "--empty-body" },
941
- { param: "hasLinkedCommand", flag: "--has-linked-command" },
942
- { param: "noLinkedCommand", flag: "--no-linked-command" },
943
- { param: "fields", flag: "--fields" },
944
- { param: "limit", flag: "--limit" }
901
+ var LIST_FILTER_FLAG_CONTRACTS = [
902
+ { flag: "--status", list: true },
903
+ { flag: "--type" },
904
+ { flag: "--tag", aliases: ["--tags"] },
905
+ { flag: "--priority" },
906
+ { flag: "--deadline-before" },
907
+ { flag: "--deadline-after" },
908
+ { flag: "--updated-after" },
909
+ { flag: "--updated-before" },
910
+ { flag: "--created-after" },
911
+ { flag: "--created-before" },
912
+ { flag: "--ids", list: true },
913
+ { flag: "--assignee" },
914
+ { flag: "--assignee-filter" },
915
+ { flag: "--assignee_filter" },
916
+ { flag: "--parent" },
917
+ { flag: "--sprint" },
918
+ { flag: "--release" },
919
+ { flag: "--filter-ac-missing" },
920
+ { flag: "--filter-estimates-missing", aliases: ["--filter-estimate-missing"] },
921
+ { flag: "--filter-resolution-missing" },
922
+ { flag: "--filter-metadata-missing" },
923
+ { flag: "--filter-reviewer-missing" },
924
+ { flag: "--filter-risk-missing" },
925
+ { flag: "--filter-confidence-missing" },
926
+ { flag: "--filter-sprint-missing" },
927
+ { flag: "--filter-release-missing" },
928
+ { flag: "--has-notes" },
929
+ { flag: "--no-notes" },
930
+ { flag: "--has-learnings" },
931
+ { flag: "--no-learnings" },
932
+ { flag: "--has-files" },
933
+ { flag: "--no-files" },
934
+ { flag: "--has-docs" },
935
+ { flag: "--no-docs" },
936
+ { flag: "--has-tests" },
937
+ { flag: "--no-tests" },
938
+ { flag: "--has-comments" },
939
+ { flag: "--no-comments" },
940
+ { flag: "--has-deps" },
941
+ { flag: "--no-deps" },
942
+ { flag: "--has-body" },
943
+ { flag: "--empty-body" },
944
+ { flag: "--has-linked-command" },
945
+ { flag: "--no-linked-command" },
946
+ { flag: "--limit" },
947
+ { flag: "--offset" },
948
+ { flag: "--no-truncate", aliases: ["--all"] },
949
+ { flag: "--compact" },
950
+ { flag: "--brief" },
951
+ { flag: "--full" },
952
+ { flag: "--fields", list: true },
953
+ { flag: "--sort" },
954
+ { flag: "--order" },
955
+ { flag: "--tree" },
956
+ { flag: "--tree-depth" },
957
+ { flag: "--tree_depth" },
958
+ { flag: "--include-body" },
959
+ { flag: "--format" },
960
+ { flag: "--stream" }
945
961
  ];
946
- var TOOL_SHARED_CREATE_UPDATE_OPTION_CONTRACTS = [
947
- { param: "parent", flag: "--parent" },
948
- { param: "reviewer", flag: "--reviewer" },
949
- { param: "risk", flag: "--risk" },
950
- { param: "confidence", flag: "--confidence" },
951
- { param: "sprint", flag: "--sprint" },
952
- { param: "release", flag: "--release" },
953
- { param: "blockedBy", flag: "--blocked-by" },
954
- { param: "blockedReason", flag: "--blocked-reason" },
955
- { param: "unblockNote", flag: "--unblock-note" },
956
- { param: "reporter", flag: "--reporter" },
957
- { param: "severity", flag: "--severity" },
958
- { param: "environment", flag: "--environment" },
959
- { param: "reproSteps", flag: "--repro-steps" },
960
- { param: "resolution", flag: "--resolution" },
961
- { param: "expectedResult", flag: "--expected-result" },
962
- { param: "actualResult", flag: "--actual-result" },
963
- { param: "affectedVersion", flag: "--affected-version" },
964
- { param: "fixedVersion", flag: "--fixed-version" },
965
- { param: "component", flag: "--component" },
966
- { param: "regression", flag: "--regression", booleanish: true },
967
- { param: "customerImpact", flag: "--customer-impact" },
968
- { param: "definitionOfReady", flag: "--definition-of-ready", allowEmpty: true },
969
- { param: "order", flag: "--order" },
970
- { param: "goal", flag: "--goal" },
971
- { param: "objective", flag: "--objective" },
972
- { param: "value", flag: "--value" },
973
- { param: "impact", flag: "--impact" },
974
- { param: "outcome", flag: "--outcome" },
975
- { param: "whyNow", flag: "--why-now" }
962
+ var AGGREGATE_FLAG_CONTRACTS = [
963
+ { flag: "--group-by", list: true },
964
+ { flag: "--count" },
965
+ { flag: "--completion" },
966
+ { flag: "--sum" },
967
+ { flag: "--avg" },
968
+ { flag: "--include-unparented" },
969
+ { flag: "--include_unparented" },
970
+ { flag: "--status" },
971
+ { flag: "--type" },
972
+ { flag: "--tag" },
973
+ { flag: "--priority" },
974
+ { flag: "--deadline-before" },
975
+ { flag: "--deadline-after" },
976
+ { flag: "--assignee" },
977
+ { flag: "--assignee-filter" },
978
+ { flag: "--assignee_filter" },
979
+ { flag: "--parent" },
980
+ { flag: "--sprint" },
981
+ { flag: "--release" }
976
982
  ];
977
- var TOOL_CREATE_OPTION_CONTRACTS = [
978
- { param: "title", flag: "--title" },
979
- { param: "description", flag: "--description", allowEmpty: true },
980
- { param: "type", flag: "--type" },
981
- { param: "template", flag: "--template" },
982
- { param: "createMode", flag: "--create-mode" },
983
- { param: "schedulePreset", flag: "--schedule-preset" },
984
- { param: "status", flag: "--status" },
985
- { param: "priority", flag: "--priority" },
986
- { param: "tags", flag: "--tags", allowEmpty: true },
987
- { param: "addTags", flag: "--add-tags", repeatable: true },
988
- { param: "body", flag: "--body", allowEmpty: true },
989
- { param: "deadline", flag: "--deadline" },
990
- { param: "estimate", flag: "--estimate" },
991
- { param: "acceptanceCriteria", flag: "--acceptance-criteria", allowEmpty: true },
992
- { param: "author", flag: "--author" },
993
- { param: "message", flag: "--message", allowEmpty: true },
994
- { param: "assignee", flag: "--assignee" },
995
- { param: "allowMissingParent", flag: "--allow-missing-parent" },
996
- { param: "reminder", flag: "--reminder", repeatable: true },
997
- { param: "event", flag: "--event", repeatable: true },
998
- { param: "typeOption", flag: "--type-option", repeatable: true },
999
- { param: "field", flag: "--field", repeatable: true },
1000
- { param: "dep", flag: "--dep", repeatable: true },
1001
- { param: "comment", flag: "--comment", repeatable: true },
1002
- { param: "note", flag: "--note", repeatable: true },
1003
- { param: "learning", flag: "--learning", repeatable: true },
1004
- { param: "linkedFile", flag: "--file", repeatable: true },
1005
- { param: "linkedTest", flag: "--test", repeatable: true },
1006
- { param: "doc", flag: "--doc", repeatable: true },
1007
- { param: "unset", flag: "--unset", repeatable: true },
1008
- { param: "clearDeps", flag: "--clear-deps" },
1009
- { param: "clearComments", flag: "--clear-comments" },
1010
- { param: "clearNotes", flag: "--clear-notes" },
1011
- { param: "clearLearnings", flag: "--clear-learnings" },
1012
- { param: "clearFiles", flag: "--clear-files" },
1013
- { param: "clearTests", flag: "--clear-tests" },
1014
- { param: "clearDocs", flag: "--clear-docs" },
1015
- { param: "clearReminders", flag: "--clear-reminders" },
1016
- { param: "clearEvents", flag: "--clear-events" },
1017
- { param: "clearTypeOptions", flag: "--clear-type-options" }
983
+ var DEDUPE_AUDIT_FLAG_CONTRACTS = [
984
+ { flag: "--mode" },
985
+ { flag: "--limit" },
986
+ { flag: "--threshold" },
987
+ { flag: "--status" },
988
+ { flag: "--type" },
989
+ { flag: "--tag" },
990
+ { flag: "--priority" },
991
+ { flag: "--deadline-before" },
992
+ { flag: "--deadline-after" },
993
+ { flag: "--assignee" },
994
+ { flag: "--assignee-filter" },
995
+ { flag: "--assignee_filter" },
996
+ { flag: "--parent" },
997
+ { flag: "--sprint" },
998
+ { flag: "--release" }
1018
999
  ];
1019
- var TOOL_UPDATE_OPTION_CONTRACTS = [
1020
- { param: "title", flag: "--title" },
1021
- { param: "description", flag: "--description", allowEmpty: true },
1022
- { param: "body", flag: "--body", allowEmpty: true },
1023
- { param: "status", flag: "--status" },
1024
- { param: "closeReason", flag: "--close-reason" },
1025
- { param: "priority", flag: "--priority" },
1026
- { param: "type", flag: "--type" },
1027
- { param: "tags", flag: "--tags", allowEmpty: true },
1028
- { param: "addTags", flag: "--add-tags", repeatable: true },
1029
- { param: "removeTags", flag: "--remove-tags", repeatable: true },
1030
- { param: "deadline", flag: "--deadline" },
1031
- { param: "estimate", flag: "--estimate" },
1032
- { param: "acceptanceCriteria", flag: "--acceptance-criteria", allowEmpty: true },
1033
- { param: "author", flag: "--author" },
1034
- { param: "message", flag: "--message", allowEmpty: true },
1035
- { param: "assignee", flag: "--assignee" },
1036
- { param: "dep", flag: "--dep", repeatable: true },
1037
- { param: "depRemove", flag: "--dep-remove", repeatable: true },
1038
- { param: "replaceDeps", flag: "--replace-deps" },
1039
- { param: "replaceTests", flag: "--replace-tests" },
1040
- { param: "comment", flag: "--comment", repeatable: true },
1041
- { param: "note", flag: "--note", repeatable: true },
1042
- { param: "learning", flag: "--learning", repeatable: true },
1043
- { param: "linkedFile", flag: "--file", repeatable: true },
1044
- { param: "linkedTest", flag: "--test", repeatable: true },
1045
- { param: "doc", flag: "--doc", repeatable: true },
1046
- { param: "reminder", flag: "--reminder", repeatable: true },
1047
- { param: "event", flag: "--event", repeatable: true },
1048
- { param: "typeOption", flag: "--type-option", repeatable: true },
1049
- { param: "field", flag: "--field", repeatable: true },
1050
- { param: "unset", flag: "--unset", repeatable: true },
1051
- { param: "clearDeps", flag: "--clear-deps" },
1052
- { param: "clearComments", flag: "--clear-comments" },
1053
- { param: "clearNotes", flag: "--clear-notes" },
1054
- { param: "clearLearnings", flag: "--clear-learnings" },
1055
- { param: "clearFiles", flag: "--clear-files" },
1056
- { param: "clearTests", flag: "--clear-tests" },
1057
- { param: "clearDocs", flag: "--clear-docs" },
1058
- { param: "clearReminders", flag: "--clear-reminders" },
1059
- { param: "clearEvents", flag: "--clear-events" },
1060
- { param: "clearTypeOptions", flag: "--clear-type-options" },
1061
- { param: "allowAuditUpdate", flag: "--allow-audit-update" },
1062
- { param: "allowAuditDepUpdate", flag: "--allow-audit-dep-update" }
1000
+ var DEDUPE_MERGE_FLAG_CONTRACTS = [
1001
+ { flag: "--keep" },
1002
+ { flag: "--close", list: true },
1003
+ { flag: "--apply" },
1004
+ { flag: "--dry-run" },
1005
+ { flag: "--skip-children" },
1006
+ { flag: "--author" },
1007
+ { flag: "--message" }
1063
1008
  ];
1064
- var TOOL_UPDATE_MANY_FILTER_OPTION_CONTRACTS = [
1065
- { param: "filterStatus", flag: "--filter-status" },
1066
- { param: "filterType", flag: "--filter-type" },
1067
- { param: "filterTag", flag: "--filter-tag" },
1068
- { param: "filterPriority", flag: "--filter-priority" },
1069
- { param: "filterDeadlineBefore", flag: "--filter-deadline-before" },
1070
- { param: "filterDeadlineAfter", flag: "--filter-deadline-after" },
1071
- { param: "filterUpdatedAfter", flag: "--filter-updated-after" },
1072
- { param: "filterUpdatedBefore", flag: "--filter-updated-before" },
1073
- { param: "filterCreatedAfter", flag: "--filter-created-after" },
1074
- { param: "filterCreatedBefore", flag: "--filter-created-before" },
1075
- { param: "filterAssignee", flag: "--filter-assignee" },
1076
- { param: "filterAssigneeFilter", flag: "--filter-assignee-filter" },
1077
- { param: "filterParent", flag: "--filter-parent" },
1078
- { param: "filterSprint", flag: "--filter-sprint" },
1079
- { param: "filterRelease", flag: "--filter-release" },
1080
- { param: "filterReviewerMissing", flag: "--filter-reviewer-missing" },
1081
- { param: "filterRiskMissing", flag: "--filter-risk-missing" },
1082
- { param: "filterConfidenceMissing", flag: "--filter-confidence-missing" },
1083
- { param: "filterSprintMissing", flag: "--filter-sprint-missing" },
1084
- { param: "filterReleaseMissing", flag: "--filter-release-missing" },
1085
- { param: "filterHasNotes", flag: "--filter-has-notes" },
1086
- { param: "filterNoNotes", flag: "--filter-no-notes" },
1087
- { param: "filterHasLearnings", flag: "--filter-has-learnings" },
1088
- { param: "filterNoLearnings", flag: "--filter-no-learnings" },
1089
- { param: "filterHasFiles", flag: "--filter-has-files" },
1090
- { param: "filterNoFiles", flag: "--filter-no-files" },
1091
- { param: "filterHasDocs", flag: "--filter-has-docs" },
1092
- { param: "filterNoDocs", flag: "--filter-no-docs" },
1093
- { param: "filterHasTests", flag: "--filter-has-tests" },
1094
- { param: "filterNoTests", flag: "--filter-no-tests" },
1095
- { param: "filterHasComments", flag: "--filter-has-comments" },
1096
- { param: "filterNoComments", flag: "--filter-no-comments" },
1097
- { param: "filterHasDeps", flag: "--filter-has-deps" },
1098
- { param: "filterNoDeps", flag: "--filter-no-deps" },
1099
- { param: "filterHasBody", flag: "--filter-has-body" },
1100
- { param: "filterEmptyBody", flag: "--filter-empty-body" },
1101
- { param: "filterHasLinkedCommand", flag: "--filter-has-linked-command" },
1102
- { param: "filterNoLinkedCommand", flag: "--filter-no-linked-command" },
1103
- { param: "ids", flag: "--ids" },
1104
- { param: "limit", flag: "--limit" },
1105
- { param: "offset", flag: "--offset" }
1009
+ var COMMENTS_AUDIT_FLAG_CONTRACTS = [
1010
+ { flag: "--status" },
1011
+ { flag: "--type" },
1012
+ { flag: "--assignee" },
1013
+ { flag: "--assignee-filter" },
1014
+ { flag: "--assignee_filter" },
1015
+ { flag: "--parent" },
1016
+ { flag: "--tag" },
1017
+ { flag: "--sprint" },
1018
+ { flag: "--release" },
1019
+ { flag: "--priority" },
1020
+ { flag: "--limit-items" },
1021
+ { flag: "--limit" },
1022
+ { flag: "--full-history" },
1023
+ { flag: "--latest" }
1106
1024
  ];
1107
- var TOOL_NORMALIZE_FILTER_OPTION_CONTRACTS = [
1108
- { param: "filterStatus", flag: "--filter-status" },
1109
- { param: "filterType", flag: "--filter-type" },
1110
- { param: "filterTag", flag: "--filter-tag" },
1111
- { param: "filterPriority", flag: "--filter-priority" },
1112
- { param: "filterDeadlineBefore", flag: "--filter-deadline-before" },
1113
- { param: "filterDeadlineAfter", flag: "--filter-deadline-after" },
1114
- { param: "filterAssignee", flag: "--filter-assignee" },
1115
- { param: "filterAssigneeFilter", flag: "--filter-assignee-filter" },
1116
- { param: "filterParent", flag: "--filter-parent" },
1117
- { param: "filterSprint", flag: "--filter-sprint" },
1118
- { param: "filterRelease", flag: "--filter-release" },
1119
- { param: "limit", flag: "--limit" },
1120
- { param: "offset", flag: "--offset" }
1025
+ var COMMENTS_FLAG_CONTRACTS = [
1026
+ { flag: "--add", aliases: ["--comment"] },
1027
+ { flag: "--stdin" },
1028
+ { flag: "--file" },
1029
+ { flag: "--edit" },
1030
+ { flag: "--delete" },
1031
+ { flag: "--limit" },
1032
+ { flag: "--author" },
1033
+ { flag: "--message" },
1034
+ { flag: "--allow-audit-comment" },
1035
+ { flag: "--force" }
1121
1036
  ];
1122
- var TOOL_CLOSE_MANY_FILTER_OPTION_CONTRACTS = [
1123
- { param: "filterStatus", flag: "--filter-status" },
1124
- { param: "filterType", flag: "--filter-type" },
1125
- { param: "filterTag", flag: "--filter-tag" },
1126
- { param: "filterPriority", flag: "--filter-priority" },
1127
- { param: "filterDeadlineBefore", flag: "--filter-deadline-before" },
1128
- { param: "filterDeadlineAfter", flag: "--filter-deadline-after" },
1129
- { param: "filterUpdatedAfter", flag: "--filter-updated-after" },
1130
- { param: "filterUpdatedBefore", flag: "--filter-updated-before" },
1131
- { param: "filterCreatedAfter", flag: "--filter-created-after" },
1132
- { param: "filterCreatedBefore", flag: "--filter-created-before" },
1133
- { param: "filterAssignee", flag: "--filter-assignee" },
1134
- { param: "filterAssigneeFilter", flag: "--filter-assignee-filter" },
1135
- { param: "filterParent", flag: "--filter-parent" },
1136
- { param: "filterSprint", flag: "--filter-sprint" },
1137
- { param: "filterRelease", flag: "--filter-release" },
1138
- { param: "filterReviewerMissing", flag: "--filter-reviewer-missing" },
1139
- { param: "filterRiskMissing", flag: "--filter-risk-missing" },
1140
- { param: "filterConfidenceMissing", flag: "--filter-confidence-missing" },
1141
- { param: "filterSprintMissing", flag: "--filter-sprint-missing" },
1142
- { param: "filterReleaseMissing", flag: "--filter-release-missing" },
1143
- { param: "filterHasNotes", flag: "--filter-has-notes" },
1144
- { param: "filterNoNotes", flag: "--filter-no-notes" },
1145
- { param: "filterHasLearnings", flag: "--filter-has-learnings" },
1146
- { param: "filterNoLearnings", flag: "--filter-no-learnings" },
1147
- { param: "filterHasFiles", flag: "--filter-has-files" },
1148
- { param: "filterNoFiles", flag: "--filter-no-files" },
1149
- { param: "filterHasDocs", flag: "--filter-has-docs" },
1150
- { param: "filterNoDocs", flag: "--filter-no-docs" },
1151
- { param: "filterHasTests", flag: "--filter-has-tests" },
1152
- { param: "filterNoTests", flag: "--filter-no-tests" },
1153
- { param: "filterHasComments", flag: "--filter-has-comments" },
1154
- { param: "filterNoComments", flag: "--filter-no-comments" },
1155
- { param: "filterHasDeps", flag: "--filter-has-deps" },
1156
- { param: "filterNoDeps", flag: "--filter-no-deps" },
1157
- { param: "filterHasBody", flag: "--filter-has-body" },
1158
- { param: "filterEmptyBody", flag: "--filter-empty-body" },
1159
- { param: "filterHasLinkedCommand", flag: "--filter-has-linked-command" },
1160
- { param: "filterNoLinkedCommand", flag: "--filter-no-linked-command" },
1161
- { param: "ids", flag: "--ids" },
1162
- { param: "limit", flag: "--limit" },
1163
- { param: "offset", flag: "--offset" }
1037
+ var NOTES_FLAG_CONTRACTS = [
1038
+ { flag: "--add", aliases: ["--note"] },
1039
+ { flag: "--limit" },
1040
+ { flag: "--author" },
1041
+ { flag: "--message" },
1042
+ { flag: "--allow-audit-note" },
1043
+ { flag: "--allow-audit-comment" },
1044
+ { flag: "--force" }
1164
1045
  ];
1165
- var TOOL_ACTIVITY_OPTION_CONTRACTS = [
1166
- { param: "id", flag: "--id" },
1167
- { param: "op", flag: "--op" },
1168
- { param: "author", flag: "--author" },
1169
- { param: "from", flag: "--from" },
1170
- { param: "to", flag: "--to" },
1171
- { param: "limit", flag: "--limit" },
1172
- { param: "compact", flag: "--compact" },
1173
- { param: "full", flag: "--full" }
1046
+ var LEARNINGS_FLAG_CONTRACTS = [
1047
+ { flag: "--add", aliases: ["--learning"] },
1048
+ { flag: "--limit" },
1049
+ { flag: "--author" },
1050
+ { flag: "--message" },
1051
+ { flag: "--allow-audit-learning" },
1052
+ { flag: "--allow-audit-comment" },
1053
+ { flag: "--force" }
1174
1054
  ];
1175
- var TOOL_CONTEXT_OPTION_CONTRACTS = [
1176
- { param: "date", flag: "--date" },
1177
- { param: "from", flag: "--from" },
1178
- { param: "to", flag: "--to" },
1179
- { param: "type", flag: "--type" },
1180
- { param: "tag", flag: "--tag" },
1181
- { param: "priority", flag: "--priority" },
1182
- { param: "assignee", flag: "--assignee" },
1183
- { param: "assigneeFilter", flag: "--assignee-filter" },
1184
- { param: "sprint", flag: "--sprint" },
1185
- { param: "release", flag: "--release" },
1186
- { param: "parent", flag: "--parent" },
1187
- { param: "limit", flag: "--limit" },
1188
- { param: "format", flag: "--format" },
1189
- { param: "depth", flag: "--depth" },
1190
- { param: "fields", flag: "--fields" },
1191
- { param: "section", flag: "--section", repeatable: true },
1192
- { param: "activityLimit", flag: "--activity-limit" },
1193
- { param: "staleThreshold", flag: "--stale-threshold" }
1055
+ var FILES_FLAG_CONTRACTS = [
1056
+ { flag: "--add" },
1057
+ { flag: "--add-glob" },
1058
+ { flag: "--remove" },
1059
+ { flag: "--migrate" },
1060
+ // GH-170 (pm-pfnx): single-value note applied to every --add/--add-glob link
1061
+ // in the invocation (embedded note= wins; usage error without an add).
1062
+ { flag: "--note" },
1063
+ { flag: "--list" },
1064
+ { flag: "--append-stable" },
1065
+ { flag: "--validate-paths" },
1066
+ { flag: "--audit" },
1067
+ { flag: "--author" },
1068
+ { flag: "--message" },
1069
+ { flag: "--force" }
1194
1070
  ];
1195
-
1196
- // dist/sdk/cli-contracts/tool-parameter-tables.js
1197
- var PM_TOOL_PARAMETER_PROPERTIES = {
1198
- json: { type: "boolean", default: true },
1199
- quiet: { type: "boolean" },
1200
- profile: { type: "boolean" },
1201
- noExtensions: { type: "boolean" },
1202
- noPager: { type: "boolean" },
1203
- path: { type: "string" },
1204
- pmExecutable: { type: "string" },
1205
- timeoutMs: { type: "number" },
1206
- id: { type: "string" },
1207
- target: { type: "string" },
1208
- github: { type: "string" },
1209
- ref: { type: "string" },
1210
- query: { type: "string" },
1211
- keywords: { type: "string" },
1212
- fields: { type: "string" },
1213
- sort: { type: "string", enum: ["priority", "deadline", "updated_at", "created_at", "title", "parent"] },
1214
- prefix: { type: "string" },
1215
- preset: { type: "string", enum: ["minimal", "default", "strict", "custom"] },
1216
- typePreset: { type: "string", enum: ["agile", "ops", "research"] },
1217
- defaults: { type: "boolean" },
1218
- verbose: { type: "boolean" },
1219
- agentGuidance: { type: "string", enum: ["ask", "add", "skip", "status"] },
1220
- withPackages: { type: "boolean" },
1221
- scope: { type: "string", enum: ["project", "global"] },
1222
- allOver: { type: "number" },
1223
- minEntries: { type: "number" },
1224
- closed: { type: "boolean" },
1225
- allStreams: { type: "boolean" },
1226
- contractAction: { type: "string" },
1227
- command: { type: "string" },
1228
- schemaOnly: { type: "boolean" },
1229
- flagsOnly: { type: "boolean" },
1230
- availabilityOnly: { type: "boolean" },
1231
- runtimeOnly: { type: "boolean" },
1232
- activeOnly: { type: "boolean" },
1233
- eagerTags: { type: "boolean" },
1234
- fullChangedFields: { type: "boolean" },
1235
- idOnly: { type: "boolean" },
1236
- allowMissingParent: { type: "boolean" },
1237
- duplicateOf: { type: "string" },
1238
- configAction: { type: "string", enum: ["get", "set", "list", "export"] },
1239
- key: { type: "string" },
1240
- title: { type: "string" },
1241
- description: { type: "string" },
1242
- type: { type: "string" },
1243
- template: { type: "string" },
1244
- createMode: { type: "string", enum: ["strict", "progressive"] },
1245
- schedulePreset: { type: "string", enum: ["lightweight"] },
1246
- status: { type: "string" },
1247
- filterStatus: { type: "string" },
1248
- filterType: { type: "string" },
1249
- filterTag: { type: "string" },
1250
- filterPriority: { anyOf: [{ type: "string" }, { type: "number" }] },
1251
- filterDeadlineBefore: { type: "string" },
1252
- filterDeadlineAfter: { type: "string" },
1253
- filterUpdatedAfter: { type: "string" },
1254
- filterUpdatedBefore: { type: "string" },
1255
- filterCreatedAfter: { type: "string" },
1256
- filterCreatedBefore: { type: "string" },
1257
- filterAssignee: { type: "string" },
1258
- filterAssigneeFilter: { type: "string", enum: ["assigned", "unassigned"] },
1259
- filterParent: { type: "string" },
1260
- filterSprint: { type: "string" },
1261
- filterRelease: { type: "string" },
1262
- closeReason: { type: "string" },
1263
- reason: { type: "string" },
1264
- priority: { anyOf: [{ type: "string" }, { type: "number" }] },
1265
- tags: { type: "string" },
1266
- addTags: { type: "array", items: { type: "string" } },
1267
- removeTags: { type: "array", items: { type: "string" } },
1268
- body: { type: "string" },
1269
- deadline: { type: "string" },
1270
- estimate: { anyOf: [{ type: "string" }, { type: "number" }] },
1271
- acceptanceCriteria: { type: "string" },
1272
- author: { type: "string" },
1273
- message: { type: "string" },
1274
- assignee: { type: "string" },
1275
- assigneeFilter: { type: "string", enum: ["assigned", "unassigned"] },
1276
- parent: { type: "string" },
1277
- reviewer: { type: "string" },
1278
- risk: { type: "string" },
1279
- confidence: { anyOf: [{ type: "string" }, { type: "number" }] },
1280
- sprint: { type: "string" },
1281
- release: { type: "string" },
1282
- blockedBy: { type: "string" },
1283
- blockedReason: { type: "string" },
1284
- unblockNote: { type: "string" },
1285
- reporter: { type: "string" },
1286
- severity: { type: "string" },
1287
- environment: { type: "string" },
1288
- reproSteps: { type: "string" },
1289
- resolution: { type: "string" },
1290
- expectedResult: { type: "string" },
1291
- actualResult: { type: "string" },
1292
- affectedVersion: { type: "string" },
1293
- fixedVersion: { type: "string" },
1294
- component: { type: "string" },
1295
- regression: { anyOf: [{ type: "boolean" }, { type: "string" }, { type: "number" }] },
1296
- customerImpact: { type: "string" },
1297
- definitionOfReady: { type: "string" },
1298
- order: { anyOf: [{ type: "string" }, { type: "number" }] },
1299
- goal: { type: "string" },
1300
- objective: { type: "string" },
1301
- value: { type: "string" },
1302
- impact: { type: "string" },
1303
- outcome: { type: "string" },
1304
- whyNow: { type: "string" },
1305
- mode: {
1306
- type: "string",
1307
- enum: ["keyword", "semantic", "hybrid", "title_exact", "title_fuzzy", "parent_scope"]
1308
- },
1309
- semanticWeight: { anyOf: [{ type: "string" }, { type: "number" }] },
1310
- op: { type: "string" },
1311
- compact: { type: "boolean" },
1312
- brief: { type: "boolean" },
1313
- full: { type: "boolean" },
1314
- view: { type: "string", enum: ["agenda", "day", "week", "month"] },
1315
- date: { type: "string" },
1316
- from: { type: "string" },
1317
- before: { type: "string" },
1318
- to: { type: "string" },
1319
- past: { type: "boolean" },
1320
- fullPeriod: { type: "boolean" },
1321
- include: { type: "string" },
1322
- recurrenceLookaheadDays: { anyOf: [{ type: "string" }, { type: "number" }] },
1323
- recurrenceLookbackDays: { anyOf: [{ type: "string" }, { type: "number" }] },
1324
- occurrenceLimit: { anyOf: [{ type: "string" }, { type: "number" }] },
1325
- includeLinked: { type: "boolean" },
1326
- semantic: { type: "boolean" },
1327
- hybrid: { type: "boolean" },
1328
- titleExact: { type: "boolean" },
1329
- phraseExact: { type: "boolean" },
1330
- highlight: { type: "boolean" },
1331
- includeBody: { type: "boolean" },
1332
- noTruncate: { type: "boolean" },
1333
- tag: { type: "string" },
1334
- deadlineBefore: { type: "string" },
1335
- deadlineAfter: { type: "string" },
1336
- updatedAfter: { type: "string" },
1337
- updatedBefore: { type: "string" },
1338
- createdAfter: { type: "string" },
1339
- createdBefore: { type: "string" },
1340
- filterAcMissing: { type: "boolean" },
1341
- filterEstimatesMissing: { type: "boolean" },
1342
- filterResolutionMissing: { type: "boolean" },
1343
- filterMetadataMissing: { type: "boolean" },
1344
- filterReviewerMissing: { type: "boolean" },
1345
- filterRiskMissing: { type: "boolean" },
1346
- filterConfidenceMissing: { type: "boolean" },
1347
- filterSprintMissing: { type: "boolean" },
1348
- filterReleaseMissing: { type: "boolean" },
1349
- // Content-field presence/absence filters (list/search). The --no-* variants
1350
- // select items where the field is empty/absent.
1351
- hasNotes: { type: "boolean" },
1352
- noNotes: { type: "boolean" },
1353
- hasLearnings: { type: "boolean" },
1354
- noLearnings: { type: "boolean" },
1355
- hasFiles: { type: "boolean" },
1356
- noFiles: { type: "boolean" },
1357
- hasDocs: { type: "boolean" },
1358
- noDocs: { type: "boolean" },
1359
- hasTests: { type: "boolean" },
1360
- noTests: { type: "boolean" },
1361
- hasComments: { type: "boolean" },
1362
- noComments: { type: "boolean" },
1363
- hasDeps: { type: "boolean" },
1364
- noDeps: { type: "boolean" },
1365
- hasBody: { type: "boolean" },
1366
- emptyBody: { type: "boolean" },
1367
- hasLinkedCommand: { type: "boolean" },
1368
- noLinkedCommand: { type: "boolean" },
1369
- // Bulk-selection (update-many/close-many) content + governance filters mirror
1370
- // the list/search presence filters under the --filter- prefix.
1371
- filterHasNotes: { type: "boolean" },
1372
- filterNoNotes: { type: "boolean" },
1373
- filterHasLearnings: { type: "boolean" },
1374
- filterNoLearnings: { type: "boolean" },
1375
- filterHasFiles: { type: "boolean" },
1376
- filterNoFiles: { type: "boolean" },
1377
- filterHasDocs: { type: "boolean" },
1378
- filterNoDocs: { type: "boolean" },
1379
- filterHasTests: { type: "boolean" },
1380
- filterNoTests: { type: "boolean" },
1381
- filterHasComments: { type: "boolean" },
1382
- filterNoComments: { type: "boolean" },
1383
- filterHasDeps: { type: "boolean" },
1384
- filterNoDeps: { type: "boolean" },
1385
- filterHasBody: { type: "boolean" },
1386
- filterEmptyBody: { type: "boolean" },
1387
- filterHasLinkedCommand: { type: "boolean" },
1388
- filterNoLinkedCommand: { type: "boolean" },
1389
- ids: { type: "string" },
1390
- limit: { anyOf: [{ type: "string" }, { type: "number" }] },
1391
- limitItems: { anyOf: [{ type: "string" }, { type: "number" }] },
1392
- fullHistory: { type: "boolean" },
1393
- latest: { anyOf: [{ type: "string" }, { type: "number" }] },
1394
- offset: { anyOf: [{ type: "string" }, { type: "number" }] },
1395
- progress: { type: "boolean" },
1396
- background: { type: "boolean" },
1397
- runId: { type: "string" },
1398
- stream: {
1399
- anyOf: [{ type: "boolean" }, { type: "string", enum: ["stdout", "stderr", "both", "rows", "ndjson", "jsonl"] }]
1400
- },
1401
- tail: { anyOf: [{ type: "string" }, { type: "number" }] },
1402
- addJson: { type: "array", items: { type: "string" } },
1403
- match: { type: "string" },
1404
- onlyIndex: { anyOf: [{ type: "string" }, { type: "number" }] },
1405
- onlyLast: { type: "boolean" },
1406
- envSet: { type: "array", items: { type: "string" } },
1407
- envClear: { type: "array", items: { type: "string" } },
1408
- sharedHostSafe: { type: "boolean" },
1409
- detail: { type: "string", enum: ["summary", "deep"] },
1410
- trace: { type: "boolean" },
1411
- reload: { type: "boolean" },
1412
- watch: { type: "boolean" },
1413
- runtimeProbe: { type: "boolean" },
1414
- fixManagedState: { type: "boolean" },
1415
- pmContext: { type: "string", enum: ["schema", "tracker", "auto"] },
1416
- overrideLinkedPmContext: { type: "boolean" },
1417
- failOnContextMismatch: { type: "boolean" },
1418
- failOnSkipped: { type: "boolean" },
1419
- failOnEmptyTestRun: { type: "boolean" },
1420
- requireAssertionsForPm: { type: "boolean" },
1421
- checkContext: { type: "boolean" },
1422
- autoPmContext: { type: "boolean" },
1423
- diff: { type: "boolean" },
1424
- storage: { type: "boolean" },
1425
- metadataCoverage: { type: "boolean" },
1426
- fieldUtilization: { type: "boolean" },
1427
- byAssignee: { type: "boolean" },
1428
- byTag: { type: "boolean" },
1429
- byPriority: { type: "boolean" },
1430
- tagPrefix: { type: "string" },
1431
- verify: { type: "boolean" },
1432
- literal: { type: "array", items: { type: "string" } },
1433
- regex: { type: "array", items: { type: "string" } },
1434
- replacement: { type: "string" },
1435
- timeout: { anyOf: [{ type: "string" }, { type: "number" }] },
1436
- validateClose: { type: "string", enum: ["off", "warn", "strict"] },
1437
- checkMetadata: { type: "boolean" },
1438
- metadataProfile: { type: "string", enum: ["core", "strict", "custom"] },
1439
- checkResolution: { type: "boolean" },
1440
- checkLifecycle: { type: "boolean" },
1441
- checkStaleBlockers: { type: "boolean" },
1442
- dependencyCycleSeverity: { type: "string", enum: ["off", "warn", "error"] },
1443
- checkFiles: { type: "boolean" },
1444
- strictDirectories: { type: "boolean" },
1445
- checkOnly: { type: "boolean" },
1446
- checkTelemetry: { type: "boolean" },
1447
- noRefresh: { type: "boolean" },
1448
- refreshVectors: { type: "boolean" },
1449
- verboseStaleItems: { type: "boolean" },
1450
- skipVectors: { type: "boolean" },
1451
- skipIntegrity: { type: "boolean" },
1452
- skipDrift: { type: "boolean" },
1453
- verboseDiagnostics: { type: "boolean" },
1454
- allAffectedIds: { type: "boolean" },
1455
- scanMode: { type: "string", enum: ["default", "tracked-all", "tracked-all-strict"] },
1456
- includePmInternals: { type: "boolean" },
1457
- verboseFileLists: { type: "boolean" },
1458
- strictExit: { type: "boolean" },
1459
- failOnWarn: { type: "boolean" },
1460
- fixHints: { type: "boolean" },
1461
- autoFix: { type: "boolean" },
1462
- fixScope: { type: "array", items: { type: "string", enum: ["metadata", "resolution", "estimates", "lifecycle"] } },
1463
- pruneMissing: { type: "boolean" },
1464
- checkHistoryDrift: { type: "boolean" },
1465
- checkCommandReferences: { type: "boolean" },
1466
- allowAuditNote: { type: "boolean" },
1467
- allowAuditLearning: { type: "boolean" },
1468
- allowAuditComment: { type: "boolean" },
1469
- edit: { type: "integer", minimum: 1 },
1470
- delete: { type: "integer", minimum: 1 },
1471
- allowAuditUpdate: { type: "boolean" },
1472
- allowAuditDepUpdate: { type: "boolean" },
1473
- allowAuditRelease: { type: "boolean" },
1474
- dryRun: { type: "boolean" },
1475
- all: { type: "boolean" },
1476
- clear: { type: "boolean" },
1477
- cliOnly: { type: "boolean" },
1478
- packagesOnly: { type: "boolean" },
1479
- repair: { type: "boolean" },
1480
- packageName: { type: "string" },
1481
- rollback: { type: "string" },
1482
- noCheckpoint: { type: "boolean" },
1483
- force: { type: "boolean" },
1484
- run: { type: "boolean" },
1485
- count: { type: "boolean" },
1486
- sum: { type: "string" },
1487
- avg: { type: "string" },
1488
- tree: { type: "boolean" },
1489
- treeDepth: { anyOf: [{ type: "string" }, { type: "number" }] },
1490
- includeUnparented: { type: "boolean" },
1491
- gcScope: {
1492
- type: "array",
1493
- items: { type: "string", enum: ["index", "embeddings", "runtime", "locks"] }
1494
- },
1495
- maxDepth: { anyOf: [{ type: "string" }, { type: "number" }] },
1496
- collapse: { type: "string", enum: ["none", "repeated"] },
1497
- summary: { type: "boolean" },
1498
- shell: { type: "string", enum: ["bash", "zsh", "fish"] },
1499
- stdin: { type: "boolean" },
1500
- file: { type: "string" },
1501
- preserveSourceIds: { type: "boolean" },
1502
- folder: { type: "string" },
1503
- subcommand: { type: "string" },
1504
- name: { type: "string" },
1505
- defaultStatus: { type: "string" },
1506
- alias: { type: "array", items: { type: "string" } },
1507
- role: { type: "array", items: { type: "string" } },
1508
- fieldType: { type: "string", enum: ["string", "number", "boolean", "string_array"] },
1509
- commands: { type: "array", items: { type: "string" } },
1510
- cliFlag: { type: "string" },
1511
- required: { type: "boolean" },
1512
- requiredOnCreate: { type: "boolean" },
1513
- allowUnset: { type: "boolean" },
1514
- requiredTypes: { type: "array", items: { type: "string" } },
1515
- infer: { type: "boolean" },
1516
- minCount: { type: "number" },
1517
- text: { type: "string" },
1518
- add: { type: "array", items: { type: "string" } },
1519
- addGlob: { type: "array", items: { type: "string" } },
1520
- remove: { type: "array", items: { type: "string" } },
1521
- migrate: { type: "array", items: { type: "string" } },
1522
- discover: { type: "boolean" },
1523
- apply: { type: "boolean" },
1524
- discoveryNote: { type: "string" },
1525
- // GH-170 (pm-pfnx): single-string note for files/docs add batches (the shared
1526
- // `note` key below is the array-typed create/update note seed).
1527
- addNote: { type: "string" },
1528
- list: { type: "boolean" },
1529
- appendStable: { type: "boolean" },
1530
- validatePaths: { type: "boolean" },
1531
- audit: { type: "boolean" },
1532
- dep: { type: "array", items: { type: "string" } },
1533
- depRemove: { type: "array", items: { type: "string" } },
1534
- replaceDeps: { type: "boolean" },
1535
- replaceTests: { type: "boolean" },
1536
- comment: { type: "array", items: { type: "string" } },
1537
- note: { type: "array", items: { type: "string" } },
1538
- learning: { type: "array", items: { type: "string" } },
1539
- linkedFile: { type: "array", items: { type: "string" } },
1540
- linkedTest: { type: "array", items: { type: "string" } },
1541
- doc: { type: "array", items: { type: "string" } },
1542
- reminder: { type: "array", items: { type: "string" } },
1543
- event: { type: "array", items: { type: "string" } },
1544
- typeOption: { type: "array", items: { type: "string" } },
1545
- field: { type: "array", items: { type: "string" } },
1546
- unset: { type: "array", items: { type: "string" } },
1547
- clearDeps: { type: "boolean" },
1548
- clearComments: { type: "boolean" },
1549
- clearNotes: { type: "boolean" },
1550
- clearLearnings: { type: "boolean" },
1551
- clearFiles: { type: "boolean" },
1552
- clearTests: { type: "boolean" },
1553
- clearDocs: { type: "boolean" },
1554
- clearReminders: { type: "boolean" },
1555
- clearEvents: { type: "boolean" },
1556
- clearTypeOptions: { type: "boolean" },
1557
- criterion: { type: "array", items: { type: "string" } },
1558
- clearCriteria: { type: "boolean" },
1559
- groupBy: { type: "string" },
1560
- completion: { type: "boolean" },
1561
- threshold: { anyOf: [{ type: "string" }, { type: "number" }] },
1562
- format: { type: "string" },
1563
- depth: { type: "string", enum: ["brief", "standard", "deep", "full"] },
1564
- section: { type: "array", items: { type: "string", enum: ["hierarchy", "activity", "progress", "blockers", "files", "workload", "staleness", "tests"] } },
1565
- activityLimit: { anyOf: [{ type: "string" }, { type: "number" }] },
1566
- staleThreshold: { type: "string" },
1567
- policy: { type: "string" }
1568
- };
1569
- var PLAN_SUBCOMMAND_VALUES = [
1570
- "create",
1571
- "show",
1572
- "add-step",
1573
- "update-step",
1574
- "complete-step",
1575
- "block-step",
1576
- "reorder-step",
1577
- "remove-step",
1578
- "link",
1579
- "unlink",
1580
- "decision",
1581
- "discovery",
1582
- "validation",
1583
- "resume",
1584
- "approve",
1585
- "materialize"
1586
- ];
1587
- var PLAN_ACTION_PARAMETER_PROPERTIES = {
1588
- subcommand: { type: "string", enum: [...PLAN_SUBCOMMAND_VALUES] },
1589
- stepRef: { type: "string" },
1590
- reorderTo: { anyOf: [{ type: "string" }, { type: "number" }] },
1591
- scope: { type: "string" },
1592
- harness: { type: "string", enum: [...PLAN_HARNESS_VALUES] },
1593
- mode: { type: "string", enum: [...PLAN_MODE_VALUES] },
1594
- resumeContext: { type: "string" },
1595
- related: { type: "string" },
1596
- blocks: { type: "string" },
1597
- claim: { type: "boolean" },
1598
- fromSearch: { type: "string" },
1599
- stepTitle: { type: "string" },
1600
- // pm-6mit: ordered step titles for create (string or array; values are never
1601
- // comma-split). On step subcommands a single value aliases stepTitle.
1602
- step: { anyOf: [{ type: "string" }, { type: "array", items: { type: "string" } }] },
1603
- stepBody: { type: "string" },
1604
- stepOwner: { type: "string" },
1605
- stepStatus: { type: "string", enum: [...PLAN_STEP_STATUS_VALUES] },
1606
- stepEvidence: { type: "string" },
1607
- stepBlockedReason: { type: "string" },
1608
- stepReplacement: { type: "string" },
1609
- dependsOn: { type: "string" },
1610
- link: { type: "string" },
1611
- linkKind: { type: "string", enum: [...PLAN_STEP_LINK_KIND_VALUES] },
1612
- linkNote: { type: "string" },
1613
- promoteToItemDep: { type: "boolean" },
1614
- allowMultipleActive: { type: "boolean" },
1615
- file: { anyOf: [{ type: "string" }, { type: "array", items: { type: "string" } }] },
1616
- test: { anyOf: [{ type: "string" }, { type: "array", items: { type: "string" } }] },
1617
- doc: { anyOf: [{ type: "string" }, { type: "array", items: { type: "string" } }] },
1618
- decisionText: { type: "string" },
1619
- decision: { type: "string" },
1620
- decisionRationale: { type: "string" },
1621
- decisionEvidence: { type: "string" },
1622
- discoveryText: { type: "string" },
1623
- discovery: { type: "string" },
1624
- validationText: { type: "string" },
1625
- validation: { type: "string" },
1626
- validationCommand: { type: "string" },
1627
- validationExpected: { type: "string" },
1628
- steps: { type: "array", items: { type: "string" } },
1629
- materializeType: { type: "string" },
1630
- materializeParent: { type: "string" },
1631
- materializeTags: { type: "string" }
1632
- };
1633
- var PLAN_ACTION_PARAMETER_METADATA = {
1634
- subcommand: {
1635
- description: "Plan workflow operation to run.",
1636
- examples: ["create", "show", "add-step", "approve"]
1637
- },
1638
- stepRef: {
1639
- description: "Plan step id or order for step lifecycle subcommands.",
1640
- examples: ["plan-step-001", "1"]
1641
- },
1642
- reorderTo: {
1643
- description: "New integer order for reorder-step.",
1644
- examples: [1, "2"]
1645
- },
1646
- scope: {
1647
- description: "Short free-text scope statement describing what the Plan covers.",
1648
- examples: ["Release readiness audit", "Search package migration"]
1649
- },
1650
- mode: {
1651
- description: "Plan lifecycle mode.",
1652
- examples: ["draft", "research", "approved"]
1653
- },
1654
- step: {
1655
- description: "Ordered initial step titles for create (string or array, never comma-split; stepTitle, when also set, becomes the first step). For step subcommands a single value aliases stepTitle.",
1656
- examples: [["Read the code", "Write the fix", "Run the tests"]]
1657
- },
1658
- file: {
1659
- description: "File link to attach while creating or materializing a Plan.",
1660
- examples: ["path=src/cli.ts,note=implementation surface"]
1661
- },
1662
- test: {
1663
- description: "Test command link to attach while creating or materializing a Plan.",
1664
- examples: ["command=pnpm build,timeout_seconds=300"]
1665
- },
1666
- doc: {
1667
- description: "Documentation link to attach while creating or materializing a Plan.",
1668
- examples: ["path=docs/SDK.md,note=public API reference"]
1669
- }
1670
- };
1671
- var PM_TOOL_PARAMETER_METADATA = {
1672
- action: {
1673
- description: "Tool action to execute."
1674
- },
1675
- path: {
1676
- description: "Optional PM data root override for this invocation.",
1677
- examples: [".agents/pm"]
1678
- },
1679
- scope: {
1680
- description: "Scope selector for commands that operate on project or global state. Linked files, docs, and tests default to project scope when omitted.",
1681
- examples: ["project", "global"]
1682
- },
1683
- detail: {
1684
- description: "Detail mode for commands that support concise and deep diagnostics.",
1685
- examples: ["summary", "deep"]
1686
- },
1687
- trace: {
1688
- description: "When true for extension-doctor, include actionable registration traces in deep diagnostics."
1689
- },
1690
- reload: {
1691
- description: "When true for extension action payloads, trigger cache-busted extension module reload."
1692
- },
1693
- watch: {
1694
- description: "When true for extension-reload/extension action payloads, enable watch mode semantics."
1695
- },
1696
- runtimeProbe: {
1697
- description: "When true for extension-manage, run a doctor-like runtime activation probe for parity fields."
1698
- },
1699
- fixManagedState: {
1700
- description: "When true for extension-manage/extension-doctor, adopt unmanaged extensions before diagnostics/update checks."
1701
- },
1702
- target: {
1703
- description: "Positional target argument for the selected action (ID, source, package source, or extension name).",
1704
- examples: ["pm-a1b2", ".agents/pm/extensions/sample", "sample-extension"]
1705
- },
1706
- github: {
1707
- description: "GitHub shorthand owner/repo[/path] source for package/extension install actions.",
1708
- examples: ["org/repo/extensions/sample"]
1709
- },
1710
- ref: {
1711
- description: "Git ref/branch/tag used when installing from GitHub shorthand/URL sources.",
1712
- examples: ["main", "v1.0.0"]
1713
- },
1714
- cliOnly: {
1715
- description: "Restrict upgrade to the pm CLI/SDK npm package."
1716
- },
1717
- packagesOnly: {
1718
- description: "Restrict upgrade to managed installable pm packages."
1719
- },
1720
- repair: {
1721
- description: "Force npm global reinstall semantics when upgrading the pm CLI/SDK."
1722
- },
1723
- tag: {
1724
- description: "npm version or dist-tag used for CLI and registry package upgrades.",
1725
- examples: ["latest", "next", "2026.5.11"]
1726
- },
1727
- packageName: {
1728
- description: "Override the pm CLI package name for self-upgrade automation and tests.",
1729
- examples: ["@unbrained/pm-cli"]
1730
- },
1731
- json: {
1732
- description: "Emit machine-readable JSON output."
1733
- },
1734
- quiet: {
1735
- description: "Suppress stdout payload output."
1736
- },
1737
- noExtensions: {
1738
- description: "Disable extension loading for this invocation."
1739
- },
1740
- noPager: {
1741
- description: "Disable pager integration for help and long output."
1742
- },
1743
- profile: {
1744
- description: "Emit deterministic timing diagnostics to stderr."
1745
- },
1746
- timeoutMs: {
1747
- description: "Tool execution timeout in milliseconds.",
1748
- examples: [12e4]
1749
- },
1750
- id: {
1751
- description: "Item identifier for read or mutation actions.",
1752
- examples: ["pm-a1b2"]
1753
- },
1754
- runId: {
1755
- description: "Background test run identifier.",
1756
- examples: ["tr-kq9x3f-93acde"]
1757
- },
1758
- title: {
1759
- description: "Item title text."
1760
- },
1761
- description: {
1762
- description: "Item description text."
1763
- },
1764
- type: {
1765
- description: "Item type name from the active runtime type registry.",
1766
- examples: ["Task", "Feature"]
1767
- },
1768
- subcommand: {
1769
- description: "Subcommand selector for schema and telemetry actions."
1770
- },
1771
- name: {
1772
- description: "Custom item type name (schema add-type/remove-type/show), custom status id (schema show-status/add-status/remove-status), or custom field key (schema add-field/remove-field/show-field).",
1773
- examples: ["Spike", "review", "component"]
1774
- },
1775
- defaultStatus: {
1776
- description: "Default status hint recorded for a custom item type.",
1777
- examples: ["open"]
1778
- },
1779
- alias: {
1780
- description: "Aliases for the custom item type or status (repeatable).",
1781
- examples: [["spike", "research"]]
1782
- },
1783
- role: {
1784
- description: "Lifecycle roles for a custom status (schema add-status): draft, active, blocked, terminal, terminal_done, terminal_canceled, default_open, default_close, default_cancel.",
1785
- examples: [["active"], ["terminal", "terminal_done"]]
1786
- },
1787
- fieldType: {
1788
- description: "Value type for a custom field (schema add-field): string, number, boolean, or string_array.",
1789
- examples: ["string", "number", "string_array"]
1790
- },
1791
- commands: {
1792
- description: "Commands a custom field is wired onto (schema add-field): create, update, update_many, list, search, calendar, context.",
1793
- examples: [["create", "update"], ["create", "update", "list"]]
1794
- },
1795
- cliFlag: {
1796
- description: "Override the auto-derived CLI flag for a custom field (schema add-field).",
1797
- examples: ["--owner"]
1798
- },
1799
- required: {
1800
- description: "Mark a custom field as always required (schema add-field)."
1801
- },
1802
- requiredOnCreate: {
1803
- description: "Mark a custom field as required at create time (schema add-field)."
1804
- },
1805
- allowUnset: {
1806
- description: "Whether a custom field may be cleared via --unset (schema add-field); defaults to true."
1807
- },
1808
- requiredTypes: {
1809
- description: "Restrict a custom field's requirement to specific item types (schema add-field).",
1810
- examples: [["Bug"], ["Story", "Spike"]]
1811
- },
1812
- infer: {
1813
- description: "Infer custom item types from title-prefix conventions (schema add-type); previews unless apply is true."
1814
- },
1815
- minCount: {
1816
- description: "Minimum number of items sharing a title prefix for schema add-type inference (default 10).",
1817
- examples: [10, 25]
1818
- },
1819
- preset: {
1820
- description: "Governance preset for initialization flows.",
1821
- examples: ["minimal", "default", "strict"]
1822
- },
1823
- typePreset: {
1824
- description: "Domain item-type preset registered during initialization.",
1825
- examples: ["agile", "ops", "research"]
1826
- },
1827
- defaults: {
1828
- description: "Use non-interactive setup defaults during initialization."
1829
- },
1830
- verbose: {
1831
- description: "Include the full resolved settings tree in init output."
1832
- },
1833
- agentGuidance: {
1834
- description: "Control AGENTS.md/CLAUDE.md guidance behavior during init: ask, add, skip, or status.",
1835
- examples: ["ask", "add", "skip", "status"]
1836
- },
1837
- withPackages: {
1838
- description: "Install all bundled first-party pm packages during initialization."
1839
- },
1840
- createMode: {
1841
- description: "Create required-option policy mode.",
1842
- examples: ["strict", "progressive"]
1843
- },
1844
- schedulePreset: {
1845
- description: "Schedule-centric create preset for Reminder, Meeting, and Event types.",
1846
- examples: ["lightweight"]
1847
- },
1848
- status: {
1849
- description: "Item status value. Statuses are project-configurable via .agents/pm/settings.json (schema block); the built-in defaults are draft, open, in_progress, blocked, closed, canceled. Custom statuses defined for the project are accepted \u2014 discover the active set with the pm_contracts tool (workspace.statuses) or `pm contracts`. Unknown statuses are rejected at runtime with a did-you-mean hint rather than blocked by a fixed schema enum.",
1850
- examples: ["open", "in_progress"]
1851
- },
1852
- priority: {
1853
- description: "Priority value in range 0..4.",
1854
- examples: [0, 1, "2"]
1855
- },
1856
- order: {
1857
- description: "Planning order/rank value for create/update, or sort direction (asc|desc) for list-family sorting.",
1858
- examples: [0, 1, "2", "asc", "desc"]
1859
- },
1860
- sort: {
1861
- description: "List-family sort field selector.",
1862
- examples: ["priority", "deadline", "updated_at", "created_at", "title", "parent"]
1863
- },
1864
- tags: {
1865
- description: "Comma-delimited tag list.",
1866
- examples: ["pm-cli,agent-ux"]
1867
- },
1868
- addTags: {
1869
- description: "Tags to add to the existing list without replacing it. Each entry may be CSV or a JSON array.",
1870
- examples: [["agent-ux"], ["fix", "security"]]
1871
- },
1872
- removeTags: {
1873
- description: "Tags to remove from the existing list. Each entry may be CSV or a JSON array.",
1874
- examples: [["stale"], ["legacy", "wontfix"]]
1875
- },
1876
- deadline: {
1877
- description: "ISO/date timestamp or relative offset (+6h/+1d/+2w/+6m).",
1878
- examples: ["2026-04-01T00:00:00.000Z", "+1d"]
1879
- },
1880
- reminder: {
1881
- description: "Repeatable reminder seed entries at=<iso|relative>,text=<text>.",
1882
- examples: [["at=+2d,text=Review PR"]]
1883
- },
1884
- event: {
1885
- description: "Repeatable event seed entries start=<iso|relative> with end=<iso|relative> or duration=<relative|30min|PT30M>. Bare `m` remains months for backward compatibility.",
1886
- examples: [
1887
- ["start=2026-07-01T10:00:00Z,duration=2h,title=planning"],
1888
- ["start=2026-07-01T10:00:00Z,duration=30min,title=standup"],
1889
- ["start=2026-07-01T10:00:00Z,duration=PT30M,title=window"]
1890
- ]
1891
- },
1892
- estimate: {
1893
- description: "Estimated effort in minutes.",
1894
- examples: [60, "120"]
1895
- },
1896
- acceptanceCriteria: {
1897
- description: "Acceptance criteria text."
1898
- },
1899
- author: {
1900
- description: "Mutation author identity.",
1901
- examples: ["codex-agent"]
1902
- },
1903
- message: {
1904
- description: "History message for mutation audit trail."
1905
- },
1906
- assignee: {
1907
- description: "Assignee identity.",
1908
- examples: ["codex-agent"]
1909
- },
1910
- assigneeFilter: {
1911
- description: "Assignee presence selector for list/calendar/context/comments-audit filters.",
1912
- examples: ["assigned", "unassigned"]
1913
- },
1914
- parent: {
1915
- description: "Parent item ID filter for hierarchical list queries.",
1916
- examples: ["pm-epic01"]
1917
- },
1918
- unset: {
1919
- description: "Repeatable list of front-matter fields to clear explicitly during create/update mutations.",
1920
- examples: [["deadline", "assignee"], ["close-reason"]]
1921
- },
1922
- clearDeps: {
1923
- description: "When true, clear linked dependencies."
1924
- },
1925
- replaceDeps: {
1926
- description: "When true for update, atomically replace dependencies with the supplied --dep values."
1927
- },
1928
- replaceTests: {
1929
- description: "When true for update, atomically replace linked tests with the supplied --test values."
1930
- },
1931
- clearComments: {
1932
- description: "When true, clear item comments."
1933
- },
1934
- clearNotes: {
1935
- description: "When true, clear item notes."
1936
- },
1937
- clearLearnings: {
1938
- description: "When true, clear item learnings."
1939
- },
1940
- clearFiles: {
1941
- description: "When true, clear linked files."
1942
- },
1943
- clearTests: {
1944
- description: "When true, clear linked tests."
1945
- },
1946
- clearDocs: {
1947
- description: "When true, clear linked docs."
1948
- },
1949
- clearReminders: {
1950
- description: "When true, clear reminders."
1951
- },
1952
- clearEvents: {
1953
- description: "When true, clear events."
1954
- },
1955
- clearTypeOptions: {
1956
- description: "When true, clear type option metadata."
1957
- },
1958
- clearCriteria: {
1959
- description: "When true for config set criteria-list keys (definition-of-done, metadata-required-fields, lifecycle pattern lists), clear the criteria list."
1960
- },
1961
- mode: {
1962
- description: "Mode selector for search/reindex (keyword|semantic|hybrid) and dedupe-audit (title_exact|title_fuzzy|parent_scope).",
1963
- examples: ["keyword", "hybrid", "title_exact"]
1964
- },
1965
- semanticWeight: {
1966
- description: "Per-query hybrid semantic weight override in [0,1] for search action; invalid values fall back to settings.",
1967
- examples: [0.2, "0.7"]
1968
- },
1969
- op: {
1970
- description: "History operation filter for activity output.",
1971
- examples: ["create", "update", "close", "update_audit"]
1972
- },
1973
- fullPeriod: {
1974
- description: "For day/week/month calendar views, include the full anchored period instead of clipping the start to now."
1975
- },
1976
- progress: {
1977
- description: "Emit progress diagnostics to stderr for long-running operations."
1978
- },
1979
- background: {
1980
- description: "Run linked tests in managed background mode."
1981
- },
1982
- addJson: {
1983
- description: "Repeatable JSON object or array input for adding linked-test entries without CSV escaping loss.",
1984
- examples: [[`{"command":"node scripts/run-tests.mjs test -- tests/unit/output.spec.ts","timeout_seconds":240}`]]
1985
- },
1986
- match: {
1987
- description: "Run only linked tests whose command or path contains this case-insensitive substring.",
1988
- examples: ["output.spec.ts", "coverage"]
1989
- },
1990
- onlyIndex: {
1991
- description: "Run only the 1-based linked-test index from pm test <id> --list order.",
1992
- examples: [1, "2"]
1993
- },
1994
- onlyLast: {
1995
- description: "Run only the most recently added linked-test entry."
1996
- },
1997
- envSet: {
1998
- description: "Repeatable runtime environment KEY=VALUE overrides for linked-test execution.",
1999
- examples: [["PORT=0", "PLAYWRIGHT_HTML_OPEN=never"]]
2000
- },
2001
- envClear: {
2002
- description: "Repeatable runtime environment variable names to clear before linked-test execution.",
2003
- examples: [["PLAYWRIGHT_BASE_URL"]]
2004
- },
2005
- sharedHostSafe: {
2006
- description: "Apply additive shared-host-safe runtime defaults during linked-test execution."
2007
- },
2008
- pmContext: {
2009
- description: "PM linked-test context mode (schema keeps isolated tracker data; tracker seeds source tracker data; auto uses tracker for PM tracker-read linked commands).",
2010
- examples: ["schema", "tracker", "auto"]
2011
- },
2012
- overrideLinkedPmContext: {
2013
- description: "Force run-level --pm-context to override per-linked-test pm_context_mode metadata for all linked-test entries."
2014
- },
2015
- failOnContextMismatch: {
2016
- description: "Fail linked PM command runs when source and sandbox tracker item counts differ."
2017
- },
2018
- failOnSkipped: {
2019
- description: "Treat skipped linked tests as dependency-failed policy violations."
2020
- },
2021
- failOnEmptyTestRun: {
2022
- description: "Treat successful linked-test commands that report zero executed tests as failures."
2023
- },
2024
- requireAssertionsForPm: {
2025
- description: "Require assertion metadata for linked PM command test entries during run execution."
2026
- },
2027
- checkContext: {
2028
- description: "Run linked PM command context preflight diagnostics before command execution."
2029
- },
2030
- autoPmContext: {
2031
- description: "Auto-remediate PM tracker-read linked commands by routing those entries through tracker context regardless of linked-test pm_context_mode overrides."
2032
- },
2033
- dryRun: {
2034
- description: "Preview command effects without mutating storage artifacts."
2035
- },
2036
- all: {
2037
- description: "For history-repair action: scan every stream for drift and repair each drifted stream in one audited pass (mutually exclusive with id)."
2038
- },
2039
- clear: {
2040
- description: "For focus action: clear the session focused item instead of setting it (mutually exclusive with id)."
2041
- },
2042
- gcScope: {
2043
- description: "Repeatable gc scope selector values (index, embeddings, runtime, locks, checkpoints).",
2044
- examples: [["index", "embeddings"], ["runtime"], ["locks"], ["checkpoints"]]
2045
- },
2046
- storage: {
2047
- description: "For stats action: include aggregate history-stream storage metrics (total streams/lines/bytes, largest + deepest streams, oldest/newest entries) for compaction and storage planning."
2048
- },
2049
- fieldUtilization: {
2050
- description: "For stats action: include a field_utilization block reporting present/total/percent for content fields (notes, learnings, files, docs, tests, comments, deps, body, linked_command) across all items so under-documented dimensions are visible at a glance."
2051
- },
2052
- offset: {
2053
- description: "Number of matching rows to skip before limit is applied.",
2054
- examples: [0, 50, "100"]
2055
- },
2056
- before: {
2057
- description: "For history-compact, compact entries strictly before this boundary (version number or ISO timestamp). Single-id mode only.",
2058
- examples: ["5", "2026-06-01T00:00:00.000Z"]
2059
- },
2060
- allOver: {
2061
- description: "For history-compact bulk mode, compact every stream with more than N entries. When history.compact_policy is enabled and this is omitted, the policy's max_entries is used.",
2062
- examples: [200, "500"]
2063
- },
2064
- minEntries: {
2065
- description: "For history-compact bulk mode, skip streams with at most N entries as already-compact (default 3).",
2066
- examples: [3, "10"]
2067
- },
2068
- closed: {
2069
- description: "For history-compact bulk mode, compact only closed (terminal) items' history streams."
2070
- },
2071
- allStreams: {
2072
- description: "For history-compact bulk mode, compact every history stream regardless of lifecycle state."
2073
- },
2074
- limitItems: {
2075
- description: "Maximum number of filtered items to include in comments-audit output (alias: --limit).",
2076
- examples: [10, "25"]
2077
- },
2078
- fullHistory: {
2079
- description: "When true for comments-audit, export full per-item comment history rows; cannot be combined with latest."
2080
- },
2081
- latest: {
2082
- description: "Number of most recent comments to include per item in comments-audit output (use 0 for summary-only item rows).",
2083
- examples: [0, 1, "3"]
2084
- },
2085
- literal: {
2086
- description: "Repeatable literal matcher used by history-redact to scrub exact string values.",
2087
- examples: ["[redacted_path_prefix]/private/path"]
2088
- },
2089
- regex: {
2090
- description: "Repeatable regex matcher used by history-redact. Accepts either /pattern/flags or a raw pattern (global mode is auto-enabled).",
2091
- examples: ["/192\\\\.168\\\\.[0-9.]+/g", "token=[A-Za-z0-9_-]+"]
2092
- },
2093
- replacement: {
2094
- description: 'Replacement text used by history-redact (defaults to "[redacted]").',
2095
- examples: ["[scrubbed_path]"]
2096
- },
2097
- validateClose: {
2098
- description: 'Close-time metadata validation mode ("off", "warn", or "strict").',
2099
- examples: ["off", "warn", "strict"]
2100
- },
2101
- checkMetadata: {
2102
- description: "Run metadata completeness checks."
2103
- },
2104
- metadataProfile: {
2105
- description: "Select metadata validation profile for --check-metadata.",
2106
- examples: ["core", "strict", "custom"]
2107
- },
2108
- checkResolution: {
2109
- description: "Run closed-item resolution metadata checks."
2110
- },
2111
- checkLifecycle: {
2112
- description: "Run active-item lifecycle governance drift checks."
2113
- },
2114
- checkStaleBlockers: {
2115
- description: "Include stale blocker-pattern diagnostics in lifecycle checks."
2116
- },
2117
- dependencyCycleSeverity: {
2118
- description: "Set dependency-cycle warning policy for lifecycle checks.",
2119
- examples: ["off", "warn", "error"]
2120
- },
2121
- checkFiles: {
2122
- description: "Run linked-file and orphaned-file checks."
2123
- },
2124
- strictDirectories: {
2125
- description: "Treat optional item-type directories as required health failures."
2126
- },
2127
- checkOnly: {
2128
- description: "For health action, run read-only diagnostics without refreshing vectors."
2129
- },
2130
- checkTelemetry: {
2131
- description: "For health action, probe telemetry endpoint health and include network diagnostics."
2132
- },
2133
- noRefresh: {
2134
- description: "For health action, skip vector refresh while still running checks."
2135
- },
2136
- refreshVectors: {
2137
- description: "For health action, explicitly refresh stale vectors."
2138
- },
2139
- verboseStaleItems: {
2140
- description: "For health action, include full stale-item arrays in vectorization details."
2141
- },
2142
- skipVectors: {
2143
- description: "For health action, skip vectorization checks for a faster diagnostic run."
2144
- },
2145
- skipIntegrity: {
2146
- description: "For health action, skip item/history file integrity checks for a faster diagnostic run."
2147
- },
2148
- skipDrift: {
2149
- description: "For health action, skip history drift hash checks for a faster diagnostic run."
2150
- },
2151
- scanMode: {
2152
- description: "Select file candidate scan mode for --check-files.",
2153
- examples: ["default", "tracked-all", "tracked-all-strict"]
2154
- },
2155
- includePmInternals: {
2156
- description: "Include PM storage internals in tracked-all candidate scans."
2157
- },
2158
- verboseFileLists: {
2159
- description: "For validate action, include full file-path lists for --check-files details."
2160
- },
2161
- verboseDiagnostics: {
2162
- description: "For validate action, include full diagnostic ID lists instead of compact summaries."
2163
- },
2164
- strictExit: {
2165
- description: "Return non-zero exit when health/validate/extension-doctor warnings are present."
2166
- },
2167
- failOnWarn: {
2168
- description: "Alias for strictExit in health/validate/extension-doctor action payloads."
2169
- },
2170
- fixHints: {
2171
- description: "For validate action, add a machine-executable fix_hints[] of pm commands to each failing check's details."
2172
- },
2173
- autoFix: {
2174
- description: "For validate action, apply the safe, deterministic subset of fix-hint remediations (field backfills) automatically; combine with dryRun to preview and fixScope to grant gated scopes."
2175
- },
2176
- fixScope: {
2177
- description: "For validate action, grant --auto-fix scopes (metadata, resolution, estimates, lifecycle). Defaults to the safe scopes metadata and resolution; estimates (per-type default estimated_minutes backfill) and lifecycle must be named explicitly.",
2178
- examples: [["estimates"], ["lifecycle"], ["metadata", "resolution"]]
2179
- },
2180
- pruneMissing: {
2181
- description: "For validate action, remove stale linked-file/doc LINKS whose paths classified as deleted (link removal only \u2014 never touches real files); honors dryRun."
2182
- },
2183
- checkHistoryDrift: {
2184
- description: "Run item/history hash drift checks."
2185
- },
2186
- checkCommandReferences: {
2187
- description: "Run linked-command PM-ID reference checks."
2188
- },
2189
- allowAuditNote: {
2190
- description: "For notes action, allow non-owner append-only note audits without requiring --force."
2191
- },
2192
- allowAuditLearning: {
2193
- description: "For learnings action, allow non-owner append-only learning audits without requiring --force."
2194
- },
2195
- allowAuditComment: {
2196
- description: "For comments action, allow non-owner append-only comment audits without requiring --force."
2197
- },
2198
- edit: {
2199
- description: "For comments action, replace the comment at this 1-based index with the supplied replacement text (add/stdin/file)."
2200
- },
2201
- delete: {
2202
- description: "For comments action, delete the comment at this 1-based index."
2203
- },
2204
- stdin: {
2205
- description: "When true for comments action, read comment text from piped stdin (supports multiline markdown)."
2206
- },
2207
- file: {
2208
- description: "Path to input file for actions that read payload text, such as comments --file.",
2209
- examples: ["notes/comment.md"]
2210
- },
2211
- allowAuditUpdate: {
2212
- description: "Allow non-owner metadata-only update audits without requiring --force."
2213
- },
2214
- allowAuditDepUpdate: {
2215
- description: "Allow non-owner append-only dependency update audits without requiring --force."
2216
- },
2217
- allowAuditRelease: {
2218
- description: "Allow non-owner release handoffs that clear assignee metadata without requiring --force."
2219
- },
2220
- preserveSourceIds: {
2221
- description: "Preserve explicit source IDs during Beads imports instead of normalizing to tracker prefix.",
2222
- examples: [true]
2223
- },
2224
- appendStable: {
2225
- description: "When true for files action, preserve existing linked-file order and append new links without full-array resorting."
2226
- },
2227
- discover: {
2228
- description: "When true for files action, use `pm files discover <id>` to scan item text for referenced file paths."
2229
- },
2230
- apply: {
2231
- description: "Persist changes instead of returning a dry-run preview: for files discovery, add the missing discovered file links; for schema add-type --infer, register the inferred custom item types."
2232
- },
2233
- discoveryNote: {
2234
- description: "Note attached to file links added by files discovery.",
2235
- examples: ["discovered from item text"]
2236
- },
2237
- addNote: {
2238
- description: "Note attached to every link added by add/addGlob in this call (per-entry embedded note= wins; requires add or addGlob). Maps to the CLI --note flag on pm files/pm docs.",
2239
- examples: ["command wiring"]
2240
- },
2241
- list: {
2242
- description: "When true for files/docs action, list the current linked paths without mutating them.",
2243
- examples: [true]
2244
- },
2245
- stream: {
2246
- description: "Stream selector: test-runs logs accepts stdout|stderr|both; activity accepts boolean/rows|ndjson|jsonl for line-delimited output.",
2247
- examples: ["stderr", "stdout", "both", "rows", "ndjson", "jsonl", true]
2248
- },
2249
- tail: {
2250
- description: "Number of lines to tail for background run logs.",
2251
- examples: [100]
2252
- },
2253
- query: {
2254
- description: "Search query text for search action."
2255
- },
2256
- keywords: {
2257
- description: "Alias for query in search action payloads."
2258
- },
2259
- includeLinked: {
2260
- description: "Include readable linked docs/files/tests content in keyword and hybrid lexical scoring."
2261
- },
2262
- titleExact: {
2263
- description: "For search action, require exact normalized title match for the full query string."
2264
- },
2265
- phraseExact: {
2266
- description: "For search action, require exact normalized query phrase match in item text fields."
2267
- },
2268
- highlight: {
2269
- description: "For search action, emit per-field matched-text snippets (wrapped in \xAB\u2026\xBB) on each hit. Off by default."
2270
- },
2271
- includeBody: {
2272
- description: "When true for list-family actions, include item body text in projected rows."
2273
- },
2274
- noTruncate: {
2275
- description: "When true for list-family actions, return every matched row, overriding any limit (surfaces total when rows were dropped)."
2276
- },
2277
- compact: {
2278
- description: "Render compact projection output for search and list-family actions."
2279
- },
2280
- full: {
2281
- description: "Enable command-specific full/detail output mode when supported, such as deep item reads for get or full payload mode for search/history."
2282
- },
2283
- fields: {
2284
- description: "Comma-separated projection fields for get, search, list-family, or context outputs. Valid field names are command-specific (e.g. score/matched_fields apply to search; context projects focus-row fields such as priority/deadline/completion_pct).",
2285
- examples: ["id,title,status,parent,type", "id,title,score,matched_fields", "id,title,priority,deadline"]
2286
- },
2287
- groupBy: {
2288
- description: "Comma-separated aggregate grouping fields (supported: parent,type,priority,status,assignee,tags,sprint,release).",
2289
- examples: ["parent,type", "type,status", "priority,assignee", "tags", "sprint,release"]
2290
- },
2291
- count: {
2292
- description: "Enable grouped count output for aggregate action."
2293
- },
2294
- completion: {
2295
- description: "For aggregate action, add open/in_progress/closed/other counts and completion_pct per group."
2296
- },
2297
- sum: {
2298
- description: "Numeric field to sum per aggregate group (count and null_count are still returned).",
2299
- examples: ["estimated_minutes", "priority"]
2300
- },
2301
- avg: {
2302
- description: "Numeric field to average per aggregate group (count and null_count are still returned).",
2303
- examples: ["estimated_minutes", "priority"]
2304
- },
2305
- tree: {
2306
- description: "When true for list/get actions, render recursive parent/child tree ordering."
2307
- },
2308
- treeDepth: {
2309
- description: "Maximum recursion depth for tree output (0 keeps root rows only).",
2310
- examples: [0, 1, "2"]
2311
- },
2312
- includeUnparented: {
2313
- description: "Include unparented rows when aggregate grouping includes parent."
2314
- },
2315
- maxDepth: {
2316
- description: "Maximum dependency traversal depth for deps action (0 keeps only the root node).",
2317
- examples: [0, 1, "2"]
2318
- },
2319
- collapse: {
2320
- description: 'Dependency tree collapse mode for deps action ("none" or "repeated").',
2321
- examples: ["none", "repeated"]
2322
- },
2323
- summary: {
2324
- description: "When true for deps action, return counts only without full tree/graph payloads."
2325
- },
2326
- threshold: {
2327
- description: "Dedupe-audit fuzzy title similarity threshold between 0 and 1.",
2328
- examples: [0.5, "0.75"]
2329
- },
2330
- shell: {
2331
- description: "Shell target for completion generation.",
2332
- examples: ["bash"]
2333
- },
2334
- eagerTags: {
2335
- description: "When true for completion, eagerly embed current tracker tags into generated scripts (legacy mode)."
2336
- },
2337
- contractAction: {
2338
- description: "Filter contracts schema to one tool action.",
2339
- examples: ["create", "update"]
2340
- },
2341
- command: {
2342
- description: "Scope contracts output to one CLI command name; action/schema surfaces narrow by default.",
2343
- examples: ["create", "search", "list"]
2344
- },
2345
- schemaOnly: {
2346
- description: "When true, contracts action returns schema-focused payloads (mutually exclusive with flagsOnly/availabilityOnly)."
2347
- },
2348
- flagsOnly: {
2349
- description: "When true, contracts action returns only command flag surface payloads (mutually exclusive projection mode)."
2350
- },
2351
- availabilityOnly: {
2352
- description: "When true, contracts action returns only action availability payloads (mutually exclusive projection mode)."
2353
- },
2354
- runtimeOnly: {
2355
- description: "When true, contracts action only includes actions invocable in the current runtime."
2356
- },
2357
- activeOnly: {
2358
- description: "Alias for runtimeOnly in contracts action payloads."
2359
- },
2360
- depth: {
2361
- description: "Context depth level controlling how many sections are included (brief=focus+agenda, standard=+hierarchy/activity/progress/workload, deep=all sections, full=every section with no per-section row cap).",
2362
- examples: ["brief", "standard", "deep", "full"]
2363
- },
2364
- section: {
2365
- description: "Repeatable section selector for context; overrides --depth when provided.",
2366
- examples: [["hierarchy", "activity"], ["blockers", "files", "staleness"]]
2367
- },
2368
- activityLimit: {
2369
- description: "Maximum number of recent activity entries to include in context output.",
2370
- examples: [5, 10, "20"]
2371
- },
2372
- staleThreshold: {
2373
- description: "Staleness cutoff in days for context staleness section (e.g. 7 or 7d).",
2374
- examples: ["7", "14d", "30"]
2375
- }
2376
- };
2377
-
2378
- // dist/sdk/cli-contracts.js
2379
- function normalizeUniqueStringList(values) {
2380
- return [...new Set(Array.from(values).filter((value) => value.trim().length > 0))];
2381
- }
2382
- function normalizeFlagAliasKey(flag) {
2383
- if (!flag.startsWith("--")) {
2384
- return flag;
2385
- }
2386
- return `--${flag.slice(2).replaceAll("_", "-")}`;
2387
- }
2388
- function withFlagAliasMetadata(flagContracts) {
2389
- const aliasesByCanonical = /* @__PURE__ */ new Map();
2390
- for (const contract of flagContracts) {
2391
- const canonical = normalizeFlagAliasKey(contract.flag);
2392
- const bucket = aliasesByCanonical.get(canonical) ?? /* @__PURE__ */ new Set();
2393
- if (contract.flag !== canonical) {
2394
- bucket.add(contract.flag);
2395
- }
2396
- for (const alias of contract.aliases ?? []) {
2397
- if (alias !== canonical) {
2398
- bucket.add(alias);
2399
- }
2400
- }
2401
- aliasesByCanonical.set(canonical, bucket);
2402
- }
2403
- return flagContracts.map((contract) => {
2404
- const canonical = normalizeFlagAliasKey(contract.flag);
2405
- if (contract.flag !== canonical) {
2406
- return contract;
2407
- }
2408
- const aliases = normalizeUniqueStringList([
2409
- ...contract.aliases ?? [],
2410
- ...aliasesByCanonical.get(canonical)
2411
- ]).filter((alias) => alias !== canonical);
2412
- if (aliases.length === 0) {
2413
- return contract;
2414
- }
2415
- return {
2416
- ...contract,
2417
- aliases
2418
- };
2419
- });
2420
- }
2421
- function compactFlagAliasContracts(flagContracts) {
2422
- const withAliases = withFlagAliasMetadata(flagContracts);
2423
- const canonicalFlags = new Set(withAliases.map((contract) => contract.flag));
2424
- return withAliases.filter((contract) => {
2425
- const canonical = normalizeFlagAliasKey(contract.flag);
2426
- return contract.flag === canonical || !canonicalFlags.has(canonical);
2427
- });
2428
- }
2429
- var SUBCOMMAND_GLOBAL_FLAG_CONTRACTS = [
2430
- { flag: "--json" },
2431
- { flag: "--quiet" },
2432
- { flag: "--no-changed-fields" },
2433
- { flag: "--id-only" },
2434
- { flag: "--pm-path", aliases: ["--path"] },
2435
- { flag: "--no-extensions" },
2436
- { flag: "--no-pager" },
2437
- { flag: "--profile" },
2438
- { flag: "--help" }
2439
- ];
2440
- var GLOBAL_FLAG_CONTRACTS = [
2441
- ...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS,
2442
- { flag: "--version" }
2443
- ];
2444
- var LIST_FILTER_FLAG_CONTRACTS = [
2445
- { flag: "--status", list: true },
2446
- { flag: "--type" },
2447
- { flag: "--tag", aliases: ["--tags"] },
2448
- { flag: "--priority" },
2449
- { flag: "--deadline-before" },
2450
- { flag: "--deadline-after" },
2451
- { flag: "--updated-after" },
2452
- { flag: "--updated-before" },
2453
- { flag: "--created-after" },
2454
- { flag: "--created-before" },
2455
- { flag: "--ids", list: true },
2456
- { flag: "--assignee" },
2457
- { flag: "--assignee-filter" },
2458
- { flag: "--assignee_filter" },
2459
- { flag: "--parent" },
2460
- { flag: "--sprint" },
2461
- { flag: "--release" },
2462
- { flag: "--filter-ac-missing" },
2463
- { flag: "--filter-estimates-missing", aliases: ["--filter-estimate-missing"] },
2464
- { flag: "--filter-resolution-missing" },
2465
- { flag: "--filter-metadata-missing" },
2466
- { flag: "--filter-reviewer-missing" },
2467
- { flag: "--filter-risk-missing" },
2468
- { flag: "--filter-confidence-missing" },
2469
- { flag: "--filter-sprint-missing" },
2470
- { flag: "--filter-release-missing" },
2471
- { flag: "--has-notes" },
2472
- { flag: "--no-notes" },
2473
- { flag: "--has-learnings" },
2474
- { flag: "--no-learnings" },
2475
- { flag: "--has-files" },
2476
- { flag: "--no-files" },
2477
- { flag: "--has-docs" },
2478
- { flag: "--no-docs" },
2479
- { flag: "--has-tests" },
2480
- { flag: "--no-tests" },
2481
- { flag: "--has-comments" },
2482
- { flag: "--no-comments" },
2483
- { flag: "--has-deps" },
2484
- { flag: "--no-deps" },
2485
- { flag: "--has-body" },
2486
- { flag: "--empty-body" },
2487
- { flag: "--has-linked-command" },
2488
- { flag: "--no-linked-command" },
2489
- { flag: "--limit" },
2490
- { flag: "--offset" },
2491
- { flag: "--no-truncate", aliases: ["--all"] },
2492
- { flag: "--compact" },
2493
- { flag: "--brief" },
2494
- { flag: "--full" },
2495
- { flag: "--fields", list: true },
2496
- { flag: "--sort" },
2497
- { flag: "--order" },
2498
- { flag: "--tree" },
2499
- { flag: "--tree-depth" },
2500
- { flag: "--tree_depth" },
2501
- { flag: "--include-body" },
2502
- { flag: "--format" },
2503
- { flag: "--stream" }
2504
- ];
2505
- var AGGREGATE_FLAG_CONTRACTS = [
2506
- { flag: "--group-by", list: true },
2507
- { flag: "--count" },
2508
- { flag: "--completion" },
2509
- { flag: "--sum" },
2510
- { flag: "--avg" },
2511
- { flag: "--include-unparented" },
2512
- { flag: "--include_unparented" },
2513
- { flag: "--status" },
2514
- { flag: "--type" },
2515
- { flag: "--tag" },
2516
- { flag: "--priority" },
2517
- { flag: "--deadline-before" },
2518
- { flag: "--deadline-after" },
2519
- { flag: "--assignee" },
2520
- { flag: "--assignee-filter" },
2521
- { flag: "--assignee_filter" },
2522
- { flag: "--parent" },
2523
- { flag: "--sprint" },
2524
- { flag: "--release" }
2525
- ];
2526
- var DEDUPE_AUDIT_FLAG_CONTRACTS = [
2527
- { flag: "--mode" },
2528
- { flag: "--limit" },
2529
- { flag: "--threshold" },
2530
- { flag: "--status" },
2531
- { flag: "--type" },
2532
- { flag: "--tag" },
2533
- { flag: "--priority" },
2534
- { flag: "--deadline-before" },
2535
- { flag: "--deadline-after" },
2536
- { flag: "--assignee" },
2537
- { flag: "--assignee-filter" },
2538
- { flag: "--assignee_filter" },
2539
- { flag: "--parent" },
2540
- { flag: "--sprint" },
2541
- { flag: "--release" }
2542
- ];
2543
- var DEDUPE_MERGE_FLAG_CONTRACTS = [
2544
- { flag: "--keep" },
2545
- { flag: "--close", list: true },
2546
- { flag: "--apply" },
2547
- { flag: "--dry-run" },
2548
- { flag: "--skip-children" },
2549
- { flag: "--author" },
2550
- { flag: "--message" }
2551
- ];
2552
- var COMMENTS_AUDIT_FLAG_CONTRACTS = [
2553
- { flag: "--status" },
2554
- { flag: "--type" },
2555
- { flag: "--assignee" },
2556
- { flag: "--assignee-filter" },
2557
- { flag: "--assignee_filter" },
2558
- { flag: "--parent" },
2559
- { flag: "--tag" },
2560
- { flag: "--sprint" },
2561
- { flag: "--release" },
2562
- { flag: "--priority" },
2563
- { flag: "--limit-items" },
2564
- { flag: "--limit" },
2565
- { flag: "--full-history" },
2566
- { flag: "--latest" }
2567
- ];
2568
- var COMMENTS_FLAG_CONTRACTS = [
2569
- { flag: "--add", aliases: ["--comment"] },
2570
- { flag: "--stdin" },
2571
- { flag: "--file" },
2572
- { flag: "--edit" },
2573
- { flag: "--delete" },
2574
- { flag: "--limit" },
2575
- { flag: "--author" },
2576
- { flag: "--message" },
2577
- { flag: "--allow-audit-comment" },
2578
- { flag: "--force" }
2579
- ];
2580
- var NOTES_FLAG_CONTRACTS = [
2581
- { flag: "--add", aliases: ["--note"] },
2582
- { flag: "--limit" },
2583
- { flag: "--author" },
2584
- { flag: "--message" },
2585
- { flag: "--allow-audit-note" },
2586
- { flag: "--allow-audit-comment" },
2587
- { flag: "--force" }
2588
- ];
2589
- var LEARNINGS_FLAG_CONTRACTS = [
2590
- { flag: "--add", aliases: ["--learning"] },
2591
- { flag: "--limit" },
2592
- { flag: "--author" },
2593
- { flag: "--message" },
2594
- { flag: "--allow-audit-learning" },
2595
- { flag: "--allow-audit-comment" },
2596
- { flag: "--force" }
2597
- ];
2598
- var FILES_FLAG_CONTRACTS = [
2599
- { flag: "--add" },
2600
- { flag: "--add-glob" },
2601
- { flag: "--remove" },
2602
- { flag: "--migrate" },
2603
- // GH-170 (pm-pfnx): single-value note applied to every --add/--add-glob link
2604
- // in the invocation (embedded note= wins; usage error without an add).
2605
- { flag: "--note" },
2606
- { flag: "--list" },
2607
- { flag: "--append-stable" },
2608
- { flag: "--validate-paths" },
2609
- { flag: "--audit" },
2610
- { flag: "--author" },
2611
- { flag: "--message" },
2612
- { flag: "--force" }
2613
- ];
2614
- var DOCS_FLAG_CONTRACTS = [
2615
- { flag: "--add" },
2616
- { flag: "--add-glob" },
2617
- { flag: "--remove" },
2618
- { flag: "--migrate" },
2619
- // GH-170 (pm-pfnx): see FILES_FLAG_CONTRACTS --note.
2620
- { flag: "--note" },
2621
- { flag: "--list" },
2622
- { flag: "--validate-paths" },
2623
- { flag: "--audit" },
2624
- { flag: "--author" },
2625
- { flag: "--message" },
2626
- { flag: "--force" }
1071
+ var DOCS_FLAG_CONTRACTS = [
1072
+ { flag: "--add" },
1073
+ { flag: "--add-glob" },
1074
+ { flag: "--remove" },
1075
+ { flag: "--migrate" },
1076
+ // GH-170 (pm-pfnx): see FILES_FLAG_CONTRACTS --note.
1077
+ { flag: "--note" },
1078
+ { flag: "--list" },
1079
+ { flag: "--validate-paths" },
1080
+ { flag: "--audit" },
1081
+ { flag: "--author" },
1082
+ { flag: "--message" },
1083
+ { flag: "--force" }
2627
1084
  ];
2628
1085
  var HISTORY_FLAG_CONTRACTS = [
2629
1086
  { flag: "--limit" },
@@ -2689,6 +1146,11 @@ var SCHEMA_FLAG_CONTRACTS = [
2689
1146
  { flag: "--author" },
2690
1147
  { flag: "--force" }
2691
1148
  ];
1149
+ var PROFILE_FLAG_CONTRACTS = [
1150
+ { flag: "--dry-run" },
1151
+ { flag: "--author" },
1152
+ { flag: "--force" }
1153
+ ];
2692
1154
  var PLAN_FLAG_CONTRACTS = [
2693
1155
  { flag: "--title" },
2694
1156
  { flag: "--description" },
@@ -2781,6 +1243,8 @@ var EXTENSION_FLAG_CONTRACTS = [
2781
1243
  { flag: "--list" },
2782
1244
  { flag: "--manage" },
2783
1245
  { flag: "--describe" },
1246
+ { flag: "--markdown" },
1247
+ { flag: "--output" },
2784
1248
  { flag: "--reload" },
2785
1249
  { flag: "--watch" },
2786
1250
  { flag: "--doctor" },
@@ -2811,6 +1275,8 @@ var EXTENSION_INIT_FLAG_CONTRACTS = [
2811
1275
  ...EXTENSION_SCOPE_FLAG_CONTRACTS,
2812
1276
  { flag: "--capability" }
2813
1277
  ];
1278
+ var PACKAGE_FLAG_CONTRACTS = [...EXTENSION_FLAG_CONTRACTS, { flag: "--declarative" }];
1279
+ var PACKAGE_INIT_FLAG_CONTRACTS = [...EXTENSION_INIT_FLAG_CONTRACTS, { flag: "--declarative" }];
2814
1280
  var EXTENSION_INSTALL_FLAG_CONTRACTS = [
2815
1281
  { flag: "--project" },
2816
1282
  { flag: "--local" },
@@ -2821,7 +1287,11 @@ var EXTENSION_INSTALL_FLAG_CONTRACTS = [
2821
1287
  ];
2822
1288
  var EXTENSION_UNINSTALL_FLAG_CONTRACTS = EXTENSION_SCOPE_FLAG_CONTRACTS;
2823
1289
  var EXTENSION_EXPLORE_FLAG_CONTRACTS = EXTENSION_SCOPE_FLAG_CONTRACTS;
2824
- var EXTENSION_DESCRIBE_FLAG_CONTRACTS = EXTENSION_SCOPE_FLAG_CONTRACTS;
1290
+ var EXTENSION_DESCRIBE_FLAG_CONTRACTS = [
1291
+ ...EXTENSION_SCOPE_FLAG_CONTRACTS,
1292
+ { flag: "--markdown" },
1293
+ { flag: "--output" }
1294
+ ];
2825
1295
  var EXTENSION_ADOPT_ALL_FLAG_CONTRACTS = EXTENSION_SCOPE_FLAG_CONTRACTS;
2826
1296
  var EXTENSION_ACTIVATE_FLAG_CONTRACTS = EXTENSION_SCOPE_FLAG_CONTRACTS;
2827
1297
  var EXTENSION_DEACTIVATE_FLAG_CONTRACTS = EXTENSION_SCOPE_FLAG_CONTRACTS;
@@ -3545,308 +2015,1797 @@ var CONTEXT_FLAG_CONTRACTS = [
3545
2015
  { flag: "--release" },
3546
2016
  { flag: "--parent" },
3547
2017
  { flag: "--limit" },
3548
- { flag: "--format" },
3549
- { flag: "--depth" },
2018
+ { flag: "--format" },
2019
+ { flag: "--depth" },
2020
+ { flag: "--fields", list: true },
2021
+ { flag: "--section" },
2022
+ { flag: "--activity-limit" },
2023
+ { flag: "--stale-threshold" }
2024
+ ];
2025
+ var GET_FLAG_CONTRACTS = [
2026
+ { flag: "--depth" },
2027
+ { flag: "--full" },
2028
+ { flag: "--fields", list: true },
2029
+ { flag: "--tree" },
2030
+ { flag: "--tree-depth" },
2031
+ { flag: "--tree_depth" },
2032
+ { flag: "--format" }
2033
+ ];
2034
+ var GUIDE_FLAG_CONTRACTS = [
2035
+ { flag: "--list" },
2036
+ { flag: "--format" },
2037
+ { flag: "--depth" }
2038
+ ];
2039
+ var DEPS_FLAG_CONTRACTS = [
2040
+ { flag: "--format" },
2041
+ { flag: "--max-depth" },
2042
+ { flag: "--collapse" },
2043
+ { flag: "--summary" }
2044
+ ];
2045
+ var EVAL_FLAG_CONTRACTS = [
2046
+ { flag: "--mode" },
2047
+ { flag: "--k" },
2048
+ { flag: "--fail-under" },
2049
+ { flag: "--queries" },
2050
+ { flag: "--format" }
2051
+ ];
2052
+ var NEXT_FLAG_CONTRACTS = [
2053
+ { flag: "--type" },
2054
+ { flag: "--tag" },
2055
+ { flag: "--priority" },
2056
+ { flag: "--assignee" },
2057
+ { flag: "--assignee-filter" },
2058
+ { flag: "--assignee_filter" },
2059
+ { flag: "--sprint" },
2060
+ { flag: "--release" },
2061
+ { flag: "--parent" },
2062
+ { flag: "--limit" },
2063
+ { flag: "--blocked-limit" },
2064
+ { flag: "--blocked_limit" },
2065
+ { flag: "--ready-only" },
2066
+ { flag: "--ready_only" },
2067
+ { flag: "--format" }
2068
+ ];
2069
+ var SEARCH_FLAG_CONTRACTS = [
2070
+ { flag: "--mode" },
2071
+ { flag: "--semantic" },
2072
+ { flag: "--hybrid" },
2073
+ { flag: "--match-mode" },
2074
+ { flag: "--min-score" },
2075
+ { flag: "--count" },
2076
+ { flag: "--semantic-weight" },
2077
+ { flag: "--include-linked" },
2078
+ { flag: "--title-exact" },
2079
+ { flag: "--phrase-exact" },
2080
+ { flag: "--highlight" },
2081
+ { flag: "--compact" },
2082
+ { flag: "--full" },
3550
2083
  { flag: "--fields", list: true },
3551
- { flag: "--section" },
3552
- { flag: "--activity-limit" },
3553
- { flag: "--stale-threshold" }
2084
+ { flag: "--format" },
2085
+ { flag: "--limit" },
2086
+ { flag: "--status", list: true },
2087
+ { flag: "--type" },
2088
+ { flag: "--tag", aliases: ["--tags"] },
2089
+ { flag: "--priority" },
2090
+ { flag: "--deadline-before" },
2091
+ { flag: "--deadline-after" },
2092
+ { flag: "--updated-after" },
2093
+ { flag: "--updated-before" },
2094
+ { flag: "--created-after" },
2095
+ { flag: "--created-before" },
2096
+ { flag: "--assignee" },
2097
+ { flag: "--sprint" },
2098
+ { flag: "--release" },
2099
+ { flag: "--parent" },
2100
+ { flag: "--filter-reviewer-missing" },
2101
+ { flag: "--filter-risk-missing" },
2102
+ { flag: "--filter-confidence-missing" },
2103
+ { flag: "--filter-sprint-missing" },
2104
+ { flag: "--filter-release-missing" },
2105
+ { flag: "--has-notes" },
2106
+ { flag: "--no-notes" },
2107
+ { flag: "--has-learnings" },
2108
+ { flag: "--no-learnings" },
2109
+ { flag: "--has-files" },
2110
+ { flag: "--no-files" },
2111
+ { flag: "--has-docs" },
2112
+ { flag: "--no-docs" },
2113
+ { flag: "--has-tests" },
2114
+ { flag: "--no-tests" },
2115
+ { flag: "--has-comments" },
2116
+ { flag: "--no-comments" },
2117
+ { flag: "--has-deps" },
2118
+ { flag: "--no-deps" },
2119
+ { flag: "--has-body" },
2120
+ { flag: "--empty-body" },
2121
+ { flag: "--has-linked-command" },
2122
+ { flag: "--no-linked-command" }
2123
+ ];
2124
+ var CONTRACTS_FLAG_CONTRACTS = [
2125
+ { flag: "--action" },
2126
+ { flag: "--command" },
2127
+ { flag: "--schema-only" },
2128
+ { flag: "--flags-only" },
2129
+ { flag: "--availability-only" },
2130
+ { flag: "--runtime-only" },
2131
+ { flag: "--active-only" },
2132
+ { flag: "--full" }
2133
+ ];
2134
+ var COMPLETION_FLAG_CONTRACTS = [
2135
+ { flag: "--eager-tags" }
2136
+ ];
2137
+ function toUniqueFlagContracts(contracts) {
2138
+ const seen = /* @__PURE__ */ new Set();
2139
+ const unique = [];
2140
+ for (const contract of contracts) {
2141
+ const aliasKey = (contract.aliases ?? []).join(",");
2142
+ const key = `${contract.flag}|${contract.short ?? ""}|${aliasKey}`;
2143
+ if (seen.has(key)) {
2144
+ continue;
2145
+ }
2146
+ seen.add(key);
2147
+ unique.push(contract);
2148
+ }
2149
+ return unique;
2150
+ }
2151
+ function withSubcommandGlobalFlags(contracts) {
2152
+ return withFlagAliasMetadata(toUniqueFlagContracts([...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS, ...contracts]));
2153
+ }
2154
+ var LIST_COMMAND_FLAG_ALIASES = [
2155
+ "list",
2156
+ "list-all",
2157
+ "list-draft",
2158
+ "list-open",
2159
+ "list-in-progress",
2160
+ "list-blocked",
2161
+ "list-closed",
2162
+ "list-canceled"
2163
+ ];
2164
+ var SUBCOMMAND_FLAG_CONTRACTS_BY_COMMAND = new Map([
2165
+ ...LIST_COMMAND_FLAG_ALIASES.map((command) => [command, LIST_FILTER_FLAG_CONTRACTS]),
2166
+ ["templates", CREATE_FLAG_CONTRACTS],
2167
+ ["cal", CALENDAR_FLAG_CONTRACTS],
2168
+ ["ctx", CONTEXT_FLAG_CONTRACTS],
2169
+ ["test-runs-worker", TEST_RUNS_FLAG_CONTRACTS],
2170
+ ["init", INIT_FLAG_CONTRACTS],
2171
+ ["config", CONFIG_FLAG_CONTRACTS],
2172
+ ["extension", EXTENSION_FLAG_CONTRACTS],
2173
+ // `--declarative` is package-only (see PACKAGE_FLAG_CONTRACTS).
2174
+ ["package", PACKAGE_FLAG_CONTRACTS],
2175
+ ["packages", PACKAGE_FLAG_CONTRACTS],
2176
+ ["install", INSTALL_FLAG_CONTRACTS],
2177
+ ["upgrade", UPGRADE_FLAG_CONTRACTS],
2178
+ ["create", CREATE_FLAG_CONTRACTS],
2179
+ ["copy", COPY_FLAG_CONTRACTS],
2180
+ ["focus", FOCUS_FLAG_CONTRACTS],
2181
+ ["aggregate", AGGREGATE_FLAG_CONTRACTS],
2182
+ ["dedupe-audit", DEDUPE_AUDIT_FLAG_CONTRACTS],
2183
+ ["dedupe-merge", DEDUPE_MERGE_FLAG_CONTRACTS],
2184
+ ["normalize", NORMALIZE_FLAG_CONTRACTS],
2185
+ ["calendar", CALENDAR_FLAG_CONTRACTS],
2186
+ ["context", CONTEXT_FLAG_CONTRACTS],
2187
+ ["get", GET_FLAG_CONTRACTS],
2188
+ ["guide", GUIDE_FLAG_CONTRACTS],
2189
+ ["search", SEARCH_FLAG_CONTRACTS],
2190
+ ["next", NEXT_FLAG_CONTRACTS],
2191
+ ["eval", EVAL_FLAG_CONTRACTS],
2192
+ ["history", HISTORY_FLAG_CONTRACTS],
2193
+ ["history-redact", HISTORY_REDACT_FLAG_CONTRACTS],
2194
+ ["history-repair", HISTORY_REPAIR_FLAG_CONTRACTS],
2195
+ ["history-compact", HISTORY_COMPACT_FLAG_CONTRACTS],
2196
+ ["schema", SCHEMA_FLAG_CONTRACTS],
2197
+ ["profile", PROFILE_FLAG_CONTRACTS],
2198
+ ["plan", PLAN_FLAG_CONTRACTS],
2199
+ ["activity", ACTIVITY_FLAG_CONTRACTS],
2200
+ ["restore", RESTORE_FLAG_CONTRACTS],
2201
+ ["update", UPDATE_FLAG_CONTRACTS],
2202
+ ["update-many", UPDATE_MANY_FLAG_CONTRACTS],
2203
+ ["close", CLOSE_FLAG_CONTRACTS],
2204
+ ["close-many", CLOSE_MANY_FLAG_CONTRACTS],
2205
+ ["delete", DELETE_FLAG_CONTRACTS],
2206
+ ["append", APPEND_FLAG_CONTRACTS],
2207
+ ["comments", COMMENTS_FLAG_CONTRACTS],
2208
+ ["comments-audit", COMMENTS_AUDIT_FLAG_CONTRACTS],
2209
+ ["notes", NOTES_FLAG_CONTRACTS],
2210
+ ["learnings", LEARNINGS_FLAG_CONTRACTS],
2211
+ ["files", FILES_FLAG_CONTRACTS],
2212
+ ["docs", DOCS_FLAG_CONTRACTS],
2213
+ ["deps", DEPS_FLAG_CONTRACTS],
2214
+ ["test", TEST_FLAG_CONTRACTS],
2215
+ ["test-all", TEST_ALL_FLAG_CONTRACTS],
2216
+ ["telemetry", TELEMETRY_FLAG_CONTRACTS],
2217
+ ["health", HEALTH_FLAG_CONTRACTS],
2218
+ ["validate", VALIDATE_FLAG_CONTRACTS],
2219
+ ["gc", GC_FLAG_CONTRACTS],
2220
+ ["stats", STATS_FLAG_CONTRACTS],
2221
+ ["contracts", CONTRACTS_FLAG_CONTRACTS],
2222
+ ["completion", COMPLETION_FLAG_CONTRACTS],
2223
+ ["claim", CLAIM_FLAG_CONTRACTS],
2224
+ ["release", RELEASE_FLAG_CONTRACTS],
2225
+ ["start-task", START_TASK_FLAG_CONTRACTS],
2226
+ ["pause-task", PAUSE_TASK_FLAG_CONTRACTS],
2227
+ ["close-task", CLOSE_TASK_FLAG_CONTRACTS],
2228
+ ["meet", MEET_FLAG_CONTRACTS],
2229
+ ["event", EVENT_FLAG_CONTRACTS],
2230
+ ["remind", REMIND_FLAG_CONTRACTS]
2231
+ ]);
2232
+ var EXTENSION_LIFECYCLE_FLAG_CONTRACTS_BY_SUBCOMMAND = /* @__PURE__ */ new Map([
2233
+ ["install", EXTENSION_INSTALL_FLAG_CONTRACTS],
2234
+ ["uninstall", EXTENSION_UNINSTALL_FLAG_CONTRACTS],
2235
+ ["explore", EXTENSION_EXPLORE_FLAG_CONTRACTS],
2236
+ ["manage", EXTENSION_MANAGE_FLAG_CONTRACTS],
2237
+ ["describe", EXTENSION_DESCRIBE_FLAG_CONTRACTS],
2238
+ ["reload", EXTENSION_RELOAD_FLAG_CONTRACTS],
2239
+ ["doctor", EXTENSION_DOCTOR_FLAG_CONTRACTS],
2240
+ ["catalog", EXTENSION_CATALOG_FLAG_CONTRACTS],
2241
+ ["adopt", EXTENSION_ADOPT_FLAG_CONTRACTS],
2242
+ ["adopt-all", EXTENSION_ADOPT_ALL_FLAG_CONTRACTS],
2243
+ ["activate", EXTENSION_ACTIVATE_FLAG_CONTRACTS],
2244
+ ["deactivate", EXTENSION_DEACTIVATE_FLAG_CONTRACTS]
2245
+ ]);
2246
+ function normalizeCommandNameForContracts(commandName) {
2247
+ if (typeof commandName !== "string") {
2248
+ return "";
2249
+ }
2250
+ return commandName.trim().toLowerCase();
2251
+ }
2252
+ function resolveExtensionLifecycleFlagContracts(rootCommand, lifecycleSubcommand) {
2253
+ if (lifecycleSubcommand === "init") {
2254
+ return rootCommand === "extension" ? EXTENSION_INIT_FLAG_CONTRACTS : PACKAGE_INIT_FLAG_CONTRACTS;
2255
+ }
2256
+ return EXTENSION_LIFECYCLE_FLAG_CONTRACTS_BY_SUBCOMMAND.get(lifecycleSubcommand) ?? [];
2257
+ }
2258
+ function resolveSubcommandFlagContractsForCommand(commandName) {
2259
+ const normalized = normalizeCommandNameForContracts(commandName);
2260
+ if (normalized.length === 0) {
2261
+ return withSubcommandGlobalFlags([]);
2262
+ }
2263
+ const [rootCommand, lifecycleSubcommand, ...extraParts] = normalized.split(/\s+/);
2264
+ if ((rootCommand === "extension" || rootCommand === "package" || rootCommand === "packages") && lifecycleSubcommand !== void 0 && extraParts.length === 0) {
2265
+ return withSubcommandGlobalFlags(resolveExtensionLifecycleFlagContracts(rootCommand, lifecycleSubcommand));
2266
+ }
2267
+ return withSubcommandGlobalFlags(SUBCOMMAND_FLAG_CONTRACTS_BY_COMMAND.get(normalized) ?? []);
2268
+ }
2269
+
2270
+ // dist/sdk/cli-contracts/tool-option-contracts.js
2271
+ function cloneOptionContracts(contracts) {
2272
+ return contracts.map((contract) => ({ ...contract }));
2273
+ }
2274
+ var TOOL_ITEM_BASE_FILTER_OPTION_CONTRACTS = [
2275
+ { param: "status", flag: "--status" },
2276
+ { param: "type", flag: "--type" },
2277
+ { param: "tag", flag: "--tag" },
2278
+ { param: "priority", flag: "--priority" },
2279
+ { param: "deadlineBefore", flag: "--deadline-before" },
2280
+ { param: "deadlineAfter", flag: "--deadline-after" }
2281
+ ];
2282
+ var TOOL_ITEM_WINDOW_FILTER_OPTION_CONTRACTS = [
2283
+ { param: "updatedAfter", flag: "--updated-after" },
2284
+ { param: "updatedBefore", flag: "--updated-before" },
2285
+ { param: "createdAfter", flag: "--created-after" },
2286
+ { param: "createdBefore", flag: "--created-before" }
2287
+ ];
2288
+ var TOOL_ITEM_RELATION_FILTER_OPTION_CONTRACTS = [
2289
+ { param: "assignee", flag: "--assignee" },
2290
+ { param: "assigneeFilter", flag: "--assignee-filter" },
2291
+ { param: "parent", flag: "--parent" },
2292
+ { param: "sprint", flag: "--sprint" },
2293
+ { param: "release", flag: "--release" }
2294
+ ];
2295
+ var TOOL_SEARCH_RELATION_FILTER_OPTION_CONTRACTS = [
2296
+ { param: "assignee", flag: "--assignee" },
2297
+ { param: "sprint", flag: "--sprint" },
2298
+ { param: "release", flag: "--release" },
2299
+ { param: "parent", flag: "--parent" }
2300
+ ];
2301
+ var TOOL_BASIC_ITEM_FILTER_OPTION_CONTRACTS = [
2302
+ ...TOOL_ITEM_BASE_FILTER_OPTION_CONTRACTS,
2303
+ ...TOOL_ITEM_RELATION_FILTER_OPTION_CONTRACTS
2304
+ ];
2305
+ var TOOL_GOVERNANCE_MISSING_OPTION_CONTRACTS = [
2306
+ { param: "filterReviewerMissing", flag: "--filter-reviewer-missing" },
2307
+ { param: "filterRiskMissing", flag: "--filter-risk-missing" },
2308
+ { param: "filterConfidenceMissing", flag: "--filter-confidence-missing" },
2309
+ { param: "filterSprintMissing", flag: "--filter-sprint-missing" },
2310
+ { param: "filterReleaseMissing", flag: "--filter-release-missing" }
2311
+ ];
2312
+ var TOOL_CONTENT_PRESENCE_OPTION_CONTRACTS = [
2313
+ { param: "hasNotes", flag: "--has-notes" },
2314
+ { param: "noNotes", flag: "--no-notes" },
2315
+ { param: "hasLearnings", flag: "--has-learnings" },
2316
+ { param: "noLearnings", flag: "--no-learnings" },
2317
+ { param: "hasFiles", flag: "--has-files" },
2318
+ { param: "noFiles", flag: "--no-files" },
2319
+ { param: "hasDocs", flag: "--has-docs" },
2320
+ { param: "noDocs", flag: "--no-docs" },
2321
+ { param: "hasTests", flag: "--has-tests" },
2322
+ { param: "noTests", flag: "--no-tests" },
2323
+ { param: "hasComments", flag: "--has-comments" },
2324
+ { param: "noComments", flag: "--no-comments" },
2325
+ { param: "hasDeps", flag: "--has-deps" },
2326
+ { param: "noDeps", flag: "--no-deps" },
2327
+ { param: "hasBody", flag: "--has-body" },
2328
+ { param: "emptyBody", flag: "--empty-body" },
2329
+ { param: "hasLinkedCommand", flag: "--has-linked-command" },
2330
+ { param: "noLinkedCommand", flag: "--no-linked-command" }
2331
+ ];
2332
+ var TOOL_LIST_FILTER_OPTION_CONTRACTS = [
2333
+ ...cloneOptionContracts(TOOL_ITEM_BASE_FILTER_OPTION_CONTRACTS),
2334
+ ...cloneOptionContracts(TOOL_ITEM_WINDOW_FILTER_OPTION_CONTRACTS),
2335
+ { param: "ids", flag: "--ids" },
2336
+ ...cloneOptionContracts(TOOL_ITEM_RELATION_FILTER_OPTION_CONTRACTS),
2337
+ { param: "filterAcMissing", flag: "--filter-ac-missing" },
2338
+ { param: "filterEstimatesMissing", flag: "--filter-estimates-missing" },
2339
+ { param: "filterResolutionMissing", flag: "--filter-resolution-missing" },
2340
+ { param: "filterMetadataMissing", flag: "--filter-metadata-missing" },
2341
+ ...cloneOptionContracts(TOOL_GOVERNANCE_MISSING_OPTION_CONTRACTS),
2342
+ ...cloneOptionContracts(TOOL_CONTENT_PRESENCE_OPTION_CONTRACTS),
2343
+ { param: "limit", flag: "--limit" },
2344
+ { param: "offset", flag: "--offset" },
2345
+ { param: "fields", flag: "--fields" },
2346
+ { param: "sort", flag: "--sort" },
2347
+ { param: "order", flag: "--order" },
2348
+ { param: "tree", flag: "--tree" },
2349
+ { param: "treeDepth", flag: "--tree-depth" }
2350
+ ];
2351
+ var TOOL_AGGREGATE_OPTION_CONTRACTS = [
2352
+ { param: "groupBy", flag: "--group-by" },
2353
+ { param: "sum", flag: "--sum" },
2354
+ { param: "avg", flag: "--avg" },
2355
+ ...cloneOptionContracts(TOOL_BASIC_ITEM_FILTER_OPTION_CONTRACTS)
2356
+ ];
2357
+ var TOOL_DEDUPE_AUDIT_OPTION_CONTRACTS = [
2358
+ { param: "mode", flag: "--mode" },
2359
+ { param: "limit", flag: "--limit" },
2360
+ { param: "threshold", flag: "--threshold" },
2361
+ ...cloneOptionContracts(TOOL_BASIC_ITEM_FILTER_OPTION_CONTRACTS)
2362
+ ];
2363
+ var TOOL_SEARCH_FILTER_OPTION_CONTRACTS = [
2364
+ { param: "matchMode", flag: "--match-mode" },
2365
+ { param: "minScore", flag: "--min-score" },
2366
+ { param: "count", flag: "--count", booleanish: true },
2367
+ { param: "semanticWeight", flag: "--semantic-weight" },
2368
+ ...cloneOptionContracts(TOOL_ITEM_BASE_FILTER_OPTION_CONTRACTS),
2369
+ ...cloneOptionContracts(TOOL_ITEM_WINDOW_FILTER_OPTION_CONTRACTS),
2370
+ ...cloneOptionContracts(TOOL_SEARCH_RELATION_FILTER_OPTION_CONTRACTS),
2371
+ ...cloneOptionContracts(TOOL_GOVERNANCE_MISSING_OPTION_CONTRACTS),
2372
+ ...cloneOptionContracts(TOOL_CONTENT_PRESENCE_OPTION_CONTRACTS),
2373
+ { param: "fields", flag: "--fields" },
2374
+ { param: "limit", flag: "--limit" }
2375
+ ];
2376
+ var TOOL_SHARED_CREATE_UPDATE_OPTION_CONTRACTS = [
2377
+ { param: "parent", flag: "--parent" },
2378
+ { param: "reviewer", flag: "--reviewer" },
2379
+ { param: "risk", flag: "--risk" },
2380
+ { param: "confidence", flag: "--confidence" },
2381
+ { param: "sprint", flag: "--sprint" },
2382
+ { param: "release", flag: "--release" },
2383
+ { param: "blockedBy", flag: "--blocked-by" },
2384
+ { param: "blockedReason", flag: "--blocked-reason" },
2385
+ { param: "unblockNote", flag: "--unblock-note" },
2386
+ { param: "reporter", flag: "--reporter" },
2387
+ { param: "severity", flag: "--severity" },
2388
+ { param: "environment", flag: "--environment" },
2389
+ { param: "reproSteps", flag: "--repro-steps" },
2390
+ { param: "resolution", flag: "--resolution" },
2391
+ { param: "expectedResult", flag: "--expected-result" },
2392
+ { param: "actualResult", flag: "--actual-result" },
2393
+ { param: "affectedVersion", flag: "--affected-version" },
2394
+ { param: "fixedVersion", flag: "--fixed-version" },
2395
+ { param: "component", flag: "--component" },
2396
+ { param: "regression", flag: "--regression", booleanish: true },
2397
+ { param: "customerImpact", flag: "--customer-impact" },
2398
+ { param: "definitionOfReady", flag: "--definition-of-ready", allowEmpty: true },
2399
+ { param: "order", flag: "--order" },
2400
+ { param: "goal", flag: "--goal" },
2401
+ { param: "objective", flag: "--objective" },
2402
+ { param: "value", flag: "--value" },
2403
+ { param: "impact", flag: "--impact" },
2404
+ { param: "outcome", flag: "--outcome" },
2405
+ { param: "whyNow", flag: "--why-now" }
2406
+ ];
2407
+ var TOOL_CREATE_OPTION_CONTRACTS = [
2408
+ { param: "title", flag: "--title" },
2409
+ { param: "description", flag: "--description", allowEmpty: true },
2410
+ { param: "type", flag: "--type" },
2411
+ { param: "template", flag: "--template" },
2412
+ { param: "createMode", flag: "--create-mode" },
2413
+ { param: "schedulePreset", flag: "--schedule-preset" },
2414
+ { param: "status", flag: "--status" },
2415
+ { param: "priority", flag: "--priority" },
2416
+ { param: "tags", flag: "--tags", allowEmpty: true },
2417
+ { param: "addTags", flag: "--add-tags", repeatable: true },
2418
+ { param: "body", flag: "--body", allowEmpty: true },
2419
+ { param: "deadline", flag: "--deadline" },
2420
+ { param: "estimate", flag: "--estimate" },
2421
+ { param: "acceptanceCriteria", flag: "--acceptance-criteria", allowEmpty: true },
2422
+ { param: "author", flag: "--author" },
2423
+ { param: "message", flag: "--message", allowEmpty: true },
2424
+ { param: "assignee", flag: "--assignee" },
2425
+ { param: "allowMissingParent", flag: "--allow-missing-parent" },
2426
+ { param: "reminder", flag: "--reminder", repeatable: true },
2427
+ { param: "event", flag: "--event", repeatable: true },
2428
+ { param: "typeOption", flag: "--type-option", repeatable: true },
2429
+ { param: "field", flag: "--field", repeatable: true },
2430
+ { param: "dep", flag: "--dep", repeatable: true },
2431
+ { param: "comment", flag: "--comment", repeatable: true },
2432
+ { param: "note", flag: "--note", repeatable: true },
2433
+ { param: "learning", flag: "--learning", repeatable: true },
2434
+ { param: "linkedFile", flag: "--file", repeatable: true },
2435
+ { param: "linkedTest", flag: "--test", repeatable: true },
2436
+ { param: "doc", flag: "--doc", repeatable: true },
2437
+ { param: "unset", flag: "--unset", repeatable: true },
2438
+ { param: "clearDeps", flag: "--clear-deps" },
2439
+ { param: "clearComments", flag: "--clear-comments" },
2440
+ { param: "clearNotes", flag: "--clear-notes" },
2441
+ { param: "clearLearnings", flag: "--clear-learnings" },
2442
+ { param: "clearFiles", flag: "--clear-files" },
2443
+ { param: "clearTests", flag: "--clear-tests" },
2444
+ { param: "clearDocs", flag: "--clear-docs" },
2445
+ { param: "clearReminders", flag: "--clear-reminders" },
2446
+ { param: "clearEvents", flag: "--clear-events" },
2447
+ { param: "clearTypeOptions", flag: "--clear-type-options" }
3554
2448
  ];
3555
- var GET_FLAG_CONTRACTS = [
3556
- { flag: "--depth" },
3557
- { flag: "--full" },
3558
- { flag: "--fields", list: true },
3559
- { flag: "--tree" },
3560
- { flag: "--tree-depth" },
3561
- { flag: "--tree_depth" },
3562
- { flag: "--format" }
2449
+ var TOOL_UPDATE_OPTION_CONTRACTS = [
2450
+ { param: "title", flag: "--title" },
2451
+ { param: "description", flag: "--description", allowEmpty: true },
2452
+ { param: "body", flag: "--body", allowEmpty: true },
2453
+ { param: "status", flag: "--status" },
2454
+ { param: "closeReason", flag: "--close-reason" },
2455
+ { param: "priority", flag: "--priority" },
2456
+ { param: "type", flag: "--type" },
2457
+ { param: "tags", flag: "--tags", allowEmpty: true },
2458
+ { param: "addTags", flag: "--add-tags", repeatable: true },
2459
+ { param: "removeTags", flag: "--remove-tags", repeatable: true },
2460
+ { param: "deadline", flag: "--deadline" },
2461
+ { param: "estimate", flag: "--estimate" },
2462
+ { param: "acceptanceCriteria", flag: "--acceptance-criteria", allowEmpty: true },
2463
+ { param: "author", flag: "--author" },
2464
+ { param: "message", flag: "--message", allowEmpty: true },
2465
+ { param: "assignee", flag: "--assignee" },
2466
+ { param: "dep", flag: "--dep", repeatable: true },
2467
+ { param: "depRemove", flag: "--dep-remove", repeatable: true },
2468
+ { param: "replaceDeps", flag: "--replace-deps" },
2469
+ { param: "replaceTests", flag: "--replace-tests" },
2470
+ { param: "comment", flag: "--comment", repeatable: true },
2471
+ { param: "note", flag: "--note", repeatable: true },
2472
+ { param: "learning", flag: "--learning", repeatable: true },
2473
+ { param: "linkedFile", flag: "--file", repeatable: true },
2474
+ { param: "linkedTest", flag: "--test", repeatable: true },
2475
+ { param: "doc", flag: "--doc", repeatable: true },
2476
+ { param: "reminder", flag: "--reminder", repeatable: true },
2477
+ { param: "event", flag: "--event", repeatable: true },
2478
+ { param: "typeOption", flag: "--type-option", repeatable: true },
2479
+ { param: "field", flag: "--field", repeatable: true },
2480
+ { param: "unset", flag: "--unset", repeatable: true },
2481
+ { param: "clearDeps", flag: "--clear-deps" },
2482
+ { param: "clearComments", flag: "--clear-comments" },
2483
+ { param: "clearNotes", flag: "--clear-notes" },
2484
+ { param: "clearLearnings", flag: "--clear-learnings" },
2485
+ { param: "clearFiles", flag: "--clear-files" },
2486
+ { param: "clearTests", flag: "--clear-tests" },
2487
+ { param: "clearDocs", flag: "--clear-docs" },
2488
+ { param: "clearReminders", flag: "--clear-reminders" },
2489
+ { param: "clearEvents", flag: "--clear-events" },
2490
+ { param: "clearTypeOptions", flag: "--clear-type-options" },
2491
+ { param: "allowAuditUpdate", flag: "--allow-audit-update" },
2492
+ { param: "allowAuditDepUpdate", flag: "--allow-audit-dep-update" }
3563
2493
  ];
3564
- var GUIDE_FLAG_CONTRACTS = [
3565
- { flag: "--list" },
3566
- { flag: "--format" },
3567
- { flag: "--depth" }
2494
+ var TOOL_BULK_MUTATION_FILTER_OPTION_CONTRACTS = [
2495
+ { param: "filterStatus", flag: "--filter-status" },
2496
+ { param: "filterType", flag: "--filter-type" },
2497
+ { param: "filterTag", flag: "--filter-tag" },
2498
+ { param: "filterPriority", flag: "--filter-priority" },
2499
+ { param: "filterDeadlineBefore", flag: "--filter-deadline-before" },
2500
+ { param: "filterDeadlineAfter", flag: "--filter-deadline-after" },
2501
+ { param: "filterUpdatedAfter", flag: "--filter-updated-after" },
2502
+ { param: "filterUpdatedBefore", flag: "--filter-updated-before" },
2503
+ { param: "filterCreatedAfter", flag: "--filter-created-after" },
2504
+ { param: "filterCreatedBefore", flag: "--filter-created-before" },
2505
+ { param: "filterAssignee", flag: "--filter-assignee" },
2506
+ { param: "filterAssigneeFilter", flag: "--filter-assignee-filter" },
2507
+ { param: "filterParent", flag: "--filter-parent" },
2508
+ { param: "filterSprint", flag: "--filter-sprint" },
2509
+ { param: "filterRelease", flag: "--filter-release" },
2510
+ { param: "filterReviewerMissing", flag: "--filter-reviewer-missing" },
2511
+ { param: "filterRiskMissing", flag: "--filter-risk-missing" },
2512
+ { param: "filterConfidenceMissing", flag: "--filter-confidence-missing" },
2513
+ { param: "filterSprintMissing", flag: "--filter-sprint-missing" },
2514
+ { param: "filterReleaseMissing", flag: "--filter-release-missing" },
2515
+ { param: "filterHasNotes", flag: "--filter-has-notes" },
2516
+ { param: "filterNoNotes", flag: "--filter-no-notes" },
2517
+ { param: "filterHasLearnings", flag: "--filter-has-learnings" },
2518
+ { param: "filterNoLearnings", flag: "--filter-no-learnings" },
2519
+ { param: "filterHasFiles", flag: "--filter-has-files" },
2520
+ { param: "filterNoFiles", flag: "--filter-no-files" },
2521
+ { param: "filterHasDocs", flag: "--filter-has-docs" },
2522
+ { param: "filterNoDocs", flag: "--filter-no-docs" },
2523
+ { param: "filterHasTests", flag: "--filter-has-tests" },
2524
+ { param: "filterNoTests", flag: "--filter-no-tests" },
2525
+ { param: "filterHasComments", flag: "--filter-has-comments" },
2526
+ { param: "filterNoComments", flag: "--filter-no-comments" },
2527
+ { param: "filterHasDeps", flag: "--filter-has-deps" },
2528
+ { param: "filterNoDeps", flag: "--filter-no-deps" },
2529
+ { param: "filterHasBody", flag: "--filter-has-body" },
2530
+ { param: "filterEmptyBody", flag: "--filter-empty-body" },
2531
+ { param: "filterHasLinkedCommand", flag: "--filter-has-linked-command" },
2532
+ { param: "filterNoLinkedCommand", flag: "--filter-no-linked-command" },
2533
+ { param: "ids", flag: "--ids" },
2534
+ { param: "limit", flag: "--limit" },
2535
+ { param: "offset", flag: "--offset" }
3568
2536
  ];
3569
- var DEPS_FLAG_CONTRACTS = [
3570
- { flag: "--format" },
3571
- { flag: "--max-depth" },
3572
- { flag: "--collapse" },
3573
- { flag: "--summary" }
2537
+ var TOOL_UPDATE_MANY_FILTER_OPTION_CONTRACTS = [
2538
+ ...cloneOptionContracts(TOOL_BULK_MUTATION_FILTER_OPTION_CONTRACTS)
3574
2539
  ];
3575
- var EVAL_FLAG_CONTRACTS = [
3576
- { flag: "--mode" },
3577
- { flag: "--k" },
3578
- { flag: "--fail-under" },
3579
- { flag: "--queries" },
3580
- { flag: "--format" }
2540
+ var TOOL_NORMALIZE_FILTER_OPTION_CONTRACTS = [
2541
+ { param: "filterStatus", flag: "--filter-status" },
2542
+ { param: "filterType", flag: "--filter-type" },
2543
+ { param: "filterTag", flag: "--filter-tag" },
2544
+ { param: "filterPriority", flag: "--filter-priority" },
2545
+ { param: "filterDeadlineBefore", flag: "--filter-deadline-before" },
2546
+ { param: "filterDeadlineAfter", flag: "--filter-deadline-after" },
2547
+ { param: "filterAssignee", flag: "--filter-assignee" },
2548
+ { param: "filterAssigneeFilter", flag: "--filter-assignee-filter" },
2549
+ { param: "filterParent", flag: "--filter-parent" },
2550
+ { param: "filterSprint", flag: "--filter-sprint" },
2551
+ { param: "filterRelease", flag: "--filter-release" },
2552
+ { param: "limit", flag: "--limit" },
2553
+ { param: "offset", flag: "--offset" }
3581
2554
  ];
3582
- var SEARCH_FLAG_CONTRACTS = [
3583
- { flag: "--mode" },
3584
- { flag: "--semantic" },
3585
- { flag: "--hybrid" },
3586
- { flag: "--match-mode" },
3587
- { flag: "--min-score" },
3588
- { flag: "--count" },
3589
- { flag: "--semantic-weight" },
3590
- { flag: "--include-linked" },
3591
- { flag: "--title-exact" },
3592
- { flag: "--phrase-exact" },
3593
- { flag: "--highlight" },
3594
- { flag: "--compact" },
3595
- { flag: "--full" },
3596
- { flag: "--fields", list: true },
3597
- { flag: "--format" },
3598
- { flag: "--limit" },
3599
- { flag: "--status", list: true },
3600
- { flag: "--type" },
3601
- { flag: "--tag", aliases: ["--tags"] },
3602
- { flag: "--priority" },
3603
- { flag: "--deadline-before" },
3604
- { flag: "--deadline-after" },
3605
- { flag: "--updated-after" },
3606
- { flag: "--updated-before" },
3607
- { flag: "--created-after" },
3608
- { flag: "--created-before" },
3609
- { flag: "--assignee" },
3610
- { flag: "--sprint" },
3611
- { flag: "--release" },
3612
- { flag: "--parent" },
3613
- { flag: "--filter-reviewer-missing" },
3614
- { flag: "--filter-risk-missing" },
3615
- { flag: "--filter-confidence-missing" },
3616
- { flag: "--filter-sprint-missing" },
3617
- { flag: "--filter-release-missing" },
3618
- { flag: "--has-notes" },
3619
- { flag: "--no-notes" },
3620
- { flag: "--has-learnings" },
3621
- { flag: "--no-learnings" },
3622
- { flag: "--has-files" },
3623
- { flag: "--no-files" },
3624
- { flag: "--has-docs" },
3625
- { flag: "--no-docs" },
3626
- { flag: "--has-tests" },
3627
- { flag: "--no-tests" },
3628
- { flag: "--has-comments" },
3629
- { flag: "--no-comments" },
3630
- { flag: "--has-deps" },
3631
- { flag: "--no-deps" },
3632
- { flag: "--has-body" },
3633
- { flag: "--empty-body" },
3634
- { flag: "--has-linked-command" },
3635
- { flag: "--no-linked-command" }
2555
+ var TOOL_CLOSE_MANY_FILTER_OPTION_CONTRACTS = [
2556
+ ...cloneOptionContracts(TOOL_BULK_MUTATION_FILTER_OPTION_CONTRACTS)
3636
2557
  ];
3637
- var CONTRACTS_FLAG_CONTRACTS = [
3638
- { flag: "--action" },
3639
- { flag: "--command" },
3640
- { flag: "--schema-only" },
3641
- { flag: "--flags-only" },
3642
- { flag: "--availability-only" },
3643
- { flag: "--runtime-only" },
3644
- { flag: "--active-only" },
3645
- { flag: "--full" }
2558
+ var TOOL_ACTIVITY_OPTION_CONTRACTS = [
2559
+ { param: "id", flag: "--id" },
2560
+ { param: "op", flag: "--op" },
2561
+ { param: "author", flag: "--author" },
2562
+ { param: "from", flag: "--from" },
2563
+ { param: "to", flag: "--to" },
2564
+ { param: "limit", flag: "--limit" },
2565
+ { param: "compact", flag: "--compact" },
2566
+ { param: "full", flag: "--full" }
3646
2567
  ];
3647
- var COMPLETION_FLAG_CONTRACTS = [
3648
- { flag: "--eager-tags" }
2568
+ var TOOL_CONTEXT_OPTION_CONTRACTS = [
2569
+ { param: "date", flag: "--date" },
2570
+ { param: "from", flag: "--from" },
2571
+ { param: "to", flag: "--to" },
2572
+ { param: "type", flag: "--type" },
2573
+ { param: "tag", flag: "--tag" },
2574
+ { param: "priority", flag: "--priority" },
2575
+ { param: "assignee", flag: "--assignee" },
2576
+ { param: "assigneeFilter", flag: "--assignee-filter" },
2577
+ { param: "sprint", flag: "--sprint" },
2578
+ { param: "release", flag: "--release" },
2579
+ { param: "parent", flag: "--parent" },
2580
+ { param: "limit", flag: "--limit" },
2581
+ { param: "format", flag: "--format" },
2582
+ { param: "depth", flag: "--depth" },
2583
+ { param: "fields", flag: "--fields" },
2584
+ { param: "section", flag: "--section", repeatable: true },
2585
+ { param: "activityLimit", flag: "--activity-limit" },
2586
+ { param: "staleThreshold", flag: "--stale-threshold" }
2587
+ ];
2588
+
2589
+ // dist/sdk/cli-contracts/tool-parameter-tables.js
2590
+ var PM_TOOL_PARAMETER_PROPERTIES = {
2591
+ json: { type: "boolean", default: true },
2592
+ quiet: { type: "boolean" },
2593
+ profile: { type: "boolean" },
2594
+ noExtensions: { type: "boolean" },
2595
+ noPager: { type: "boolean" },
2596
+ path: { type: "string" },
2597
+ pmExecutable: { type: "string" },
2598
+ timeoutMs: { type: "number" },
2599
+ id: { type: "string" },
2600
+ target: { type: "string" },
2601
+ output: { type: "string", minLength: 1 },
2602
+ github: { type: "string" },
2603
+ ref: { type: "string" },
2604
+ query: { type: "string" },
2605
+ keywords: { type: "string" },
2606
+ fields: { type: "string" },
2607
+ sort: { type: "string", enum: ["priority", "deadline", "updated_at", "created_at", "title", "parent"] },
2608
+ prefix: { type: "string" },
2609
+ preset: { type: "string", enum: ["minimal", "default", "strict", "custom"] },
2610
+ typePreset: { type: "string", enum: ["agile", "ops", "research"] },
2611
+ defaults: { type: "boolean" },
2612
+ verbose: { type: "boolean" },
2613
+ agentGuidance: { type: "string", enum: ["ask", "add", "skip", "status"] },
2614
+ withPackages: { type: "boolean" },
2615
+ scope: { type: "string", enum: ["project", "global"] },
2616
+ allOver: { type: "number" },
2617
+ minEntries: { type: "number" },
2618
+ closed: { type: "boolean" },
2619
+ allStreams: { type: "boolean" },
2620
+ contractAction: { type: "string" },
2621
+ command: { type: "string" },
2622
+ schemaOnly: { type: "boolean" },
2623
+ flagsOnly: { type: "boolean" },
2624
+ availabilityOnly: { type: "boolean" },
2625
+ runtimeOnly: { type: "boolean" },
2626
+ activeOnly: { type: "boolean" },
2627
+ eagerTags: { type: "boolean" },
2628
+ fullChangedFields: { type: "boolean" },
2629
+ idOnly: { type: "boolean" },
2630
+ allowMissingParent: { type: "boolean" },
2631
+ duplicateOf: { type: "string" },
2632
+ configAction: { type: "string", enum: ["get", "set", "list", "export"] },
2633
+ key: { type: "string" },
2634
+ title: { type: "string" },
2635
+ description: { type: "string" },
2636
+ type: { type: "string" },
2637
+ template: { type: "string" },
2638
+ createMode: { type: "string", enum: ["strict", "progressive"] },
2639
+ schedulePreset: { type: "string", enum: ["lightweight"] },
2640
+ status: { type: "string" },
2641
+ filterStatus: { type: "string" },
2642
+ filterType: { type: "string" },
2643
+ filterTag: { type: "string" },
2644
+ filterPriority: { anyOf: [{ type: "string" }, { type: "number" }] },
2645
+ filterDeadlineBefore: { type: "string" },
2646
+ filterDeadlineAfter: { type: "string" },
2647
+ filterUpdatedAfter: { type: "string" },
2648
+ filterUpdatedBefore: { type: "string" },
2649
+ filterCreatedAfter: { type: "string" },
2650
+ filterCreatedBefore: { type: "string" },
2651
+ filterAssignee: { type: "string" },
2652
+ filterAssigneeFilter: { type: "string", enum: ["assigned", "unassigned"] },
2653
+ filterParent: { type: "string" },
2654
+ filterSprint: { type: "string" },
2655
+ filterRelease: { type: "string" },
2656
+ closeReason: { type: "string" },
2657
+ reason: { type: "string" },
2658
+ priority: { anyOf: [{ type: "string" }, { type: "number" }] },
2659
+ tags: { type: "string" },
2660
+ addTags: { type: "array", items: { type: "string" } },
2661
+ removeTags: { type: "array", items: { type: "string" } },
2662
+ body: { type: "string" },
2663
+ deadline: { type: "string" },
2664
+ estimate: { anyOf: [{ type: "string" }, { type: "number" }] },
2665
+ acceptanceCriteria: { type: "string" },
2666
+ author: { type: "string" },
2667
+ message: { type: "string" },
2668
+ assignee: { type: "string" },
2669
+ assigneeFilter: { type: "string", enum: ["assigned", "unassigned"] },
2670
+ parent: { type: "string" },
2671
+ reviewer: { type: "string" },
2672
+ risk: { type: "string" },
2673
+ confidence: { anyOf: [{ type: "string" }, { type: "number" }] },
2674
+ sprint: { type: "string" },
2675
+ release: { type: "string" },
2676
+ blockedBy: { type: "string" },
2677
+ blockedReason: { type: "string" },
2678
+ unblockNote: { type: "string" },
2679
+ reporter: { type: "string" },
2680
+ severity: { type: "string" },
2681
+ environment: { type: "string" },
2682
+ reproSteps: { type: "string" },
2683
+ resolution: { type: "string" },
2684
+ expectedResult: { type: "string" },
2685
+ actualResult: { type: "string" },
2686
+ affectedVersion: { type: "string" },
2687
+ fixedVersion: { type: "string" },
2688
+ component: { type: "string" },
2689
+ regression: { anyOf: [{ type: "boolean" }, { type: "string" }, { type: "number" }] },
2690
+ customerImpact: { type: "string" },
2691
+ definitionOfReady: { type: "string" },
2692
+ order: { anyOf: [{ type: "string" }, { type: "number" }] },
2693
+ goal: { type: "string" },
2694
+ objective: { type: "string" },
2695
+ value: { type: "string" },
2696
+ impact: { type: "string" },
2697
+ outcome: { type: "string" },
2698
+ whyNow: { type: "string" },
2699
+ mode: {
2700
+ type: "string",
2701
+ enum: ["keyword", "semantic", "hybrid", "title_exact", "title_fuzzy", "parent_scope"]
2702
+ },
2703
+ semanticWeight: { anyOf: [{ type: "string" }, { type: "number" }] },
2704
+ op: { type: "string" },
2705
+ compact: { type: "boolean" },
2706
+ brief: { type: "boolean" },
2707
+ full: { type: "boolean" },
2708
+ view: { type: "string", enum: ["agenda", "day", "week", "month"] },
2709
+ date: { type: "string" },
2710
+ from: { type: "string" },
2711
+ before: { type: "string" },
2712
+ to: { type: "string" },
2713
+ past: { type: "boolean" },
2714
+ fullPeriod: { type: "boolean" },
2715
+ include: { type: "string" },
2716
+ recurrenceLookaheadDays: { anyOf: [{ type: "string" }, { type: "number" }] },
2717
+ recurrenceLookbackDays: { anyOf: [{ type: "string" }, { type: "number" }] },
2718
+ occurrenceLimit: { anyOf: [{ type: "string" }, { type: "number" }] },
2719
+ includeLinked: { type: "boolean" },
2720
+ semantic: { type: "boolean" },
2721
+ hybrid: { type: "boolean" },
2722
+ titleExact: { type: "boolean" },
2723
+ phraseExact: { type: "boolean" },
2724
+ highlight: { type: "boolean" },
2725
+ includeBody: { type: "boolean" },
2726
+ noTruncate: { type: "boolean" },
2727
+ tag: { type: "string" },
2728
+ deadlineBefore: { type: "string" },
2729
+ deadlineAfter: { type: "string" },
2730
+ updatedAfter: { type: "string" },
2731
+ updatedBefore: { type: "string" },
2732
+ createdAfter: { type: "string" },
2733
+ createdBefore: { type: "string" },
2734
+ filterAcMissing: { type: "boolean" },
2735
+ filterEstimatesMissing: { type: "boolean" },
2736
+ filterResolutionMissing: { type: "boolean" },
2737
+ filterMetadataMissing: { type: "boolean" },
2738
+ filterReviewerMissing: { type: "boolean" },
2739
+ filterRiskMissing: { type: "boolean" },
2740
+ filterConfidenceMissing: { type: "boolean" },
2741
+ filterSprintMissing: { type: "boolean" },
2742
+ filterReleaseMissing: { type: "boolean" },
2743
+ // Content-field presence/absence filters (list/search). The --no-* variants
2744
+ // select items where the field is empty/absent.
2745
+ hasNotes: { type: "boolean" },
2746
+ noNotes: { type: "boolean" },
2747
+ hasLearnings: { type: "boolean" },
2748
+ noLearnings: { type: "boolean" },
2749
+ hasFiles: { type: "boolean" },
2750
+ noFiles: { type: "boolean" },
2751
+ hasDocs: { type: "boolean" },
2752
+ noDocs: { type: "boolean" },
2753
+ hasTests: { type: "boolean" },
2754
+ noTests: { type: "boolean" },
2755
+ hasComments: { type: "boolean" },
2756
+ noComments: { type: "boolean" },
2757
+ hasDeps: { type: "boolean" },
2758
+ noDeps: { type: "boolean" },
2759
+ hasBody: { type: "boolean" },
2760
+ emptyBody: { type: "boolean" },
2761
+ hasLinkedCommand: { type: "boolean" },
2762
+ noLinkedCommand: { type: "boolean" },
2763
+ // Bulk-selection (update-many/close-many) content + governance filters mirror
2764
+ // the list/search presence filters under the --filter- prefix.
2765
+ filterHasNotes: { type: "boolean" },
2766
+ filterNoNotes: { type: "boolean" },
2767
+ filterHasLearnings: { type: "boolean" },
2768
+ filterNoLearnings: { type: "boolean" },
2769
+ filterHasFiles: { type: "boolean" },
2770
+ filterNoFiles: { type: "boolean" },
2771
+ filterHasDocs: { type: "boolean" },
2772
+ filterNoDocs: { type: "boolean" },
2773
+ filterHasTests: { type: "boolean" },
2774
+ filterNoTests: { type: "boolean" },
2775
+ filterHasComments: { type: "boolean" },
2776
+ filterNoComments: { type: "boolean" },
2777
+ filterHasDeps: { type: "boolean" },
2778
+ filterNoDeps: { type: "boolean" },
2779
+ filterHasBody: { type: "boolean" },
2780
+ filterEmptyBody: { type: "boolean" },
2781
+ filterHasLinkedCommand: { type: "boolean" },
2782
+ filterNoLinkedCommand: { type: "boolean" },
2783
+ ids: { type: "string" },
2784
+ limit: { anyOf: [{ type: "string" }, { type: "number" }] },
2785
+ blockedLimit: { anyOf: [{ type: "string" }, { type: "number" }] },
2786
+ readyOnly: { type: "boolean" },
2787
+ limitItems: { anyOf: [{ type: "string" }, { type: "number" }] },
2788
+ fullHistory: { type: "boolean" },
2789
+ latest: { anyOf: [{ type: "string" }, { type: "number" }] },
2790
+ offset: { anyOf: [{ type: "string" }, { type: "number" }] },
2791
+ progress: { type: "boolean" },
2792
+ background: { type: "boolean" },
2793
+ runId: { type: "string" },
2794
+ stream: {
2795
+ anyOf: [{ type: "boolean" }, { type: "string", enum: ["stdout", "stderr", "both", "rows", "ndjson", "jsonl"] }]
2796
+ },
2797
+ tail: { anyOf: [{ type: "string" }, { type: "number" }] },
2798
+ addJson: { type: "array", items: { type: "string" } },
2799
+ match: { type: "string" },
2800
+ onlyIndex: { anyOf: [{ type: "string" }, { type: "number" }] },
2801
+ onlyLast: { type: "boolean" },
2802
+ envSet: { type: "array", items: { type: "string" } },
2803
+ envClear: { type: "array", items: { type: "string" } },
2804
+ sharedHostSafe: { type: "boolean" },
2805
+ detail: { type: "string", enum: ["summary", "deep"] },
2806
+ trace: { type: "boolean" },
2807
+ reload: { type: "boolean" },
2808
+ watch: { type: "boolean" },
2809
+ runtimeProbe: { type: "boolean" },
2810
+ fixManagedState: { type: "boolean" },
2811
+ pmContext: { type: "string", enum: ["schema", "tracker", "auto"] },
2812
+ overrideLinkedPmContext: { type: "boolean" },
2813
+ failOnContextMismatch: { type: "boolean" },
2814
+ failOnSkipped: { type: "boolean" },
2815
+ failOnEmptyTestRun: { type: "boolean" },
2816
+ requireAssertionsForPm: { type: "boolean" },
2817
+ checkContext: { type: "boolean" },
2818
+ autoPmContext: { type: "boolean" },
2819
+ diff: { type: "boolean" },
2820
+ storage: { type: "boolean" },
2821
+ metadataCoverage: { type: "boolean" },
2822
+ fieldUtilization: { type: "boolean" },
2823
+ byAssignee: { type: "boolean" },
2824
+ byTag: { type: "boolean" },
2825
+ byPriority: { type: "boolean" },
2826
+ tagPrefix: { type: "string" },
2827
+ verify: { type: "boolean" },
2828
+ literal: { type: "array", items: { type: "string" } },
2829
+ regex: { type: "array", items: { type: "string" } },
2830
+ replacement: { type: "string" },
2831
+ timeout: { anyOf: [{ type: "string" }, { type: "number" }] },
2832
+ validateClose: { type: "string", enum: ["off", "warn", "strict"] },
2833
+ checkMetadata: { type: "boolean" },
2834
+ metadataProfile: { type: "string", enum: ["core", "strict", "custom"] },
2835
+ checkResolution: { type: "boolean" },
2836
+ checkLifecycle: { type: "boolean" },
2837
+ checkStaleBlockers: { type: "boolean" },
2838
+ dependencyCycleSeverity: { type: "string", enum: ["off", "warn", "error"] },
2839
+ parentCycleSeverity: { type: "string", enum: ["off", "warn", "error"] },
2840
+ checkFiles: { type: "boolean" },
2841
+ strictDirectories: { type: "boolean" },
2842
+ checkOnly: { type: "boolean" },
2843
+ checkTelemetry: { type: "boolean" },
2844
+ noRefresh: { type: "boolean" },
2845
+ refreshVectors: { type: "boolean" },
2846
+ verboseStaleItems: { type: "boolean" },
2847
+ skipVectors: { type: "boolean" },
2848
+ skipIntegrity: { type: "boolean" },
2849
+ skipDrift: { type: "boolean" },
2850
+ verboseDiagnostics: { type: "boolean" },
2851
+ allAffectedIds: { type: "boolean" },
2852
+ scanMode: { type: "string", enum: ["default", "tracked-all", "tracked-all-strict"] },
2853
+ includePmInternals: { type: "boolean" },
2854
+ verboseFileLists: { type: "boolean" },
2855
+ strictExit: { type: "boolean" },
2856
+ failOnWarn: { type: "boolean" },
2857
+ fixHints: { type: "boolean" },
2858
+ autoFix: { type: "boolean" },
2859
+ fixScope: { type: "array", items: { type: "string", enum: ["metadata", "resolution", "estimates", "lifecycle"] } },
2860
+ pruneMissing: { type: "boolean" },
2861
+ checkHistoryDrift: { type: "boolean" },
2862
+ checkCommandReferences: { type: "boolean" },
2863
+ allowAuditNote: { type: "boolean" },
2864
+ allowAuditLearning: { type: "boolean" },
2865
+ allowAuditComment: { type: "boolean" },
2866
+ edit: { type: "integer", minimum: 1 },
2867
+ delete: { type: "integer", minimum: 1 },
2868
+ allowAuditUpdate: { type: "boolean" },
2869
+ allowAuditDepUpdate: { type: "boolean" },
2870
+ allowAuditRelease: { type: "boolean" },
2871
+ dryRun: { type: "boolean" },
2872
+ all: { type: "boolean" },
2873
+ clear: { type: "boolean" },
2874
+ cliOnly: { type: "boolean" },
2875
+ packagesOnly: { type: "boolean" },
2876
+ repair: { type: "boolean" },
2877
+ packageName: { type: "string" },
2878
+ rollback: { type: "string" },
2879
+ noCheckpoint: { type: "boolean" },
2880
+ force: { type: "boolean" },
2881
+ run: { type: "boolean" },
2882
+ count: { type: "boolean" },
2883
+ sum: { type: "string" },
2884
+ avg: { type: "string" },
2885
+ tree: { type: "boolean" },
2886
+ treeDepth: { anyOf: [{ type: "string" }, { type: "number" }] },
2887
+ includeUnparented: { type: "boolean" },
2888
+ gcScope: {
2889
+ type: "array",
2890
+ items: { type: "string", enum: ["index", "embeddings", "runtime", "locks"] }
2891
+ },
2892
+ maxDepth: { anyOf: [{ type: "string" }, { type: "number" }] },
2893
+ collapse: { type: "string", enum: ["none", "repeated"] },
2894
+ summary: { type: "boolean" },
2895
+ shell: { type: "string", enum: ["bash", "zsh", "fish"] },
2896
+ stdin: { type: "boolean" },
2897
+ file: { type: "string" },
2898
+ preserveSourceIds: { type: "boolean" },
2899
+ folder: { type: "string" },
2900
+ subcommand: { type: "string" },
2901
+ name: { type: "string" },
2902
+ defaultStatus: { type: "string" },
2903
+ alias: { type: "array", items: { type: "string" } },
2904
+ role: { type: "array", items: { type: "string" } },
2905
+ fieldType: { type: "string", enum: ["string", "number", "boolean", "string_array"] },
2906
+ commands: { type: "array", items: { type: "string" } },
2907
+ cliFlag: { type: "string" },
2908
+ required: { type: "boolean" },
2909
+ requiredOnCreate: { type: "boolean" },
2910
+ allowUnset: { type: "boolean" },
2911
+ requiredTypes: { type: "array", items: { type: "string" } },
2912
+ infer: { type: "boolean" },
2913
+ minCount: { type: "number" },
2914
+ text: { type: "string" },
2915
+ add: { type: "array", items: { type: "string" } },
2916
+ addGlob: { type: "array", items: { type: "string" } },
2917
+ remove: { type: "array", items: { type: "string" } },
2918
+ migrate: { type: "array", items: { type: "string" } },
2919
+ discover: { type: "boolean" },
2920
+ apply: { type: "boolean" },
2921
+ discoveryNote: { type: "string" },
2922
+ // GH-170 (pm-pfnx): single-string note for files/docs add batches (the shared
2923
+ // `note` key below is the array-typed create/update note seed).
2924
+ addNote: { type: "string" },
2925
+ list: { type: "boolean" },
2926
+ appendStable: { type: "boolean" },
2927
+ validatePaths: { type: "boolean" },
2928
+ audit: { type: "boolean" },
2929
+ dep: { type: "array", items: { type: "string" } },
2930
+ depRemove: { type: "array", items: { type: "string" } },
2931
+ replaceDeps: { type: "boolean" },
2932
+ replaceTests: { type: "boolean" },
2933
+ comment: { type: "array", items: { type: "string" } },
2934
+ note: { type: "array", items: { type: "string" } },
2935
+ learning: { type: "array", items: { type: "string" } },
2936
+ linkedFile: { type: "array", items: { type: "string" } },
2937
+ linkedTest: { type: "array", items: { type: "string" } },
2938
+ doc: { type: "array", items: { type: "string" } },
2939
+ reminder: { type: "array", items: { type: "string" } },
2940
+ event: { type: "array", items: { type: "string" } },
2941
+ typeOption: { type: "array", items: { type: "string" } },
2942
+ field: { type: "array", items: { type: "string" } },
2943
+ unset: { type: "array", items: { type: "string" } },
2944
+ clearDeps: { type: "boolean" },
2945
+ clearComments: { type: "boolean" },
2946
+ clearNotes: { type: "boolean" },
2947
+ clearLearnings: { type: "boolean" },
2948
+ clearFiles: { type: "boolean" },
2949
+ clearTests: { type: "boolean" },
2950
+ clearDocs: { type: "boolean" },
2951
+ clearReminders: { type: "boolean" },
2952
+ clearEvents: { type: "boolean" },
2953
+ clearTypeOptions: { type: "boolean" },
2954
+ criterion: { type: "array", items: { type: "string" } },
2955
+ clearCriteria: { type: "boolean" },
2956
+ groupBy: { type: "string" },
2957
+ completion: { type: "boolean" },
2958
+ threshold: { anyOf: [{ type: "string" }, { type: "number" }] },
2959
+ format: { type: "string" },
2960
+ depth: { type: "string", enum: ["brief", "standard", "deep", "full"] },
2961
+ section: { type: "array", items: { type: "string", enum: ["hierarchy", "activity", "progress", "blockers", "files", "workload", "staleness", "tests"] } },
2962
+ activityLimit: { anyOf: [{ type: "string" }, { type: "number" }] },
2963
+ staleThreshold: { type: "string" },
2964
+ policy: { type: "string" }
2965
+ };
2966
+ var PLAN_SUBCOMMAND_VALUES = [
2967
+ "create",
2968
+ "show",
2969
+ "add-step",
2970
+ "update-step",
2971
+ "complete-step",
2972
+ "block-step",
2973
+ "reorder-step",
2974
+ "remove-step",
2975
+ "link",
2976
+ "unlink",
2977
+ "decision",
2978
+ "discovery",
2979
+ "validation",
2980
+ "resume",
2981
+ "approve",
2982
+ "materialize"
3649
2983
  ];
3650
- function toUniqueFlagContracts(contracts) {
3651
- const seen = /* @__PURE__ */ new Set();
3652
- const unique = [];
3653
- for (const contract of contracts) {
3654
- const aliasKey = (contract.aliases ?? []).join(",");
3655
- const key = `${contract.flag}|${contract.short ?? ""}|${aliasKey}`;
3656
- if (seen.has(key)) {
3657
- continue;
3658
- }
3659
- seen.add(key);
3660
- unique.push(contract);
3661
- }
3662
- return unique;
3663
- }
3664
- function withSubcommandGlobalFlags(contracts) {
3665
- return withFlagAliasMetadata(toUniqueFlagContracts([...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS, ...contracts]));
3666
- }
3667
- var LIST_COMMAND_NAME_CONTRACTS = /* @__PURE__ */ new Set([
3668
- "list",
3669
- "list-all",
3670
- "list-draft",
3671
- "list-open",
3672
- "list-in-progress",
3673
- "list-blocked",
3674
- "list-closed",
3675
- "list-canceled"
3676
- ]);
3677
- var NO_SURFACE_COMMAND_NAME_CONTRACTS = /* @__PURE__ */ new Set([
3678
- "reindex",
3679
- "help"
3680
- ]);
3681
- function normalizeCommandNameForContracts(commandName) {
3682
- if (typeof commandName !== "string") {
3683
- return "";
3684
- }
3685
- return commandName.trim().toLowerCase();
3686
- }
3687
- function resolveSubcommandFlagContractsForCommand(commandName) {
3688
- const normalized = normalizeCommandNameForContracts(commandName);
3689
- if (normalized.length === 0) {
3690
- return withSubcommandGlobalFlags([]);
3691
- }
3692
- if (LIST_COMMAND_NAME_CONTRACTS.has(normalized)) {
3693
- return withSubcommandGlobalFlags(LIST_FILTER_FLAG_CONTRACTS);
3694
- }
3695
- if (NO_SURFACE_COMMAND_NAME_CONTRACTS.has(normalized)) {
3696
- return withSubcommandGlobalFlags([]);
3697
- }
3698
- if (normalized === "templates") {
3699
- return withSubcommandGlobalFlags(CREATE_FLAG_CONTRACTS);
3700
- }
3701
- if (normalized === "cal") {
3702
- return withSubcommandGlobalFlags(CALENDAR_FLAG_CONTRACTS);
3703
- }
3704
- if (normalized === "ctx") {
3705
- return withSubcommandGlobalFlags(CONTEXT_FLAG_CONTRACTS);
2984
+ var PLAN_ACTION_PARAMETER_PROPERTIES = {
2985
+ subcommand: { type: "string", enum: [...PLAN_SUBCOMMAND_VALUES] },
2986
+ stepRef: { type: "string" },
2987
+ reorderTo: { anyOf: [{ type: "string" }, { type: "number" }] },
2988
+ scope: { type: "string" },
2989
+ harness: { type: "string", enum: [...PLAN_HARNESS_VALUES] },
2990
+ mode: { type: "string", enum: [...PLAN_MODE_VALUES] },
2991
+ resumeContext: { type: "string" },
2992
+ related: { type: "string" },
2993
+ blocks: { type: "string" },
2994
+ claim: { type: "boolean" },
2995
+ fromSearch: { type: "string" },
2996
+ stepTitle: { type: "string" },
2997
+ // pm-6mit: ordered step titles for create (string or array; values are never
2998
+ // comma-split). On step subcommands a single value aliases stepTitle.
2999
+ step: { anyOf: [{ type: "string" }, { type: "array", items: { type: "string" } }] },
3000
+ stepBody: { type: "string" },
3001
+ stepOwner: { type: "string" },
3002
+ stepStatus: { type: "string", enum: [...PLAN_STEP_STATUS_VALUES] },
3003
+ stepEvidence: { type: "string" },
3004
+ stepBlockedReason: { type: "string" },
3005
+ stepReplacement: { type: "string" },
3006
+ dependsOn: { type: "string" },
3007
+ link: { type: "string" },
3008
+ linkKind: { type: "string", enum: [...PLAN_STEP_LINK_KIND_VALUES] },
3009
+ linkNote: { type: "string" },
3010
+ promoteToItemDep: { type: "boolean" },
3011
+ allowMultipleActive: { type: "boolean" },
3012
+ file: { anyOf: [{ type: "string" }, { type: "array", items: { type: "string" } }] },
3013
+ test: { anyOf: [{ type: "string" }, { type: "array", items: { type: "string" } }] },
3014
+ doc: { anyOf: [{ type: "string" }, { type: "array", items: { type: "string" } }] },
3015
+ decisionText: { type: "string" },
3016
+ decision: { type: "string" },
3017
+ decisionRationale: { type: "string" },
3018
+ decisionEvidence: { type: "string" },
3019
+ discoveryText: { type: "string" },
3020
+ discovery: { type: "string" },
3021
+ validationText: { type: "string" },
3022
+ validation: { type: "string" },
3023
+ validationCommand: { type: "string" },
3024
+ validationExpected: { type: "string" },
3025
+ steps: { type: "array", items: { type: "string" } },
3026
+ materializeType: { type: "string" },
3027
+ materializeParent: { type: "string" },
3028
+ materializeTags: { type: "string" }
3029
+ };
3030
+ var PLAN_ACTION_PARAMETER_METADATA = {
3031
+ subcommand: {
3032
+ description: "Plan workflow operation to run.",
3033
+ examples: ["create", "show", "add-step", "approve"]
3034
+ },
3035
+ stepRef: {
3036
+ description: "Plan step id or order for step lifecycle subcommands.",
3037
+ examples: ["plan-step-001", "1"]
3038
+ },
3039
+ reorderTo: {
3040
+ description: "New integer order for reorder-step.",
3041
+ examples: [1, "2"]
3042
+ },
3043
+ scope: {
3044
+ description: "Short free-text scope statement describing what the Plan covers.",
3045
+ examples: ["Release readiness audit", "Search package migration"]
3046
+ },
3047
+ mode: {
3048
+ description: "Plan lifecycle mode.",
3049
+ examples: ["draft", "research", "approved"]
3050
+ },
3051
+ step: {
3052
+ description: "Ordered initial step titles for create (string or array, never comma-split; stepTitle, when also set, becomes the first step). For step subcommands a single value aliases stepTitle.",
3053
+ examples: [["Read the code", "Write the fix", "Run the tests"]]
3054
+ },
3055
+ file: {
3056
+ description: "File link to attach while creating or materializing a Plan.",
3057
+ examples: ["path=src/cli.ts,note=implementation surface"]
3058
+ },
3059
+ test: {
3060
+ description: "Test command link to attach while creating or materializing a Plan.",
3061
+ examples: ["command=pnpm build,timeout_seconds=300"]
3062
+ },
3063
+ doc: {
3064
+ description: "Documentation link to attach while creating or materializing a Plan.",
3065
+ examples: ["path=docs/SDK.md,note=public API reference"]
3706
3066
  }
3707
- if (normalized === "test-runs-worker") {
3708
- return withSubcommandGlobalFlags(TEST_RUNS_FLAG_CONTRACTS);
3067
+ };
3068
+ var PM_TOOL_PARAMETER_METADATA = {
3069
+ action: {
3070
+ description: "Tool action to execute."
3071
+ },
3072
+ path: {
3073
+ description: "Optional PM data root override for this invocation.",
3074
+ examples: [".agents/pm"]
3075
+ },
3076
+ scope: {
3077
+ description: "Scope selector for commands that operate on project or global state. Linked files, docs, and tests default to project scope when omitted.",
3078
+ examples: ["project", "global"]
3079
+ },
3080
+ detail: {
3081
+ description: "Detail mode for commands that support concise and deep diagnostics.",
3082
+ examples: ["summary", "deep"]
3083
+ },
3084
+ trace: {
3085
+ description: "When true for extension-doctor, include actionable registration traces in deep diagnostics."
3086
+ },
3087
+ reload: {
3088
+ description: "When true for extension action payloads, trigger cache-busted extension module reload."
3089
+ },
3090
+ watch: {
3091
+ description: "When true for extension-reload/extension action payloads, enable watch mode semantics."
3092
+ },
3093
+ runtimeProbe: {
3094
+ description: "When true for extension-manage, run a doctor-like runtime activation probe for parity fields."
3095
+ },
3096
+ fixManagedState: {
3097
+ description: "When true for extension-manage/extension-doctor, adopt unmanaged extensions before diagnostics/update checks."
3098
+ },
3099
+ target: {
3100
+ description: "Positional target argument for the selected action (ID, source, package source, or extension name).",
3101
+ examples: ["pm-a1b2", ".agents/pm/extensions/sample", "sample-extension"]
3102
+ },
3103
+ output: {
3104
+ description: "File path for commands that write generated output, such as package/extension describe Markdown references.",
3105
+ examples: ["docs/pm-package-reference.md"]
3106
+ },
3107
+ github: {
3108
+ description: "GitHub shorthand owner/repo[/path] source for package/extension install actions.",
3109
+ examples: ["org/repo/extensions/sample"]
3110
+ },
3111
+ ref: {
3112
+ description: "Git ref/branch/tag used when installing from GitHub shorthand/URL sources.",
3113
+ examples: ["main", "v1.0.0"]
3114
+ },
3115
+ cliOnly: {
3116
+ description: "Restrict upgrade to the pm CLI/SDK npm package."
3117
+ },
3118
+ packagesOnly: {
3119
+ description: "Restrict upgrade to managed installable pm packages."
3120
+ },
3121
+ repair: {
3122
+ description: "Force npm global reinstall semantics when upgrading the pm CLI/SDK."
3123
+ },
3124
+ tag: {
3125
+ description: "npm version or dist-tag used for CLI and registry package upgrades.",
3126
+ examples: ["latest", "next", "2026.5.11"]
3127
+ },
3128
+ packageName: {
3129
+ description: "Override the pm CLI package name for self-upgrade automation and tests.",
3130
+ examples: ["@unbrained/pm-cli"]
3131
+ },
3132
+ json: {
3133
+ description: "Emit machine-readable JSON output."
3134
+ },
3135
+ quiet: {
3136
+ description: "Suppress stdout payload output."
3137
+ },
3138
+ noExtensions: {
3139
+ description: "Disable extension loading for this invocation."
3140
+ },
3141
+ noPager: {
3142
+ description: "Disable pager integration for help and long output."
3143
+ },
3144
+ profile: {
3145
+ description: "Emit deterministic timing diagnostics to stderr."
3146
+ },
3147
+ timeoutMs: {
3148
+ description: "Tool execution timeout in milliseconds.",
3149
+ examples: [12e4]
3150
+ },
3151
+ id: {
3152
+ description: "Item identifier for read or mutation actions.",
3153
+ examples: ["pm-a1b2"]
3154
+ },
3155
+ runId: {
3156
+ description: "Background test run identifier.",
3157
+ examples: ["tr-kq9x3f-93acde"]
3158
+ },
3159
+ title: {
3160
+ description: "Item title text."
3161
+ },
3162
+ description: {
3163
+ description: "Item description text."
3164
+ },
3165
+ type: {
3166
+ description: "Item type name from the active runtime type registry.",
3167
+ examples: ["Task", "Feature"]
3168
+ },
3169
+ subcommand: {
3170
+ description: "Subcommand selector for schema, profile, and telemetry actions."
3171
+ },
3172
+ name: {
3173
+ description: "Custom item type name (schema add-type/remove-type/show), custom status id (schema show-status/add-status/remove-status), custom field key (schema add-field/remove-field/show-field), or profile name (profile show/apply/lint).",
3174
+ examples: ["Spike", "review", "component"]
3175
+ },
3176
+ defaultStatus: {
3177
+ description: "Default status hint recorded for a custom item type.",
3178
+ examples: ["open"]
3179
+ },
3180
+ alias: {
3181
+ description: "Aliases for the custom item type or status (repeatable).",
3182
+ examples: [["spike", "research"]]
3183
+ },
3184
+ role: {
3185
+ description: "Lifecycle roles for a custom status (schema add-status): draft, active, blocked, terminal, terminal_done, terminal_canceled, default_open, default_close, default_cancel.",
3186
+ examples: [["active"], ["terminal", "terminal_done"]]
3187
+ },
3188
+ fieldType: {
3189
+ description: "Value type for a custom field (schema add-field): string, number, boolean, or string_array.",
3190
+ examples: ["string", "number", "string_array"]
3191
+ },
3192
+ commands: {
3193
+ description: "Commands a custom field is wired onto (schema add-field): create, update, update_many, list, search, calendar, context.",
3194
+ examples: [["create", "update"], ["create", "update", "list"]]
3195
+ },
3196
+ cliFlag: {
3197
+ description: "Override the auto-derived CLI flag for a custom field (schema add-field).",
3198
+ examples: ["--owner"]
3199
+ },
3200
+ required: {
3201
+ description: "Mark a custom field as always required (schema add-field)."
3202
+ },
3203
+ requiredOnCreate: {
3204
+ description: "Mark a custom field as required at create time (schema add-field)."
3205
+ },
3206
+ allowUnset: {
3207
+ description: "Whether a custom field may be cleared via --unset (schema add-field); defaults to true."
3208
+ },
3209
+ requiredTypes: {
3210
+ description: "Restrict a custom field's requirement to specific item types (schema add-field).",
3211
+ examples: [["Bug"], ["Story", "Spike"]]
3212
+ },
3213
+ infer: {
3214
+ description: "Infer custom item types from title-prefix conventions (schema add-type); previews unless apply is true."
3215
+ },
3216
+ minCount: {
3217
+ description: "Minimum number of items sharing a title prefix for schema add-type inference (default 10).",
3218
+ examples: [10, 25]
3219
+ },
3220
+ preset: {
3221
+ description: "Governance preset for initialization flows.",
3222
+ examples: ["minimal", "default", "strict"]
3223
+ },
3224
+ typePreset: {
3225
+ description: "Domain item-type preset registered during initialization.",
3226
+ examples: ["agile", "ops", "research"]
3227
+ },
3228
+ defaults: {
3229
+ description: "Use non-interactive setup defaults during initialization."
3230
+ },
3231
+ verbose: {
3232
+ description: "Include the full resolved settings tree in init output."
3233
+ },
3234
+ agentGuidance: {
3235
+ description: "Control AGENTS.md/CLAUDE.md guidance behavior during init: ask, add, skip, or status.",
3236
+ examples: ["ask", "add", "skip", "status"]
3237
+ },
3238
+ withPackages: {
3239
+ description: "Install all bundled first-party pm packages during initialization."
3240
+ },
3241
+ createMode: {
3242
+ description: "Create required-option policy mode.",
3243
+ examples: ["strict", "progressive"]
3244
+ },
3245
+ schedulePreset: {
3246
+ description: "Schedule-centric create preset for Reminder, Meeting, and Event types.",
3247
+ examples: ["lightweight"]
3248
+ },
3249
+ status: {
3250
+ description: "Item status value. Statuses are project-configurable via .agents/pm/settings.json (schema block); the built-in defaults are draft, open, in_progress, blocked, closed, canceled. Custom statuses defined for the project are accepted \u2014 discover the active set with the pm_contracts tool (workspace.statuses) or `pm contracts`. Unknown statuses are rejected at runtime with a did-you-mean hint rather than blocked by a fixed schema enum.",
3251
+ examples: ["open", "in_progress"]
3252
+ },
3253
+ priority: {
3254
+ description: "Priority value in range 0..4.",
3255
+ examples: [0, 1, "2"]
3256
+ },
3257
+ order: {
3258
+ description: "Planning order/rank value for create/update, or sort direction (asc|desc) for list-family sorting.",
3259
+ examples: [0, 1, "2", "asc", "desc"]
3260
+ },
3261
+ sort: {
3262
+ description: "List-family sort field selector.",
3263
+ examples: ["priority", "deadline", "updated_at", "created_at", "title", "parent"]
3264
+ },
3265
+ tags: {
3266
+ description: "Comma-delimited tag list.",
3267
+ examples: ["pm-cli,agent-ux"]
3268
+ },
3269
+ addTags: {
3270
+ description: "Tags to add to the existing list without replacing it. Each entry may be CSV or a JSON array.",
3271
+ examples: [["agent-ux"], ["fix", "security"]]
3272
+ },
3273
+ removeTags: {
3274
+ description: "Tags to remove from the existing list. Each entry may be CSV or a JSON array.",
3275
+ examples: [["stale"], ["legacy", "wontfix"]]
3276
+ },
3277
+ deadline: {
3278
+ description: "ISO/date timestamp or relative offset (+6h/+1d/+2w/+6m).",
3279
+ examples: ["2026-04-01T00:00:00.000Z", "+1d"]
3280
+ },
3281
+ reminder: {
3282
+ description: "Repeatable reminder seed entries at=<iso|relative>,text=<text>.",
3283
+ examples: [["at=+2d,text=Review PR"]]
3284
+ },
3285
+ event: {
3286
+ description: "Repeatable event seed entries start=<iso|relative> with end=<iso|relative> or duration=<relative|30min|PT30M>. Bare `m` remains months for backward compatibility.",
3287
+ examples: [
3288
+ ["start=2026-07-01T10:00:00Z,duration=2h,title=planning"],
3289
+ ["start=2026-07-01T10:00:00Z,duration=30min,title=standup"],
3290
+ ["start=2026-07-01T10:00:00Z,duration=PT30M,title=window"]
3291
+ ]
3292
+ },
3293
+ estimate: {
3294
+ description: "Estimated effort in minutes.",
3295
+ examples: [60, "120"]
3296
+ },
3297
+ acceptanceCriteria: {
3298
+ description: "Acceptance criteria text."
3299
+ },
3300
+ author: {
3301
+ description: "Mutation author identity.",
3302
+ examples: ["codex-agent"]
3303
+ },
3304
+ message: {
3305
+ description: "History message for mutation audit trail."
3306
+ },
3307
+ assignee: {
3308
+ description: "Assignee identity.",
3309
+ examples: ["codex-agent"]
3310
+ },
3311
+ assigneeFilter: {
3312
+ description: "Assignee presence selector for list/calendar/context/comments-audit filters.",
3313
+ examples: ["assigned", "unassigned"]
3314
+ },
3315
+ parent: {
3316
+ description: "Parent item ID filter for hierarchical list queries.",
3317
+ examples: ["pm-epic01"]
3318
+ },
3319
+ blockedLimit: {
3320
+ description: "Cap blocked rows returned by the next action (defaults to the ready --limit).",
3321
+ examples: ["3"]
3322
+ },
3323
+ readyOnly: {
3324
+ description: "When true, the next action omits the blocked companion list."
3325
+ },
3326
+ unset: {
3327
+ description: "Repeatable list of front-matter fields to clear explicitly during create/update mutations.",
3328
+ examples: [["deadline", "assignee"], ["close-reason"]]
3329
+ },
3330
+ clearDeps: {
3331
+ description: "When true, clear linked dependencies."
3332
+ },
3333
+ replaceDeps: {
3334
+ description: "When true for update, atomically replace dependencies with the supplied --dep values."
3335
+ },
3336
+ replaceTests: {
3337
+ description: "When true for update, atomically replace linked tests with the supplied --test values."
3338
+ },
3339
+ clearComments: {
3340
+ description: "When true, clear item comments."
3341
+ },
3342
+ clearNotes: {
3343
+ description: "When true, clear item notes."
3344
+ },
3345
+ clearLearnings: {
3346
+ description: "When true, clear item learnings."
3347
+ },
3348
+ clearFiles: {
3349
+ description: "When true, clear linked files."
3350
+ },
3351
+ clearTests: {
3352
+ description: "When true, clear linked tests."
3353
+ },
3354
+ clearDocs: {
3355
+ description: "When true, clear linked docs."
3356
+ },
3357
+ clearReminders: {
3358
+ description: "When true, clear reminders."
3359
+ },
3360
+ clearEvents: {
3361
+ description: "When true, clear events."
3362
+ },
3363
+ clearTypeOptions: {
3364
+ description: "When true, clear type option metadata."
3365
+ },
3366
+ clearCriteria: {
3367
+ description: "When true for config set criteria-list keys (definition-of-done, metadata-required-fields, lifecycle pattern lists), clear the criteria list."
3368
+ },
3369
+ mode: {
3370
+ description: "Mode selector for search/reindex (keyword|semantic|hybrid) and dedupe-audit (title_exact|title_fuzzy|parent_scope).",
3371
+ examples: ["keyword", "hybrid", "title_exact"]
3372
+ },
3373
+ semanticWeight: {
3374
+ description: "Per-query hybrid semantic weight override in [0,1] for search action; invalid values fall back to settings.",
3375
+ examples: [0.2, "0.7"]
3376
+ },
3377
+ op: {
3378
+ description: "History operation filter for activity output.",
3379
+ examples: ["create", "update", "close", "update_audit"]
3380
+ },
3381
+ fullPeriod: {
3382
+ description: "For day/week/month calendar views, include the full anchored period instead of clipping the start to now."
3383
+ },
3384
+ progress: {
3385
+ description: "Emit progress diagnostics to stderr for long-running operations."
3386
+ },
3387
+ background: {
3388
+ description: "Run linked tests in managed background mode."
3389
+ },
3390
+ addJson: {
3391
+ description: "Repeatable JSON object or array input for adding linked-test entries without CSV escaping loss.",
3392
+ examples: [[`{"command":"node scripts/run-tests.mjs test -- tests/unit/output.spec.ts","timeout_seconds":240}`]]
3393
+ },
3394
+ match: {
3395
+ description: "Run only linked tests whose command or path contains this case-insensitive substring.",
3396
+ examples: ["output.spec.ts", "coverage"]
3397
+ },
3398
+ onlyIndex: {
3399
+ description: "Run only the 1-based linked-test index from pm test <id> --list order.",
3400
+ examples: [1, "2"]
3401
+ },
3402
+ onlyLast: {
3403
+ description: "Run only the most recently added linked-test entry."
3404
+ },
3405
+ envSet: {
3406
+ description: "Repeatable runtime environment KEY=VALUE overrides for linked-test execution.",
3407
+ examples: [["PORT=0", "PLAYWRIGHT_HTML_OPEN=never"]]
3408
+ },
3409
+ envClear: {
3410
+ description: "Repeatable runtime environment variable names to clear before linked-test execution.",
3411
+ examples: [["PLAYWRIGHT_BASE_URL"]]
3412
+ },
3413
+ sharedHostSafe: {
3414
+ description: "Apply additive shared-host-safe runtime defaults during linked-test execution."
3415
+ },
3416
+ pmContext: {
3417
+ description: "PM linked-test context mode (schema keeps isolated tracker data; tracker seeds source tracker data; auto uses tracker for PM tracker-read linked commands).",
3418
+ examples: ["schema", "tracker", "auto"]
3419
+ },
3420
+ overrideLinkedPmContext: {
3421
+ description: "Force run-level --pm-context to override per-linked-test pm_context_mode metadata for all linked-test entries."
3422
+ },
3423
+ failOnContextMismatch: {
3424
+ description: "Fail linked PM command runs when source and sandbox tracker item counts differ."
3425
+ },
3426
+ failOnSkipped: {
3427
+ description: "Treat skipped linked tests as dependency-failed policy violations."
3428
+ },
3429
+ failOnEmptyTestRun: {
3430
+ description: "Treat successful linked-test commands that report zero executed tests as failures."
3431
+ },
3432
+ requireAssertionsForPm: {
3433
+ description: "Require assertion metadata for linked PM command test entries during run execution."
3434
+ },
3435
+ checkContext: {
3436
+ description: "Run linked PM command context preflight diagnostics before command execution."
3437
+ },
3438
+ autoPmContext: {
3439
+ description: "Auto-remediate PM tracker-read linked commands by routing those entries through tracker context regardless of linked-test pm_context_mode overrides."
3440
+ },
3441
+ dryRun: {
3442
+ description: "Preview command effects without mutating storage artifacts."
3443
+ },
3444
+ all: {
3445
+ description: "For history-repair action: scan every stream for drift and repair each drifted stream in one audited pass (mutually exclusive with id)."
3446
+ },
3447
+ clear: {
3448
+ description: "For focus action: clear the session focused item instead of setting it (mutually exclusive with id)."
3449
+ },
3450
+ gcScope: {
3451
+ description: "Repeatable gc scope selector values (index, embeddings, runtime, locks, checkpoints).",
3452
+ examples: [["index", "embeddings"], ["runtime"], ["locks"], ["checkpoints"]]
3453
+ },
3454
+ storage: {
3455
+ description: "For stats action: include aggregate history-stream storage metrics (total streams/lines/bytes, largest + deepest streams, oldest/newest entries) for compaction and storage planning."
3456
+ },
3457
+ fieldUtilization: {
3458
+ description: "For stats action: include a field_utilization block reporting present/total/percent for content fields (notes, learnings, files, docs, tests, comments, deps, body, linked_command) across all items so under-documented dimensions are visible at a glance."
3459
+ },
3460
+ offset: {
3461
+ description: "Number of matching rows to skip before limit is applied.",
3462
+ examples: [0, 50, "100"]
3463
+ },
3464
+ before: {
3465
+ description: "For history-compact, compact entries strictly before this boundary (version number or ISO timestamp). Single-id mode only.",
3466
+ examples: ["5", "2026-06-01T00:00:00.000Z"]
3467
+ },
3468
+ allOver: {
3469
+ description: "For history-compact bulk mode, compact every stream with more than N entries. When history.compact_policy is enabled and this is omitted, the policy's max_entries is used.",
3470
+ examples: [200, "500"]
3471
+ },
3472
+ minEntries: {
3473
+ description: "For history-compact bulk mode, skip streams with at most N entries as already-compact (default 3).",
3474
+ examples: [3, "10"]
3475
+ },
3476
+ closed: {
3477
+ description: "For history-compact bulk mode, compact only closed (terminal) items' history streams."
3478
+ },
3479
+ allStreams: {
3480
+ description: "For history-compact bulk mode, compact every history stream regardless of lifecycle state."
3481
+ },
3482
+ limitItems: {
3483
+ description: "Maximum number of filtered items to include in comments-audit output (alias: --limit).",
3484
+ examples: [10, "25"]
3485
+ },
3486
+ fullHistory: {
3487
+ description: "When true for comments-audit, export full per-item comment history rows; cannot be combined with latest."
3488
+ },
3489
+ latest: {
3490
+ description: "Number of most recent comments to include per item in comments-audit output (use 0 for summary-only item rows).",
3491
+ examples: [0, 1, "3"]
3492
+ },
3493
+ literal: {
3494
+ description: "Repeatable literal matcher used by history-redact to scrub exact string values.",
3495
+ examples: ["[redacted_path_prefix]/private/path"]
3496
+ },
3497
+ regex: {
3498
+ description: "Repeatable regex matcher used by history-redact. Accepts either /pattern/flags or a raw pattern (global mode is auto-enabled).",
3499
+ examples: ["/192\\\\.168\\\\.[0-9.]+/g", "token=[A-Za-z0-9_-]+"]
3500
+ },
3501
+ replacement: {
3502
+ description: 'Replacement text used by history-redact (defaults to "[redacted]").',
3503
+ examples: ["[scrubbed_path]"]
3504
+ },
3505
+ validateClose: {
3506
+ description: 'Close-time metadata validation mode ("off", "warn", or "strict").',
3507
+ examples: ["off", "warn", "strict"]
3508
+ },
3509
+ checkMetadata: {
3510
+ description: "Run metadata completeness checks."
3511
+ },
3512
+ metadataProfile: {
3513
+ description: "Select metadata validation profile for --check-metadata.",
3514
+ examples: ["core", "strict", "custom"]
3515
+ },
3516
+ checkResolution: {
3517
+ description: "Run closed-item resolution metadata checks."
3518
+ },
3519
+ checkLifecycle: {
3520
+ description: "Run active-item lifecycle governance drift checks."
3521
+ },
3522
+ checkStaleBlockers: {
3523
+ description: "Include stale blocker-pattern diagnostics in lifecycle checks."
3524
+ },
3525
+ dependencyCycleSeverity: {
3526
+ description: "Set dependency-cycle warning policy for lifecycle checks.",
3527
+ examples: ["off", "warn", "error"]
3528
+ },
3529
+ parentCycleSeverity: {
3530
+ description: "Set parent-cycle warning policy for lifecycle checks.",
3531
+ examples: ["off", "warn", "error"]
3532
+ },
3533
+ checkFiles: {
3534
+ description: "Run linked-file and orphaned-file checks."
3535
+ },
3536
+ strictDirectories: {
3537
+ description: "Treat optional item-type directories as required health failures."
3538
+ },
3539
+ checkOnly: {
3540
+ description: "For health action, run read-only diagnostics without refreshing vectors."
3541
+ },
3542
+ checkTelemetry: {
3543
+ description: "For health action, probe telemetry endpoint health and include network diagnostics."
3544
+ },
3545
+ noRefresh: {
3546
+ description: "For health action, skip vector refresh while still running checks."
3547
+ },
3548
+ refreshVectors: {
3549
+ description: "For health action, explicitly refresh stale vectors."
3550
+ },
3551
+ verboseStaleItems: {
3552
+ description: "For health action, include full stale-item arrays in vectorization details."
3553
+ },
3554
+ skipVectors: {
3555
+ description: "For health action, skip vectorization checks for a faster diagnostic run."
3556
+ },
3557
+ skipIntegrity: {
3558
+ description: "For health action, skip item/history file integrity checks for a faster diagnostic run."
3559
+ },
3560
+ skipDrift: {
3561
+ description: "For health action, skip history drift hash checks for a faster diagnostic run."
3562
+ },
3563
+ scanMode: {
3564
+ description: "Select file candidate scan mode for --check-files.",
3565
+ examples: ["default", "tracked-all", "tracked-all-strict"]
3566
+ },
3567
+ includePmInternals: {
3568
+ description: "Include PM storage internals in tracked-all candidate scans."
3569
+ },
3570
+ verboseFileLists: {
3571
+ description: "For validate action, include full file-path lists for --check-files details."
3572
+ },
3573
+ verboseDiagnostics: {
3574
+ description: "For validate action, include full diagnostic ID lists instead of compact summaries."
3575
+ },
3576
+ strictExit: {
3577
+ description: "Return non-zero exit when health/validate/extension-doctor warnings are present."
3578
+ },
3579
+ failOnWarn: {
3580
+ description: "Alias for strictExit in health/validate/extension-doctor action payloads."
3581
+ },
3582
+ fixHints: {
3583
+ description: "For validate action, add a machine-executable fix_hints[] of pm commands to each failing check's details."
3584
+ },
3585
+ autoFix: {
3586
+ description: "For validate action, apply the safe, deterministic subset of fix-hint remediations (field backfills) automatically; combine with dryRun to preview and fixScope to grant gated scopes."
3587
+ },
3588
+ fixScope: {
3589
+ description: "For validate action, grant --auto-fix scopes (metadata, resolution, estimates, lifecycle). Defaults to the safe scopes metadata and resolution; estimates (per-type default estimated_minutes backfill) and lifecycle must be named explicitly.",
3590
+ examples: [["estimates"], ["lifecycle"], ["metadata", "resolution"]]
3591
+ },
3592
+ pruneMissing: {
3593
+ description: "For validate action, remove stale linked-file/doc LINKS whose paths classified as deleted (link removal only \u2014 never touches real files); honors dryRun."
3594
+ },
3595
+ checkHistoryDrift: {
3596
+ description: "Run item/history hash drift checks."
3597
+ },
3598
+ checkCommandReferences: {
3599
+ description: "Run linked-command PM-ID reference checks."
3600
+ },
3601
+ allowAuditNote: {
3602
+ description: "For notes action, allow non-owner append-only note audits without requiring --force."
3603
+ },
3604
+ allowAuditLearning: {
3605
+ description: "For learnings action, allow non-owner append-only learning audits without requiring --force."
3606
+ },
3607
+ allowAuditComment: {
3608
+ description: "For comments action, allow non-owner append-only comment audits without requiring --force."
3609
+ },
3610
+ edit: {
3611
+ description: "For comments action, replace the comment at this 1-based index with the supplied replacement text (add/stdin/file)."
3612
+ },
3613
+ delete: {
3614
+ description: "For comments action, delete the comment at this 1-based index."
3615
+ },
3616
+ stdin: {
3617
+ description: "When true for comments action, read comment text from piped stdin (supports multiline markdown)."
3618
+ },
3619
+ file: {
3620
+ description: "Path to input file for actions that read payload text, such as comments --file.",
3621
+ examples: ["notes/comment.md"]
3622
+ },
3623
+ allowAuditUpdate: {
3624
+ description: "Allow non-owner metadata-only update audits without requiring --force."
3625
+ },
3626
+ allowAuditDepUpdate: {
3627
+ description: "Allow non-owner append-only dependency update audits without requiring --force."
3628
+ },
3629
+ allowAuditRelease: {
3630
+ description: "Allow non-owner release handoffs that clear assignee metadata without requiring --force."
3631
+ },
3632
+ preserveSourceIds: {
3633
+ description: "Preserve explicit source IDs during Beads imports instead of normalizing to tracker prefix.",
3634
+ examples: [true]
3635
+ },
3636
+ appendStable: {
3637
+ description: "When true for files action, preserve existing linked-file order and append new links without full-array resorting."
3638
+ },
3639
+ discover: {
3640
+ description: "When true for files action, use `pm files discover <id>` to scan item text for referenced file paths."
3641
+ },
3642
+ apply: {
3643
+ description: "Persist changes instead of returning a dry-run preview: for files discovery, add the missing discovered file links; for schema add-type --infer, register the inferred custom item types."
3644
+ },
3645
+ discoveryNote: {
3646
+ description: "Note attached to file links added by files discovery.",
3647
+ examples: ["discovered from item text"]
3648
+ },
3649
+ addNote: {
3650
+ description: "Note attached to every link added by add/addGlob in this call (per-entry embedded note= wins; requires add or addGlob). Maps to the CLI --note flag on pm files/pm docs.",
3651
+ examples: ["command wiring"]
3652
+ },
3653
+ list: {
3654
+ description: "When true, list command-specific entries without mutating state (for example linked paths for files/docs or topics for guide).",
3655
+ examples: [true]
3656
+ },
3657
+ stream: {
3658
+ description: "Stream selector: test-runs logs accepts stdout|stderr|both; activity accepts boolean/rows|ndjson|jsonl for line-delimited output.",
3659
+ examples: ["stderr", "stdout", "both", "rows", "ndjson", "jsonl", true]
3660
+ },
3661
+ tail: {
3662
+ description: "Number of lines to tail for background run logs.",
3663
+ examples: [100]
3664
+ },
3665
+ query: {
3666
+ description: "Search query text for search action."
3667
+ },
3668
+ keywords: {
3669
+ description: "Alias for query in search action payloads."
3670
+ },
3671
+ includeLinked: {
3672
+ description: "Include readable linked docs/files/tests content in keyword and hybrid lexical scoring."
3673
+ },
3674
+ titleExact: {
3675
+ description: "For search action, require exact normalized title match for the full query string."
3676
+ },
3677
+ phraseExact: {
3678
+ description: "For search action, require exact normalized query phrase match in item text fields."
3679
+ },
3680
+ highlight: {
3681
+ description: "For search action, emit per-field matched-text snippets (wrapped in \xAB\u2026\xBB) on each hit. Off by default."
3682
+ },
3683
+ includeBody: {
3684
+ description: "When true for list-family actions, include item body text in projected rows."
3685
+ },
3686
+ noTruncate: {
3687
+ description: "When true for list-family actions, return every matched row, overriding any limit (surfaces total when rows were dropped)."
3688
+ },
3689
+ compact: {
3690
+ description: "Render compact projection output for search and list-family actions."
3691
+ },
3692
+ brief: {
3693
+ description: "Emit compact low-token output for commands that support terse projections or health details.",
3694
+ examples: [true]
3695
+ },
3696
+ full: {
3697
+ description: "Enable command-specific full/detail output mode when supported, such as deep item reads for get or full payload mode for search/history."
3698
+ },
3699
+ fields: {
3700
+ description: "Comma-separated projection fields for get, search, list-family, or context outputs. Valid field names are command-specific (e.g. score/matched_fields apply to search; context projects focus-row fields such as priority/deadline/completion_pct).",
3701
+ examples: ["id,title,status,parent,type", "id,title,score,matched_fields", "id,title,priority,deadline"]
3702
+ },
3703
+ groupBy: {
3704
+ description: "Comma-separated aggregate grouping fields (supported: parent,type,priority,status,assignee,tags,sprint,release).",
3705
+ examples: ["parent,type", "type,status", "priority,assignee", "tags", "sprint,release"]
3706
+ },
3707
+ count: {
3708
+ description: "Enable grouped count output for aggregate action."
3709
+ },
3710
+ completion: {
3711
+ description: "For aggregate action, add open/in_progress/closed/other counts and completion_pct per group."
3712
+ },
3713
+ sum: {
3714
+ description: "Numeric field to sum per aggregate group (count and null_count are still returned).",
3715
+ examples: ["estimated_minutes", "priority"]
3716
+ },
3717
+ avg: {
3718
+ description: "Numeric field to average per aggregate group (count and null_count are still returned).",
3719
+ examples: ["estimated_minutes", "priority"]
3720
+ },
3721
+ tree: {
3722
+ description: "When true for list/get actions, render recursive parent/child tree ordering."
3723
+ },
3724
+ treeDepth: {
3725
+ description: "Maximum recursion depth for tree output (0 keeps root rows only).",
3726
+ examples: [0, 1, "2"]
3727
+ },
3728
+ includeUnparented: {
3729
+ description: "Include unparented rows when aggregate grouping includes parent."
3730
+ },
3731
+ maxDepth: {
3732
+ description: "Maximum dependency traversal depth for deps action (0 keeps only the root node).",
3733
+ examples: [0, 1, "2"]
3734
+ },
3735
+ collapse: {
3736
+ description: 'Dependency tree collapse mode for deps action ("none" or "repeated").',
3737
+ examples: ["none", "repeated"]
3738
+ },
3739
+ summary: {
3740
+ description: "When true for deps action, return counts only without full tree/graph payloads."
3741
+ },
3742
+ threshold: {
3743
+ description: "Dedupe-audit fuzzy title similarity threshold between 0 and 1.",
3744
+ examples: [0.5, "0.75"]
3745
+ },
3746
+ shell: {
3747
+ description: "Shell target for completion generation.",
3748
+ examples: ["bash"]
3749
+ },
3750
+ eagerTags: {
3751
+ description: "When true for completion, eagerly embed current tracker tags into generated scripts (legacy mode)."
3752
+ },
3753
+ contractAction: {
3754
+ description: "Filter contracts schema to one tool action.",
3755
+ examples: ["create", "update"]
3756
+ },
3757
+ command: {
3758
+ description: "Scope contracts output to one CLI command name; action/schema surfaces narrow by default.",
3759
+ examples: ["create", "search", "list"]
3760
+ },
3761
+ schemaOnly: {
3762
+ description: "When true, contracts action returns schema-focused payloads (mutually exclusive with flagsOnly/availabilityOnly)."
3763
+ },
3764
+ flagsOnly: {
3765
+ description: "When true, contracts action returns only command flag surface payloads (mutually exclusive projection mode)."
3766
+ },
3767
+ availabilityOnly: {
3768
+ description: "When true, contracts action returns only action availability payloads (mutually exclusive projection mode)."
3769
+ },
3770
+ runtimeOnly: {
3771
+ description: "When true, contracts action only includes actions invocable in the current runtime."
3772
+ },
3773
+ activeOnly: {
3774
+ description: "Alias for runtimeOnly in contracts action payloads."
3775
+ },
3776
+ depth: {
3777
+ description: "Context depth level controlling how many sections are included (brief=focus+agenda, standard=+hierarchy/activity/progress/workload, deep=all sections, full=every section with no per-section row cap).",
3778
+ examples: ["brief", "standard", "deep", "full"]
3779
+ },
3780
+ section: {
3781
+ description: "Repeatable section selector for context; overrides --depth when provided.",
3782
+ examples: [["hierarchy", "activity"], ["blockers", "files", "staleness"]]
3783
+ },
3784
+ activityLimit: {
3785
+ description: "Maximum number of recent activity entries to include in context output.",
3786
+ examples: [5, 10, "20"]
3787
+ },
3788
+ staleThreshold: {
3789
+ description: "Staleness cutoff in days for context staleness section (e.g. 7 or 7d).",
3790
+ examples: ["7", "14d", "30"]
3709
3791
  }
3710
- const [rootCommand, lifecycleSubcommand, ...extraParts] = normalized.split(/\s+/);
3711
- if ((rootCommand === "extension" || rootCommand === "package" || rootCommand === "packages") && lifecycleSubcommand && extraParts.length === 0) {
3712
- switch (lifecycleSubcommand) {
3713
- case "init":
3714
- return withSubcommandGlobalFlags(EXTENSION_INIT_FLAG_CONTRACTS);
3715
- case "install":
3716
- return withSubcommandGlobalFlags(EXTENSION_INSTALL_FLAG_CONTRACTS);
3717
- case "uninstall":
3718
- return withSubcommandGlobalFlags(EXTENSION_UNINSTALL_FLAG_CONTRACTS);
3719
- case "explore":
3720
- return withSubcommandGlobalFlags(EXTENSION_EXPLORE_FLAG_CONTRACTS);
3721
- case "manage":
3722
- return withSubcommandGlobalFlags(EXTENSION_MANAGE_FLAG_CONTRACTS);
3723
- case "describe":
3724
- return withSubcommandGlobalFlags(EXTENSION_DESCRIBE_FLAG_CONTRACTS);
3725
- case "reload":
3726
- return withSubcommandGlobalFlags(EXTENSION_RELOAD_FLAG_CONTRACTS);
3727
- case "doctor":
3728
- return withSubcommandGlobalFlags(EXTENSION_DOCTOR_FLAG_CONTRACTS);
3729
- case "catalog":
3730
- return withSubcommandGlobalFlags(EXTENSION_CATALOG_FLAG_CONTRACTS);
3731
- case "adopt":
3732
- return withSubcommandGlobalFlags(EXTENSION_ADOPT_FLAG_CONTRACTS);
3733
- case "adopt-all":
3734
- return withSubcommandGlobalFlags(EXTENSION_ADOPT_ALL_FLAG_CONTRACTS);
3735
- case "activate":
3736
- return withSubcommandGlobalFlags(EXTENSION_ACTIVATE_FLAG_CONTRACTS);
3737
- case "deactivate":
3738
- return withSubcommandGlobalFlags(EXTENSION_DEACTIVATE_FLAG_CONTRACTS);
3739
- default:
3740
- return withSubcommandGlobalFlags([]);
3792
+ };
3793
+ var PM_TOOL_ACTION_SCOPED_PARAMETER_METADATA = {
3794
+ schema: {
3795
+ name: {
3796
+ description: "Custom item type name (add-type/remove-type/show), custom status id (show-status/add-status/remove-status), or custom field key (add-field/remove-field/show-field). Required for those subcommands.",
3797
+ examples: ["Spike", "review", "component"]
3798
+ }
3799
+ },
3800
+ profile: {
3801
+ name: {
3802
+ description: "Profile name for show/apply/lint. Built-in profiles are agile, ops, and research; an active extension can contribute additional archetype names that resolve here too.",
3803
+ examples: ["agile", "ops", "research"]
3741
3804
  }
3742
3805
  }
3743
- switch (normalized) {
3744
- case "init":
3745
- return withSubcommandGlobalFlags(INIT_FLAG_CONTRACTS);
3746
- case "config":
3747
- return withSubcommandGlobalFlags(CONFIG_FLAG_CONTRACTS);
3748
- case "extension":
3749
- case "package":
3750
- case "packages":
3751
- return withSubcommandGlobalFlags(EXTENSION_FLAG_CONTRACTS);
3752
- case "install":
3753
- return withSubcommandGlobalFlags(INSTALL_FLAG_CONTRACTS);
3754
- case "upgrade":
3755
- return withSubcommandGlobalFlags(UPGRADE_FLAG_CONTRACTS);
3756
- case "create":
3757
- return withSubcommandGlobalFlags(CREATE_FLAG_CONTRACTS);
3758
- case "copy":
3759
- return withSubcommandGlobalFlags(COPY_FLAG_CONTRACTS);
3760
- case "focus":
3761
- return withSubcommandGlobalFlags(FOCUS_FLAG_CONTRACTS);
3762
- case "aggregate":
3763
- return withSubcommandGlobalFlags(AGGREGATE_FLAG_CONTRACTS);
3764
- case "calendar":
3765
- return withSubcommandGlobalFlags(CALENDAR_FLAG_CONTRACTS);
3766
- case "context":
3767
- return withSubcommandGlobalFlags(CONTEXT_FLAG_CONTRACTS);
3768
- case "get":
3769
- return withSubcommandGlobalFlags(GET_FLAG_CONTRACTS);
3770
- case "search":
3771
- return withSubcommandGlobalFlags(SEARCH_FLAG_CONTRACTS);
3772
- case "eval":
3773
- return withSubcommandGlobalFlags(EVAL_FLAG_CONTRACTS);
3774
- case "history":
3775
- return withSubcommandGlobalFlags(HISTORY_FLAG_CONTRACTS);
3776
- case "history-redact":
3777
- return withSubcommandGlobalFlags(HISTORY_REDACT_FLAG_CONTRACTS);
3778
- case "history-repair":
3779
- return withSubcommandGlobalFlags(HISTORY_REPAIR_FLAG_CONTRACTS);
3780
- case "history-compact":
3781
- return withSubcommandGlobalFlags(HISTORY_COMPACT_FLAG_CONTRACTS);
3782
- case "schema":
3783
- return withSubcommandGlobalFlags(SCHEMA_FLAG_CONTRACTS);
3784
- case "plan":
3785
- return withSubcommandGlobalFlags(PLAN_FLAG_CONTRACTS);
3786
- case "activity":
3787
- return withSubcommandGlobalFlags(ACTIVITY_FLAG_CONTRACTS);
3788
- case "restore":
3789
- return withSubcommandGlobalFlags(RESTORE_FLAG_CONTRACTS);
3790
- case "update":
3791
- return withSubcommandGlobalFlags(UPDATE_FLAG_CONTRACTS);
3792
- case "update-many":
3793
- return withSubcommandGlobalFlags(UPDATE_MANY_FLAG_CONTRACTS);
3794
- case "close":
3795
- return withSubcommandGlobalFlags(CLOSE_FLAG_CONTRACTS);
3796
- case "close-many":
3797
- return withSubcommandGlobalFlags(CLOSE_MANY_FLAG_CONTRACTS);
3798
- case "delete":
3799
- return withSubcommandGlobalFlags(DELETE_FLAG_CONTRACTS);
3800
- case "append":
3801
- return withSubcommandGlobalFlags(APPEND_FLAG_CONTRACTS);
3802
- case "comments":
3803
- return withSubcommandGlobalFlags(COMMENTS_FLAG_CONTRACTS);
3804
- case "notes":
3805
- return withSubcommandGlobalFlags(NOTES_FLAG_CONTRACTS);
3806
- case "learnings":
3807
- return withSubcommandGlobalFlags(LEARNINGS_FLAG_CONTRACTS);
3808
- case "files":
3809
- return withSubcommandGlobalFlags(FILES_FLAG_CONTRACTS);
3810
- case "docs":
3811
- return withSubcommandGlobalFlags(DOCS_FLAG_CONTRACTS);
3812
- case "deps":
3813
- return withSubcommandGlobalFlags(DEPS_FLAG_CONTRACTS);
3814
- case "test":
3815
- return withSubcommandGlobalFlags(TEST_FLAG_CONTRACTS);
3816
- case "test-all":
3817
- return withSubcommandGlobalFlags(TEST_ALL_FLAG_CONTRACTS);
3818
- case "telemetry":
3819
- return withSubcommandGlobalFlags(TELEMETRY_FLAG_CONTRACTS);
3820
- case "health":
3821
- return withSubcommandGlobalFlags(HEALTH_FLAG_CONTRACTS);
3822
- case "validate":
3823
- return withSubcommandGlobalFlags(VALIDATE_FLAG_CONTRACTS);
3824
- case "gc":
3825
- return withSubcommandGlobalFlags(GC_FLAG_CONTRACTS);
3826
- case "stats":
3827
- return withSubcommandGlobalFlags(STATS_FLAG_CONTRACTS);
3828
- case "contracts":
3829
- return withSubcommandGlobalFlags(CONTRACTS_FLAG_CONTRACTS);
3830
- case "claim":
3831
- return withSubcommandGlobalFlags(CLAIM_FLAG_CONTRACTS);
3832
- case "release":
3833
- return withSubcommandGlobalFlags(RELEASE_FLAG_CONTRACTS);
3834
- case "start-task":
3835
- return withSubcommandGlobalFlags(START_TASK_FLAG_CONTRACTS);
3836
- case "pause-task":
3837
- return withSubcommandGlobalFlags(PAUSE_TASK_FLAG_CONTRACTS);
3838
- case "close-task":
3839
- return withSubcommandGlobalFlags(CLOSE_TASK_FLAG_CONTRACTS);
3840
- case "meet":
3841
- return withSubcommandGlobalFlags(MEET_FLAG_CONTRACTS);
3842
- case "event":
3843
- return withSubcommandGlobalFlags(EVENT_FLAG_CONTRACTS);
3844
- case "remind":
3845
- return withSubcommandGlobalFlags(REMIND_FLAG_CONTRACTS);
3846
- default:
3847
- return withSubcommandGlobalFlags([]);
3848
- }
3849
- }
3806
+ };
3807
+
3808
+ // dist/sdk/cli-contracts/tool-schema.js
3850
3809
  var PM_TOOL_GLOBAL_PARAMETER_KEYS = [
3851
3810
  "json",
3852
3811
  "quiet",
@@ -3947,6 +3906,20 @@ var SEARCH_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
3947
3906
  "full",
3948
3907
  ...TOOL_SEARCH_FILTER_OPTION_CONTRACTS.map((entry) => entry.param)
3949
3908
  ]);
3909
+ var NEXT_CONTRACT_PARAMETER_KEYS = toSchemaKeyList([
3910
+ "type",
3911
+ "tag",
3912
+ "priority",
3913
+ "assignee",
3914
+ "assigneeFilter",
3915
+ "sprint",
3916
+ "release",
3917
+ "parent",
3918
+ "limit",
3919
+ "blockedLimit",
3920
+ "readyOnly",
3921
+ "format"
3922
+ ]);
3950
3923
  var AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS = ["author", "message", "force"];
3951
3924
  var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
3952
3925
  init: { optional: ["prefix", "preset", "typePreset", "defaults", "author", "agentGuidance", "withPackages", "force", "verbose"] },
@@ -3962,7 +3935,7 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
3962
3935
  "extension-uninstall": { required: ["target"], optional: ["scope"] },
3963
3936
  "extension-explore": { optional: ["scope"] },
3964
3937
  "extension-manage": { optional: ["scope", "runtimeProbe", "fixManagedState"] },
3965
- "extension-describe": { optional: ["target", "scope"] },
3938
+ "extension-describe": { optional: ["target", "scope", "markdown", "output"] },
3966
3939
  "extension-reload": { optional: ["scope", "watch"] },
3967
3940
  "extension-doctor": { optional: ["scope", "detail", "trace", "fixManagedState", "strictExit", "failOnWarn"] },
3968
3941
  "extension-catalog": { optional: ["scope", "fields"] },
@@ -3982,6 +3955,8 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
3982
3955
  "explore",
3983
3956
  "manage",
3984
3957
  "describe",
3958
+ "markdown",
3959
+ "output",
3985
3960
  "reload",
3986
3961
  "doctor",
3987
3962
  "catalog",
@@ -4006,7 +3981,7 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
4006
3981
  "package-uninstall": { required: ["target"], optional: ["scope"] },
4007
3982
  "package-explore": { optional: ["scope"] },
4008
3983
  "package-manage": { optional: ["scope", "runtimeProbe", "fixManagedState"] },
4009
- "package-describe": { optional: ["target", "scope"] },
3984
+ "package-describe": { optional: ["target", "scope", "markdown", "output"] },
4010
3985
  "package-reload": { optional: ["scope", "watch"] },
4011
3986
  "package-doctor": { optional: ["scope", "detail", "trace", "fixManagedState", "strictExit", "failOnWarn"] },
4012
3987
  "package-catalog": { optional: ["scope", "fields"] },
@@ -4026,6 +4001,8 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
4026
4001
  "explore",
4027
4002
  "manage",
4028
4003
  "describe",
4004
+ "markdown",
4005
+ "output",
4029
4006
  "reload",
4030
4007
  "doctor",
4031
4008
  "catalog",
@@ -4065,7 +4042,7 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
4065
4042
  "list-canceled": { optional: LIST_CONTRACT_PARAMETER_KEYS },
4066
4043
  aggregate: { optional: AGGREGATE_CONTRACT_PARAMETER_KEYS },
4067
4044
  "dedupe-audit": { optional: DEDUPE_AUDIT_CONTRACT_PARAMETER_KEYS },
4068
- guide: { optional: ["format", "depth"] },
4045
+ guide: { optional: ["list", "format", "depth"] },
4069
4046
  context: { optional: CONTEXT_CONTRACT_PARAMETER_KEYS },
4070
4047
  ctx: { optional: CONTEXT_CONTRACT_PARAMETER_KEYS },
4071
4048
  get: { required: ["id"], optional: ["depth", "full", "fields", "tree", "treeDepth", "format"] },
@@ -4073,6 +4050,7 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
4073
4050
  optional: SEARCH_CONTRACT_PARAMETER_KEYS,
4074
4051
  anyOfRequired: [["query"], ["keywords"]]
4075
4052
  },
4053
+ next: { optional: NEXT_CONTRACT_PARAMETER_KEYS },
4076
4054
  reindex: { optional: ["mode", "progress"] },
4077
4055
  history: { required: ["id"], optional: ["limit", "compact", "full", "diff", "verify", "format"] },
4078
4056
  "history-redact": {
@@ -4134,6 +4112,16 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
4134
4112
  { property: "subcommand", value: "apply-preset", required: ["typePreset"] }
4135
4113
  ]
4136
4114
  },
4115
+ profile: {
4116
+ required: ["subcommand"],
4117
+ // No --message: profile staging writes config/schema files, not item history.
4118
+ optional: ["name", "dryRun", "author", "force"],
4119
+ conditionalRequired: [
4120
+ { property: "subcommand", value: "show", required: ["name"] },
4121
+ { property: "subcommand", value: "apply", required: ["name"] },
4122
+ { property: "subcommand", value: "lint", required: ["name"] }
4123
+ ]
4124
+ },
4137
4125
  plan: {
4138
4126
  required: ["subcommand"],
4139
4127
  optional: [
@@ -4196,7 +4184,20 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
4196
4184
  update: { required: ["id"], optional: UPDATE_CONTRACT_PARAMETER_KEYS },
4197
4185
  "update-many": { optional: UPDATE_MANY_CONTRACT_PARAMETER_KEYS },
4198
4186
  normalize: { optional: NORMALIZE_CONTRACT_PARAMETER_KEYS },
4199
- close: { required: ["id"], optional: ["text", "duplicateOf", "validateClose", ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS] },
4187
+ close: {
4188
+ required: ["id"],
4189
+ optional: [
4190
+ "text",
4191
+ "reason",
4192
+ "closeReason",
4193
+ "duplicateOf",
4194
+ "validateClose",
4195
+ "resolution",
4196
+ "expectedResult",
4197
+ "actualResult",
4198
+ ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS
4199
+ ]
4200
+ },
4200
4201
  "close-many": { optional: CLOSE_MANY_CONTRACT_PARAMETER_KEYS },
4201
4202
  delete: { required: ["id"], optional: ["dryRun", ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS] },
4202
4203
  append: { required: ["id", "body"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
@@ -4236,6 +4237,7 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
4236
4237
  "addGlob",
4237
4238
  "remove",
4238
4239
  "migrate",
4240
+ "list",
4239
4241
  // GH-170 (pm-pfnx): `addNote` is the MCP spelling of the CLI --note flag
4240
4242
  // (the shared `note` parameter is the array-typed create/update note
4241
4243
  // seed, so files/docs use a distinct single-string key).
@@ -4346,6 +4348,7 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
4346
4348
  "noRefresh",
4347
4349
  "refreshVectors",
4348
4350
  "verboseStaleItems",
4351
+ "brief",
4349
4352
  "summary",
4350
4353
  "skipVectors",
4351
4354
  "skipIntegrity",
@@ -4361,6 +4364,7 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
4361
4364
  "checkLifecycle",
4362
4365
  "checkStaleBlockers",
4363
4366
  "dependencyCycleSeverity",
4367
+ "parentCycleSeverity",
4364
4368
  "checkFiles",
4365
4369
  "scanMode",
4366
4370
  "includePmInternals",
@@ -4379,13 +4383,13 @@ var PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
4379
4383
  ]
4380
4384
  },
4381
4385
  gc: { optional: ["dryRun", "gcScope"] },
4382
- contracts: { optional: ["contractAction", "command", "schemaOnly", "flagsOnly", "availabilityOnly", "runtimeOnly", "activeOnly"] },
4386
+ contracts: { optional: ["contractAction", "command", "schemaOnly", "flagsOnly", "availabilityOnly", "runtimeOnly", "activeOnly", "full"] },
4383
4387
  completion: { required: ["shell"], optional: ["eagerTags"] },
4384
4388
  claim: { required: ["id"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
4385
4389
  release: { required: ["id"], optional: ["allowAuditRelease", ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS] },
4386
4390
  "start-task": { required: ["id"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
4387
4391
  "pause-task": { required: ["id"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
4388
- "close-task": { required: ["id"], optional: ["text", ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS] }
4392
+ "close-task": { required: ["id"], optional: ["text", "validateClose", ...AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS] }
4389
4393
  };
4390
4394
  var PM_TOOL_ACTION_PARAMETER_CONTRACTS = Object.freeze(Object.fromEntries(PM_TOOL_ACTIONS.map((action) => [action, PM_TOOL_ACTION_SCHEMA_CONTRACTS[action]])));
4391
4395
  function fallbackToolParameterDescription(key) {
@@ -4404,6 +4408,10 @@ function actionScopedToolParameterMetadata(action, key) {
4404
4408
  if (action === "plan" && Object.prototype.hasOwnProperty.call(PLAN_ACTION_PARAMETER_METADATA, key)) {
4405
4409
  return PLAN_ACTION_PARAMETER_METADATA[key];
4406
4410
  }
4411
+ const actionOverrides = PM_TOOL_ACTION_SCOPED_PARAMETER_METADATA[action];
4412
+ if (actionOverrides && Object.prototype.hasOwnProperty.call(actionOverrides, key)) {
4413
+ return actionOverrides[key];
4414
+ }
4407
4415
  return PM_TOOL_PARAMETER_METADATA[key];
4408
4416
  }
4409
4417
  function decorateActionScopedToolParameterDefinition(action, key, definition) {
@@ -4424,12 +4432,7 @@ function actionScopedToolParameterDefinition(action, key) {
4424
4432
  }
4425
4433
  return PM_TOOL_PARAMETER_PROPERTIES[key];
4426
4434
  }
4427
- function buildActionScopedToolSchema(action) {
4428
- const contract = PM_TOOL_ACTION_SCHEMA_CONTRACTS[action];
4429
- const required = toSchemaKeyList(contract.required ?? []);
4430
- const optional = toSchemaKeyList(contract.optional ?? []);
4431
- const mutationParameterKeys = PM_TOOL_ACTION_MUTATION_PARAMETER_KEYS[action] ?? [];
4432
- const allowedKeys = toSchemaKeyList(["action", ...PM_TOOL_GLOBAL_PARAMETER_KEYS, ...mutationParameterKeys, ...required, ...optional]);
4435
+ function buildActionScopedSchemaProperties(action, allowedKeys) {
4433
4436
  const properties = {
4434
4437
  action: {
4435
4438
  const: action,
@@ -4445,48 +4448,42 @@ function buildActionScopedToolSchema(action) {
4445
4448
  properties[key] = decorateActionScopedToolParameterDefinition(action, key, definition);
4446
4449
  }
4447
4450
  }
4448
- const schema = {
4449
- type: "object",
4450
- additionalProperties: false,
4451
- required: ["action", ...required],
4452
- title: `pm action "${action}" parameters`,
4453
- properties
4454
- };
4455
- if (contract.anyOfRequired && contract.anyOfRequired.length > 0) {
4456
- schema.anyOf = contract.anyOfRequired.map((requiredFields) => ({
4457
- required: [...requiredFields]
4458
- }));
4459
- }
4460
- const oneOfRequiredGroups = contract.oneOfRequired;
4461
- if (oneOfRequiredGroups && oneOfRequiredGroups.length > 0) {
4462
- const allOneOfFields = oneOfRequiredGroups.flat();
4463
- schema.oneOf = oneOfRequiredGroups.map((requiredFields) => {
4464
- const otherFields = allOneOfFields.filter((field) => !requiredFields.includes(field));
4465
- return {
4466
- required: [...requiredFields],
4467
- ...otherFields.length > 0 ? { not: { anyOf: otherFields.map((field) => ({ required: [field] })) } } : {},
4468
- ...action === "history-repair" && requiredFields.includes("all") ? { properties: { all: { const: true } } } : {}
4469
- };
4470
- });
4471
- }
4451
+ return properties;
4452
+ }
4453
+ function buildOneOfSchemaEntries(action, oneOfRequiredGroups) {
4454
+ const allOneOfFields = oneOfRequiredGroups.flat();
4455
+ return oneOfRequiredGroups.map((requiredFields) => {
4456
+ const otherFields = allOneOfFields.filter((field) => !requiredFields.includes(field));
4457
+ return {
4458
+ required: [...requiredFields],
4459
+ ...otherFields.length > 0 ? { not: { anyOf: otherFields.map((field) => ({ required: [field] })) } } : {},
4460
+ ...action === "history-repair" && requiredFields.includes("all") ? { properties: { all: { const: true } } } : {}
4461
+ };
4462
+ });
4463
+ }
4464
+ function buildActionScopedAllOf(contract) {
4465
+ const allOf = [];
4472
4466
  if (contract.conditionalRequired && contract.conditionalRequired.length > 0) {
4473
- schema.allOf = contract.conditionalRequired.map((entry) => ({
4474
- if: {
4475
- properties: {
4476
- [entry.property]: { const: entry.value }
4467
+ for (const entry of contract.conditionalRequired) {
4468
+ allOf.push({
4469
+ if: {
4470
+ properties: {
4471
+ [entry.property]: { const: entry.value }
4472
+ },
4473
+ required: [entry.property]
4477
4474
  },
4478
- required: [entry.property]
4479
- },
4480
- then: {
4481
- required: entry.required
4482
- }
4483
- }));
4475
+ // eslint-disable-next-line unicorn/no-thenable -- JSON Schema conditional keyword, not a Promise-like object.
4476
+ then: {
4477
+ required: entry.required
4478
+ }
4479
+ });
4480
+ }
4484
4481
  }
4485
4482
  if (contract.dependentAnyOfRequired && contract.dependentAnyOfRequired.length > 0) {
4486
- const allOf = Array.isArray(schema.allOf) ? [...schema.allOf] : [];
4487
4483
  for (const entry of contract.dependentAnyOfRequired) {
4488
4484
  allOf.push({
4489
4485
  if: { required: [entry.property] },
4486
+ // eslint-disable-next-line unicorn/no-thenable -- JSON Schema conditional keyword, not a Promise-like object.
4490
4487
  then: {
4491
4488
  anyOf: entry.anyOfRequired.map((requiredFields) => ({
4492
4489
  required: [...requiredFields]
@@ -4494,13 +4491,37 @@ function buildActionScopedToolSchema(action) {
4494
4491
  }
4495
4492
  });
4496
4493
  }
4497
- schema.allOf = allOf;
4498
4494
  }
4499
4495
  if (contract.mutuallyExclusive && contract.mutuallyExclusive.length > 0) {
4500
- const allOf = Array.isArray(schema.allOf) ? [...schema.allOf] : [];
4501
4496
  for (const group of contract.mutuallyExclusive) {
4502
4497
  allOf.push({ not: { required: toSchemaKeyList(group) } });
4503
4498
  }
4499
+ }
4500
+ return allOf;
4501
+ }
4502
+ function buildActionScopedToolSchema(action) {
4503
+ const contract = PM_TOOL_ACTION_SCHEMA_CONTRACTS[action];
4504
+ const required = toSchemaKeyList(contract.required ?? []);
4505
+ const optional = toSchemaKeyList(contract.optional ?? []);
4506
+ const mutationParameterKeys = PM_TOOL_ACTION_MUTATION_PARAMETER_KEYS[action] ?? [];
4507
+ const allowedKeys = toSchemaKeyList(["action", ...PM_TOOL_GLOBAL_PARAMETER_KEYS, ...mutationParameterKeys, ...required, ...optional]);
4508
+ const schema = {
4509
+ type: "object",
4510
+ additionalProperties: false,
4511
+ required: ["action", ...required],
4512
+ title: `pm action "${action}" parameters`,
4513
+ properties: buildActionScopedSchemaProperties(action, allowedKeys)
4514
+ };
4515
+ if (contract.anyOfRequired && contract.anyOfRequired.length > 0) {
4516
+ schema.anyOf = contract.anyOfRequired.map((requiredFields) => ({
4517
+ required: [...requiredFields]
4518
+ }));
4519
+ }
4520
+ if (contract.oneOfRequired && contract.oneOfRequired.length > 0) {
4521
+ schema.oneOf = buildOneOfSchemaEntries(action, contract.oneOfRequired);
4522
+ }
4523
+ const allOf = buildActionScopedAllOf(contract);
4524
+ if (allOf.length > 0) {
4504
4525
  schema.allOf = allOf;
4505
4526
  }
4506
4527
  return schema;
@@ -4521,7 +4542,7 @@ function createLazyContractSchema(build) {
4521
4542
  }
4522
4543
  });
4523
4544
  }
4524
- var PM_TOOL_PARAMETERS_SCHEMA_VERSION = "4.0.3";
4545
+ var PM_TOOL_PARAMETERS_SCHEMA_VERSION = "4.0.6";
4525
4546
  var PM_TOOL_PARAMETERS_SCHEMA_MAJOR = PM_TOOL_PARAMETERS_SCHEMA_VERSION.split(".")[0];
4526
4547
  var PM_PROVIDER_TOOL_PARAMETERS_SCHEMA_VERSION = "1.0.0";
4527
4548
  var PM_TOOL_PARAMETERS_SCHEMA = createLazyContractSchema(() => ({
@@ -4542,8 +4563,8 @@ function toProviderCompatibleParameterDefinition(key, definition) {
4542
4563
  if (firstTypedVariant) {
4543
4564
  const { anyOf: _anyOf2, ...rest2 } = decorated;
4544
4565
  return {
4545
- ...rest2,
4546
- type: firstTypedVariant.type
4566
+ ...firstTypedVariant,
4567
+ ...rest2
4547
4568
  };
4548
4569
  }
4549
4570
  const { anyOf: _anyOf, ...rest } = decorated;
@@ -4583,6 +4604,7 @@ export {
4583
4604
  SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,
4584
4605
  CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS,
4585
4606
  CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,
4607
+ NEXT_COMMANDER_STRING_OPTION_CONTRACTS,
4586
4608
  ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,
4587
4609
  readFirstStringFromCommanderOptions,
4588
4610
  readFirstValueFromCommanderOptions,
@@ -4618,11 +4640,14 @@ export {
4618
4640
  HISTORY_REPAIR_FLAG_CONTRACTS,
4619
4641
  HISTORY_COMPACT_FLAG_CONTRACTS,
4620
4642
  SCHEMA_FLAG_CONTRACTS,
4643
+ PROFILE_FLAG_CONTRACTS,
4621
4644
  PLAN_FLAG_CONTRACTS,
4622
4645
  INIT_FLAG_CONTRACTS,
4623
4646
  CONFIG_FLAG_CONTRACTS,
4624
4647
  EXTENSION_FLAG_CONTRACTS,
4625
4648
  EXTENSION_INIT_FLAG_CONTRACTS,
4649
+ PACKAGE_FLAG_CONTRACTS,
4650
+ PACKAGE_INIT_FLAG_CONTRACTS,
4626
4651
  EXTENSION_INSTALL_FLAG_CONTRACTS,
4627
4652
  EXTENSION_UNINSTALL_FLAG_CONTRACTS,
4628
4653
  EXTENSION_EXPLORE_FLAG_CONTRACTS,
@@ -4667,12 +4692,13 @@ export {
4667
4692
  GUIDE_FLAG_CONTRACTS,
4668
4693
  DEPS_FLAG_CONTRACTS,
4669
4694
  EVAL_FLAG_CONTRACTS,
4695
+ NEXT_FLAG_CONTRACTS,
4670
4696
  SEARCH_FLAG_CONTRACTS,
4671
4697
  CONTRACTS_FLAG_CONTRACTS,
4672
4698
  COMPLETION_FLAG_CONTRACTS,
4673
4699
  resolveSubcommandFlagContractsForCommand,
4674
4700
  PM_TOOL_PARAMETERS_SCHEMA
4675
4701
  };
4676
- //# sourceMappingURL=chunk-OF7V47P3.js.map
4702
+ //# sourceMappingURL=chunk-HXTQJXWT.js.map
4677
4703
 
4678
- //# debugId=358fc257-d2e2-5538-b106-a600db4ae795
4704
+ //# debugId=43af9766-fa42-5af2-8e94-459bc0205f26