@unbrained/pm-cli 2026.6.13 → 2026.6.17

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 (808) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/README.md +1 -1
  3. package/dist/cli/bootstrap-args.d.ts +29 -0
  4. package/dist/cli/bootstrap-args.js +11 -4
  5. package/dist/cli/bootstrap-args.js.map +1 -1
  6. package/dist/cli/commander-usage.d.ts +12 -0
  7. package/dist/cli/commander-usage.js +18 -7
  8. package/dist/cli/commander-usage.js.map +1 -1
  9. package/dist/cli/commands/activity.d.ts +19 -0
  10. package/dist/cli/commands/activity.js +12 -2
  11. package/dist/cli/commands/activity.js.map +1 -1
  12. package/dist/cli/commands/aggregate.d.ts +58 -0
  13. package/dist/cli/commands/aggregate.js +48 -15
  14. package/dist/cli/commands/aggregate.js.map +1 -1
  15. package/dist/cli/commands/annotation-command.d.ts +6 -1
  16. package/dist/cli/commands/annotation-command.js +72 -2
  17. package/dist/cli/commands/annotation-command.js.map +1 -1
  18. package/dist/cli/commands/append.js +4 -3
  19. package/dist/cli/commands/append.js.map +1 -1
  20. package/dist/cli/commands/close-many.d.ts +20 -0
  21. package/dist/cli/commands/close-many.js +14 -23
  22. package/dist/cli/commands/close-many.js.map +1 -1
  23. package/dist/cli/commands/close.js +37 -4
  24. package/dist/cli/commands/close.js.map +1 -1
  25. package/dist/cli/commands/comments-audit.js +3 -2
  26. package/dist/cli/commands/comments-audit.js.map +1 -1
  27. package/dist/cli/commands/comments.d.ts +2 -0
  28. package/dist/cli/commands/comments.js +49 -23
  29. package/dist/cli/commands/comments.js.map +1 -1
  30. package/dist/cli/commands/completion.js +362 -15
  31. package/dist/cli/commands/completion.js.map +1 -1
  32. package/dist/cli/commands/config.d.ts +51 -1
  33. package/dist/cli/commands/config.js +50 -12
  34. package/dist/cli/commands/config.js.map +1 -1
  35. package/dist/cli/commands/context.d.ts +79 -1
  36. package/dist/cli/commands/context.js +151 -25
  37. package/dist/cli/commands/context.js.map +1 -1
  38. package/dist/cli/commands/contracts.d.ts +80 -1
  39. package/dist/cli/commands/contracts.js +54 -4
  40. package/dist/cli/commands/contracts.js.map +1 -1
  41. package/dist/cli/commands/create.d.ts +51 -0
  42. package/dist/cli/commands/create.js +137 -18
  43. package/dist/cli/commands/create.js.map +1 -1
  44. package/dist/cli/commands/dedupe-audit.d.ts +33 -0
  45. package/dist/cli/commands/dedupe-audit.js +18 -14
  46. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  47. package/dist/cli/commands/deps.js +7 -4
  48. package/dist/cli/commands/deps.js.map +1 -1
  49. package/dist/cli/commands/event-validation-messages.js +3 -3
  50. package/dist/cli/commands/event-validation-messages.js.map +1 -1
  51. package/dist/cli/commands/extension/bundled-catalog.d.ts +7 -0
  52. package/dist/cli/commands/extension/bundled-catalog.js +19 -15
  53. package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
  54. package/dist/cli/commands/extension/install-sources.d.ts +41 -1
  55. package/dist/cli/commands/extension/install-sources.js +26 -8
  56. package/dist/cli/commands/extension/install-sources.js.map +1 -1
  57. package/dist/cli/commands/extension/shared.d.ts +5 -0
  58. package/dist/cli/commands/extension/shared.js +9 -3
  59. package/dist/cli/commands/extension/shared.js.map +1 -1
  60. package/dist/cli/commands/extension.d.ts +133 -1
  61. package/dist/cli/commands/extension.js +127 -9
  62. package/dist/cli/commands/extension.js.map +1 -1
  63. package/dist/cli/commands/files.d.ts +30 -1
  64. package/dist/cli/commands/files.js +21 -2
  65. package/dist/cli/commands/files.js.map +1 -1
  66. package/dist/cli/commands/focus.d.ts +11 -0
  67. package/dist/cli/commands/focus.js +86 -0
  68. package/dist/cli/commands/focus.js.map +1 -0
  69. package/dist/cli/commands/get.d.ts +9 -2
  70. package/dist/cli/commands/get.js +34 -6
  71. package/dist/cli/commands/get.js.map +1 -1
  72. package/dist/cli/commands/guide.d.ts +5 -0
  73. package/dist/cli/commands/guide.js +6 -3
  74. package/dist/cli/commands/guide.js.map +1 -1
  75. package/dist/cli/commands/health.d.ts +109 -0
  76. package/dist/cli/commands/health.js +87 -35
  77. package/dist/cli/commands/health.js.map +1 -1
  78. package/dist/cli/commands/history-compact.js +27 -36
  79. package/dist/cli/commands/history-compact.js.map +1 -1
  80. package/dist/cli/commands/history-redact.d.ts +46 -0
  81. package/dist/cli/commands/history-redact.js +99 -67
  82. package/dist/cli/commands/history-redact.js.map +1 -1
  83. package/dist/cli/commands/history-repair.js +34 -37
  84. package/dist/cli/commands/history-repair.js.map +1 -1
  85. package/dist/cli/commands/history.js +6 -2
  86. package/dist/cli/commands/history.js.map +1 -1
  87. package/dist/cli/commands/index.d.ts +4 -1
  88. package/dist/cli/commands/index.js +6 -3
  89. package/dist/cli/commands/index.js.map +1 -1
  90. package/dist/cli/commands/init-agent-guidance.d.ts +54 -0
  91. package/dist/cli/commands/init-agent-guidance.js +31 -4
  92. package/dist/cli/commands/init-agent-guidance.js.map +1 -1
  93. package/dist/cli/commands/init.d.ts +38 -2
  94. package/dist/cli/commands/init.js +50 -64
  95. package/dist/cli/commands/init.js.map +1 -1
  96. package/dist/cli/commands/learnings.js +4 -3
  97. package/dist/cli/commands/learnings.js.map +1 -1
  98. package/dist/cli/commands/lifecycle-transitions.d.ts +23 -0
  99. package/dist/cli/commands/lifecycle-transitions.js +41 -0
  100. package/dist/cli/commands/lifecycle-transitions.js.map +1 -0
  101. package/dist/cli/commands/linked-artifacts.d.ts +5 -0
  102. package/dist/cli/commands/linked-artifacts.js +18 -4
  103. package/dist/cli/commands/linked-artifacts.js.map +1 -1
  104. package/dist/cli/commands/linked-test-parsers.d.ts +5 -0
  105. package/dist/cli/commands/linked-test-parsers.js +5 -2
  106. package/dist/cli/commands/linked-test-parsers.js.map +1 -1
  107. package/dist/cli/commands/list-filter-shared.d.ts +8 -0
  108. package/dist/cli/commands/list-filter-shared.js +70 -0
  109. package/dist/cli/commands/list-filter-shared.js.map +1 -0
  110. package/dist/cli/commands/list.d.ts +116 -0
  111. package/dist/cli/commands/list.js +194 -6
  112. package/dist/cli/commands/list.js.map +1 -1
  113. package/dist/cli/commands/normalize.js +16 -2
  114. package/dist/cli/commands/normalize.js.map +1 -1
  115. package/dist/cli/commands/notes.js +4 -3
  116. package/dist/cli/commands/notes.js.map +1 -1
  117. package/dist/cli/commands/plan.js +3 -2
  118. package/dist/cli/commands/plan.js.map +1 -1
  119. package/dist/cli/commands/recurrence-parsers.d.ts +9 -0
  120. package/dist/cli/commands/recurrence-parsers.js +19 -2
  121. package/dist/cli/commands/recurrence-parsers.js.map +1 -1
  122. package/dist/cli/commands/reindex.d.ts +83 -0
  123. package/dist/cli/commands/reindex.js +45 -10
  124. package/dist/cli/commands/reindex.js.map +1 -1
  125. package/dist/cli/commands/repeatable-metadata-parsers.js +28 -4
  126. package/dist/cli/commands/repeatable-metadata-parsers.js.map +1 -1
  127. package/dist/cli/commands/restore.d.ts +40 -1
  128. package/dist/cli/commands/restore.js +27 -2
  129. package/dist/cli/commands/restore.js.map +1 -1
  130. package/dist/cli/commands/scheduling-shortcuts.d.ts +43 -0
  131. package/dist/cli/commands/scheduling-shortcuts.js +87 -0
  132. package/dist/cli/commands/scheduling-shortcuts.js.map +1 -0
  133. package/dist/cli/commands/schema.d.ts +152 -2
  134. package/dist/cli/commands/schema.js +510 -4
  135. package/dist/cli/commands/schema.js.map +1 -1
  136. package/dist/cli/commands/search.d.ts +289 -1
  137. package/dist/cli/commands/search.js +367 -60
  138. package/dist/cli/commands/search.js.map +1 -1
  139. package/dist/cli/commands/stats.d.ts +38 -0
  140. package/dist/cli/commands/stats.js +38 -10
  141. package/dist/cli/commands/stats.js.map +1 -1
  142. package/dist/cli/commands/telemetry.js +5 -3
  143. package/dist/cli/commands/telemetry.js.map +1 -1
  144. package/dist/cli/commands/templates.d.ts +18 -0
  145. package/dist/cli/commands/templates.js +9 -2
  146. package/dist/cli/commands/templates.js.map +1 -1
  147. package/dist/cli/commands/test-all.d.ts +5 -0
  148. package/dist/cli/commands/test-all.js +9 -3
  149. package/dist/cli/commands/test-all.js.map +1 -1
  150. package/dist/cli/commands/test.d.ts +70 -1
  151. package/dist/cli/commands/test.js +84 -3
  152. package/dist/cli/commands/test.js.map +1 -1
  153. package/dist/cli/commands/update-many.d.ts +34 -1
  154. package/dist/cli/commands/update-many.js +60 -31
  155. package/dist/cli/commands/update-many.js.map +1 -1
  156. package/dist/cli/commands/update.d.ts +71 -0
  157. package/dist/cli/commands/update.js +91 -11
  158. package/dist/cli/commands/update.js.map +1 -1
  159. package/dist/cli/commands/upgrade.d.ts +28 -1
  160. package/dist/cli/commands/upgrade.js +17 -4
  161. package/dist/cli/commands/upgrade.js.map +1 -1
  162. package/dist/cli/commands/validate.d.ts +114 -0
  163. package/dist/cli/commands/validate.js +153 -8
  164. package/dist/cli/commands/validate.js.map +1 -1
  165. package/dist/cli/error-guidance.d.ts +30 -0
  166. package/dist/cli/error-guidance.js +41 -6
  167. package/dist/cli/error-guidance.js.map +1 -1
  168. package/dist/cli/extension-command-options.js +9 -7
  169. package/dist/cli/extension-command-options.js.map +1 -1
  170. package/dist/cli/help-content.d.ts +8 -0
  171. package/dist/cli/help-content.js +54 -6
  172. package/dist/cli/help-content.js.map +1 -1
  173. package/dist/cli/help-json-payload.d.ts +19 -1
  174. package/dist/cli/help-json-payload.js +16 -7
  175. package/dist/cli/help-json-payload.js.map +1 -1
  176. package/dist/cli/main.d.ts +242 -0
  177. package/dist/cli/main.js +241 -45
  178. package/dist/cli/main.js.map +1 -1
  179. package/dist/cli/register-list-query.js +62 -5
  180. package/dist/cli/register-list-query.js.map +1 -1
  181. package/dist/cli/register-mutation.d.ts +16 -0
  182. package/dist/cli/register-mutation.js +376 -100
  183. package/dist/cli/register-mutation.js.map +1 -1
  184. package/dist/cli/register-operations.d.ts +8 -0
  185. package/dist/cli/register-operations.js +134 -11
  186. package/dist/cli/register-operations.js.map +1 -1
  187. package/dist/cli/register-setup.js +9 -6
  188. package/dist/cli/register-setup.js.map +1 -1
  189. package/dist/cli/registration-helpers.d.ts +4 -0
  190. package/dist/cli/registration-helpers.js +124 -38
  191. package/dist/cli/registration-helpers.js.map +1 -1
  192. package/dist/cli-bundle/chunks/activity-PZYSZA26.js +18 -0
  193. package/dist/cli-bundle/chunks/{activity-PPO7QWJF.js → activity-SFM4THAU.js} +13 -11
  194. package/dist/cli-bundle/chunks/{aggregate-IRHJWEKG.js → aggregate-Y5ADDKBM.js} +55 -26
  195. package/dist/cli-bundle/chunks/aggregate-Y5ADDKBM.js.map +1 -0
  196. package/dist/cli-bundle/chunks/{aggregate-XEBW22UQ.js → aggregate-YTAUQLRW.js} +54 -25
  197. package/dist/cli-bundle/chunks/aggregate-YTAUQLRW.js.map +7 -0
  198. package/dist/cli-bundle/chunks/{append-NL67JNJU.js → append-4M7OVV7M.js} +11 -11
  199. package/dist/cli-bundle/chunks/append-4M7OVV7M.js.map +1 -0
  200. package/dist/cli-bundle/chunks/{append-N2AWXKZC.js → append-HSPK4L4V.js} +10 -10
  201. package/dist/cli-bundle/chunks/{append-N2AWXKZC.js.map → append-HSPK4L4V.js.map} +2 -2
  202. package/dist/cli-bundle/chunks/{chunk-IIOIBAQW.js → chunk-26BM6YLO.js} +3 -3
  203. package/dist/cli-bundle/chunks/{chunk-CEGUH2E5.js → chunk-2C6FU3D3.js} +5 -5
  204. package/dist/cli-bundle/chunks/{chunk-CEGUH2E5.js.map → chunk-2C6FU3D3.js.map} +1 -1
  205. package/dist/cli-bundle/chunks/{chunk-SQDKAEKG.js → chunk-2OPYLXDO.js} +117 -37
  206. package/dist/cli-bundle/chunks/chunk-2OPYLXDO.js.map +7 -0
  207. package/dist/cli-bundle/chunks/{chunk-4ZKKZMLH.js → chunk-2S46FKLB.js} +104 -30
  208. package/dist/cli-bundle/chunks/chunk-2S46FKLB.js.map +1 -0
  209. package/dist/cli-bundle/chunks/{chunk-LSSTKL3Y.js → chunk-2TMKMTEI.js} +3 -3
  210. package/dist/cli-bundle/chunks/{chunk-QU3OPNVV.js → chunk-2VH7DFSJ.js} +2 -2
  211. package/dist/cli-bundle/chunks/{chunk-RHYBR6G7.js → chunk-3ENF4NO4.js} +74 -14
  212. package/dist/cli-bundle/chunks/chunk-3ENF4NO4.js.map +1 -0
  213. package/dist/cli-bundle/chunks/chunk-3GR2HTYY.js +404 -0
  214. package/dist/cli-bundle/chunks/chunk-3GR2HTYY.js.map +7 -0
  215. package/dist/cli-bundle/chunks/{chunk-AAUYXSFF.js → chunk-3R3FYCBV.js} +223 -50
  216. package/dist/cli-bundle/chunks/chunk-3R3FYCBV.js.map +7 -0
  217. package/dist/cli-bundle/chunks/{chunk-5HSAHRYA.js → chunk-3UKJX3RP.js} +82 -21
  218. package/dist/cli-bundle/chunks/chunk-3UKJX3RP.js.map +7 -0
  219. package/dist/cli-bundle/chunks/chunk-4RTLBTYS.js +83 -0
  220. package/dist/cli-bundle/chunks/chunk-4RTLBTYS.js.map +1 -0
  221. package/dist/cli-bundle/chunks/{chunk-UCVJP4JL.js → chunk-5FDYWOJT.js} +52 -8
  222. package/dist/cli-bundle/chunks/chunk-5FDYWOJT.js.map +7 -0
  223. package/dist/cli-bundle/chunks/{chunk-LGOXXQUW.js → chunk-5XGWFUW2.js} +2 -2
  224. package/dist/cli-bundle/chunks/{chunk-LYNQ3NGI.js → chunk-6BD77FGL.js} +309 -20
  225. package/dist/cli-bundle/chunks/chunk-6BD77FGL.js.map +1 -0
  226. package/dist/cli-bundle/chunks/chunk-6EFCFPNE.js +35 -0
  227. package/dist/cli-bundle/chunks/chunk-6EFCFPNE.js.map +7 -0
  228. package/dist/cli-bundle/chunks/{chunk-36BCSMKP.js → chunk-6HF6CIY2.js} +26 -11
  229. package/dist/cli-bundle/chunks/chunk-6HF6CIY2.js.map +7 -0
  230. package/dist/cli-bundle/chunks/{chunk-M3SI2REU.js → chunk-6PBPD4MN.js} +322 -19
  231. package/dist/cli-bundle/chunks/chunk-6PBPD4MN.js.map +7 -0
  232. package/dist/cli-bundle/chunks/{chunk-TSXWFN3L.js → chunk-6VFUEGOA.js} +53 -9
  233. package/dist/cli-bundle/chunks/chunk-6VFUEGOA.js.map +1 -0
  234. package/dist/cli-bundle/chunks/{chunk-2J2AH4V5.js → chunk-AAOXSPAE.js} +56 -72
  235. package/dist/cli-bundle/chunks/chunk-AAOXSPAE.js.map +1 -0
  236. package/dist/cli-bundle/chunks/{chunk-Z647PYLD.js → chunk-AJCQ5GT6.js} +4 -4
  237. package/dist/cli-bundle/chunks/chunk-ALTGYHN3.js +61 -0
  238. package/dist/cli-bundle/chunks/chunk-ALTGYHN3.js.map +7 -0
  239. package/dist/cli-bundle/chunks/{chunk-KHGTYCJ6.js → chunk-AOJQL33L.js} +83 -22
  240. package/dist/cli-bundle/chunks/chunk-AOJQL33L.js.map +1 -0
  241. package/dist/cli-bundle/chunks/{chunk-5LMF75Q7.js → chunk-AXLDUGXA.js} +7 -4
  242. package/dist/cli-bundle/chunks/{chunk-5LMF75Q7.js.map → chunk-AXLDUGXA.js.map} +2 -2
  243. package/dist/cli-bundle/chunks/{chunk-DWG4FHPY.js → chunk-BITCVGHT.js} +2 -2
  244. package/dist/cli-bundle/chunks/{chunk-JE5IZXDS.js → chunk-CGQTFWYI.js} +4 -4
  245. package/dist/cli-bundle/chunks/{chunk-LFW5NQUP.js → chunk-CHM2VFVL.js} +407 -290
  246. package/dist/cli-bundle/chunks/chunk-CHM2VFVL.js.map +7 -0
  247. package/dist/cli-bundle/chunks/{chunk-VYZNX4C5.js → chunk-COVLE33A.js} +3 -3
  248. package/dist/cli-bundle/chunks/{chunk-SGMGMCIF.js → chunk-DDNBWH4W.js} +157 -25
  249. package/dist/cli-bundle/chunks/chunk-DDNBWH4W.js.map +1 -0
  250. package/dist/cli-bundle/chunks/{chunk-6ZFTM65G.js → chunk-F5MSD5HE.js} +2 -2
  251. package/dist/cli-bundle/chunks/{chunk-6TBR5AZ2.js → chunk-FAXB6F6R.js} +76 -8
  252. package/dist/cli-bundle/chunks/chunk-FAXB6F6R.js.map +7 -0
  253. package/dist/cli-bundle/chunks/{chunk-L6YQONLM.js → chunk-FPDK5BZQ.js} +18 -19
  254. package/dist/cli-bundle/chunks/chunk-FPDK5BZQ.js.map +1 -0
  255. package/dist/cli-bundle/chunks/{chunk-AGG32LKL.js → chunk-FPY2TOFI.js} +480 -24
  256. package/dist/cli-bundle/chunks/chunk-FPY2TOFI.js.map +1 -0
  257. package/dist/cli-bundle/chunks/{chunk-JWXTOYBI.js → chunk-G2MOUCTU.js} +121 -44
  258. package/dist/cli-bundle/chunks/chunk-G2MOUCTU.js.map +7 -0
  259. package/dist/cli-bundle/chunks/{chunk-3VULHQNS.js → chunk-G57RHEGP.js} +36 -18
  260. package/dist/cli-bundle/chunks/chunk-G57RHEGP.js.map +1 -0
  261. package/dist/cli-bundle/chunks/{chunk-QQG4HEX7.js → chunk-IROHIK2T.js} +37 -63
  262. package/dist/cli-bundle/chunks/chunk-IROHIK2T.js.map +1 -0
  263. package/dist/cli-bundle/chunks/{chunk-GOO4UXBI.js → chunk-JZHL4E3Q.js} +4 -4
  264. package/dist/cli-bundle/chunks/{chunk-XXLMJDUB.js → chunk-KA22USXD.js} +21 -22
  265. package/dist/cli-bundle/chunks/chunk-KA22USXD.js.map +7 -0
  266. package/dist/cli-bundle/chunks/{chunk-WLH7X4RN.js → chunk-KBC4O7SY.js} +56 -72
  267. package/dist/cli-bundle/chunks/chunk-KBC4O7SY.js.map +7 -0
  268. package/dist/cli-bundle/chunks/{chunk-NN6RKGFW.js → chunk-KCAGIH6K.js} +3 -3
  269. package/dist/cli-bundle/chunks/{chunk-BVL5KGVA.js → chunk-KO3VM5GS.js} +27 -12
  270. package/dist/cli-bundle/chunks/chunk-KO3VM5GS.js.map +1 -0
  271. package/dist/cli-bundle/chunks/{chunk-IXVSSHGV.js → chunk-LNH5Q32E.js} +13 -8
  272. package/dist/cli-bundle/chunks/chunk-LNH5Q32E.js.map +7 -0
  273. package/dist/cli-bundle/chunks/{chunk-3FMQMHAG.js → chunk-LORM3M2I.js} +4 -4
  274. package/dist/cli-bundle/chunks/{chunk-3FMQMHAG.js.map → chunk-LORM3M2I.js.map} +1 -1
  275. package/dist/cli-bundle/chunks/{chunk-PNYAAB4S.js → chunk-LWGMDLQ6.js} +8 -3
  276. package/dist/cli-bundle/chunks/chunk-LWGMDLQ6.js.map +1 -0
  277. package/dist/cli-bundle/chunks/{chunk-GFBEXDCQ.js → chunk-M4AVU7VC.js} +19 -8
  278. package/dist/cli-bundle/chunks/{chunk-GFBEXDCQ.js.map → chunk-M4AVU7VC.js.map} +2 -2
  279. package/dist/cli-bundle/chunks/{chunk-3CQPVBK3.js → chunk-MIBX6ZRN.js} +3 -3
  280. package/dist/cli-bundle/chunks/{chunk-AUDDXKNX.js → chunk-MMF2E3FM.js} +77 -9
  281. package/dist/cli-bundle/chunks/chunk-MMF2E3FM.js.map +1 -0
  282. package/dist/cli-bundle/chunks/{chunk-RFR2YQGO.js → chunk-MORZOR7W.js} +21 -8
  283. package/dist/cli-bundle/chunks/chunk-MORZOR7W.js.map +1 -0
  284. package/dist/cli-bundle/chunks/{chunk-4TPFXE2R.js → chunk-MUTUZ2HD.js} +118 -74
  285. package/dist/cli-bundle/chunks/chunk-MUTUZ2HD.js.map +1 -0
  286. package/dist/cli-bundle/chunks/{chunk-HZOX5BYD.js → chunk-OGXEBTX3.js} +35 -17
  287. package/dist/cli-bundle/chunks/chunk-OGXEBTX3.js.map +7 -0
  288. package/dist/cli-bundle/chunks/{chunk-LOAR5TKX.js → chunk-OOIH6J5T.js} +4 -4
  289. package/dist/cli-bundle/chunks/{chunk-LOAR5TKX.js.map → chunk-OOIH6J5T.js.map} +1 -1
  290. package/dist/cli-bundle/chunks/{chunk-VNC2HBL4.js → chunk-OSBJPPX3.js} +20 -9
  291. package/dist/cli-bundle/chunks/chunk-OSBJPPX3.js.map +1 -0
  292. package/dist/cli-bundle/chunks/{chunk-2ANTZBYF.js → chunk-PJS3WDO2.js} +122 -45
  293. package/dist/cli-bundle/chunks/chunk-PJS3WDO2.js.map +1 -0
  294. package/dist/cli-bundle/chunks/{chunk-7SM7VA5I.js → chunk-QGPE2H6Z.js} +19 -8
  295. package/dist/cli-bundle/chunks/chunk-QGPE2H6Z.js.map +7 -0
  296. package/dist/cli-bundle/chunks/chunk-QVTFFLR2.js +58 -0
  297. package/dist/cli-bundle/chunks/chunk-QVTFFLR2.js.map +1 -0
  298. package/dist/cli-bundle/chunks/{chunk-JCTZV7TO.js → chunk-QW2F6ARZ.js} +8 -5
  299. package/dist/cli-bundle/chunks/{chunk-JCTZV7TO.js.map → chunk-QW2F6ARZ.js.map} +1 -1
  300. package/dist/cli-bundle/chunks/{chunk-TOX7YQ7X.js → chunk-QXC3LWB7.js} +223 -50
  301. package/dist/cli-bundle/chunks/chunk-QXC3LWB7.js.map +1 -0
  302. package/dist/cli-bundle/chunks/{chunk-W6KNFAMZ.js → chunk-QXMXRPX5.js} +9 -8
  303. package/dist/cli-bundle/chunks/chunk-QXMXRPX5.js.map +7 -0
  304. package/dist/cli-bundle/chunks/{chunk-O3YCJOVX.js → chunk-R4AKUPKI.js} +3 -3
  305. package/dist/cli-bundle/chunks/{chunk-O3YCJOVX.js.map → chunk-R4AKUPKI.js.map} +1 -1
  306. package/dist/cli-bundle/chunks/chunk-RASR23HV.js +394 -0
  307. package/dist/cli-bundle/chunks/chunk-RASR23HV.js.map +1 -0
  308. package/dist/cli-bundle/chunks/{chunk-JW7D6437.js → chunk-SCDCNGCV.js} +20 -9
  309. package/dist/cli-bundle/chunks/chunk-SCDCNGCV.js.map +1 -0
  310. package/dist/cli-bundle/chunks/{chunk-GRZGHGRG.js → chunk-SCS5PVAA.js} +10 -9
  311. package/dist/cli-bundle/chunks/{chunk-GRZGHGRG.js.map → chunk-SCS5PVAA.js.map} +2 -2
  312. package/dist/cli-bundle/chunks/{chunk-S2CDTRJ6.js → chunk-SJCMTOEU.js} +381 -271
  313. package/dist/cli-bundle/chunks/chunk-SJCMTOEU.js.map +1 -0
  314. package/dist/cli-bundle/chunks/{chunk-XWDZVCBJ.js → chunk-SO2ES46D.js} +11 -10
  315. package/dist/cli-bundle/chunks/{chunk-XWDZVCBJ.js.map → chunk-SO2ES46D.js.map} +1 -1
  316. package/dist/cli-bundle/chunks/{chunk-MACCNKSZ.js → chunk-TBV33CB4.js} +36 -62
  317. package/dist/cli-bundle/chunks/chunk-TBV33CB4.js.map +7 -0
  318. package/dist/cli-bundle/chunks/chunk-TEFEXQWI.js +86 -0
  319. package/dist/cli-bundle/chunks/chunk-TEFEXQWI.js.map +7 -0
  320. package/dist/cli-bundle/chunks/{chunk-HLEGAQXT.js → chunk-TWBDDVIF.js} +20 -7
  321. package/dist/cli-bundle/chunks/chunk-TWBDDVIF.js.map +7 -0
  322. package/dist/cli-bundle/chunks/{chunk-4JHJ7YG2.js → chunk-UGUJ2UOR.js} +118 -74
  323. package/dist/cli-bundle/chunks/chunk-UGUJ2UOR.js.map +7 -0
  324. package/dist/cli-bundle/chunks/{chunk-XOYHMHFF.js → chunk-UN6P3IJ4.js} +3 -3
  325. package/dist/cli-bundle/chunks/{chunk-32XSW44C.js → chunk-V2GYOMEX.js} +10 -9
  326. package/dist/cli-bundle/chunks/chunk-V2GYOMEX.js.map +1 -0
  327. package/dist/cli-bundle/chunks/{chunk-HWHONML5.js → chunk-VF3KQGNY.js} +4 -4
  328. package/dist/cli-bundle/chunks/{chunk-SOHXUA2Q.js → chunk-VHG6LUKR.js} +116 -36
  329. package/dist/cli-bundle/chunks/chunk-VHG6LUKR.js.map +1 -0
  330. package/dist/cli-bundle/chunks/{chunk-7CRFV6JR.js → chunk-VXHMQDXA.js} +483 -27
  331. package/dist/cli-bundle/chunks/chunk-VXHMQDXA.js.map +7 -0
  332. package/dist/cli-bundle/chunks/{chunk-IZHCCG4S.js → chunk-VXRFAE7W.js} +14 -9
  333. package/dist/cli-bundle/chunks/chunk-VXRFAE7W.js.map +1 -0
  334. package/dist/cli-bundle/chunks/{chunk-R4VWYWRN.js → chunk-W3HFLORZ.js} +7 -2
  335. package/dist/cli-bundle/chunks/chunk-W3HFLORZ.js.map +7 -0
  336. package/dist/cli-bundle/chunks/{chunk-4FHLNNW7.js → chunk-WQRL4COW.js} +74 -14
  337. package/dist/cli-bundle/chunks/chunk-WQRL4COW.js.map +7 -0
  338. package/dist/cli-bundle/chunks/chunk-X3W5ESZQ.js +32 -0
  339. package/dist/cli-bundle/chunks/chunk-X3W5ESZQ.js.map +1 -0
  340. package/dist/cli-bundle/chunks/{chunk-MGAQ6KZG.js → chunk-XESAPVZ4.js} +166 -27
  341. package/dist/cli-bundle/chunks/chunk-XESAPVZ4.js.map +7 -0
  342. package/dist/cli-bundle/chunks/{chunk-PEH7SZD2.js → chunk-YLAW3FZN.js} +105 -31
  343. package/dist/cli-bundle/chunks/chunk-YLAW3FZN.js.map +7 -0
  344. package/dist/cli-bundle/chunks/{claim-HE6KEGJW.js → claim-WGAWJCPY.js} +10 -10
  345. package/dist/cli-bundle/chunks/{claim-QJOQBH7J.js → claim-ZI6P4LMU.js} +10 -10
  346. package/dist/cli-bundle/chunks/close-I7PRQ5G7.js +13 -0
  347. package/dist/cli-bundle/chunks/{close-SPUFW5QR.js → close-JMVVSIQE.js} +8 -8
  348. package/dist/cli-bundle/chunks/{close-many-GKAJX54X.js → close-many-IKPJXVOZ.js} +32 -20
  349. package/dist/cli-bundle/chunks/close-many-IKPJXVOZ.js.map +1 -0
  350. package/dist/cli-bundle/chunks/{close-many-GL6NRUU5.js → close-many-TXABDCSJ.js} +31 -19
  351. package/dist/cli-bundle/chunks/close-many-TXABDCSJ.js.map +7 -0
  352. package/dist/cli-bundle/chunks/{comments-5FPT6L7N.js → comments-RLWR2S7W.js} +55 -31
  353. package/dist/cli-bundle/chunks/comments-RLWR2S7W.js.map +1 -0
  354. package/dist/cli-bundle/chunks/{comments-TOLOYWNI.js → comments-YAMXKHUX.js} +54 -30
  355. package/dist/cli-bundle/chunks/comments-YAMXKHUX.js.map +7 -0
  356. package/dist/cli-bundle/chunks/{config-7N6D7YJE.js → config-7ICYC2WU.js} +83 -19
  357. package/dist/cli-bundle/chunks/config-7ICYC2WU.js.map +7 -0
  358. package/dist/cli-bundle/chunks/{config-4MN45TIH.js → config-NGWN3EXC.js} +83 -19
  359. package/dist/cli-bundle/chunks/config-NGWN3EXC.js.map +1 -0
  360. package/dist/cli-bundle/chunks/{context-AQSLE7DZ.js → context-K6QAHN5H.js} +128 -39
  361. package/dist/cli-bundle/chunks/context-K6QAHN5H.js.map +1 -0
  362. package/dist/cli-bundle/chunks/{context-U3PUJMVN.js → context-VGXOOAH2.js} +127 -38
  363. package/dist/cli-bundle/chunks/context-VGXOOAH2.js.map +7 -0
  364. package/dist/cli-bundle/chunks/{contracts-ITSJXO3O.js → contracts-KJGY2AQA.js} +99 -15
  365. package/dist/cli-bundle/chunks/contracts-KJGY2AQA.js.map +1 -0
  366. package/dist/cli-bundle/chunks/{contracts-H7KCQXLY.js → contracts-KMA6OJY7.js} +99 -15
  367. package/dist/cli-bundle/chunks/contracts-KMA6OJY7.js.map +7 -0
  368. package/dist/cli-bundle/chunks/{copy-EB3MUCSW.js → copy-Q2PPU4AY.js} +7 -7
  369. package/dist/cli-bundle/chunks/{copy-C4W522JM.js → copy-SC6UF3PI.js} +7 -7
  370. package/dist/cli-bundle/chunks/{create-4EQNELMY.js → create-76FE7JVF.js} +16 -13
  371. package/dist/cli-bundle/chunks/create-RTRFW6RE.js +30 -0
  372. package/dist/cli-bundle/chunks/{delete-X5QLXIQX.js → delete-T6DJSUJI.js} +7 -7
  373. package/dist/cli-bundle/chunks/{delete-ZLGUYIXU.js → delete-XFUX533E.js} +7 -7
  374. package/dist/cli-bundle/chunks/{deps-GPB3LGWN.js → deps-5GWMMS6D.js} +9 -10
  375. package/dist/cli-bundle/chunks/{deps-GPB3LGWN.js.map → deps-5GWMMS6D.js.map} +2 -2
  376. package/dist/cli-bundle/chunks/{deps-HV2C2L46.js → deps-MCCU633S.js} +10 -11
  377. package/dist/cli-bundle/chunks/deps-MCCU633S.js.map +1 -0
  378. package/dist/cli-bundle/chunks/{docs-SRTLCQOL.js → docs-HE3HCQ4S.js} +9 -9
  379. package/dist/cli-bundle/chunks/{docs-RJQPLROO.js → docs-SXMOABHR.js} +9 -9
  380. package/dist/cli-bundle/chunks/{extension-WKPVPNCC.js → extension-E23K4QRR.js} +7 -5
  381. package/dist/cli-bundle/chunks/{extension-MM3TVWOO.js → extension-PMD3XMLN.js} +7 -5
  382. package/dist/cli-bundle/chunks/{files-OIFN3DQX.js → files-2RSWGPEU.js} +25 -11
  383. package/dist/cli-bundle/chunks/files-2RSWGPEU.js.map +1 -0
  384. package/dist/cli-bundle/chunks/{files-LIFDKNCN.js → files-ZWFJFWBK.js} +24 -10
  385. package/dist/cli-bundle/chunks/files-ZWFJFWBK.js.map +7 -0
  386. package/dist/cli-bundle/chunks/focus-KTTB3P3F.js +106 -0
  387. package/dist/cli-bundle/chunks/focus-KTTB3P3F.js.map +1 -0
  388. package/dist/cli-bundle/chunks/focus-ZMDP4FEL.js +109 -0
  389. package/dist/cli-bundle/chunks/focus-ZMDP4FEL.js.map +7 -0
  390. package/dist/cli-bundle/chunks/{gc-NRFHLVFT.js → gc-BXIAKLAH.js} +3 -3
  391. package/dist/cli-bundle/chunks/{gc-DL6AVOX5.js → gc-C7K6JNUO.js} +3 -3
  392. package/dist/cli-bundle/chunks/{get-SAB7CRBG.js → get-AZQLC4NO.js} +43 -16
  393. package/dist/cli-bundle/chunks/get-AZQLC4NO.js.map +1 -0
  394. package/dist/cli-bundle/chunks/{get-K7UULTQF.js → get-I65HTAWO.js} +42 -15
  395. package/dist/cli-bundle/chunks/get-I65HTAWO.js.map +7 -0
  396. package/dist/cli-bundle/chunks/{health-NUVZYIEV.js → health-3MFFPQVZ.js} +75 -49
  397. package/dist/cli-bundle/chunks/health-3MFFPQVZ.js.map +1 -0
  398. package/dist/cli-bundle/chunks/{health-VJWH3ZFK.js → health-MYZEOCLI.js} +74 -48
  399. package/dist/cli-bundle/chunks/health-MYZEOCLI.js.map +7 -0
  400. package/dist/cli-bundle/chunks/{history-GYFD2DJW.js → history-73Z6OBFZ.js} +10 -10
  401. package/dist/cli-bundle/chunks/history-BIPHVUMF.js +20 -0
  402. package/dist/cli-bundle/chunks/{history-compact-WQZQ6KXM.js → history-compact-24VQ63A3.js} +37 -46
  403. package/dist/cli-bundle/chunks/history-compact-24VQ63A3.js.map +7 -0
  404. package/dist/cli-bundle/chunks/{history-compact-SLL6ESXH.js → history-compact-UIAR2OI4.js} +38 -47
  405. package/dist/cli-bundle/chunks/history-compact-UIAR2OI4.js.map +1 -0
  406. package/dist/cli-bundle/chunks/{history-redact-SDTDR6WM.js → history-redact-7YCXEWJD.js} +13 -11
  407. package/dist/cli-bundle/chunks/history-redact-WZZ6GZ2Z.js +21 -0
  408. package/dist/cli-bundle/chunks/{history-repair-BJCGM6Q3.js → history-repair-4NOFFG2W.js} +44 -49
  409. package/dist/cli-bundle/chunks/history-repair-4NOFFG2W.js.map +1 -0
  410. package/dist/cli-bundle/chunks/{history-repair-UCYS55ZX.js → history-repair-GQN2X4TR.js} +43 -48
  411. package/dist/cli-bundle/chunks/history-repair-GQN2X4TR.js.map +7 -0
  412. package/dist/cli-bundle/chunks/init-K34V4PZR.js +20 -0
  413. package/dist/cli-bundle/chunks/{init-MXV57LKL.js → init-TDEDNVMM.js} +12 -9
  414. package/dist/cli-bundle/chunks/{learnings-QKJOKEAO.js → learnings-TV2CTGJ3.js} +13 -12
  415. package/dist/cli-bundle/chunks/learnings-TV2CTGJ3.js.map +7 -0
  416. package/dist/cli-bundle/chunks/{learnings-L6KTZGOT.js → learnings-U67FTXPB.js} +14 -13
  417. package/dist/cli-bundle/chunks/learnings-U67FTXPB.js.map +1 -0
  418. package/dist/cli-bundle/chunks/list-MSHYOCFU.js +33 -0
  419. package/dist/cli-bundle/chunks/list-VV57WGUD.js +29 -0
  420. package/dist/cli-bundle/chunks/{notes-HMCB7TK6.js → notes-EUANWWKD.js} +13 -12
  421. package/dist/cli-bundle/chunks/notes-EUANWWKD.js.map +7 -0
  422. package/dist/cli-bundle/chunks/{notes-3NLK7WTZ.js → notes-GYVNDAL4.js} +14 -13
  423. package/dist/cli-bundle/chunks/notes-GYVNDAL4.js.map +1 -0
  424. package/dist/cli-bundle/chunks/{plan-NANUWH4T.js → plan-4LF4AV63.js} +15 -14
  425. package/dist/cli-bundle/chunks/plan-4LF4AV63.js.map +7 -0
  426. package/dist/cli-bundle/chunks/{plan-DWBYI5C6.js → plan-W27O6DBS.js} +16 -15
  427. package/dist/cli-bundle/chunks/plan-W27O6DBS.js.map +1 -0
  428. package/dist/cli-bundle/chunks/{register-list-query-SMMMLSWW.js → register-list-query-BXLEHJ7L.js} +32 -23
  429. package/dist/cli-bundle/chunks/register-list-query-BXLEHJ7L.js.map +1 -0
  430. package/dist/cli-bundle/chunks/{register-list-query-PWQ5F2VI.js → register-list-query-C2MS3BVQ.js} +31 -22
  431. package/dist/cli-bundle/chunks/register-list-query-C2MS3BVQ.js.map +7 -0
  432. package/dist/cli-bundle/chunks/{register-mutation-QKFPTIZG.js → register-mutation-6UCOEQ6L.js} +361 -106
  433. package/dist/cli-bundle/chunks/register-mutation-6UCOEQ6L.js.map +7 -0
  434. package/dist/cli-bundle/chunks/{register-mutation-ZYJQ4DVP.js → register-mutation-HE73PREP.js} +355 -107
  435. package/dist/cli-bundle/chunks/register-mutation-HE73PREP.js.map +1 -0
  436. package/dist/cli-bundle/chunks/{register-operations-2FMZ6WEF.js → register-operations-L6C32FDA.js} +111 -39
  437. package/dist/cli-bundle/chunks/register-operations-L6C32FDA.js.map +7 -0
  438. package/dist/cli-bundle/chunks/{register-operations-BAFQURZG.js → register-operations-QQEHEX4P.js} +112 -40
  439. package/dist/cli-bundle/chunks/register-operations-QQEHEX4P.js.map +1 -0
  440. package/dist/cli-bundle/chunks/{register-setup-QN2XV7UL.js → register-setup-A7N4PNT3.js} +18 -21
  441. package/dist/cli-bundle/chunks/register-setup-A7N4PNT3.js.map +1 -0
  442. package/dist/cli-bundle/chunks/{register-setup-DQEIKBIP.js → register-setup-WHG3NBP6.js} +17 -20
  443. package/dist/cli-bundle/chunks/register-setup-WHG3NBP6.js.map +7 -0
  444. package/dist/cli-bundle/chunks/{restore-FJQWXMPY.js → restore-TSWSULYY.js} +13 -11
  445. package/dist/cli-bundle/chunks/restore-XQXICL3V.js +19 -0
  446. package/dist/cli-bundle/chunks/scheduling-shortcuts-NC46K6BD.js +91 -0
  447. package/dist/cli-bundle/chunks/scheduling-shortcuts-NC46K6BD.js.map +7 -0
  448. package/dist/cli-bundle/chunks/scheduling-shortcuts-UGDPQALY.js +88 -0
  449. package/dist/cli-bundle/chunks/scheduling-shortcuts-UGDPQALY.js.map +1 -0
  450. package/dist/cli-bundle/chunks/{schema-ZZ7ZDM2X.js → schema-7U7JUYGK.js} +797 -10
  451. package/dist/cli-bundle/chunks/schema-7U7JUYGK.js.map +1 -0
  452. package/dist/cli-bundle/chunks/{schema-RNVJ55V2.js → schema-TSBYSEMW.js} +810 -9
  453. package/dist/cli-bundle/chunks/schema-TSBYSEMW.js.map +7 -0
  454. package/dist/cli-bundle/chunks/{search-BJ457C2A.js → search-OXLSQKHP.js} +328 -71
  455. package/dist/cli-bundle/chunks/search-OXLSQKHP.js.map +7 -0
  456. package/dist/cli-bundle/chunks/{search-FQDZXX7P.js → search-T3TOFLOQ.js} +328 -71
  457. package/dist/cli-bundle/chunks/search-T3TOFLOQ.js.map +1 -0
  458. package/dist/cli-bundle/chunks/{stats-DUQWCVOS.js → stats-5CLG22YZ.js} +41 -16
  459. package/dist/cli-bundle/chunks/stats-5CLG22YZ.js.map +7 -0
  460. package/dist/cli-bundle/chunks/{stats-CUG3ZHOI.js → stats-XEMUXS42.js} +42 -17
  461. package/dist/cli-bundle/chunks/stats-XEMUXS42.js.map +1 -0
  462. package/dist/cli-bundle/chunks/{telemetry-RK2VX75A.js → telemetry-23OPBBZT.js} +7 -7
  463. package/dist/cli-bundle/chunks/telemetry-23OPBBZT.js.map +1 -0
  464. package/dist/cli-bundle/chunks/{telemetry-33MRGX4Z.js → telemetry-I3D7XZ55.js} +6 -6
  465. package/dist/cli-bundle/chunks/telemetry-I3D7XZ55.js.map +7 -0
  466. package/dist/cli-bundle/chunks/test-AROS3LIV.js +35 -0
  467. package/dist/cli-bundle/chunks/{test-Y3CTFMEC.js → test-CECIMKOA.js} +17 -14
  468. package/dist/cli-bundle/chunks/{test-all-ARSMX33Q.js → test-all-4DEQPIXH.js} +25 -17
  469. package/dist/cli-bundle/chunks/test-all-4DEQPIXH.js.map +1 -0
  470. package/dist/cli-bundle/chunks/{test-all-ANYQ33O2.js → test-all-6RO6X3SM.js} +24 -16
  471. package/dist/cli-bundle/chunks/test-all-6RO6X3SM.js.map +7 -0
  472. package/dist/cli-bundle/chunks/{test-runs-5URSD34O.js → test-runs-AAXVFWKH.js} +62 -65
  473. package/dist/cli-bundle/chunks/test-runs-AAXVFWKH.js.map +1 -0
  474. package/dist/cli-bundle/chunks/{test-runs-XNACGSNQ.js → test-runs-LYBQSYRC.js} +61 -64
  475. package/dist/cli-bundle/chunks/test-runs-LYBQSYRC.js.map +7 -0
  476. package/dist/cli-bundle/chunks/update-MIWEJC76.js +24 -0
  477. package/dist/cli-bundle/chunks/update-P7I5YSRB.js +28 -0
  478. package/dist/cli-bundle/chunks/{update-many-724JCVDE.js → update-many-5B4HLVBK.js} +79 -33
  479. package/dist/cli-bundle/chunks/update-many-5B4HLVBK.js.map +7 -0
  480. package/dist/cli-bundle/chunks/{update-many-6B7PJ33I.js → update-many-G2QOVZSB.js} +80 -34
  481. package/dist/cli-bundle/chunks/update-many-G2QOVZSB.js.map +1 -0
  482. package/dist/cli-bundle/chunks/{upgrade-QHRGDBSA.js → upgrade-GFIDL62L.js} +23 -9
  483. package/dist/cli-bundle/chunks/upgrade-GFIDL62L.js.map +1 -0
  484. package/dist/cli-bundle/chunks/{upgrade-ALBEZAI7.js → upgrade-QUQYL7D3.js} +22 -8
  485. package/dist/cli-bundle/chunks/upgrade-QUQYL7D3.js.map +7 -0
  486. package/dist/cli-bundle/chunks/{validate-UY6DRCG5.js → validate-ADDZBMM3.js} +236 -30
  487. package/dist/cli-bundle/chunks/validate-ADDZBMM3.js.map +7 -0
  488. package/dist/cli-bundle/chunks/{validate-IQRYFXIV.js → validate-MAS3H6ZP.js} +222 -30
  489. package/dist/cli-bundle/chunks/validate-MAS3H6ZP.js.map +1 -0
  490. package/dist/cli-bundle/main.js +312 -139
  491. package/dist/cli-bundle/main.js.map +3 -3
  492. package/dist/cli.d.ts +10 -0
  493. package/dist/cli.js +21 -8
  494. package/dist/cli.js.map +1 -1
  495. package/dist/core/config/nested-settings.js +40 -2
  496. package/dist/core/config/nested-settings.js.map +1 -1
  497. package/dist/core/diagnostics/remediation.js +7 -2
  498. package/dist/core/diagnostics/remediation.js.map +1 -1
  499. package/dist/core/extensions/extension-policy.js +14 -15
  500. package/dist/core/extensions/extension-policy.js.map +1 -1
  501. package/dist/core/extensions/item-fields.js +4 -5
  502. package/dist/core/extensions/item-fields.js.map +1 -1
  503. package/dist/core/extensions/loader.d.ts +75 -1
  504. package/dist/core/extensions/loader.js +56 -32
  505. package/dist/core/extensions/loader.js.map +1 -1
  506. package/dist/core/governance/content-fields.d.ts +84 -0
  507. package/dist/core/governance/content-fields.js +182 -0
  508. package/dist/core/governance/content-fields.js.map +1 -0
  509. package/dist/core/governance/issue-codes.d.ts +51 -0
  510. package/dist/core/governance/issue-codes.js +95 -0
  511. package/dist/core/governance/issue-codes.js.map +1 -0
  512. package/dist/core/governance/metadata-coverage.d.ts +168 -0
  513. package/dist/core/governance/metadata-coverage.js +362 -0
  514. package/dist/core/governance/metadata-coverage.js.map +1 -0
  515. package/dist/core/history/history-rewrite.d.ts +22 -0
  516. package/dist/core/history/history-rewrite.js +38 -2
  517. package/dist/core/history/history-rewrite.js.map +1 -1
  518. package/dist/core/history/history.d.ts +7 -0
  519. package/dist/core/history/history.js +6 -2
  520. package/dist/core/history/history.js.map +1 -1
  521. package/dist/core/io/body-file.d.ts +14 -0
  522. package/dist/core/io/body-file.js +47 -0
  523. package/dist/core/io/body-file.js.map +1 -0
  524. package/dist/core/item/item-format.d.ts +46 -1
  525. package/dist/core/item/item-format.js +51 -60
  526. package/dist/core/item/item-format.js.map +1 -1
  527. package/dist/core/item/parse.d.ts +41 -0
  528. package/dist/core/item/parse.js +69 -16
  529. package/dist/core/item/parse.js.map +1 -1
  530. package/dist/core/item/type-registry.d.ts +1 -0
  531. package/dist/core/item/type-registry.js +8 -10
  532. package/dist/core/item/type-registry.js.map +1 -1
  533. package/dist/core/lock/lock.d.ts +26 -0
  534. package/dist/core/lock/lock.js +10 -2
  535. package/dist/core/lock/lock.js.map +1 -1
  536. package/dist/core/output/output.d.ts +7 -0
  537. package/dist/core/output/output.js +6 -2
  538. package/dist/core/output/output.js.map +1 -1
  539. package/dist/core/schema/fields-file.d.ts +94 -0
  540. package/dist/core/schema/fields-file.js +317 -0
  541. package/dist/core/schema/fields-file.js.map +1 -0
  542. package/dist/core/schema/item-types-file.d.ts +25 -2
  543. package/dist/core/schema/item-types-file.js +78 -6
  544. package/dist/core/schema/item-types-file.js.map +1 -1
  545. package/dist/core/schema/runtime-schema.d.ts +7 -0
  546. package/dist/core/schema/runtime-schema.js +23 -16
  547. package/dist/core/schema/runtime-schema.js.map +1 -1
  548. package/dist/core/schema/type-inference.d.ts +34 -0
  549. package/dist/core/schema/type-inference.js +97 -0
  550. package/dist/core/schema/type-inference.js.map +1 -0
  551. package/dist/core/schema/type-presets.d.ts +30 -0
  552. package/dist/core/schema/type-presets.js +96 -0
  553. package/dist/core/schema/type-presets.js.map +1 -0
  554. package/dist/core/search/cache.d.ts +19 -1
  555. package/dist/core/search/cache.js +11 -3
  556. package/dist/core/search/cache.js.map +1 -1
  557. package/dist/core/search/corpus.d.ts +36 -2
  558. package/dist/core/search/corpus.js +120 -24
  559. package/dist/core/search/corpus.js.map +1 -1
  560. package/dist/core/search/providers.d.ts +19 -0
  561. package/dist/core/search/providers.js +19 -2
  562. package/dist/core/search/providers.js.map +1 -1
  563. package/dist/core/sentry/instrument.d.ts +1 -0
  564. package/dist/core/sentry/instrument.js +6 -2
  565. package/dist/core/sentry/instrument.js.map +1 -1
  566. package/dist/core/session/session-state.d.ts +16 -0
  567. package/dist/core/session/session-state.js +48 -0
  568. package/dist/core/session/session-state.js.map +1 -0
  569. package/dist/core/shared/constants.d.ts +8 -0
  570. package/dist/core/shared/constants.js +11 -2
  571. package/dist/core/shared/constants.js.map +1 -1
  572. package/dist/core/shared/text-normalization.js +4 -3
  573. package/dist/core/shared/text-normalization.js.map +1 -1
  574. package/dist/core/shared/time.d.ts +13 -0
  575. package/dist/core/shared/time.js +19 -7
  576. package/dist/core/shared/time.js.map +1 -1
  577. package/dist/core/store/front-matter-cache.d.ts +13 -0
  578. package/dist/core/store/front-matter-cache.js +21 -11
  579. package/dist/core/store/front-matter-cache.js.map +1 -1
  580. package/dist/core/store/item-store.d.ts +11 -0
  581. package/dist/core/store/item-store.js +12 -3
  582. package/dist/core/store/item-store.js.map +1 -1
  583. package/dist/core/store/settings-validator.d.ts +2 -0
  584. package/dist/core/store/settings-validator.js +25 -2
  585. package/dist/core/store/settings-validator.js.map +1 -1
  586. package/dist/core/store/settings.d.ts +60 -1
  587. package/dist/core/store/settings.js +100 -46
  588. package/dist/core/store/settings.js.map +1 -1
  589. package/dist/core/telemetry/observability.js +10 -8
  590. package/dist/core/telemetry/observability.js.map +1 -1
  591. package/dist/core/telemetry/runtime.d.ts +272 -1
  592. package/dist/core/telemetry/runtime.js +358 -37
  593. package/dist/core/telemetry/runtime.js.map +1 -1
  594. package/dist/core/test/background-runs.d.ts +35 -0
  595. package/dist/core/test/background-runs.js +72 -61
  596. package/dist/core/test/background-runs.js.map +1 -1
  597. package/dist/core/test/run-selectors.js +5 -4
  598. package/dist/core/test/run-selectors.js.map +1 -1
  599. package/dist/core/validate/estimate-defaults.d.ts +39 -0
  600. package/dist/core/validate/estimate-defaults.js +117 -0
  601. package/dist/core/validate/estimate-defaults.js.map +1 -0
  602. package/dist/core/validate/fix-planning.d.ts +21 -3
  603. package/dist/core/validate/fix-planning.js +31 -4
  604. package/dist/core/validate/fix-planning.js.map +1 -1
  605. package/dist/core/validate/missing-link-owners.d.ts +64 -0
  606. package/dist/core/validate/missing-link-owners.js +98 -0
  607. package/dist/core/validate/missing-link-owners.js.map +1 -0
  608. package/dist/mcp/server.d.ts +61 -0
  609. package/dist/mcp/server.js +98 -8
  610. package/dist/mcp/server.js.map +1 -1
  611. package/dist/mcp/tool-definitions.js +64 -10
  612. package/dist/mcp/tool-definitions.js.map +1 -1
  613. package/dist/sdk/cli-contracts/commander-types.js +13 -2
  614. package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
  615. package/dist/sdk/cli-contracts/enum-contracts.d.ts +2 -2
  616. package/dist/sdk/cli-contracts/enum-contracts.js +7 -2
  617. package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
  618. package/dist/sdk/cli-contracts/tool-option-contracts.js +110 -2
  619. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  620. package/dist/sdk/cli-contracts/tool-parameter-tables.js +127 -11
  621. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  622. package/dist/sdk/cli-contracts.d.ts +31 -0
  623. package/dist/sdk/cli-contracts.js +238 -12
  624. package/dist/sdk/cli-contracts.js.map +1 -1
  625. package/dist/types.d.ts +17 -1
  626. package/dist/types.js +3 -3
  627. package/dist/types.js.map +1 -1
  628. package/docs/AGENT_GUIDE.md +15 -3
  629. package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
  630. package/docs/COMMANDS.md +171 -10
  631. package/docs/CONFIGURATION.md +135 -0
  632. package/docs/TESTING.md +6 -4
  633. package/package.json +6 -4
  634. package/packages/pm-calendar/extensions/calendar/runtime.js +6 -0
  635. package/packages/pm-calendar/extensions/calendar/runtime.ts +12 -0
  636. package/packages/pm-todos/extensions/todos/runtime.ts +5 -0
  637. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  638. package/plugins/pm-claude/README.md +3 -3
  639. package/plugins/pm-claude/commands/pm-init.md +1 -1
  640. package/plugins/pm-codex/README.md +1 -1
  641. package/scripts/bundle-cli.mjs +46 -37
  642. package/scripts/finalize-build.mjs +20 -9
  643. package/scripts/prepare-build-cache.mjs +27 -16
  644. package/dist/cli-bundle/chunks/activity-XIOTGZMU.js +0 -16
  645. package/dist/cli-bundle/chunks/aggregate-IRHJWEKG.js.map +0 -1
  646. package/dist/cli-bundle/chunks/aggregate-XEBW22UQ.js.map +0 -7
  647. package/dist/cli-bundle/chunks/append-NL67JNJU.js.map +0 -1
  648. package/dist/cli-bundle/chunks/chunk-2ANTZBYF.js.map +0 -1
  649. package/dist/cli-bundle/chunks/chunk-2J2AH4V5.js.map +0 -1
  650. package/dist/cli-bundle/chunks/chunk-32XSW44C.js.map +0 -1
  651. package/dist/cli-bundle/chunks/chunk-36BCSMKP.js.map +0 -7
  652. package/dist/cli-bundle/chunks/chunk-3VULHQNS.js.map +0 -1
  653. package/dist/cli-bundle/chunks/chunk-4FHLNNW7.js.map +0 -7
  654. package/dist/cli-bundle/chunks/chunk-4JHJ7YG2.js.map +0 -7
  655. package/dist/cli-bundle/chunks/chunk-4TPFXE2R.js.map +0 -1
  656. package/dist/cli-bundle/chunks/chunk-4ZKKZMLH.js.map +0 -1
  657. package/dist/cli-bundle/chunks/chunk-5HSAHRYA.js.map +0 -7
  658. package/dist/cli-bundle/chunks/chunk-6TBR5AZ2.js.map +0 -7
  659. package/dist/cli-bundle/chunks/chunk-7CRFV6JR.js.map +0 -7
  660. package/dist/cli-bundle/chunks/chunk-7SM7VA5I.js.map +0 -7
  661. package/dist/cli-bundle/chunks/chunk-AAUYXSFF.js.map +0 -7
  662. package/dist/cli-bundle/chunks/chunk-AGG32LKL.js.map +0 -1
  663. package/dist/cli-bundle/chunks/chunk-AUDDXKNX.js.map +0 -1
  664. package/dist/cli-bundle/chunks/chunk-BVL5KGVA.js.map +0 -1
  665. package/dist/cli-bundle/chunks/chunk-C24PWDFG.js +0 -138
  666. package/dist/cli-bundle/chunks/chunk-C24PWDFG.js.map +0 -7
  667. package/dist/cli-bundle/chunks/chunk-HLEGAQXT.js.map +0 -7
  668. package/dist/cli-bundle/chunks/chunk-HZOX5BYD.js.map +0 -7
  669. package/dist/cli-bundle/chunks/chunk-IXVSSHGV.js.map +0 -7
  670. package/dist/cli-bundle/chunks/chunk-IZHCCG4S.js.map +0 -1
  671. package/dist/cli-bundle/chunks/chunk-JW7D6437.js.map +0 -1
  672. package/dist/cli-bundle/chunks/chunk-JWXTOYBI.js.map +0 -7
  673. package/dist/cli-bundle/chunks/chunk-KHGTYCJ6.js.map +0 -1
  674. package/dist/cli-bundle/chunks/chunk-L6YQONLM.js.map +0 -1
  675. package/dist/cli-bundle/chunks/chunk-LFW5NQUP.js.map +0 -7
  676. package/dist/cli-bundle/chunks/chunk-LYNQ3NGI.js.map +0 -1
  677. package/dist/cli-bundle/chunks/chunk-M3SI2REU.js.map +0 -7
  678. package/dist/cli-bundle/chunks/chunk-MACCNKSZ.js.map +0 -7
  679. package/dist/cli-bundle/chunks/chunk-MGAQ6KZG.js.map +0 -7
  680. package/dist/cli-bundle/chunks/chunk-PEH7SZD2.js.map +0 -7
  681. package/dist/cli-bundle/chunks/chunk-PNYAAB4S.js.map +0 -1
  682. package/dist/cli-bundle/chunks/chunk-QQG4HEX7.js.map +0 -1
  683. package/dist/cli-bundle/chunks/chunk-R4VWYWRN.js.map +0 -7
  684. package/dist/cli-bundle/chunks/chunk-RFR2YQGO.js.map +0 -1
  685. package/dist/cli-bundle/chunks/chunk-RHYBR6G7.js.map +0 -1
  686. package/dist/cli-bundle/chunks/chunk-S2CDTRJ6.js.map +0 -1
  687. package/dist/cli-bundle/chunks/chunk-SGMGMCIF.js.map +0 -1
  688. package/dist/cli-bundle/chunks/chunk-SOHXUA2Q.js.map +0 -1
  689. package/dist/cli-bundle/chunks/chunk-SQDKAEKG.js.map +0 -7
  690. package/dist/cli-bundle/chunks/chunk-TOX7YQ7X.js.map +0 -1
  691. package/dist/cli-bundle/chunks/chunk-TSXWFN3L.js.map +0 -1
  692. package/dist/cli-bundle/chunks/chunk-UCVJP4JL.js.map +0 -7
  693. package/dist/cli-bundle/chunks/chunk-V4KP3TCN.js +0 -128
  694. package/dist/cli-bundle/chunks/chunk-V4KP3TCN.js.map +0 -1
  695. package/dist/cli-bundle/chunks/chunk-VNC2HBL4.js.map +0 -1
  696. package/dist/cli-bundle/chunks/chunk-W6KNFAMZ.js.map +0 -7
  697. package/dist/cli-bundle/chunks/chunk-WLH7X4RN.js.map +0 -7
  698. package/dist/cli-bundle/chunks/chunk-XXLMJDUB.js.map +0 -7
  699. package/dist/cli-bundle/chunks/close-WOG5WTMZ.js +0 -13
  700. package/dist/cli-bundle/chunks/close-many-GKAJX54X.js.map +0 -1
  701. package/dist/cli-bundle/chunks/close-many-GL6NRUU5.js.map +0 -7
  702. package/dist/cli-bundle/chunks/comments-5FPT6L7N.js.map +0 -1
  703. package/dist/cli-bundle/chunks/comments-TOLOYWNI.js.map +0 -7
  704. package/dist/cli-bundle/chunks/config-4MN45TIH.js.map +0 -1
  705. package/dist/cli-bundle/chunks/config-7N6D7YJE.js.map +0 -7
  706. package/dist/cli-bundle/chunks/context-AQSLE7DZ.js.map +0 -1
  707. package/dist/cli-bundle/chunks/context-U3PUJMVN.js.map +0 -7
  708. package/dist/cli-bundle/chunks/contracts-H7KCQXLY.js.map +0 -7
  709. package/dist/cli-bundle/chunks/contracts-ITSJXO3O.js.map +0 -1
  710. package/dist/cli-bundle/chunks/create-NW3K7LVG.js +0 -27
  711. package/dist/cli-bundle/chunks/deps-HV2C2L46.js.map +0 -1
  712. package/dist/cli-bundle/chunks/files-LIFDKNCN.js.map +0 -7
  713. package/dist/cli-bundle/chunks/files-OIFN3DQX.js.map +0 -1
  714. package/dist/cli-bundle/chunks/get-K7UULTQF.js.map +0 -7
  715. package/dist/cli-bundle/chunks/get-SAB7CRBG.js.map +0 -1
  716. package/dist/cli-bundle/chunks/health-NUVZYIEV.js.map +0 -1
  717. package/dist/cli-bundle/chunks/health-VJWH3ZFK.js.map +0 -7
  718. package/dist/cli-bundle/chunks/history-IUVN4NTN.js +0 -20
  719. package/dist/cli-bundle/chunks/history-compact-SLL6ESXH.js.map +0 -1
  720. package/dist/cli-bundle/chunks/history-compact-WQZQ6KXM.js.map +0 -7
  721. package/dist/cli-bundle/chunks/history-redact-75KIIJUJ.js +0 -19
  722. package/dist/cli-bundle/chunks/history-repair-BJCGM6Q3.js.map +0 -1
  723. package/dist/cli-bundle/chunks/history-repair-UCYS55ZX.js.map +0 -7
  724. package/dist/cli-bundle/chunks/init-JJFYRUKG.js +0 -17
  725. package/dist/cli-bundle/chunks/learnings-L6KTZGOT.js.map +0 -1
  726. package/dist/cli-bundle/chunks/learnings-QKJOKEAO.js.map +0 -7
  727. package/dist/cli-bundle/chunks/list-GGVPXEV6.js +0 -23
  728. package/dist/cli-bundle/chunks/list-VOQDQHA4.js +0 -19
  729. package/dist/cli-bundle/chunks/notes-3NLK7WTZ.js.map +0 -1
  730. package/dist/cli-bundle/chunks/notes-HMCB7TK6.js.map +0 -7
  731. package/dist/cli-bundle/chunks/plan-DWBYI5C6.js.map +0 -1
  732. package/dist/cli-bundle/chunks/plan-NANUWH4T.js.map +0 -7
  733. package/dist/cli-bundle/chunks/register-list-query-PWQ5F2VI.js.map +0 -7
  734. package/dist/cli-bundle/chunks/register-list-query-SMMMLSWW.js.map +0 -1
  735. package/dist/cli-bundle/chunks/register-mutation-QKFPTIZG.js.map +0 -7
  736. package/dist/cli-bundle/chunks/register-mutation-ZYJQ4DVP.js.map +0 -1
  737. package/dist/cli-bundle/chunks/register-operations-2FMZ6WEF.js.map +0 -7
  738. package/dist/cli-bundle/chunks/register-operations-BAFQURZG.js.map +0 -1
  739. package/dist/cli-bundle/chunks/register-setup-DQEIKBIP.js.map +0 -7
  740. package/dist/cli-bundle/chunks/register-setup-QN2XV7UL.js.map +0 -1
  741. package/dist/cli-bundle/chunks/restore-DRBNXJJH.js +0 -17
  742. package/dist/cli-bundle/chunks/schema-RNVJ55V2.js.map +0 -7
  743. package/dist/cli-bundle/chunks/schema-ZZ7ZDM2X.js.map +0 -1
  744. package/dist/cli-bundle/chunks/search-BJ457C2A.js.map +0 -7
  745. package/dist/cli-bundle/chunks/search-FQDZXX7P.js.map +0 -1
  746. package/dist/cli-bundle/chunks/stats-CUG3ZHOI.js.map +0 -1
  747. package/dist/cli-bundle/chunks/stats-DUQWCVOS.js.map +0 -7
  748. package/dist/cli-bundle/chunks/telemetry-33MRGX4Z.js.map +0 -7
  749. package/dist/cli-bundle/chunks/telemetry-RK2VX75A.js.map +0 -1
  750. package/dist/cli-bundle/chunks/test-SDMYEQHH.js +0 -32
  751. package/dist/cli-bundle/chunks/test-all-ANYQ33O2.js.map +0 -7
  752. package/dist/cli-bundle/chunks/test-all-ARSMX33Q.js.map +0 -1
  753. package/dist/cli-bundle/chunks/test-runs-5URSD34O.js.map +0 -1
  754. package/dist/cli-bundle/chunks/test-runs-XNACGSNQ.js.map +0 -7
  755. package/dist/cli-bundle/chunks/update-PD46VOXI.js +0 -21
  756. package/dist/cli-bundle/chunks/update-U235A7WP.js +0 -25
  757. package/dist/cli-bundle/chunks/update-many-6B7PJ33I.js.map +0 -1
  758. package/dist/cli-bundle/chunks/update-many-724JCVDE.js.map +0 -7
  759. package/dist/cli-bundle/chunks/upgrade-ALBEZAI7.js.map +0 -7
  760. package/dist/cli-bundle/chunks/upgrade-QHRGDBSA.js.map +0 -1
  761. package/dist/cli-bundle/chunks/validate-IQRYFXIV.js.map +0 -1
  762. package/dist/cli-bundle/chunks/validate-UY6DRCG5.js.map +0 -7
  763. /package/dist/cli-bundle/chunks/{activity-XIOTGZMU.js.map → activity-PZYSZA26.js.map} +0 -0
  764. /package/dist/cli-bundle/chunks/{activity-PPO7QWJF.js.map → activity-SFM4THAU.js.map} +0 -0
  765. /package/dist/cli-bundle/chunks/{chunk-IIOIBAQW.js.map → chunk-26BM6YLO.js.map} +0 -0
  766. /package/dist/cli-bundle/chunks/{chunk-LSSTKL3Y.js.map → chunk-2TMKMTEI.js.map} +0 -0
  767. /package/dist/cli-bundle/chunks/{chunk-QU3OPNVV.js.map → chunk-2VH7DFSJ.js.map} +0 -0
  768. /package/dist/cli-bundle/chunks/{chunk-LGOXXQUW.js.map → chunk-5XGWFUW2.js.map} +0 -0
  769. /package/dist/cli-bundle/chunks/{chunk-Z647PYLD.js.map → chunk-AJCQ5GT6.js.map} +0 -0
  770. /package/dist/cli-bundle/chunks/{chunk-DWG4FHPY.js.map → chunk-BITCVGHT.js.map} +0 -0
  771. /package/dist/cli-bundle/chunks/{chunk-JE5IZXDS.js.map → chunk-CGQTFWYI.js.map} +0 -0
  772. /package/dist/cli-bundle/chunks/{chunk-VYZNX4C5.js.map → chunk-COVLE33A.js.map} +0 -0
  773. /package/dist/cli-bundle/chunks/{chunk-6ZFTM65G.js.map → chunk-F5MSD5HE.js.map} +0 -0
  774. /package/dist/cli-bundle/chunks/{chunk-GOO4UXBI.js.map → chunk-JZHL4E3Q.js.map} +0 -0
  775. /package/dist/cli-bundle/chunks/{chunk-NN6RKGFW.js.map → chunk-KCAGIH6K.js.map} +0 -0
  776. /package/dist/cli-bundle/chunks/{chunk-3CQPVBK3.js.map → chunk-MIBX6ZRN.js.map} +0 -0
  777. /package/dist/cli-bundle/chunks/{chunk-XOYHMHFF.js.map → chunk-UN6P3IJ4.js.map} +0 -0
  778. /package/dist/cli-bundle/chunks/{chunk-HWHONML5.js.map → chunk-VF3KQGNY.js.map} +0 -0
  779. /package/dist/cli-bundle/chunks/{claim-HE6KEGJW.js.map → claim-WGAWJCPY.js.map} +0 -0
  780. /package/dist/cli-bundle/chunks/{claim-QJOQBH7J.js.map → claim-ZI6P4LMU.js.map} +0 -0
  781. /package/dist/cli-bundle/chunks/{close-WOG5WTMZ.js.map → close-I7PRQ5G7.js.map} +0 -0
  782. /package/dist/cli-bundle/chunks/{close-SPUFW5QR.js.map → close-JMVVSIQE.js.map} +0 -0
  783. /package/dist/cli-bundle/chunks/{copy-EB3MUCSW.js.map → copy-Q2PPU4AY.js.map} +0 -0
  784. /package/dist/cli-bundle/chunks/{copy-C4W522JM.js.map → copy-SC6UF3PI.js.map} +0 -0
  785. /package/dist/cli-bundle/chunks/{create-4EQNELMY.js.map → create-76FE7JVF.js.map} +0 -0
  786. /package/dist/cli-bundle/chunks/{create-NW3K7LVG.js.map → create-RTRFW6RE.js.map} +0 -0
  787. /package/dist/cli-bundle/chunks/{delete-X5QLXIQX.js.map → delete-T6DJSUJI.js.map} +0 -0
  788. /package/dist/cli-bundle/chunks/{delete-ZLGUYIXU.js.map → delete-XFUX533E.js.map} +0 -0
  789. /package/dist/cli-bundle/chunks/{docs-SRTLCQOL.js.map → docs-HE3HCQ4S.js.map} +0 -0
  790. /package/dist/cli-bundle/chunks/{docs-RJQPLROO.js.map → docs-SXMOABHR.js.map} +0 -0
  791. /package/dist/cli-bundle/chunks/{extension-WKPVPNCC.js.map → extension-E23K4QRR.js.map} +0 -0
  792. /package/dist/cli-bundle/chunks/{extension-MM3TVWOO.js.map → extension-PMD3XMLN.js.map} +0 -0
  793. /package/dist/cli-bundle/chunks/{gc-NRFHLVFT.js.map → gc-BXIAKLAH.js.map} +0 -0
  794. /package/dist/cli-bundle/chunks/{gc-DL6AVOX5.js.map → gc-C7K6JNUO.js.map} +0 -0
  795. /package/dist/cli-bundle/chunks/{history-GYFD2DJW.js.map → history-73Z6OBFZ.js.map} +0 -0
  796. /package/dist/cli-bundle/chunks/{history-IUVN4NTN.js.map → history-BIPHVUMF.js.map} +0 -0
  797. /package/dist/cli-bundle/chunks/{history-redact-SDTDR6WM.js.map → history-redact-7YCXEWJD.js.map} +0 -0
  798. /package/dist/cli-bundle/chunks/{history-redact-75KIIJUJ.js.map → history-redact-WZZ6GZ2Z.js.map} +0 -0
  799. /package/dist/cli-bundle/chunks/{init-JJFYRUKG.js.map → init-K34V4PZR.js.map} +0 -0
  800. /package/dist/cli-bundle/chunks/{init-MXV57LKL.js.map → init-TDEDNVMM.js.map} +0 -0
  801. /package/dist/cli-bundle/chunks/{list-GGVPXEV6.js.map → list-MSHYOCFU.js.map} +0 -0
  802. /package/dist/cli-bundle/chunks/{list-VOQDQHA4.js.map → list-VV57WGUD.js.map} +0 -0
  803. /package/dist/cli-bundle/chunks/{restore-FJQWXMPY.js.map → restore-TSWSULYY.js.map} +0 -0
  804. /package/dist/cli-bundle/chunks/{restore-DRBNXJJH.js.map → restore-XQXICL3V.js.map} +0 -0
  805. /package/dist/cli-bundle/chunks/{test-SDMYEQHH.js.map → test-AROS3LIV.js.map} +0 -0
  806. /package/dist/cli-bundle/chunks/{test-Y3CTFMEC.js.map → test-CECIMKOA.js.map} +0 -0
  807. /package/dist/cli-bundle/chunks/{update-PD46VOXI.js.map → update-MIWEJC76.js.map} +0 -0
  808. /package/dist/cli-bundle/chunks/{update-U235A7WP.js.map → update-P7I5YSRB.js.map} +0 -0
@@ -1,6 +1,7 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="07f90455-c9f8-5cb9-86fe-be98e72908cb")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e38412ec-cbfb-5416-8790-6ca1958f596b")}catch(e){}}();
3
3
  import { Option } from "commander";
4
+ import { resolveBodyFileContent } from "../core/io/body-file.js";
4
5
  import { EXIT_CODE } from "../core/shared/constants.js";
5
6
  import { PmCliError } from "../core/shared/errors.js";
6
7
  import { isPureSnakeCaseAlias } from "../core/shared/option-alias-visibility.js";
@@ -32,7 +33,7 @@ function addHiddenOption(command, flags, description, repeatable) {
32
33
  * supplied but does not parse to a finite integer (rather than silently dropping
33
34
  * it). Returns `undefined` only when the flag was genuinely not provided.
34
35
  */
35
- function parseSchemaOrderOption(raw) {
36
+ export function parseSchemaOrderOption(raw) {
36
37
  if (raw === undefined || raw === null) {
37
38
  return undefined;
38
39
  }
@@ -54,7 +55,218 @@ function parseSchemaOrderOption(raw) {
54
55
  }
55
56
  throw new PmCliError("--order must be a finite integer.", EXIT_CODE.USAGE);
56
57
  }
57
- function registerCommanderOptionContracts(command, contracts) {
58
+ /**
59
+ * Routes a normalized `pm schema` subcommand to its run function. Extracted from
60
+ * the schema `.action()` body so the per-subcommand dispatch lives in one
61
+ * single-purpose function and registerMutationCommands stays under the
62
+ * cyclomatic-complexity gate.
63
+ */
64
+ async function dispatchSchemaSubcommand(schema, inputs) {
65
+ const { normalizedSubcommand, typeName, options, globalOptions } = inputs;
66
+ const { author, force, description } = inputs;
67
+ switch (normalizedSubcommand) {
68
+ case "list":
69
+ return schema.runSchemaList(globalOptions);
70
+ case "show":
71
+ return schema.runSchemaShow(typeName, globalOptions);
72
+ case "show-status":
73
+ return schema.runSchemaShowStatus(typeName, globalOptions);
74
+ case "list-fields":
75
+ return schema.runSchemaListFields(globalOptions);
76
+ case "show-field":
77
+ return schema.runSchemaShowField(typeName, globalOptions);
78
+ case "remove-type":
79
+ return schema.runSchemaRemoveType(typeName, { author, force }, globalOptions);
80
+ case "remove-field":
81
+ return schema.runSchemaRemoveField(typeName, { author, force }, globalOptions);
82
+ case "apply-preset":
83
+ return schema.runSchemaApplyPreset(typeName, { author, force }, globalOptions);
84
+ case "add-field":
85
+ return schema.runSchemaAddField(typeName, {
86
+ type: typeof options.type === "string" ? options.type : undefined,
87
+ commands: inputs.commands,
88
+ description,
89
+ cliFlag: typeof options.cliFlag === "string" ? options.cliFlag : undefined,
90
+ alias: inputs.aliases,
91
+ required: Boolean(options.required),
92
+ requiredOnCreate: Boolean(options.requiredOnCreate),
93
+ // commander stores --no-allow-unset as allowUnset:false; the default
94
+ // (flag omitted) is true. Forward the tri-state faithfully.
95
+ allowUnset: options.allowUnset !== false,
96
+ requiredTypes: inputs.requiredTypes,
97
+ author,
98
+ force,
99
+ }, globalOptions);
100
+ case "add-status":
101
+ return schema.runSchemaAddStatus(typeName, { role: inputs.roles, alias: inputs.aliases, description, order: inputs.order, author, force }, globalOptions);
102
+ case "remove-status":
103
+ return schema.runSchemaRemoveStatus(typeName, { author, force }, globalOptions);
104
+ default:
105
+ // add-type, optionally in --infer mode.
106
+ if (options.infer === true) {
107
+ return schema.runSchemaInferTypes({ minCount: inputs.minCount, apply: Boolean(options.apply), author, force }, globalOptions);
108
+ }
109
+ return schema.runSchemaAddType(typeName, {
110
+ description,
111
+ defaultStatus: inputs.defaultStatus,
112
+ folder: typeof options.folder === "string" ? options.folder : undefined,
113
+ alias: inputs.aliases,
114
+ author,
115
+ force,
116
+ }, globalOptions);
117
+ }
118
+ }
119
+ /**
120
+ * Renders a schema command result for non-JSON, non-quiet output and surfaces
121
+ * any on-write hook warnings. Extracted from the schema `.action()` body to keep
122
+ * registerMutationCommands under the cyclomatic-complexity gate.
123
+ */
124
+ function renderSchemaResultHuman(schema, result) {
125
+ switch (result.action) {
126
+ case "list":
127
+ writeStdout(`${schema.formatSchemaListHuman(result)}\n`);
128
+ return;
129
+ case "show":
130
+ writeStdout(`${schema.formatSchemaShowHuman(result)}\n`);
131
+ return;
132
+ case "show-status":
133
+ writeStdout(`${schema.formatSchemaShowStatusHuman(result)}\n`);
134
+ return;
135
+ case "list-fields":
136
+ writeStdout(`${schema.formatSchemaListFieldsHuman(result)}\n`);
137
+ return;
138
+ case "show-field":
139
+ writeStdout(`${schema.formatSchemaShowFieldHuman(result)}\n`);
140
+ return;
141
+ case "remove-type":
142
+ writeStdout(`${schema.formatSchemaRemoveTypeHuman(result)}\n`);
143
+ break;
144
+ case "remove-field":
145
+ writeStdout(`${schema.formatSchemaRemoveFieldHuman(result)}\n`);
146
+ break;
147
+ case "apply-preset":
148
+ writeStdout(`${schema.formatSchemaApplyPresetHuman(result)}\n`);
149
+ break;
150
+ case "infer-types":
151
+ writeStdout(`${schema.formatSchemaInferTypesHuman(result)}\n`);
152
+ break;
153
+ case "add-field":
154
+ writeStdout(`${schema.formatSchemaAddFieldHuman(result)}\n`);
155
+ break;
156
+ case "add-status":
157
+ writeStdout(`${schema.formatSchemaAddStatusHuman(result)}\n`);
158
+ break;
159
+ case "remove-status":
160
+ writeStdout(`${schema.formatSchemaRemoveStatusHuman(result)}\n`);
161
+ break;
162
+ default:
163
+ writeStdout(`${schema.formatSchemaAddTypeHuman(result)}\n`);
164
+ break;
165
+ }
166
+ // Surface extension on-write hook diagnostics (mutation subcommands only;
167
+ // inspection results carry no warnings array).
168
+ if (result.warnings.length > 0) {
169
+ printError(`schema ${result.action} warnings: ${formatHookWarnings(result.warnings)}`);
170
+ }
171
+ }
172
+ /**
173
+ * Build a commander argParser that coerces a flag value into a positive
174
+ * (1-based) integer, throwing a usage error when the supplied value is not a
175
+ * whole number >= 1. Used by `pm comments --edit/--delete <index>` so an
176
+ * invalid index fails fast with a clear message instead of silently coercing.
177
+ */
178
+ export function parsePositiveIntOption(flag) {
179
+ return (value) => {
180
+ const parsed = Number(value);
181
+ if (!Number.isInteger(parsed) || parsed < 1) {
182
+ throw new PmCliError(`${flag} must be a positive integer (1-based index).`, EXIT_CODE.USAGE);
183
+ }
184
+ return parsed;
185
+ };
186
+ }
187
+ // Bulk content-field selection filters (GH-242) shared by update-many and
188
+ // close-many. Each pair mirrors the list-family presence/absence flags but uses
189
+ // the `--filter-` prefix so they live in the bulk-selection namespace. The
190
+ // governance-missing filters (GH-236) reuse the same `--filter-<gov>-missing`
191
+ // spelling as the list family.
192
+ function registerBulkContentAndGovernanceFilters(command, action) {
193
+ command
194
+ .option("--filter-has-notes", `Select only items that have notes before ${action}`)
195
+ .option("--filter-no-notes", `Select only items that have no notes before ${action}`)
196
+ .option("--filter-has-learnings", `Select only items that have learnings before ${action}`)
197
+ .option("--filter-no-learnings", `Select only items that have no learnings before ${action}`)
198
+ .option("--filter-has-files", `Select only items that have linked files before ${action}`)
199
+ .option("--filter-no-files", `Select only items that have no linked files before ${action}`)
200
+ .option("--filter-has-docs", `Select only items that have linked docs before ${action}`)
201
+ .option("--filter-no-docs", `Select only items that have no linked docs before ${action}`)
202
+ .option("--filter-has-tests", `Select only items that have linked tests before ${action}`)
203
+ .option("--filter-no-tests", `Select only items that have no linked tests before ${action}`)
204
+ .option("--filter-has-comments", `Select only items that have comments before ${action}`)
205
+ .option("--filter-no-comments", `Select only items that have no comments before ${action}`)
206
+ .option("--filter-has-deps", `Select only items that have dependencies before ${action}`)
207
+ .option("--filter-no-deps", `Select only items that have no dependencies before ${action}`)
208
+ .option("--filter-has-body", `Select only items that have a non-empty body before ${action}`)
209
+ .option("--filter-empty-body", `Select only items with an empty body before ${action}`)
210
+ .option("--filter-has-linked-command", `Select only items whose linked tests carry a runnable command before ${action}`)
211
+ .option("--filter-no-linked-command", `Select only items whose linked tests carry no runnable command before ${action}`)
212
+ .option("--filter-reviewer-missing", `Select only items missing reviewer before ${action}`)
213
+ .option("--filter-risk-missing", `Select only items missing risk before ${action}`)
214
+ .option("--filter-confidence-missing", `Select only items missing confidence before ${action}`)
215
+ .option("--filter-sprint-missing", `Select only items missing sprint before ${action}`)
216
+ .option("--filter-release-missing", `Select only items missing release before ${action}`);
217
+ }
218
+ // Map the bulk content/governance `--filter-*` commander options into the
219
+ // ListOptions content/governance fields runList consumes. Shared by update-many
220
+ // and close-many.
221
+ // [hasCommanderKey, noCommanderKey, --filter-has flag, --filter-no flag]
222
+ const BULK_CONTENT_FILTER_CONFLICTS = [
223
+ ["filterHasNotes", "filterNoNotes", "--filter-has-notes", "--filter-no-notes"],
224
+ ["filterHasLearnings", "filterNoLearnings", "--filter-has-learnings", "--filter-no-learnings"],
225
+ ["filterHasFiles", "filterNoFiles", "--filter-has-files", "--filter-no-files"],
226
+ ["filterHasDocs", "filterNoDocs", "--filter-has-docs", "--filter-no-docs"],
227
+ ["filterHasTests", "filterNoTests", "--filter-has-tests", "--filter-no-tests"],
228
+ ["filterHasComments", "filterNoComments", "--filter-has-comments", "--filter-no-comments"],
229
+ ["filterHasDeps", "filterNoDeps", "--filter-has-deps", "--filter-no-deps"],
230
+ ["filterHasBody", "filterEmptyBody", "--filter-has-body", "--filter-empty-body"],
231
+ ["filterHasLinkedCommand", "filterNoLinkedCommand", "--filter-has-linked-command", "--filter-no-linked-command"],
232
+ ];
233
+ function mapBulkContentAndGovernanceFilters(options) {
234
+ const presence = (key) => (options[key] === true ? true : undefined);
235
+ // Catch a both-present-and-absent bulk request here so the error names the
236
+ // bulk --filter-* flags the user actually typed, rather than the downstream
237
+ // list-level --has-/--no- flags resolveContentFieldFilters would report.
238
+ for (const [hasKey, noKey, hasFlag, noFlag] of BULK_CONTENT_FILTER_CONFLICTS) {
239
+ if (options[hasKey] === true && options[noKey] === true) {
240
+ throw new PmCliError(`Cannot combine ${hasFlag} with ${noFlag} for the same field.`, EXIT_CODE.USAGE);
241
+ }
242
+ }
243
+ return {
244
+ filterReviewerMissing: presence("filterReviewerMissing"),
245
+ filterRiskMissing: presence("filterRiskMissing"),
246
+ filterConfidenceMissing: presence("filterConfidenceMissing"),
247
+ filterSprintMissing: presence("filterSprintMissing"),
248
+ filterReleaseMissing: presence("filterReleaseMissing"),
249
+ hasNotes: presence("filterHasNotes"),
250
+ hasLearnings: presence("filterHasLearnings"),
251
+ hasFiles: presence("filterHasFiles"),
252
+ hasDocs: presence("filterHasDocs"),
253
+ hasTests: presence("filterHasTests"),
254
+ hasComments: presence("filterHasComments"),
255
+ hasDeps: presence("filterHasDeps"),
256
+ hasBody: presence("filterHasBody"),
257
+ hasLinkedCommand: presence("filterHasLinkedCommand"),
258
+ noNotes: presence("filterNoNotes"),
259
+ noLearnings: presence("filterNoLearnings"),
260
+ noFiles: presence("filterNoFiles"),
261
+ noDocs: presence("filterNoDocs"),
262
+ noTests: presence("filterNoTests"),
263
+ noComments: presence("filterNoComments"),
264
+ noDeps: presence("filterNoDeps"),
265
+ emptyBody: presence("filterEmptyBody"),
266
+ noLinkedCommand: presence("filterNoLinkedCommand"),
267
+ };
268
+ }
269
+ export function registerCommanderOptionContracts(command, contracts) {
58
270
  for (const contract of contracts) {
59
271
  if (contract.required) {
60
272
  command.requiredOption(contract.option, contract.description);
@@ -81,6 +293,39 @@ function registerCommanderOptionContracts(command, contracts) {
81
293
  }
82
294
  }
83
295
  }
296
+ /**
297
+ * Map raw `update-many --filter-*` commander options into the ListOptions shape
298
+ * runList consumes. Extracted from registerMutationCommands so its many
299
+ * string/boolean coercions do not inflate that function's cyclomatic complexity.
300
+ */
301
+ function buildUpdateManyListOptions(options) {
302
+ const readString = (key) => typeof options[key] === "string" ? options[key] : undefined;
303
+ return {
304
+ type: readString("filterType"),
305
+ tag: readString("filterTag"),
306
+ priority: readString("filterPriority"),
307
+ deadlineBefore: readString("filterDeadlineBefore"),
308
+ deadlineAfter: readString("filterDeadlineAfter"),
309
+ updatedAfter: readString("filterUpdatedAfter"),
310
+ updatedBefore: readString("filterUpdatedBefore"),
311
+ createdAfter: readString("filterCreatedAfter"),
312
+ createdBefore: readString("filterCreatedBefore"),
313
+ ids: readString("ids"),
314
+ assignee: readString("filterAssignee"),
315
+ assigneeFilter: readString("filterAssigneeFilter") ?? readString("filterAssignee_filter"),
316
+ parent: readString("filterParent"),
317
+ sprint: readString("filterSprint"),
318
+ release: readString("filterRelease"),
319
+ filterAcMissing: options.filterAcMissing === true ? true : undefined,
320
+ filterEstimatesMissing: options.filterEstimatesMissing === true || options.filterEstimateMissing === true ? true : undefined,
321
+ filterResolutionMissing: options.filterResolutionMissing === true ? true : undefined,
322
+ filterMetadataMissing: options.filterMetadataMissing === true ? true : undefined,
323
+ ...mapBulkContentAndGovernanceFilters(options),
324
+ limit: readString("limit"),
325
+ offset: readString("offset"),
326
+ includeBody: true,
327
+ };
328
+ }
84
329
  export function registerMutationCommands(program) {
85
330
  const createCommand = program
86
331
  .command("create")
@@ -89,6 +334,7 @@ export function registerMutationCommands(program) {
89
334
  .description("Create a new project management item.");
90
335
  registerCommanderOptionContracts(createCommand, CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS);
91
336
  createCommand
337
+ .option("--body-file <path>", "Load the item markdown body from a file (mutually exclusive with --body)")
92
338
  .option("--clear-deps", "Clear dependency entries")
93
339
  .option("--clear-comments", "Clear comments")
94
340
  .option("--clear-notes", "Clear notes")
@@ -112,7 +358,15 @@ export function registerMutationCommands(program) {
112
358
  positionalTitle = secondTitle;
113
359
  }
114
360
  else if (typeof typeOrTitle === "string" && typeOrTitle.length > 0) {
115
- positionalTitle = typeOrTitle;
361
+ // Honor `pm create <type> --title ...` by treating the lone positional as
362
+ // type when an explicit --title is already present.
363
+ const explicitTitleProvided = typeof options.title === "string" && options.title.trim().length > 0;
364
+ if (explicitTitleProvided && options.type === undefined) {
365
+ positionalType = typeOrTitle;
366
+ }
367
+ else {
368
+ positionalTitle = typeOrTitle;
369
+ }
116
370
  }
117
371
  // pm-edge #1 (2026-05-28): when the sole positional matches a known
118
372
  // item type AND no --title was supplied, refuse early instead of
@@ -145,6 +399,12 @@ export function registerMutationCommands(program) {
145
399
  if (typeof positionalTitle === "string" && positionalTitle.length > 0 && options.title === undefined) {
146
400
  options.title = positionalTitle;
147
401
  }
402
+ // GH-214: resolve --body-file into the existing body field before
403
+ // normalization so the rest of create is unchanged. CLI-only input alias.
404
+ if (typeof options.bodyFile === "string") {
405
+ options.body = await resolveBodyFileContent(options.bodyFile, options.body !== undefined ? String(options.body) : undefined);
406
+ delete options.bodyFile;
407
+ }
148
408
  const normalized = normalizeCreateOptions(options, { requireType: false });
149
409
  const { runCreate } = await import("./commands/create.js");
150
410
  const result = await runCreate(normalized, globalOptions);
@@ -176,12 +436,28 @@ export function registerMutationCommands(program) {
176
436
  printError(`profile:command=copy took_ms=${Date.now() - startedAt}`);
177
437
  }
178
438
  });
439
+ program
440
+ .command("focus")
441
+ .argument("[id]", "Item id to focus (omit to show current focus)")
442
+ .option("--clear", "Clear the focused item")
443
+ .description("Set/clear/show the session focused item that new items default --parent to.")
444
+ .action(async (id, options, command) => {
445
+ const globalOptions = getGlobalOptions(command);
446
+ const startedAt = Date.now();
447
+ const { runFocus } = await import("./commands/focus.js");
448
+ const result = await runFocus(id, { clear: options.clear === true }, globalOptions);
449
+ printResult(result, globalOptions);
450
+ if (globalOptions.profile) {
451
+ printError(`profile:command=focus took_ms=${Date.now() - startedAt}`);
452
+ }
453
+ });
179
454
  const updateCommand = program
180
455
  .command("update")
181
456
  .argument("<id>", "Item id")
182
457
  .description("Update item fields and metadata.");
183
458
  registerCommanderOptionContracts(updateCommand, UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS);
184
459
  updateCommand
460
+ .option("--body-file <path>", "Load the item markdown body from a file (mutually exclusive with --body)")
185
461
  .option("--replace-deps", "Atomically replace dependency entries with the provided --dep values")
186
462
  .option("--replace-tests", "Atomically replace linked test entries with the provided --test values")
187
463
  .option("--clear-deps", "Clear dependency entries")
@@ -203,6 +479,12 @@ export function registerMutationCommands(program) {
203
479
  .action(async (id, options, command) => {
204
480
  const globalOptions = getGlobalOptions(command);
205
481
  const startedAt = Date.now();
482
+ // GH-214: resolve --body-file into the existing body field before
483
+ // normalization so the rest of update is unchanged. CLI-only input alias.
484
+ if (typeof options.bodyFile === "string") {
485
+ options.body = await resolveBodyFileContent(options.bodyFile, options.body !== undefined ? String(options.body) : undefined);
486
+ delete options.bodyFile;
487
+ }
206
488
  const { runUpdate } = await import("./commands/update.js");
207
489
  const result = await runUpdate(id, normalizeUpdateOptions(options), globalOptions);
208
490
  await invalidateSearchCachesForMutation(globalOptions, result);
@@ -229,6 +511,12 @@ export function registerMutationCommands(program) {
229
511
  .option("--filter-parent <value>", "Filter by parent item ID before applying updates")
230
512
  .option("--filter-sprint <value>", "Filter by sprint before applying updates")
231
513
  .option("--filter-release <value>", "Filter by release before applying updates")
514
+ .option("--filter-ac-missing", "Select only items missing acceptance_criteria (bulk backfill)")
515
+ .option("--filter-estimates-missing", "Select only items missing estimated_minutes (bulk backfill)")
516
+ .option("--filter-resolution-missing", "Select only terminal items missing resolution (bulk backfill)")
517
+ .option("--filter-metadata-missing", "Select only items missing any tracked metadata (AC, estimate, or resolution)");
518
+ registerBulkContentAndGovernanceFilters(updateManyCommand, "applying updates");
519
+ updateManyCommand
232
520
  .option("--ids <value>", "Restrict to an explicit comma-separated ID allowlist (intersected with other filters)")
233
521
  .option("--limit <n>", "Limit matched item count before apply/preview")
234
522
  .option("--offset <n>", "Skip first n matched rows before apply/preview")
@@ -329,6 +617,7 @@ export function registerMutationCommands(program) {
329
617
  ["--customer_impact <value>", "Alias for --customer-impact"],
330
618
  ["--allow_audit_update", "Alias for --allow-audit-update"],
331
619
  ["--allow_audit_dep_update", "Alias for --allow-audit-dep-update"],
620
+ ["--filter-estimate-missing", "Alias for --filter-estimates-missing"],
332
621
  ]) {
333
622
  addHiddenOption(updateManyCommand, flags, description, false);
334
623
  }
@@ -347,30 +636,7 @@ export function registerMutationCommands(program) {
347
636
  const { runUpdateMany } = await import("./commands/update-many.js");
348
637
  const result = await runUpdateMany({
349
638
  status: typeof options.filterStatus === "string" ? options.filterStatus : undefined,
350
- list: {
351
- type: typeof options.filterType === "string" ? options.filterType : undefined,
352
- tag: typeof options.filterTag === "string" ? options.filterTag : undefined,
353
- priority: typeof options.filterPriority === "string" ? options.filterPriority : undefined,
354
- deadlineBefore: typeof options.filterDeadlineBefore === "string" ? options.filterDeadlineBefore : undefined,
355
- deadlineAfter: typeof options.filterDeadlineAfter === "string" ? options.filterDeadlineAfter : undefined,
356
- updatedAfter: typeof options.filterUpdatedAfter === "string" ? options.filterUpdatedAfter : undefined,
357
- updatedBefore: typeof options.filterUpdatedBefore === "string" ? options.filterUpdatedBefore : undefined,
358
- createdAfter: typeof options.filterCreatedAfter === "string" ? options.filterCreatedAfter : undefined,
359
- createdBefore: typeof options.filterCreatedBefore === "string" ? options.filterCreatedBefore : undefined,
360
- ids: typeof options.ids === "string" ? options.ids : undefined,
361
- assignee: typeof options.filterAssignee === "string" ? options.filterAssignee : undefined,
362
- assigneeFilter: typeof options.filterAssigneeFilter === "string"
363
- ? options.filterAssigneeFilter
364
- : typeof options.filterAssignee_filter === "string"
365
- ? options.filterAssignee_filter
366
- : undefined,
367
- parent: typeof options.filterParent === "string" ? options.filterParent : undefined,
368
- sprint: typeof options.filterSprint === "string" ? options.filterSprint : undefined,
369
- release: typeof options.filterRelease === "string" ? options.filterRelease : undefined,
370
- limit: typeof options.limit === "string" ? options.limit : undefined,
371
- offset: typeof options.offset === "string" ? options.offset : undefined,
372
- includeBody: true,
373
- },
639
+ list: buildUpdateManyListOptions(options),
374
640
  update: normalizeUpdateOptions(extractUpdateManyMutationOptionSource(options)),
375
641
  dryRun: options.dryRun === true ? true : undefined,
376
642
  rollback: typeof options.rollback === "string" ? options.rollback : undefined,
@@ -386,11 +652,11 @@ export function registerMutationCommands(program) {
386
652
  .command("close")
387
653
  .argument("<id>", "Item id")
388
654
  .argument("[text]", "Close reason text (alias: --reason)")
389
- .option("--reason <value>", "Close reason text (alias for positional <text>)")
655
+ .option("-r, --reason <value>", "Close reason text (alias for positional <text>)")
390
656
  .option("--close-reason <value>", "Close reason text (alias for positional <text>)")
391
- .option("--duplicate-of <id>", "Close as a duplicate of the canonical item id and auto-fill duplicate closure metadata")
657
+ .option("-d, --duplicate-of <id>", "Close as a duplicate of the canonical item id and auto-fill duplicate closure metadata")
392
658
  .option("--author <value>", "Mutation author")
393
- .option("--message <value>", "History message")
659
+ .option("-m, --message <value>", "History message")
394
660
  .option("--validate-close [mode]", 'Validate closure metadata before close: "off", "warn", or "strict" (default: settings governance preset)')
395
661
  .option("--resolution <value>", "Set the closure resolution summary inline (same field --validate-close strict checks; previously required a prior pm update)")
396
662
  .option("--expected-result <value>", "Set the expected-result note inline (closure validation field)")
@@ -458,7 +724,9 @@ export function registerMutationCommands(program) {
458
724
  .option("--filter-assignee-filter <value>", "Filter assignee presence: assigned|unassigned before closing")
459
725
  .option("--filter-parent <value>", "Filter by parent item ID before closing")
460
726
  .option("--filter-sprint <value>", "Filter by sprint before closing")
461
- .option("--filter-release <value>", "Filter by release before closing")
727
+ .option("--filter-release <value>", "Filter by release before closing");
728
+ registerBulkContentAndGovernanceFilters(closeManyCommand, "closing");
729
+ closeManyCommand
462
730
  .option("--ids <value>", "Restrict to an explicit comma-separated ID allowlist (intersected with other filters)")
463
731
  .option("--limit <n>", "Limit matched item count before apply/preview")
464
732
  .option("--offset <n>", "Skip first n matched rows before apply/preview")
@@ -508,6 +776,7 @@ export function registerMutationCommands(program) {
508
776
  parent: typeof options.filterParent === "string" ? options.filterParent : undefined,
509
777
  sprint: typeof options.filterSprint === "string" ? options.filterSprint : undefined,
510
778
  release: typeof options.filterRelease === "string" ? options.filterRelease : undefined,
779
+ ...mapBulkContentAndGovernanceFilters(options),
511
780
  limit: typeof options.limit === "string" ? options.limit : undefined,
512
781
  offset: typeof options.offset === "string" ? options.offset : undefined,
513
782
  },
@@ -911,22 +1180,33 @@ export function registerMutationCommands(program) {
911
1180
  .command("schema")
912
1181
  .argument("[subcommand]", "Schema subcommand: list, show, show-status, add-type, remove-type, add-status, remove-status, or a custom item type name shorthand")
913
1182
  .argument("[name]", "Item type name (add-type/remove-type/show) or status id (show-status/add-status/remove-status)")
914
- .option("--description <text>", "Human description for the custom item type or status")
1183
+ .option("--description <text>", "Human description for the custom item type, status, or field")
915
1184
  .option("--default-status <status>", "Default status hint recorded for the custom item type")
916
1185
  .option("--folder <dir>", "Storage folder for items of this custom type")
917
- .option("--alias <name>", "Alias for the custom type or status (repeatable, csv-friendly)", collect)
1186
+ .option("--alias <name>", "Alias for the custom type, status, or field flag (repeatable, csv-friendly)", collect)
918
1187
  .option("--role <value>", "Lifecycle role for a custom status (repeatable): draft, active, blocked, terminal, terminal_done, terminal_canceled, default_open, default_close, default_cancel", collect)
919
1188
  .option("--order <n>", "Display/sort order for a custom status")
1189
+ .option("--type <type>", "Value type for a custom field (add-field): string, number, boolean, string_array")
1190
+ .option("--commands <list>", "Commands a custom field is wired onto (add-field; repeatable, comma-friendly): create, update, update_many, list, search, calendar, context", collect)
1191
+ .option("--cli-flag <flag>", "Override the auto-derived CLI flag for a custom field (add-field)")
1192
+ .option("--required", "Mark a custom field as always required (add-field)")
1193
+ .option("--required-on-create", "Mark a custom field as required at create time (add-field)")
1194
+ .option("--no-allow-unset", "Disallow clearing a custom field via --unset (add-field)")
1195
+ .option("--required-types <list>", "Restrict a custom field's requirement to specific item types (add-field; repeatable, comma-friendly)", collect)
1196
+ .option("--infer", "Infer custom item types from title-prefix conventions (add-type; preview unless --apply)")
1197
+ .option("--min-count <n>", "Minimum items sharing a prefix for add-type --infer (default 10)")
1198
+ .option("--apply", "Register inferred types (add-type --infer); without it the command previews only")
920
1199
  .option("--author <value>", "Mutation author")
921
1200
  .option("--force", "Force ownership/lock override")
922
- .description("Inspect and manage config-driven runtime schema.");
1201
+ .description("Inspect and manage config-driven runtime schema (types, statuses, fields, presets).");
923
1202
  // Hidden pure snake_case underscore-duplicate alias.
924
1203
  addHiddenOption(schemaCommand, "--default_status <status>", "Alias for --default-status", false);
925
1204
  schemaCommand
926
1205
  .action(async (subcommand, name, options, command) => {
927
1206
  const globalOptions = getGlobalOptions(command);
928
1207
  const startedAt = Date.now();
929
- const { runSchemaAddType, runSchemaRemoveType, runSchemaAddStatus, runSchemaRemoveStatus, runSchemaList, runSchemaShow, runSchemaShowStatus, formatSchemaAddTypeHuman, formatSchemaRemoveTypeHuman, formatSchemaAddStatusHuman, formatSchemaRemoveStatusHuman, formatSchemaListHuman, formatSchemaShowHuman, formatSchemaShowStatusHuman, SCHEMA_SUBCOMMANDS, } = await import("./commands/schema.js");
1208
+ const schemaModule = await import("./commands/schema.js");
1209
+ const { SCHEMA_SUBCOMMANDS } = schemaModule;
930
1210
  let normalizedSubcommand = (subcommand ?? "").trim().toLowerCase();
931
1211
  let typeName = name;
932
1212
  if (!normalizedSubcommand) {
@@ -940,15 +1220,23 @@ export function registerMutationCommands(program) {
940
1220
  "pm schema remove-type Spike",
941
1221
  "pm schema add-status review --role active --alias in_review",
942
1222
  "pm schema remove-status review",
1223
+ "pm schema add-field severity_level --type string --commands create,update",
1224
+ "pm schema list-fields",
1225
+ "pm schema apply-preset agile",
1226
+ "pm schema add-type --infer --min-count 10",
943
1227
  ],
944
1228
  });
945
1229
  }
946
- const aliases = typeof options.alias === "string"
1230
+ const aliases =
1231
+ /* c8 ignore next -- --alias is registered with commander `collect`, so it is always an array here; the string arm is a defensive guard for non-CLI (programmatic) callers */
1232
+ typeof options.alias === "string"
947
1233
  ? [options.alias]
948
1234
  : Array.isArray(options.alias)
949
1235
  ? options.alias
950
1236
  : undefined;
951
- const roles = typeof options.role === "string"
1237
+ const roles =
1238
+ /* c8 ignore next -- --role is registered with commander `collect`, so it is always an array here; the string arm is a defensive guard for non-CLI (programmatic) callers */
1239
+ typeof options.role === "string"
952
1240
  ? [options.role]
953
1241
  : Array.isArray(options.role)
954
1242
  ? options.role
@@ -959,6 +1247,21 @@ export function registerMutationCommands(program) {
959
1247
  ? options.default_status
960
1248
  : undefined;
961
1249
  const order = parseSchemaOrderOption(options.order);
1250
+ // --commands/--required-types are repeatable Commander `collect` flags, so
1251
+ // their value is always a string[] (or undefined when omitted); each entry
1252
+ // may itself be a comma-list, which we split and flatten here.
1253
+ const splitCommaList = (raw) => {
1254
+ if (!Array.isArray(raw)) {
1255
+ return undefined;
1256
+ }
1257
+ return raw
1258
+ .flatMap((value) => value.split(","))
1259
+ .map((value) => value.trim())
1260
+ .filter((value) => value.length > 0);
1261
+ };
1262
+ const commands = splitCommaList(options.commands);
1263
+ const requiredTypes = splitCommaList(options.requiredTypes);
1264
+ const minCount = parseSchemaOrderOption(options.minCount);
962
1265
  if (!SCHEMA_SUBCOMMANDS.includes(normalizedSubcommand) && typeName === undefined) {
963
1266
  typeName = subcommand;
964
1267
  normalizedSubcommand = "add-type";
@@ -968,67 +1271,29 @@ export function registerMutationCommands(program) {
968
1271
  }
969
1272
  const author = typeof options.author === "string" ? options.author : undefined;
970
1273
  const force = Boolean(options.force);
971
- const result = normalizedSubcommand === "list"
972
- ? await runSchemaList(globalOptions)
973
- : normalizedSubcommand === "show"
974
- ? await runSchemaShow(typeName, globalOptions)
975
- : normalizedSubcommand === "show-status"
976
- ? await runSchemaShowStatus(typeName, globalOptions)
977
- : normalizedSubcommand === "remove-type"
978
- ? await runSchemaRemoveType(typeName, { author, force }, globalOptions)
979
- : normalizedSubcommand === "add-status"
980
- ? await runSchemaAddStatus(typeName, {
981
- role: roles,
982
- alias: aliases,
983
- description: typeof options.description === "string" ? options.description : undefined,
984
- order,
985
- author,
986
- force,
987
- }, globalOptions)
988
- : normalizedSubcommand === "remove-status"
989
- ? await runSchemaRemoveStatus(typeName, { author, force }, globalOptions)
990
- : await runSchemaAddType(typeName, {
991
- description: typeof options.description === "string" ? options.description : undefined,
992
- defaultStatus,
993
- folder: typeof options.folder === "string" ? options.folder : undefined,
994
- alias: aliases,
995
- author,
996
- force,
997
- }, globalOptions);
1274
+ const description = typeof options.description === "string" ? options.description : undefined;
1275
+ const result = await dispatchSchemaSubcommand(schemaModule, {
1276
+ normalizedSubcommand,
1277
+ typeName,
1278
+ options,
1279
+ aliases,
1280
+ roles,
1281
+ commands,
1282
+ requiredTypes,
1283
+ defaultStatus,
1284
+ order,
1285
+ minCount,
1286
+ author,
1287
+ force,
1288
+ description,
1289
+ globalOptions,
1290
+ });
998
1291
  // Schema inspection and type registration do not touch item content, so search caches stay valid.
999
1292
  if (globalOptions.json === true || globalOptions.defaultOutputFormat === "json") {
1000
1293
  printResult(result, globalOptions);
1001
1294
  }
1002
1295
  else if (!globalOptions.quiet) {
1003
- if (result.action === "list") {
1004
- writeStdout(`${formatSchemaListHuman(result)}\n`);
1005
- }
1006
- else if (result.action === "show") {
1007
- writeStdout(`${formatSchemaShowHuman(result)}\n`);
1008
- }
1009
- else if (result.action === "show-status") {
1010
- writeStdout(`${formatSchemaShowStatusHuman(result)}\n`);
1011
- }
1012
- else if (result.action === "remove-type") {
1013
- writeStdout(`${formatSchemaRemoveTypeHuman(result)}\n`);
1014
- }
1015
- else if (result.action === "add-status") {
1016
- writeStdout(`${formatSchemaAddStatusHuman(result)}\n`);
1017
- }
1018
- else if (result.action === "remove-status") {
1019
- writeStdout(`${formatSchemaRemoveStatusHuman(result)}\n`);
1020
- }
1021
- else {
1022
- writeStdout(`${formatSchemaAddTypeHuman(result)}\n`);
1023
- }
1024
- // Surface extension on-write hook diagnostics so policy/enforcement
1025
- // warnings are visible without forcing --json.
1026
- if (result.action !== "list" &&
1027
- result.action !== "show" &&
1028
- result.action !== "show-status" &&
1029
- result.warnings.length > 0) {
1030
- printError(`schema ${result.action} warnings: ${formatHookWarnings(result.warnings)}`);
1031
- }
1296
+ renderSchemaResultHuman(schemaModule, result);
1032
1297
  }
1033
1298
  if (globalOptions.profile) {
1034
1299
  printError(`profile:command=schema took_ms=${Date.now() - startedAt}`);
@@ -1041,15 +1306,19 @@ export function registerMutationCommands(program) {
1041
1306
  .option("--add <text>", "Add one comment entry (plain text fallback, text=<value>, markdown pairs, or - for stdin; CSV-like key fragments are preserved as plain text unless text is explicit)")
1042
1307
  .option("--stdin", "Read comment text from stdin (supports multiline markdown)")
1043
1308
  .option("--file <path>", "Read comment text from file (supports multiline markdown)")
1309
+ .option("--edit <index>", "Replace the comment at 1-based <index> (replacement text from positional [text], --add, --stdin, or --file)", parsePositiveIntOption("--edit"))
1310
+ .option("--delete <index>", "Delete the comment at 1-based <index>", parsePositiveIntOption("--delete"))
1044
1311
  .option("--limit <n>", "Return only latest n comments")
1045
1312
  .option("--author [value]", "Comment author (optional; falls back to PM_AUTHOR/settings)")
1046
1313
  .option("--message <value>", "History message")
1047
- .option("--allow-audit-comment", "Allow non-owner append-only comment audits without requiring --force")
1314
+ .option("--allow-audit-comment", "Allow non-owner append-only comment audits (add/edit/delete) without requiring --force")
1048
1315
  .option("--force", "Force ownership override")
1049
- .description("List or add comments for an item.")
1316
+ .description("List, add, edit, or delete comments for an item.")
1050
1317
  .action(async (id, text, options, command) => {
1051
1318
  const globalOptions = getGlobalOptions(command);
1052
1319
  const startedAt = Date.now();
1320
+ const editIndex = typeof options.edit === "number" ? options.edit : undefined;
1321
+ const deleteIndex = typeof options.delete === "number" ? options.delete : undefined;
1053
1322
  const addFromOption = typeof options.add === "string" ? options.add : undefined;
1054
1323
  const addFromPositional = typeof text === "string" ? text : undefined;
1055
1324
  const readFromStdin = options.stdin === true;
@@ -1070,13 +1339,16 @@ export function registerMutationCommands(program) {
1070
1339
  add,
1071
1340
  stdin: readFromStdin,
1072
1341
  file: readFromFile,
1342
+ edit: editIndex,
1343
+ delete: deleteIndex,
1073
1344
  limit: typeof options.limit === "string" ? options.limit : undefined,
1074
1345
  author: typeof options.author === "string" ? options.author : undefined,
1075
1346
  message: typeof options.message === "string" ? options.message : undefined,
1076
1347
  allowAuditComment: Boolean(options.allowAuditComment),
1077
1348
  force: Boolean(options.force),
1078
1349
  }, globalOptions);
1079
- if (typeof add === "string" || readFromStdin || readFromFile !== undefined) {
1350
+ const isMutation = typeof add === "string" || readFromStdin || readFromFile !== undefined || editIndex !== undefined || deleteIndex !== undefined;
1351
+ if (isMutation) {
1080
1352
  await invalidateSearchCachesForMutation(globalOptions, result);
1081
1353
  }
1082
1354
  printResult(result, globalOptions);
@@ -1297,10 +1569,14 @@ export function registerMutationCommands(program) {
1297
1569
  const globalOptions = getGlobalOptions(command);
1298
1570
  const startedAt = Date.now();
1299
1571
  const { runDeps } = await import("./commands/deps.js");
1572
+ // --format and --collapse carry commander defaults ("tree"/"none"), so
1573
+ // they are always strings by the time the action runs; --maxDepth has no
1574
+ // default and may be unset. Use `as string` rather than String(...) so an
1575
+ // omitted option stays undefined instead of becoming the literal "undefined".
1300
1576
  const result = await runDeps(id, {
1301
- format: typeof options.format === "string" ? options.format : undefined,
1577
+ format: options.format,
1302
1578
  maxDepth: typeof options.maxDepth === "string" ? options.maxDepth : undefined,
1303
- collapse: typeof options.collapse === "string" ? options.collapse : undefined,
1579
+ collapse: options.collapse,
1304
1580
  summary: options.summary === true,
1305
1581
  }, globalOptions);
1306
1582
  printResult(result, globalOptions);
@@ -1310,4 +1586,4 @@ export function registerMutationCommands(program) {
1310
1586
  });
1311
1587
  }
1312
1588
  //# sourceMappingURL=register-mutation.js.map
1313
- //# debugId=07f90455-c9f8-5cb9-86fe-be98e72908cb
1589
+ //# debugId=e38412ec-cbfb-5416-8790-6ca1958f596b