@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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../cli/register-list-query.ts","../../../../../../../../core/output/tabular.ts"],"sourcesContent":["/**\n * @module cli/register-list-query\n *\n * Provides CLI runtime support for Register List Query.\n */\nimport { Option, type Command } from \"commander\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport { renderRowsAsCsv, renderRowsAsTable } from \"../core/output/tabular.js\";\nimport type { ItemStatus } from \"../types/index.js\";\nimport {\n getGlobalOptions,\n normalizeAggregateOptions,\n normalizeActivityOptions,\n normalizeContextOptions,\n normalizeListOptions,\n normalizeNextOptions,\n normalizeSearchKeywordsInput,\n normalizeSearchOptions,\n printActivityJsonStream,\n printError,\n printListJsonStream,\n printResult,\n resolveActivityStreamMode,\n writeStdout,\n} from \"./registration-helpers.js\";\n\n\n\n/**\n * Documents the register list query commands options payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisterListQueryCommandsOptions {\n commandFilter?: Set<string>;\n}\n\nfunction shouldRegisterListQueryCommand(commandName: string, commandFilter?: Set<string>): boolean {\n if (!commandFilter || commandFilter.size === 0) {\n return true;\n }\n if (commandName === \"context\") {\n return commandFilter.has(\"context\") || commandFilter.has(\"ctx\");\n }\n return commandFilter.has(commandName);\n}\n\ntype ReadCommandOutputFormat = \"json\" | \"toon\";\n\ntype ListOutputFormat = \"csv\" | \"table\" | \"json\" | \"toon\";\n\n/**\n * Parses the `pm list --format` value into a supported render mode. csv/table\n * are human export modes; json/toon override the machine output format. Returns\n * undefined when no `--format` was supplied so the global output format applies.\n */\nfunction parseListFormat(rawFormat: unknown): ListOutputFormat | undefined {\n if (rawFormat === undefined) {\n return undefined;\n }\n if (typeof rawFormat !== \"string\") {\n throw new PmCliError(\"List --format must be one of csv|table|json|toon\", EXIT_CODE.USAGE);\n }\n const normalized = rawFormat.trim().toLowerCase();\n if (normalized === \"csv\" || normalized === \"table\" || normalized === \"json\" || normalized === \"toon\") {\n return normalized;\n }\n throw new PmCliError(\"List --format must be one of csv|table|json|toon\", EXIT_CODE.USAGE);\n}\n\nfunction resolveReadCommandOutputFormat(\n commandLabel: string,\n rawFormat: unknown,\n globalOptions: ReturnType<typeof getGlobalOptions>,\n): ReturnType<typeof getGlobalOptions> {\n if (rawFormat === undefined) {\n return globalOptions;\n }\n if (typeof rawFormat !== \"string\") {\n throw new PmCliError(`${commandLabel} --format must be one of json|toon`, EXIT_CODE.USAGE);\n }\n const normalized = rawFormat.trim().toLowerCase() as ReadCommandOutputFormat;\n if (normalized !== \"json\" && normalized !== \"toon\") {\n throw new PmCliError(`${commandLabel} --format must be one of json|toon`, EXIT_CODE.USAGE);\n }\n if (globalOptions.json === true && normalized === \"toon\") {\n throw new PmCliError(`${commandLabel} cannot combine --json with --format toon`, EXIT_CODE.USAGE);\n }\n return {\n ...globalOptions,\n json: normalized === \"json\",\n };\n}\n\n/**\n * Implements register list query commands for the public runtime surface of this module.\n */\nexport function registerListQueryCommands(program: Command, options?: RegisterListQueryCommandsOptions): void {\n const commandFilter = options?.commandFilter;\n const shouldRegister = (commandName: string): boolean => shouldRegisterListQueryCommand(commandName, commandFilter);\n // Register a flag and hide it from --help text while keeping it functional as\n // a parse-time alias. Used for pure snake_case underscore-duplicate aliases\n // (e.g. --assignee_filter for --assignee-filter) so they no longer bloat\n // --help output. The option still appears in command.options, so JSON help\n // and completion are unchanged.\n function addHiddenOption(command: Command, flags: string, description: string): void {\n command.addOption(new Option(flags, description).hideHelp());\n }\n\n // Register the content-field presence/absence filters (GH-242) and the\n // governance-missing filters (GH-236) on a list-family or search command.\n // Presence flags are plain booleans; absence flags use commander negation\n // (`--no-notes` stores notes=false) except `--empty-body` which is its own\n // dest so it composes with a future `--has-body`. linked_command tracks\n // whether a linked test carries a runnable command.\n function registerContentAndGovernanceFilters(command: Command): void {\n command\n .option(\"--has-notes\", \"Show only items that have notes\")\n .option(\"--has-learnings\", \"Show only items that have learnings\")\n .option(\"--has-files\", \"Show only items that have linked files\")\n .option(\"--has-docs\", \"Show only items that have linked docs\")\n .option(\"--has-tests\", \"Show only items that have linked tests\")\n .option(\"--has-comments\", \"Show only items that have comments\")\n .option(\"--has-deps\", \"Show only items that have dependencies\")\n .option(\"--has-body\", \"Show only items that have a non-empty body\")\n .option(\"--has-linked-command\", \"Show only items whose linked tests carry a runnable command\")\n .option(\"--no-notes\", \"Show only items that have no notes\")\n .option(\"--no-learnings\", \"Show only items that have no learnings\")\n .option(\"--no-files\", \"Show only items that have no linked files\")\n .option(\"--no-docs\", \"Show only items that have no linked docs\")\n .option(\"--no-tests\", \"Show only items that have no linked tests\")\n .option(\"--no-comments\", \"Show only items that have no comments\")\n .option(\"--no-deps\", \"Show only items that have no dependencies\")\n .option(\"--empty-body\", \"Show only items with an empty body\")\n .option(\"--no-linked-command\", \"Show only items whose linked tests carry no runnable command\")\n .option(\"--filter-reviewer-missing\", \"Show only items missing reviewer\")\n .option(\"--filter-risk-missing\", \"Show only items missing risk\")\n .option(\"--filter-confidence-missing\", \"Show only items missing confidence\")\n .option(\"--filter-sprint-missing\", \"Show only items missing sprint\")\n .option(\"--filter-release-missing\", \"Show only items missing release\");\n }\n\n function registerListCommand(\n name: string,\n description: string,\n status?: ItemStatus,\n excludeTerminal?: boolean,\n allowStatusFilter?: boolean,\n defaultBrief?: boolean,\n ): void {\n const command = program.command(name).description(description);\n if (allowStatusFilter) {\n command.option(\"--status <value>\", \"Filter by status (use all for no status restriction)\");\n }\n command\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--updated-after <value>\", 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. \"-2h\"/\"-7d\" for the past). \"Changed since my last window\" → --updated-after <ISO>')\n .option(\"--updated-before <value>\", \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-after <value>\", \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-before <value>\", \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--ids <value>\", \"Filter by explicit item IDs (comma-separated or repeatable)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--filter-ac-missing\", \"Show only items missing acceptance_criteria\")\n .option(\"--filter-estimates-missing\", \"Show only items missing estimated_minutes\")\n .option(\"--filter-resolution-missing\", \"Show only terminal items missing resolution\")\n .option(\"--filter-metadata-missing\", \"Show only items missing any tracked metadata (AC, estimate, or resolution)\")\n .option(\"--limit <n>\", \"Limit returned item count\")\n .option(\"--offset <n>\", \"Skip the first n matching rows before limit is applied\")\n .option(\"--no-truncate\", \"Return every matched row, overriding any --limit (alias: --all)\")\n .option(\"--include-body\", \"Include item body in each returned list row\")\n .option(\"--compact\", \"Render compact list projection fields (mutually exclusive with --brief/--full/--fields)\")\n .option(\"--brief\", \"Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)\")\n .option(\"--full\", \"Render full list projection fields (mutually exclusive with --compact/--brief/--fields)\")\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)\",\n )\n .option(\"--sort <value>\", \"Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)\")\n .option(\"--order <value>\", \"Sort order: asc|desc (requires --sort)\")\n .option(\"--tree\", \"Render rows in parent/child tree order\")\n .option(\"--tree-depth <n>\", \"Maximum recursion depth with --tree (0 keeps root rows only)\")\n .option(\"--format <value>\", \"Output render mode: csv|table (human export) or json|toon (machine output override)\")\n .option(\"--stream\", \"Emit line-delimited JSON rows (requires --json)\");\n registerContentAndGovernanceFilters(command);\n command\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const listOptions = normalizeListOptions(options);\n if (\n defaultBrief === true &&\n listOptions.includeBody !== true &&\n listOptions.compact !== true &&\n listOptions.brief !== true &&\n listOptions.full !== true &&\n listOptions.fields === undefined\n ) {\n listOptions.brief = true;\n }\n if (excludeTerminal) listOptions.excludeTerminal = true;\n const { runList } = await import(\"./commands/list.js\");\n const result = await runList(status, listOptions, globalOptions);\n const streamMode = options.stream === true;\n const listFormat = parseListFormat(options.format);\n const tabular = listFormat === \"csv\" || listFormat === \"table\";\n // json|toon reuse the shared read-command override (honours the\n // --json + --format toon conflict); csv|table are human render modes.\n const effectiveGlobal =\n listFormat === \"json\" || listFormat === \"toon\"\n ? resolveReadCommandOutputFormat(\"List\", options.format, globalOptions)\n : globalOptions;\n if (streamMode && !effectiveGlobal.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\n }\n if (tabular && streamMode) {\n throw new PmCliError(\"--format csv|table cannot be combined with --stream (line-delimited JSON).\", EXIT_CODE.USAGE);\n }\n if (tabular) {\n const rows = result.items as Array<Record<string, unknown>>;\n const rendered = listFormat === \"csv\" ? renderRowsAsCsv(rows) : renderRowsAsTable(rows);\n if (!effectiveGlobal.quiet && rendered.length > 0) {\n writeStdout(`${rendered}\\n`);\n }\n } else if (streamMode) {\n printListJsonStream(name, result, effectiveGlobal);\n } else {\n printResult(result, effectiveGlobal);\n }\n if (globalOptions.profile) {\n printError(`profile:command=${name} took_ms=${Date.now() - startedAt}`);\n }\n });\n // Positive alias for --no-truncate (Commander stores the negation as truncate=false).\n addHiddenOption(command, \"--all\", \"Alias for --no-truncate\");\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(command, \"--tags <value>\", \"Alias for --tag\");\n addHiddenOption(command, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n addHiddenOption(command, \"--tree_depth <n>\", \"Alias for --tree-depth\");\n // Singular alias so `--filter-estimate-missing` works (matches update-many spelling).\n addHiddenOption(command, \"--filter-estimate-missing\", \"Alias for --filter-estimates-missing\");\n }\n\n if (shouldRegister(\"list\")) {\n registerListCommand(\"list\", \"List active items with optional filters.\", undefined, true, true, true);\n }\n if (shouldRegister(\"list-all\")) {\n registerListCommand(\"list-all\", \"List all items with optional filters.\", undefined, false, true);\n }\n if (shouldRegister(\"list-draft\")) {\n registerListCommand(\"list-draft\", \"List draft items with optional filters.\", \"draft\");\n }\n if (shouldRegister(\"list-open\")) {\n registerListCommand(\"list-open\", \"List open items with optional filters.\", \"open\", false, false, true);\n }\n if (shouldRegister(\"list-in-progress\")) {\n registerListCommand(\"list-in-progress\", \"List in-progress items with optional filters.\", \"in_progress\", false, false, true);\n }\n if (shouldRegister(\"list-blocked\")) {\n registerListCommand(\"list-blocked\", \"List blocked items with optional filters.\", \"blocked\", false, false, true);\n }\n if (shouldRegister(\"list-closed\")) {\n registerListCommand(\"list-closed\", \"List closed items with optional filters.\", \"closed\");\n }\n if (shouldRegister(\"list-canceled\")) {\n registerListCommand(\"list-canceled\", \"List canceled items with optional filters.\", \"canceled\");\n }\n\n if (shouldRegister(\"aggregate\")) {\n const aggregateCommand = program\n .command(\"aggregate\")\n .description(\"Aggregate grouped item counts for governance queries.\")\n .option(\n \"--group-by <value>\",\n \"Comma-separated group-by fields (supported: parent,type,priority,status,assignee,tags,sprint,release)\",\n )\n .option(\"--count\", \"Return grouped counts (default behavior)\")\n .option(\"--completion\", \"Add open/in_progress/closed/other counts and completion_pct per group\")\n .option(\"--sum <field>\", \"Sum a numeric field per group\")\n .option(\"--avg <field>\", \"Average a numeric field per group\")\n .option(\"--include-unparented\", \"Include unparented rows when grouping by parent\")\n .option(\"--status <value>\", \"Filter by item status\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\");\n // Hidden pure snake_case underscore-duplicate aliases (kept parse-functional).\n addHiddenOption(aggregateCommand, \"--include_unparented\", \"Alias for --include-unparented\");\n addHiddenOption(aggregateCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n aggregateCommand\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runAggregate } = await import(\"./commands/aggregate.js\");\n const result = await runAggregate(normalizeAggregateOptions(options), globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"context\")) {\n const contextCommand = program\n .command(\"context\")\n .alias(\"ctx\")\n .description(\"Show a token-efficient project context snapshot for next-work decisions.\")\n .option(\"--date <value>\", \"Anchor date/time for agenda window calculations (ISO/date string or relative)\")\n .option(\"--from <value>\", \"Agenda lower bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Agenda upper bound (ISO/date string or relative)\")\n .option(\"--past\", \"Include past agenda entries in bounded windows\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--parent <id>\", \"Scope the snapshot to one item's subtree (the item plus all descendants)\")\n .option(\"--limit <n>\", \"Limit focus and agenda rows per section\")\n .option(\"--format <value>\", \"Context output format override: markdown|toon|json\")\n .option(\"--depth <value>\", \"Context depth: brief|standard|deep|full (full = every section, no per-section cap)\")\n .option(\"--section <value...>\", \"Include specific sections (repeatable; overrides --depth)\")\n .option(\"--fields <value>\", \"Project focus rows to a comma-separated field subset (e.g. id,title,priority)\")\n .option(\"--activity-limit <n>\", \"Limit recent activity entries (default: settings or 10)\")\n .option(\"--stale-threshold <value>\", \"Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)\");\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(contextCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n contextCommand\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const normalized = normalizeContextOptions(options);\n const commands = await import(\"./commands/context.js\");\n const result = await commands.runContext(normalized, globalOptions);\n const outputFormat = commands.resolveContextOutputFormat(normalized, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${commands.renderContextMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, {\n ...globalOptions,\n json: outputFormat === \"json\",\n });\n }\n if (globalOptions.profile) {\n printError(`profile:command=context took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"next\")) {\n const nextCommand = program\n .command(\"next\")\n .description(\"Recommend the next actionable (unblocked, ready) work item with rationale + blocked companion.\")\n .option(\"--type <value>\", \"Filter candidate items by type\")\n .option(\"--tag <value>\", \"Filter candidate items by tag\")\n .option(\"--priority <value>\", \"Filter candidate items by priority\")\n .option(\"--assignee <value>\", \"Filter candidate items by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--sprint <value>\", \"Filter candidate items by sprint\")\n .option(\"--release <value>\", \"Filter candidate items by release\")\n .option(\"--parent <id>\", \"Scope to one item's subtree (the item plus all descendants)\")\n .option(\"--limit <n>\", \"Limit ready rows (default: 5; non-positive falls back to default)\")\n .option(\"--blocked-limit <n>\", \"Limit blocked rows (default: same as --limit)\")\n .option(\"--ready-only\", \"Omit the blocked companion list\")\n .option(\"--format <value>\", \"Next output format override: markdown|toon|json\");\n addHiddenOption(nextCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n addHiddenOption(nextCommand, \"--blocked_limit <n>\", \"Alias for --blocked-limit\");\n addHiddenOption(nextCommand, \"--ready_only\", \"Alias for --ready-only\");\n nextCommand.action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const commands = await import(\"./commands/next.js\");\n const nextOptions = normalizeNextOptions(options);\n const result = await commands.runNext(nextOptions, globalOptions);\n const outputFormat = commands.resolveNextOutputFormat(nextOptions, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${commands.renderNextMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, { ...globalOptions, json: outputFormat === \"json\" });\n }\n if (globalOptions.profile) {\n printError(`profile:command=next took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"search\")) {\n const searchCommand = program\n .command(\"search\")\n .argument(\"<keywords...>\", \"Keyword query tokens\")\n .description(\n \"Search items with keyword, semantic, or hybrid retrieval. Inline field:value tokens \" +\n \"(tag:/status:/type:/priority:) in the query are parsed as filters, e.g. 'auth tag:area:search status:open'.\",\n )\n .option(\"--mode <value>\", \"Search mode: keyword|semantic|hybrid (default: keyword)\")\n .option(\"--semantic\", \"Shorthand for --mode semantic\")\n .option(\"--hybrid\", \"Shorthand for --mode hybrid\")\n .option(\n \"--match-mode <value>\",\n \"Token match mode: and|or|exact (default: or with all-terms ranking bonus; and = hard-require every token; exact = exact phrase)\",\n )\n .option(\n \"--min-score <value>\",\n \"Per-query minimum score threshold (finite number >= 0); overrides settings search.score_threshold for this query only\",\n )\n .option(\"--count\", \"Return only the count of matching items (post-filter/threshold, pre-limit); skips hit rows\")\n .option(\n \"--semantic-weight <value>\",\n \"Override hybrid semantic weight for this query (0..1); invalid values fall back to settings\",\n )\n .option(\"--include-linked\", \"Include linked files, docs, and tests in the searchable corpus\")\n .option(\"--title-exact\", \"Require exact normalized title match for the full query string\")\n .option(\"--phrase-exact\", \"Require exact normalized phrase match in searchable text\")\n .option(\"--highlight\", \"Emit per-field matched-text snippets (wrapped in «…») on each hit; off by default\")\n .option(\"--status <value>\", \"Filter by status before query (all, open/closed/canceled aliases, or configured status id; CSV)\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--updated-after <value>\", 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. \"-2h\"/\"-7d\" for the past)')\n .option(\"--updated-before <value>\", \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-after <value>\", \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-before <value>\", \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--compact\", \"Render compact search hits (default; mutually exclusive with --full/--fields)\")\n .option(\"--full\", \"Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)\")\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated search hit fields (mutually exclusive with --compact/--full; valid: --fields id,title,score; invalid: --full --fields id,title)\",\n )\n .option(\"--format <value>\", \"Search output format override: json|toon\")\n .option(\"--limit <n>\", \"Limit returned item count\");\n registerContentAndGovernanceFilters(searchCommand);\n searchCommand\n .action(async (keywords: string[], options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runSearch } = await import(\"./commands/search.js\");\n const searchOptions = normalizeSearchOptions(options);\n const result = await runSearch(\n normalizeSearchKeywordsInput(keywords),\n {\n ...searchOptions,\n mode:\n typeof searchOptions.mode === \"string\" && searchOptions.mode.trim().length > 0\n ? searchOptions.mode\n : \"keyword\",\n },\n globalOptions,\n );\n printResult(result, resolveReadCommandOutputFormat(\"Search\", options.format, globalOptions));\n if (globalOptions.profile) {\n printError(`profile:command=search took_ms=${Date.now() - startedAt}`);\n }\n });\n addHiddenOption(searchCommand, \"--tags <value>\", \"Alias for --tag\");\n }\n\n if (shouldRegister(\"eval\")) {\n program\n .command(\"eval\")\n .description(\n \"Evaluate search relevance against a curated golden-query set: reports nDCG@k, MRR@k, \" +\n \"precision@k, and recall@k per query plus the macro average. Use --fail-under as a CI gate.\",\n )\n .option(\"--mode <value>\", \"Default retrieval mode for queries without their own: keyword|semantic|hybrid (default: keyword)\")\n .option(\"--k <n>\", \"Metric cutoff @k (positive integer; default: 10)\")\n .option(\"--fail-under <value>\", \"Exit non-zero when aggregate nDCG@k falls below this threshold (0..1); CI gate\")\n .option(\"--queries <path>\", \"Path to the golden-query JSON file (default: <pmRoot>/search/eval-queries.json)\")\n .option(\"--format <value>\", \"Eval output format override: json|toon\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runEval } = await import(\"./commands/eval.js\");\n const result = await runEval(\n {\n mode: typeof options.mode === \"string\" ? options.mode : undefined,\n k: typeof options.k === \"string\" ? options.k : undefined,\n failUnder: typeof options.failUnder === \"string\" ? options.failUnder : undefined,\n queries: typeof options.queries === \"string\" ? options.queries : undefined,\n format: typeof options.format === \"string\" ? options.format : undefined,\n },\n globalOptions,\n );\n printResult(result, resolveReadCommandOutputFormat(\"Eval\", options.format, globalOptions));\n if (globalOptions.profile) {\n printError(`profile:command=eval took_ms=${Date.now() - startedAt}`);\n }\n if (!result.passed) {\n throw new PmCliError(\n `Eval gate failed: aggregate nDCG@${result.k} ${result.aggregate.ndcg} is below --fail-under ${result.fail_under}`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n });\n }\n\n if (shouldRegister(\"get\")) {\n const getCommand = program\n .command(\"get\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--depth <value>\", \"Detail depth: brief|standard|deep|full (full aliases deep; default: standard)\")\n .option(\"--full\", \"Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)\")\n .option(\"--fields <value>\", \"Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)\")\n .option(\"--tree\", \"Include descendants rooted at the requested item\")\n .option(\"--tree-depth <n>\", \"Maximum subtree depth for --tree descendants\")\n .option(\"--format <value>\", \"Get output format override: json|toon\")\n .description(\"Show item details by ID.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runGet } = await import(\"./commands/get.js\");\n const result = await runGet(\n id,\n globalOptions,\n {\n depth: typeof options.depth === \"string\" ? options.depth : undefined,\n fields: typeof options.fields === \"string\" ? options.fields : undefined,\n full: Boolean(options.full),\n tree: options.tree === true,\n treeDepth:\n typeof options.treeDepth === \"string\"\n ? options.treeDepth\n : typeof options.tree_depth === \"string\"\n ? options.tree_depth\n : undefined,\n },\n );\n printResult(result, resolveReadCommandOutputFormat(\"Get\", options.format, globalOptions));\n if (globalOptions.profile) {\n printError(`profile:command=get took_ms=${Date.now() - startedAt}`);\n }\n });\n addHiddenOption(getCommand, \"--tree_depth <n>\", \"Alias for --tree-depth\");\n }\n\n if (shouldRegister(\"history\")) {\n program\n .command(\"history\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--limit <n>\", \"Return only the latest n history entries\")\n .option(\"--compact\", \"Condensed output: show entry index, timestamp, op, author, patch count, and changed fields\")\n .option(\"--full\", \"Show full history entries with JSON Patch payloads\")\n .option(\"--diff\", \"Include per-entry field-level before/after value diffs computed by replaying the history chain\")\n .option(\"--field <name>\", \"With --diff, show only entries that changed this field (implies --diff)\")\n .option(\"--verify\", \"Verify hash chain and replay integrity for the full history stream\")\n .option(\"--format <value>\", \"History output format override: json|toon\")\n .description(\"Show item history entries.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"History projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const field = typeof options.field === \"string\" ? options.field : undefined;\n const { runHistory } = await import(\"./commands/history.js\");\n const result = await runHistory(\n id,\n {\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n compact: options.full === true ? false : true,\n diff: Boolean(options.diff) || field !== undefined,\n field,\n verify: Boolean(options.verify),\n },\n globalOptions,\n );\n printResult(result, resolveReadCommandOutputFormat(\"History\", options.format, globalOptions));\n if (globalOptions.profile) {\n printError(`profile:command=history took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"activity\")) {\n program\n .command(\"activity\")\n .option(\"--id <value>\", \"Filter by item ID\")\n .option(\"--op <value>\", \"Filter by history operation\")\n .option(\"--author <value>\", \"Filter by history author\")\n .option(\"--from <value>\", \"Lower timestamp bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Upper timestamp bound (ISO/date string or relative)\")\n .option(\"--limit <n>\", \"Return only the latest n activity entries\")\n .option(\"--compact\", \"Condensed output: show only id, op, ts, author, msg per entry\")\n .option(\"--full\", \"Show full activity entries with JSON Patch payloads\")\n .option(\"--stream [mode]\", \"Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl\")\n .description(\"Show recent activity across items.\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"Activity projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const normalized = normalizeActivityOptions(options);\n const { runActivity } = await import(\"./commands/activity.js\");\n const result = await runActivity(normalized, globalOptions);\n const streamMode = resolveActivityStreamMode(options.stream);\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\n }\n if (streamMode) {\n printActivityJsonStream(result, normalized, globalOptions);\n } else {\n printResult(result, globalOptions);\n }\n if (globalOptions.profile) {\n printError(`profile:command=activity took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n}\n\nexport const _testOnlyRegisterListQuery = {\n resolveReadCommandOutputFormat,\n parseListFormat,\n};\n","/**\n * @module core/output/tabular\n *\n * Renders projected item rows as CSV or fixed-width text tables for human\n * export. These are presentation-only modes (GH-154): agents continue to read\n * the structured `--json`/TOON output, while humans piping `pm list` into a\n * spreadsheet or terminal get a directly consumable shape.\n */\n\n/** A projected row: a flat map of column name to scalar/collection cell value. */\nexport type TabularRow = Record<string, unknown>;\n\n/**\n * Collects the ordered union of column names across every row, preserving the\n * order in which each key is first encountered so the rendered columns mirror\n * the projection field order rather than an arbitrary object-key order.\n */\nfunction resolveColumns(rows: TabularRow[]): string[] {\n const columns: string[] = [];\n const seen = new Set<string>();\n for (const row of rows) {\n for (const key of Object.keys(row)) {\n if (!seen.has(key)) {\n seen.add(key);\n columns.push(key);\n }\n }\n }\n return columns;\n}\n\n/**\n * Converts a single cell value to its flat string form. Arrays join with `;`\n * (spreadsheet-friendly and unambiguous against the CSV `,` delimiter), objects\n * serialize to compact JSON, and null/undefined render as an empty cell.\n */\nfunction renderCell(value: unknown): string {\n if (value === null || value === undefined) {\n return \"\";\n }\n if (Array.isArray(value)) {\n return value.map((entry) => renderCell(entry)).join(\";\");\n }\n if (typeof value === \"object\") {\n return JSON.stringify(value);\n }\n return String(value);\n}\n\n/**\n * Escapes a CSV field per RFC 4180: values containing the delimiter, a quote,\n * or a line break are wrapped in double quotes with embedded quotes doubled.\n */\nfunction escapeCsvField(value: string): string {\n if (/[\",\\r\\n]/.test(value)) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n}\n\n/**\n * Renders rows as RFC 4180 CSV with a header row of column names. Returns an\n * empty string when there are no rows so callers emit nothing rather than a\n * stray blank line.\n */\nexport function renderRowsAsCsv(rows: TabularRow[]): string {\n if (rows.length === 0) {\n return \"\";\n }\n const columns = resolveColumns(rows);\n const lines = [columns.map((column) => escapeCsvField(column)).join(\",\")];\n for (const row of rows) {\n lines.push(columns.map((column) => escapeCsvField(renderCell(row[column]))).join(\",\"));\n }\n return lines.join(\"\\n\");\n}\n\n/**\n * Renders rows as a fixed-width text table: a header row, a dashed separator,\n * and one padded row per item. Columns are widened to fit their widest cell so\n * the output stays aligned in a monospace terminal. Returns an empty string\n * when there are no rows.\n */\nexport function renderRowsAsTable(rows: TabularRow[]): string {\n if (rows.length === 0) {\n return \"\";\n }\n const columns = resolveColumns(rows);\n const cells = rows.map((row) => columns.map((column) => renderCell(row[column])));\n const widths = columns.map((column, index) =>\n Math.max(column.length, ...cells.map((rowCells) => rowCells[index].length)),\n );\n const pad = (value: string, index: number): string => value.padEnd(widths[index]);\n const lines = [columns.map((column, index) => pad(column, index)).join(\" | \")];\n lines.push(widths.map((width) => \"-\".repeat(width)).join(\"-+-\"));\n for (const rowCells of cells) {\n lines.push(rowCells.map((value, index) => pad(value, index)).join(\" | \"));\n }\n return lines.join(\"\\n\");\n}\n"],"names":["options"],"mappings":"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","debugId":"15f524fa-e0ca-51ff-b2df-504489023e9f"}
@@ -4,28 +4,27 @@ import {
4
4
  normalizeAggregateOptions,
5
5
  normalizeContextOptions,
6
6
  normalizeListOptions,
7
+ normalizeNextOptions,
7
8
  normalizeSearchKeywordsInput,
8
9
  normalizeSearchOptions,
9
10
  printActivityJsonStream,
10
11
  printListJsonStream,
11
12
  resolveActivityStreamMode
12
- } from "./chunk-J7I4C5ZB.js";
13
- import "./chunk-SMXSDY7J.js";
14
- import "./chunk-HZF5RLKX.js";
13
+ } from "./chunk-3J6JRJ3I.js";
15
14
  import {
16
15
  printError,
17
16
  printResult,
18
17
  writeStdout
19
- } from "./chunk-TIM4OD74.js";
20
- import "./chunk-OHDQNKJB.js";
21
- import "./chunk-B74BP6IS.js";
22
- import "./chunk-C4C3EJCJ.js";
23
- import "./chunk-ZV7IQ23N.js";
24
- import "./chunk-I6QMJ2XT.js";
18
+ } from "./chunk-BDTISOSD.js";
19
+ import "./chunk-4DSGXSBL.js";
20
+ import "./chunk-MDPEOIGN.js";
21
+ import "./chunk-3K2M5OYU.js";
22
+ import "./chunk-BHO33VBQ.js";
23
+ import "./chunk-WYDHYJPO.js";
25
24
  import {
26
25
  EXIT_CODE,
27
26
  PmCliError
28
- } from "./chunk-EYPINTFR.js";
27
+ } from "./chunk-RVUALSJF.js";
29
28
 
30
29
  // dist/cli/register-list-query.js
31
30
  import { Option } from "commander";
@@ -100,7 +99,7 @@ function renderRowsAsTable(rows) {
100
99
  !(function() {
101
100
  try {
102
101
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
103
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "dbfe6dd0-4c4f-5f61-a3c6-5630eb80a30c");
102
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "fa7ca75b-e41a-54de-9843-6e47079e9685");
104
103
  } catch (e2) {
105
104
  }
106
105
  })();
@@ -170,7 +169,7 @@ function registerListQueryCommands(program, options) {
170
169
  }
171
170
  if (excludeTerminal)
172
171
  listOptions.excludeTerminal = true;
173
- const { runList } = await import("./list-DSN6UNFB.js");
172
+ const { runList } = await import("./list-G5Y65VF6.js");
174
173
  const result = await runList(status, listOptions, globalOptions);
175
174
  const streamMode = options2.stream === true;
176
175
  const listFormat = parseListFormat(options2.format);
@@ -235,7 +234,7 @@ function registerListQueryCommands(program, options) {
235
234
  aggregateCommand.action(async (options2, command) => {
236
235
  const globalOptions = getGlobalOptions(command);
237
236
  const startedAt = Date.now();
238
- const { runAggregate } = await import("./aggregate-YHCYX2EV.js");
237
+ const { runAggregate } = await import("./aggregate-SDF7DUOD.js");
239
238
  const result = await runAggregate(normalizeAggregateOptions(options2), globalOptions);
240
239
  printResult(result, globalOptions);
241
240
  if (globalOptions.profile) {
@@ -250,7 +249,7 @@ function registerListQueryCommands(program, options) {
250
249
  const globalOptions = getGlobalOptions(actionCommand);
251
250
  const startedAt = Date.now();
252
251
  const normalized = normalizeContextOptions(options2);
253
- const commands = await import("./context-5LB7UGKE.js");
252
+ const commands = await import("./context-OCZ3FJ4Z.js");
254
253
  const result = await commands.runContext(normalized, globalOptions);
255
254
  const outputFormat = commands.resolveContextOutputFormat(normalized, globalOptions);
256
255
  if (outputFormat === "markdown") {
@@ -269,13 +268,38 @@ function registerListQueryCommands(program, options) {
269
268
  }
270
269
  });
271
270
  }
271
+ if (shouldRegister("next")) {
272
+ const nextCommand = program.command("next").description("Recommend the next actionable (unblocked, ready) work item with rationale + blocked companion.").option("--type <value>", "Filter candidate items by type").option("--tag <value>", "Filter candidate items by tag").option("--priority <value>", "Filter candidate items by priority").option("--assignee <value>", "Filter candidate items by assignee").option("--assignee-filter <value>", "Filter assignee presence: assigned|unassigned").option("--sprint <value>", "Filter candidate items by sprint").option("--release <value>", "Filter candidate items by release").option("--parent <id>", "Scope to one item's subtree (the item plus all descendants)").option("--limit <n>", "Limit ready rows (default: 5; non-positive falls back to default)").option("--blocked-limit <n>", "Limit blocked rows (default: same as --limit)").option("--ready-only", "Omit the blocked companion list").option("--format <value>", "Next output format override: markdown|toon|json");
273
+ addHiddenOption(nextCommand, "--assignee_filter <value>", "Alias for --assignee-filter");
274
+ addHiddenOption(nextCommand, "--blocked_limit <n>", "Alias for --blocked-limit");
275
+ addHiddenOption(nextCommand, "--ready_only", "Alias for --ready-only");
276
+ nextCommand.action(async (options2, actionCommand) => {
277
+ const globalOptions = getGlobalOptions(actionCommand);
278
+ const startedAt = Date.now();
279
+ const commands = await import("./next-BCERKDUR.js");
280
+ const nextOptions = normalizeNextOptions(options2);
281
+ const result = await commands.runNext(nextOptions, globalOptions);
282
+ const outputFormat = commands.resolveNextOutputFormat(nextOptions, globalOptions);
283
+ if (outputFormat === "markdown") {
284
+ if (!globalOptions.quiet) {
285
+ writeStdout(`${commands.renderNextMarkdown(result)}
286
+ `);
287
+ }
288
+ } else {
289
+ printResult(result, { ...globalOptions, json: outputFormat === "json" });
290
+ }
291
+ if (globalOptions.profile) {
292
+ printError(`profile:command=next took_ms=${Date.now() - startedAt}`);
293
+ }
294
+ });
295
+ }
272
296
  if (shouldRegister("search")) {
273
297
  const searchCommand = program.command("search").argument("<keywords...>", "Keyword query tokens").description("Search items with keyword, semantic, or hybrid retrieval. Inline field:value tokens (tag:/status:/type:/priority:) in the query are parsed as filters, e.g. 'auth tag:area:search status:open'.").option("--mode <value>", "Search mode: keyword|semantic|hybrid (default: keyword)").option("--semantic", "Shorthand for --mode semantic").option("--hybrid", "Shorthand for --mode hybrid").option("--match-mode <value>", "Token match mode: and|or|exact (default: or with all-terms ranking bonus; and = hard-require every token; exact = exact phrase)").option("--min-score <value>", "Per-query minimum score threshold (finite number >= 0); overrides settings search.score_threshold for this query only").option("--count", "Return only the count of matching items (post-filter/threshold, pre-limit); skips hit rows").option("--semantic-weight <value>", "Override hybrid semantic weight for this query (0..1); invalid values fall back to settings").option("--include-linked", "Include linked files, docs, and tests in the searchable corpus").option("--title-exact", "Require exact normalized title match for the full query string").option("--phrase-exact", "Require exact normalized phrase match in searchable text").option("--highlight", "Emit per-field matched-text snippets (wrapped in \xAB\u2026\xBB) on each hit; off by default").option("--status <value>", "Filter by status before query (all, open/closed/canceled aliases, or configured status id; CSV)").option("--type <value>", "Filter by item type").option("--tag <value>", "Filter by tag").option("--priority <value>", "Filter by priority").option("--deadline-before <value>", "Filter by deadline upper bound (ISO/date string or relative)").option("--deadline-after <value>", "Filter by deadline lower bound (ISO/date string or relative)").option("--updated-after <value>", 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past)').option("--updated-before <value>", "Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)").option("--created-after <value>", "Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)").option("--created-before <value>", "Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)").option("--assignee <value>", "Filter by assignee").option("--sprint <value>", "Filter by sprint").option("--release <value>", "Filter by release").option("--parent <value>", "Filter by parent item ID").option("--compact", "Render compact search hits (default; mutually exclusive with --full/--fields)").option("--full", "Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)").option("--fields <value>", "Render custom comma-separated search hit fields (mutually exclusive with --compact/--full; valid: --fields id,title,score; invalid: --full --fields id,title)").option("--format <value>", "Search output format override: json|toon").option("--limit <n>", "Limit returned item count");
274
298
  registerContentAndGovernanceFilters(searchCommand);
275
299
  searchCommand.action(async (keywords, options2, command) => {
276
300
  const globalOptions = getGlobalOptions(command);
277
301
  const startedAt = Date.now();
278
- const { runSearch } = await import("./search-QBFBLQRO.js");
302
+ const { runSearch } = await import("./search-KILGT37L.js");
279
303
  const searchOptions = normalizeSearchOptions(options2);
280
304
  const result = await runSearch(normalizeSearchKeywordsInput(keywords), {
281
305
  ...searchOptions,
@@ -292,7 +316,7 @@ function registerListQueryCommands(program, options) {
292
316
  program.command("eval").description("Evaluate search relevance against a curated golden-query set: reports nDCG@k, MRR@k, precision@k, and recall@k per query plus the macro average. Use --fail-under as a CI gate.").option("--mode <value>", "Default retrieval mode for queries without their own: keyword|semantic|hybrid (default: keyword)").option("--k <n>", "Metric cutoff @k (positive integer; default: 10)").option("--fail-under <value>", "Exit non-zero when aggregate nDCG@k falls below this threshold (0..1); CI gate").option("--queries <path>", "Path to the golden-query JSON file (default: <pmRoot>/search/eval-queries.json)").option("--format <value>", "Eval output format override: json|toon").action(async (options2, command) => {
293
317
  const globalOptions = getGlobalOptions(command);
294
318
  const startedAt = Date.now();
295
- const { runEval } = await import("./eval-QGR7JCQO.js");
319
+ const { runEval } = await import("./eval-UYF3ZPVO.js");
296
320
  const result = await runEval({
297
321
  mode: typeof options2.mode === "string" ? options2.mode : void 0,
298
322
  k: typeof options2.k === "string" ? options2.k : void 0,
@@ -313,7 +337,7 @@ function registerListQueryCommands(program, options) {
313
337
  const getCommand = program.command("get").argument("<id>", "Item id").option("--depth <value>", "Detail depth: brief|standard|deep|full (full aliases deep; default: standard)").option("--full", "Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)").option("--fields <value>", "Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)").option("--tree", "Include descendants rooted at the requested item").option("--tree-depth <n>", "Maximum subtree depth for --tree descendants").option("--format <value>", "Get output format override: json|toon").description("Show item details by ID.").action(async (id, options2, command) => {
314
338
  const globalOptions = getGlobalOptions(command);
315
339
  const startedAt = Date.now();
316
- const { runGet } = await import("./get-LQG6PEVG.js");
340
+ const { runGet } = await import("./get-A7MAOHCU.js");
317
341
  const result = await runGet(id, globalOptions, {
318
342
  depth: typeof options2.depth === "string" ? options2.depth : void 0,
319
343
  fields: typeof options2.fields === "string" ? options2.fields : void 0,
@@ -336,7 +360,7 @@ function registerListQueryCommands(program, options) {
336
360
  throw new PmCliError("History projection options are mutually exclusive. Use either --compact or --full.", EXIT_CODE.USAGE);
337
361
  }
338
362
  const field = typeof options2.field === "string" ? options2.field : void 0;
339
- const { runHistory } = await import("./history-ALTM2RRP.js");
363
+ const { runHistory } = await import("./history-WSZHY3PN.js");
340
364
  const result = await runHistory(id, {
341
365
  limit: typeof options2.limit === "string" ? options2.limit : void 0,
342
366
  compact: options2.full === true ? false : true,
@@ -358,7 +382,7 @@ function registerListQueryCommands(program, options) {
358
382
  throw new PmCliError("Activity projection options are mutually exclusive. Use either --compact or --full.", EXIT_CODE.USAGE);
359
383
  }
360
384
  const normalized = normalizeActivityOptions(options2);
361
- const { runActivity } = await import("./activity-54TXGJ2T.js");
385
+ const { runActivity } = await import("./activity-AW6XVFH6.js");
362
386
  const result = await runActivity(normalized, globalOptions);
363
387
  const streamMode = resolveActivityStreamMode(options2.stream);
364
388
  if (streamMode && !globalOptions.json) {
@@ -383,4 +407,4 @@ export {
383
407
  _testOnlyRegisterListQuery,
384
408
  registerListQueryCommands
385
409
  };
386
- //# sourceMappingURL=register-list-query-CCMHGZTF.js.map
410
+ //# sourceMappingURL=register-list-query-SNG5PGA4.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../cli/register-list-query.ts", "../../../../../../../../core/output/tabular.ts"],
4
+ "sourcesContent": ["/**\n * @module cli/register-list-query\n *\n * Provides CLI runtime support for Register List Query.\n */\nimport { Option, type Command } from \"commander\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport { renderRowsAsCsv, renderRowsAsTable } from \"../core/output/tabular.js\";\nimport type { ItemStatus } from \"../types/index.js\";\nimport {\n getGlobalOptions,\n normalizeAggregateOptions,\n normalizeActivityOptions,\n normalizeContextOptions,\n normalizeListOptions,\n normalizeNextOptions,\n normalizeSearchKeywordsInput,\n normalizeSearchOptions,\n printActivityJsonStream,\n printError,\n printListJsonStream,\n printResult,\n resolveActivityStreamMode,\n writeStdout,\n} from \"./registration-helpers.js\";\n\n\n\n/**\n * Documents the register list query commands options payload exchanged by command, SDK, and package integrations.\n */\nexport interface RegisterListQueryCommandsOptions {\n commandFilter?: Set<string>;\n}\n\nfunction shouldRegisterListQueryCommand(commandName: string, commandFilter?: Set<string>): boolean {\n if (!commandFilter || commandFilter.size === 0) {\n return true;\n }\n if (commandName === \"context\") {\n return commandFilter.has(\"context\") || commandFilter.has(\"ctx\");\n }\n return commandFilter.has(commandName);\n}\n\ntype ReadCommandOutputFormat = \"json\" | \"toon\";\n\ntype ListOutputFormat = \"csv\" | \"table\" | \"json\" | \"toon\";\n\n/**\n * Parses the `pm list --format` value into a supported render mode. csv/table\n * are human export modes; json/toon override the machine output format. Returns\n * undefined when no `--format` was supplied so the global output format applies.\n */\nfunction parseListFormat(rawFormat: unknown): ListOutputFormat | undefined {\n if (rawFormat === undefined) {\n return undefined;\n }\n if (typeof rawFormat !== \"string\") {\n throw new PmCliError(\"List --format must be one of csv|table|json|toon\", EXIT_CODE.USAGE);\n }\n const normalized = rawFormat.trim().toLowerCase();\n if (normalized === \"csv\" || normalized === \"table\" || normalized === \"json\" || normalized === \"toon\") {\n return normalized;\n }\n throw new PmCliError(\"List --format must be one of csv|table|json|toon\", EXIT_CODE.USAGE);\n}\n\nfunction resolveReadCommandOutputFormat(\n commandLabel: string,\n rawFormat: unknown,\n globalOptions: ReturnType<typeof getGlobalOptions>,\n): ReturnType<typeof getGlobalOptions> {\n if (rawFormat === undefined) {\n return globalOptions;\n }\n if (typeof rawFormat !== \"string\") {\n throw new PmCliError(`${commandLabel} --format must be one of json|toon`, EXIT_CODE.USAGE);\n }\n const normalized = rawFormat.trim().toLowerCase() as ReadCommandOutputFormat;\n if (normalized !== \"json\" && normalized !== \"toon\") {\n throw new PmCliError(`${commandLabel} --format must be one of json|toon`, EXIT_CODE.USAGE);\n }\n if (globalOptions.json === true && normalized === \"toon\") {\n throw new PmCliError(`${commandLabel} cannot combine --json with --format toon`, EXIT_CODE.USAGE);\n }\n return {\n ...globalOptions,\n json: normalized === \"json\",\n };\n}\n\n/**\n * Implements register list query commands for the public runtime surface of this module.\n */\nexport function registerListQueryCommands(program: Command, options?: RegisterListQueryCommandsOptions): void {\n const commandFilter = options?.commandFilter;\n const shouldRegister = (commandName: string): boolean => shouldRegisterListQueryCommand(commandName, commandFilter);\n // Register a flag and hide it from --help text while keeping it functional as\n // a parse-time alias. Used for pure snake_case underscore-duplicate aliases\n // (e.g. --assignee_filter for --assignee-filter) so they no longer bloat\n // --help output. The option still appears in command.options, so JSON help\n // and completion are unchanged.\n function addHiddenOption(command: Command, flags: string, description: string): void {\n command.addOption(new Option(flags, description).hideHelp());\n }\n\n // Register the content-field presence/absence filters (GH-242) and the\n // governance-missing filters (GH-236) on a list-family or search command.\n // Presence flags are plain booleans; absence flags use commander negation\n // (`--no-notes` stores notes=false) except `--empty-body` which is its own\n // dest so it composes with a future `--has-body`. linked_command tracks\n // whether a linked test carries a runnable command.\n function registerContentAndGovernanceFilters(command: Command): void {\n command\n .option(\"--has-notes\", \"Show only items that have notes\")\n .option(\"--has-learnings\", \"Show only items that have learnings\")\n .option(\"--has-files\", \"Show only items that have linked files\")\n .option(\"--has-docs\", \"Show only items that have linked docs\")\n .option(\"--has-tests\", \"Show only items that have linked tests\")\n .option(\"--has-comments\", \"Show only items that have comments\")\n .option(\"--has-deps\", \"Show only items that have dependencies\")\n .option(\"--has-body\", \"Show only items that have a non-empty body\")\n .option(\"--has-linked-command\", \"Show only items whose linked tests carry a runnable command\")\n .option(\"--no-notes\", \"Show only items that have no notes\")\n .option(\"--no-learnings\", \"Show only items that have no learnings\")\n .option(\"--no-files\", \"Show only items that have no linked files\")\n .option(\"--no-docs\", \"Show only items that have no linked docs\")\n .option(\"--no-tests\", \"Show only items that have no linked tests\")\n .option(\"--no-comments\", \"Show only items that have no comments\")\n .option(\"--no-deps\", \"Show only items that have no dependencies\")\n .option(\"--empty-body\", \"Show only items with an empty body\")\n .option(\"--no-linked-command\", \"Show only items whose linked tests carry no runnable command\")\n .option(\"--filter-reviewer-missing\", \"Show only items missing reviewer\")\n .option(\"--filter-risk-missing\", \"Show only items missing risk\")\n .option(\"--filter-confidence-missing\", \"Show only items missing confidence\")\n .option(\"--filter-sprint-missing\", \"Show only items missing sprint\")\n .option(\"--filter-release-missing\", \"Show only items missing release\");\n }\n\n function registerListCommand(\n name: string,\n description: string,\n status?: ItemStatus,\n excludeTerminal?: boolean,\n allowStatusFilter?: boolean,\n defaultBrief?: boolean,\n ): void {\n const command = program.command(name).description(description);\n if (allowStatusFilter) {\n command.option(\"--status <value>\", \"Filter by status (use all for no status restriction)\");\n }\n command\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--updated-after <value>\", 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. \"-2h\"/\"-7d\" for the past). \"Changed since my last window\" → --updated-after <ISO>')\n .option(\"--updated-before <value>\", \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-after <value>\", \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-before <value>\", \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--ids <value>\", \"Filter by explicit item IDs (comma-separated or repeatable)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--filter-ac-missing\", \"Show only items missing acceptance_criteria\")\n .option(\"--filter-estimates-missing\", \"Show only items missing estimated_minutes\")\n .option(\"--filter-resolution-missing\", \"Show only terminal items missing resolution\")\n .option(\"--filter-metadata-missing\", \"Show only items missing any tracked metadata (AC, estimate, or resolution)\")\n .option(\"--limit <n>\", \"Limit returned item count\")\n .option(\"--offset <n>\", \"Skip the first n matching rows before limit is applied\")\n .option(\"--no-truncate\", \"Return every matched row, overriding any --limit (alias: --all)\")\n .option(\"--include-body\", \"Include item body in each returned list row\")\n .option(\"--compact\", \"Render compact list projection fields (mutually exclusive with --brief/--full/--fields)\")\n .option(\"--brief\", \"Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)\")\n .option(\"--full\", \"Render full list projection fields (mutually exclusive with --compact/--brief/--fields)\")\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)\",\n )\n .option(\"--sort <value>\", \"Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)\")\n .option(\"--order <value>\", \"Sort order: asc|desc (requires --sort)\")\n .option(\"--tree\", \"Render rows in parent/child tree order\")\n .option(\"--tree-depth <n>\", \"Maximum recursion depth with --tree (0 keeps root rows only)\")\n .option(\"--format <value>\", \"Output render mode: csv|table (human export) or json|toon (machine output override)\")\n .option(\"--stream\", \"Emit line-delimited JSON rows (requires --json)\");\n registerContentAndGovernanceFilters(command);\n command\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const listOptions = normalizeListOptions(options);\n if (\n defaultBrief === true &&\n listOptions.includeBody !== true &&\n listOptions.compact !== true &&\n listOptions.brief !== true &&\n listOptions.full !== true &&\n listOptions.fields === undefined\n ) {\n listOptions.brief = true;\n }\n if (excludeTerminal) listOptions.excludeTerminal = true;\n const { runList } = await import(\"./commands/list.js\");\n const result = await runList(status, listOptions, globalOptions);\n const streamMode = options.stream === true;\n const listFormat = parseListFormat(options.format);\n const tabular = listFormat === \"csv\" || listFormat === \"table\";\n // json|toon reuse the shared read-command override (honours the\n // --json + --format toon conflict); csv|table are human render modes.\n const effectiveGlobal =\n listFormat === \"json\" || listFormat === \"toon\"\n ? resolveReadCommandOutputFormat(\"List\", options.format, globalOptions)\n : globalOptions;\n if (streamMode && !effectiveGlobal.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\n }\n if (tabular && streamMode) {\n throw new PmCliError(\"--format csv|table cannot be combined with --stream (line-delimited JSON).\", EXIT_CODE.USAGE);\n }\n if (tabular) {\n const rows = result.items as Array<Record<string, unknown>>;\n const rendered = listFormat === \"csv\" ? renderRowsAsCsv(rows) : renderRowsAsTable(rows);\n if (!effectiveGlobal.quiet && rendered.length > 0) {\n writeStdout(`${rendered}\\n`);\n }\n } else if (streamMode) {\n printListJsonStream(name, result, effectiveGlobal);\n } else {\n printResult(result, effectiveGlobal);\n }\n if (globalOptions.profile) {\n printError(`profile:command=${name} took_ms=${Date.now() - startedAt}`);\n }\n });\n // Positive alias for --no-truncate (Commander stores the negation as truncate=false).\n addHiddenOption(command, \"--all\", \"Alias for --no-truncate\");\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(command, \"--tags <value>\", \"Alias for --tag\");\n addHiddenOption(command, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n addHiddenOption(command, \"--tree_depth <n>\", \"Alias for --tree-depth\");\n // Singular alias so `--filter-estimate-missing` works (matches update-many spelling).\n addHiddenOption(command, \"--filter-estimate-missing\", \"Alias for --filter-estimates-missing\");\n }\n\n if (shouldRegister(\"list\")) {\n registerListCommand(\"list\", \"List active items with optional filters.\", undefined, true, true, true);\n }\n if (shouldRegister(\"list-all\")) {\n registerListCommand(\"list-all\", \"List all items with optional filters.\", undefined, false, true);\n }\n if (shouldRegister(\"list-draft\")) {\n registerListCommand(\"list-draft\", \"List draft items with optional filters.\", \"draft\");\n }\n if (shouldRegister(\"list-open\")) {\n registerListCommand(\"list-open\", \"List open items with optional filters.\", \"open\", false, false, true);\n }\n if (shouldRegister(\"list-in-progress\")) {\n registerListCommand(\"list-in-progress\", \"List in-progress items with optional filters.\", \"in_progress\", false, false, true);\n }\n if (shouldRegister(\"list-blocked\")) {\n registerListCommand(\"list-blocked\", \"List blocked items with optional filters.\", \"blocked\", false, false, true);\n }\n if (shouldRegister(\"list-closed\")) {\n registerListCommand(\"list-closed\", \"List closed items with optional filters.\", \"closed\");\n }\n if (shouldRegister(\"list-canceled\")) {\n registerListCommand(\"list-canceled\", \"List canceled items with optional filters.\", \"canceled\");\n }\n\n if (shouldRegister(\"aggregate\")) {\n const aggregateCommand = program\n .command(\"aggregate\")\n .description(\"Aggregate grouped item counts for governance queries.\")\n .option(\n \"--group-by <value>\",\n \"Comma-separated group-by fields (supported: parent,type,priority,status,assignee,tags,sprint,release)\",\n )\n .option(\"--count\", \"Return grouped counts (default behavior)\")\n .option(\"--completion\", \"Add open/in_progress/closed/other counts and completion_pct per group\")\n .option(\"--sum <field>\", \"Sum a numeric field per group\")\n .option(\"--avg <field>\", \"Average a numeric field per group\")\n .option(\"--include-unparented\", \"Include unparented rows when grouping by parent\")\n .option(\"--status <value>\", \"Filter by item status\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\");\n // Hidden pure snake_case underscore-duplicate aliases (kept parse-functional).\n addHiddenOption(aggregateCommand, \"--include_unparented\", \"Alias for --include-unparented\");\n addHiddenOption(aggregateCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n aggregateCommand\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runAggregate } = await import(\"./commands/aggregate.js\");\n const result = await runAggregate(normalizeAggregateOptions(options), globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"context\")) {\n const contextCommand = program\n .command(\"context\")\n .alias(\"ctx\")\n .description(\"Show a token-efficient project context snapshot for next-work decisions.\")\n .option(\"--date <value>\", \"Anchor date/time for agenda window calculations (ISO/date string or relative)\")\n .option(\"--from <value>\", \"Agenda lower bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Agenda upper bound (ISO/date string or relative)\")\n .option(\"--past\", \"Include past agenda entries in bounded windows\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--parent <id>\", \"Scope the snapshot to one item's subtree (the item plus all descendants)\")\n .option(\"--limit <n>\", \"Limit focus and agenda rows per section\")\n .option(\"--format <value>\", \"Context output format override: markdown|toon|json\")\n .option(\"--depth <value>\", \"Context depth: brief|standard|deep|full (full = every section, no per-section cap)\")\n .option(\"--section <value...>\", \"Include specific sections (repeatable; overrides --depth)\")\n .option(\"--fields <value>\", \"Project focus rows to a comma-separated field subset (e.g. id,title,priority)\")\n .option(\"--activity-limit <n>\", \"Limit recent activity entries (default: settings or 10)\")\n .option(\"--stale-threshold <value>\", \"Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)\");\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(contextCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n contextCommand\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const normalized = normalizeContextOptions(options);\n const commands = await import(\"./commands/context.js\");\n const result = await commands.runContext(normalized, globalOptions);\n const outputFormat = commands.resolveContextOutputFormat(normalized, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${commands.renderContextMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, {\n ...globalOptions,\n json: outputFormat === \"json\",\n });\n }\n if (globalOptions.profile) {\n printError(`profile:command=context took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"next\")) {\n const nextCommand = program\n .command(\"next\")\n .description(\"Recommend the next actionable (unblocked, ready) work item with rationale + blocked companion.\")\n .option(\"--type <value>\", \"Filter candidate items by type\")\n .option(\"--tag <value>\", \"Filter candidate items by tag\")\n .option(\"--priority <value>\", \"Filter candidate items by priority\")\n .option(\"--assignee <value>\", \"Filter candidate items by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--sprint <value>\", \"Filter candidate items by sprint\")\n .option(\"--release <value>\", \"Filter candidate items by release\")\n .option(\"--parent <id>\", \"Scope to one item's subtree (the item plus all descendants)\")\n .option(\"--limit <n>\", \"Limit ready rows (default: 5; non-positive falls back to default)\")\n .option(\"--blocked-limit <n>\", \"Limit blocked rows (default: same as --limit)\")\n .option(\"--ready-only\", \"Omit the blocked companion list\")\n .option(\"--format <value>\", \"Next output format override: markdown|toon|json\");\n addHiddenOption(nextCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n addHiddenOption(nextCommand, \"--blocked_limit <n>\", \"Alias for --blocked-limit\");\n addHiddenOption(nextCommand, \"--ready_only\", \"Alias for --ready-only\");\n nextCommand.action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const commands = await import(\"./commands/next.js\");\n const nextOptions = normalizeNextOptions(options);\n const result = await commands.runNext(nextOptions, globalOptions);\n const outputFormat = commands.resolveNextOutputFormat(nextOptions, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${commands.renderNextMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, { ...globalOptions, json: outputFormat === \"json\" });\n }\n if (globalOptions.profile) {\n printError(`profile:command=next took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"search\")) {\n const searchCommand = program\n .command(\"search\")\n .argument(\"<keywords...>\", \"Keyword query tokens\")\n .description(\n \"Search items with keyword, semantic, or hybrid retrieval. Inline field:value tokens \" +\n \"(tag:/status:/type:/priority:) in the query are parsed as filters, e.g. 'auth tag:area:search status:open'.\",\n )\n .option(\"--mode <value>\", \"Search mode: keyword|semantic|hybrid (default: keyword)\")\n .option(\"--semantic\", \"Shorthand for --mode semantic\")\n .option(\"--hybrid\", \"Shorthand for --mode hybrid\")\n .option(\n \"--match-mode <value>\",\n \"Token match mode: and|or|exact (default: or with all-terms ranking bonus; and = hard-require every token; exact = exact phrase)\",\n )\n .option(\n \"--min-score <value>\",\n \"Per-query minimum score threshold (finite number >= 0); overrides settings search.score_threshold for this query only\",\n )\n .option(\"--count\", \"Return only the count of matching items (post-filter/threshold, pre-limit); skips hit rows\")\n .option(\n \"--semantic-weight <value>\",\n \"Override hybrid semantic weight for this query (0..1); invalid values fall back to settings\",\n )\n .option(\"--include-linked\", \"Include linked files, docs, and tests in the searchable corpus\")\n .option(\"--title-exact\", \"Require exact normalized title match for the full query string\")\n .option(\"--phrase-exact\", \"Require exact normalized phrase match in searchable text\")\n .option(\"--highlight\", \"Emit per-field matched-text snippets (wrapped in «…») on each hit; off by default\")\n .option(\"--status <value>\", \"Filter by status before query (all, open/closed/canceled aliases, or configured status id; CSV)\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--updated-after <value>\", 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. \"-2h\"/\"-7d\" for the past)')\n .option(\"--updated-before <value>\", \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-after <value>\", \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-before <value>\", \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--compact\", \"Render compact search hits (default; mutually exclusive with --full/--fields)\")\n .option(\"--full\", \"Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)\")\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated search hit fields (mutually exclusive with --compact/--full; valid: --fields id,title,score; invalid: --full --fields id,title)\",\n )\n .option(\"--format <value>\", \"Search output format override: json|toon\")\n .option(\"--limit <n>\", \"Limit returned item count\");\n registerContentAndGovernanceFilters(searchCommand);\n searchCommand\n .action(async (keywords: string[], options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runSearch } = await import(\"./commands/search.js\");\n const searchOptions = normalizeSearchOptions(options);\n const result = await runSearch(\n normalizeSearchKeywordsInput(keywords),\n {\n ...searchOptions,\n mode:\n typeof searchOptions.mode === \"string\" && searchOptions.mode.trim().length > 0\n ? searchOptions.mode\n : \"keyword\",\n },\n globalOptions,\n );\n printResult(result, resolveReadCommandOutputFormat(\"Search\", options.format, globalOptions));\n if (globalOptions.profile) {\n printError(`profile:command=search took_ms=${Date.now() - startedAt}`);\n }\n });\n addHiddenOption(searchCommand, \"--tags <value>\", \"Alias for --tag\");\n }\n\n if (shouldRegister(\"eval\")) {\n program\n .command(\"eval\")\n .description(\n \"Evaluate search relevance against a curated golden-query set: reports nDCG@k, MRR@k, \" +\n \"precision@k, and recall@k per query plus the macro average. Use --fail-under as a CI gate.\",\n )\n .option(\"--mode <value>\", \"Default retrieval mode for queries without their own: keyword|semantic|hybrid (default: keyword)\")\n .option(\"--k <n>\", \"Metric cutoff @k (positive integer; default: 10)\")\n .option(\"--fail-under <value>\", \"Exit non-zero when aggregate nDCG@k falls below this threshold (0..1); CI gate\")\n .option(\"--queries <path>\", \"Path to the golden-query JSON file (default: <pmRoot>/search/eval-queries.json)\")\n .option(\"--format <value>\", \"Eval output format override: json|toon\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runEval } = await import(\"./commands/eval.js\");\n const result = await runEval(\n {\n mode: typeof options.mode === \"string\" ? options.mode : undefined,\n k: typeof options.k === \"string\" ? options.k : undefined,\n failUnder: typeof options.failUnder === \"string\" ? options.failUnder : undefined,\n queries: typeof options.queries === \"string\" ? options.queries : undefined,\n format: typeof options.format === \"string\" ? options.format : undefined,\n },\n globalOptions,\n );\n printResult(result, resolveReadCommandOutputFormat(\"Eval\", options.format, globalOptions));\n if (globalOptions.profile) {\n printError(`profile:command=eval took_ms=${Date.now() - startedAt}`);\n }\n if (!result.passed) {\n throw new PmCliError(\n `Eval gate failed: aggregate nDCG@${result.k} ${result.aggregate.ndcg} is below --fail-under ${result.fail_under}`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n });\n }\n\n if (shouldRegister(\"get\")) {\n const getCommand = program\n .command(\"get\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--depth <value>\", \"Detail depth: brief|standard|deep|full (full aliases deep; default: standard)\")\n .option(\"--full\", \"Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)\")\n .option(\"--fields <value>\", \"Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)\")\n .option(\"--tree\", \"Include descendants rooted at the requested item\")\n .option(\"--tree-depth <n>\", \"Maximum subtree depth for --tree descendants\")\n .option(\"--format <value>\", \"Get output format override: json|toon\")\n .description(\"Show item details by ID.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runGet } = await import(\"./commands/get.js\");\n const result = await runGet(\n id,\n globalOptions,\n {\n depth: typeof options.depth === \"string\" ? options.depth : undefined,\n fields: typeof options.fields === \"string\" ? options.fields : undefined,\n full: Boolean(options.full),\n tree: options.tree === true,\n treeDepth:\n typeof options.treeDepth === \"string\"\n ? options.treeDepth\n : typeof options.tree_depth === \"string\"\n ? options.tree_depth\n : undefined,\n },\n );\n printResult(result, resolveReadCommandOutputFormat(\"Get\", options.format, globalOptions));\n if (globalOptions.profile) {\n printError(`profile:command=get took_ms=${Date.now() - startedAt}`);\n }\n });\n addHiddenOption(getCommand, \"--tree_depth <n>\", \"Alias for --tree-depth\");\n }\n\n if (shouldRegister(\"history\")) {\n program\n .command(\"history\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--limit <n>\", \"Return only the latest n history entries\")\n .option(\"--compact\", \"Condensed output: show entry index, timestamp, op, author, patch count, and changed fields\")\n .option(\"--full\", \"Show full history entries with JSON Patch payloads\")\n .option(\"--diff\", \"Include per-entry field-level before/after value diffs computed by replaying the history chain\")\n .option(\"--field <name>\", \"With --diff, show only entries that changed this field (implies --diff)\")\n .option(\"--verify\", \"Verify hash chain and replay integrity for the full history stream\")\n .option(\"--format <value>\", \"History output format override: json|toon\")\n .description(\"Show item history entries.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"History projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const field = typeof options.field === \"string\" ? options.field : undefined;\n const { runHistory } = await import(\"./commands/history.js\");\n const result = await runHistory(\n id,\n {\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n compact: options.full === true ? false : true,\n diff: Boolean(options.diff) || field !== undefined,\n field,\n verify: Boolean(options.verify),\n },\n globalOptions,\n );\n printResult(result, resolveReadCommandOutputFormat(\"History\", options.format, globalOptions));\n if (globalOptions.profile) {\n printError(`profile:command=history took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"activity\")) {\n program\n .command(\"activity\")\n .option(\"--id <value>\", \"Filter by item ID\")\n .option(\"--op <value>\", \"Filter by history operation\")\n .option(\"--author <value>\", \"Filter by history author\")\n .option(\"--from <value>\", \"Lower timestamp bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Upper timestamp bound (ISO/date string or relative)\")\n .option(\"--limit <n>\", \"Return only the latest n activity entries\")\n .option(\"--compact\", \"Condensed output: show only id, op, ts, author, msg per entry\")\n .option(\"--full\", \"Show full activity entries with JSON Patch payloads\")\n .option(\"--stream [mode]\", \"Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl\")\n .description(\"Show recent activity across items.\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"Activity projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const normalized = normalizeActivityOptions(options);\n const { runActivity } = await import(\"./commands/activity.js\");\n const result = await runActivity(normalized, globalOptions);\n const streamMode = resolveActivityStreamMode(options.stream);\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\n }\n if (streamMode) {\n printActivityJsonStream(result, normalized, globalOptions);\n } else {\n printResult(result, globalOptions);\n }\n if (globalOptions.profile) {\n printError(`profile:command=activity took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n}\n\nexport const _testOnlyRegisterListQuery = {\n resolveReadCommandOutputFormat,\n parseListFormat,\n};\n", "/**\n * @module core/output/tabular\n *\n * Renders projected item rows as CSV or fixed-width text tables for human\n * export. These are presentation-only modes (GH-154): agents continue to read\n * the structured `--json`/TOON output, while humans piping `pm list` into a\n * spreadsheet or terminal get a directly consumable shape.\n */\n\n/** A projected row: a flat map of column name to scalar/collection cell value. */\nexport type TabularRow = Record<string, unknown>;\n\n/**\n * Collects the ordered union of column names across every row, preserving the\n * order in which each key is first encountered so the rendered columns mirror\n * the projection field order rather than an arbitrary object-key order.\n */\nfunction resolveColumns(rows: TabularRow[]): string[] {\n const columns: string[] = [];\n const seen = new Set<string>();\n for (const row of rows) {\n for (const key of Object.keys(row)) {\n if (!seen.has(key)) {\n seen.add(key);\n columns.push(key);\n }\n }\n }\n return columns;\n}\n\n/**\n * Converts a single cell value to its flat string form. Arrays join with `;`\n * (spreadsheet-friendly and unambiguous against the CSV `,` delimiter), objects\n * serialize to compact JSON, and null/undefined render as an empty cell.\n */\nfunction renderCell(value: unknown): string {\n if (value === null || value === undefined) {\n return \"\";\n }\n if (Array.isArray(value)) {\n return value.map((entry) => renderCell(entry)).join(\";\");\n }\n if (typeof value === \"object\") {\n return JSON.stringify(value);\n }\n return String(value);\n}\n\n/**\n * Escapes a CSV field per RFC 4180: values containing the delimiter, a quote,\n * or a line break are wrapped in double quotes with embedded quotes doubled.\n */\nfunction escapeCsvField(value: string): string {\n if (/[\",\\r\\n]/.test(value)) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n}\n\n/**\n * Renders rows as RFC 4180 CSV with a header row of column names. Returns an\n * empty string when there are no rows so callers emit nothing rather than a\n * stray blank line.\n */\nexport function renderRowsAsCsv(rows: TabularRow[]): string {\n if (rows.length === 0) {\n return \"\";\n }\n const columns = resolveColumns(rows);\n const lines = [columns.map((column) => escapeCsvField(column)).join(\",\")];\n for (const row of rows) {\n lines.push(columns.map((column) => escapeCsvField(renderCell(row[column]))).join(\",\"));\n }\n return lines.join(\"\\n\");\n}\n\n/**\n * Renders rows as a fixed-width text table: a header row, a dashed separator,\n * and one padded row per item. Columns are widened to fit their widest cell so\n * the output stays aligned in a monospace terminal. Returns an empty string\n * when there are no rows.\n */\nexport function renderRowsAsTable(rows: TabularRow[]): string {\n if (rows.length === 0) {\n return \"\";\n }\n const columns = resolveColumns(rows);\n const cells = rows.map((row) => columns.map((column) => renderCell(row[column])));\n const widths = columns.map((column, index) =>\n Math.max(column.length, ...cells.map((rowCells) => rowCells[index].length)),\n );\n const pad = (value: string, index: number): string => value.padEnd(widths[index]);\n const lines = [columns.map((column, index) => pad(column, index)).join(\" | \")];\n lines.push(widths.map((width) => \"-\".repeat(width)).join(\"-+-\"));\n for (const rowCells of cells) {\n lines.push(rowCells.map((value, index) => pad(value, index)).join(\" | \"));\n }\n return lines.join(\"\\n\");\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["options"]
7
+ }