@unbrained/pm-cli 2026.6.23 → 2026.6.30

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 (716) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/CONTRIBUTING.md +30 -0
  3. package/README.md +16 -3
  4. package/dist/cli/commander-usage.js +3 -3
  5. package/dist/cli/commander-usage.js.map +1 -1
  6. package/dist/cli/commands/aggregate.js +8 -7
  7. package/dist/cli/commands/aggregate.js.map +1 -1
  8. package/dist/cli/commands/close.d.ts +2 -4
  9. package/dist/cli/commands/close.js +5 -17
  10. package/dist/cli/commands/close.js.map +1 -1
  11. package/dist/cli/commands/completion.js +158 -9
  12. package/dist/cli/commands/completion.js.map +1 -1
  13. package/dist/cli/commands/config.d.ts +1 -1
  14. package/dist/cli/commands/config.js +2 -2
  15. package/dist/cli/commands/config.js.map +1 -1
  16. package/dist/cli/commands/context.d.ts +31 -4
  17. package/dist/cli/commands/context.js +33 -10
  18. package/dist/cli/commands/context.js.map +1 -1
  19. package/dist/cli/commands/contracts.js +48 -8
  20. package/dist/cli/commands/contracts.js.map +1 -1
  21. package/dist/cli/commands/create.d.ts +1 -6
  22. package/dist/cli/commands/create.js +10 -155
  23. package/dist/cli/commands/create.js.map +1 -1
  24. package/dist/cli/commands/extension/describe.d.ts +15 -0
  25. package/dist/cli/commands/extension/describe.js +48 -2
  26. package/dist/cli/commands/extension/describe.js.map +1 -1
  27. package/dist/cli/commands/extension/doctor.js +5 -2
  28. package/dist/cli/commands/extension/doctor.js.map +1 -1
  29. package/dist/cli/commands/extension/install-sources.js +37 -7
  30. package/dist/cli/commands/extension/install-sources.js.map +1 -1
  31. package/dist/cli/commands/extension/scaffold.d.ts +31 -8
  32. package/dist/cli/commands/extension/scaffold.js +1956 -182
  33. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  34. package/dist/cli/commands/extension.d.ts +22 -2
  35. package/dist/cli/commands/extension.js +189 -13
  36. package/dist/cli/commands/extension.js.map +1 -1
  37. package/dist/cli/commands/index.d.ts +3 -1
  38. package/dist/cli/commands/index.js +5 -3
  39. package/dist/cli/commands/index.js.map +1 -1
  40. package/dist/cli/commands/item-filter-options.d.ts +63 -0
  41. package/dist/cli/commands/item-filter-options.js +10 -0
  42. package/dist/cli/commands/item-filter-options.js.map +1 -0
  43. package/dist/cli/commands/legacy-none-tokens.d.ts +14 -0
  44. package/dist/cli/commands/legacy-none-tokens.js +31 -2
  45. package/dist/cli/commands/legacy-none-tokens.js.map +1 -1
  46. package/dist/cli/commands/linked-artifacts.d.ts +7 -0
  47. package/dist/cli/commands/linked-artifacts.js +12 -2
  48. package/dist/cli/commands/linked-artifacts.js.map +1 -1
  49. package/dist/cli/commands/list.d.ts +16 -39
  50. package/dist/cli/commands/list.js +127 -118
  51. package/dist/cli/commands/list.js.map +1 -1
  52. package/dist/cli/commands/next.d.ts +98 -0
  53. package/dist/cli/commands/next.js +304 -0
  54. package/dist/cli/commands/next.js.map +1 -0
  55. package/dist/cli/commands/profile.d.ts +208 -0
  56. package/dist/cli/commands/profile.js +418 -0
  57. package/dist/cli/commands/profile.js.map +1 -0
  58. package/dist/cli/commands/repeatable-metadata-parsers.js +12 -13
  59. package/dist/cli/commands/repeatable-metadata-parsers.js.map +1 -1
  60. package/dist/cli/commands/schema.d.ts +7 -0
  61. package/dist/cli/commands/schema.js +9 -3
  62. package/dist/cli/commands/schema.js.map +1 -1
  63. package/dist/cli/commands/search.d.ts +2 -39
  64. package/dist/cli/commands/search.js +104 -106
  65. package/dist/cli/commands/search.js.map +1 -1
  66. package/dist/cli/commands/shared-unset-fields.d.ts +30 -0
  67. package/dist/cli/commands/shared-unset-fields.js +161 -0
  68. package/dist/cli/commands/shared-unset-fields.js.map +1 -0
  69. package/dist/cli/commands/stats.js +15 -3
  70. package/dist/cli/commands/stats.js.map +1 -1
  71. package/dist/cli/commands/test.js +9 -5
  72. package/dist/cli/commands/test.js.map +1 -1
  73. package/dist/cli/commands/update.d.ts +1 -6
  74. package/dist/cli/commands/update.js +12 -157
  75. package/dist/cli/commands/update.js.map +1 -1
  76. package/dist/cli/commands/validate.js +20 -5
  77. package/dist/cli/commands/validate.js.map +1 -1
  78. package/dist/cli/help-content.js +26 -2
  79. package/dist/cli/help-content.js.map +1 -1
  80. package/dist/cli/help-json-payload.js +3 -3
  81. package/dist/cli/help-json-payload.js.map +1 -1
  82. package/dist/cli/main.js +27 -12
  83. package/dist/cli/main.js.map +1 -1
  84. package/dist/cli/register-list-query.js +42 -3
  85. package/dist/cli/register-list-query.js.map +1 -1
  86. package/dist/cli/register-mutation.js +86 -2
  87. package/dist/cli/register-mutation.js.map +1 -1
  88. package/dist/cli/register-setup.js +67 -6
  89. package/dist/cli/register-setup.js.map +1 -1
  90. package/dist/cli/registration-helpers.d.ts +9 -1
  91. package/dist/cli/registration-helpers.js +34 -3
  92. package/dist/cli/registration-helpers.js.map +1 -1
  93. package/dist/cli-bundle/chunks/activity-EJBMXUBH.js +16 -0
  94. package/dist/cli-bundle/chunks/{activity-H2LMOSSW.js → activity-MVSEND6D.js} +9 -11
  95. package/dist/cli-bundle/chunks/{aggregate-R725FC3S.js → aggregate-MOC4TR2G.js} +16 -17
  96. package/dist/cli-bundle/chunks/aggregate-MOC4TR2G.js.map +1 -0
  97. package/dist/cli-bundle/chunks/{aggregate-EGJLZQBI.js → aggregate-XJHLZQ5X.js} +15 -16
  98. package/dist/cli-bundle/chunks/aggregate-XJHLZQ5X.js.map +7 -0
  99. package/dist/cli-bundle/chunks/{append-5J345QGU.js → append-KDHT4GHI.js} +10 -12
  100. package/dist/cli-bundle/chunks/{append-5J345QGU.js.map → append-KDHT4GHI.js.map} +1 -1
  101. package/dist/cli-bundle/chunks/{append-O5HPBMRN.js → append-LEDBAM3K.js} +8 -10
  102. package/dist/cli-bundle/chunks/{append-O5HPBMRN.js.map → append-LEDBAM3K.js.map} +1 -1
  103. package/dist/cli-bundle/chunks/{chunk-IB3GYLQE.js → chunk-3JWQCLR5.js} +3 -3
  104. package/dist/cli-bundle/chunks/{chunk-2A34E3BA.js → chunk-4TXTVZL3.js} +2 -2
  105. package/dist/cli-bundle/chunks/{chunk-G6N5VEOK.js → chunk-4YIMPANT.js} +3 -3
  106. package/dist/cli-bundle/chunks/{chunk-7AUB5HNA.js → chunk-53ARXF2O.js} +9 -11
  107. package/dist/cli-bundle/chunks/{chunk-7AUB5HNA.js.map → chunk-53ARXF2O.js.map} +1 -1
  108. package/dist/cli-bundle/chunks/chunk-5ABGFWR4.js +116 -0
  109. package/dist/cli-bundle/chunks/chunk-5ABGFWR4.js.map +1 -0
  110. package/dist/cli-bundle/chunks/{chunk-2BFPAUAF.js → chunk-5IRVSKPS.js} +2990 -2890
  111. package/dist/cli-bundle/chunks/chunk-5IRVSKPS.js.map +1 -0
  112. package/dist/cli-bundle/chunks/{chunk-JR2LV3M4.js → chunk-5T6WPLRO.js} +233 -190
  113. package/dist/cli-bundle/chunks/chunk-5T6WPLRO.js.map +7 -0
  114. package/dist/cli-bundle/chunks/{chunk-CKGNPJAG.js → chunk-6T5ZIWBS.js} +3011 -2888
  115. package/dist/cli-bundle/chunks/chunk-6T5ZIWBS.js.map +7 -0
  116. package/dist/cli-bundle/chunks/{chunk-QH3PJYON.js → chunk-6YRAMXRS.js} +111 -114
  117. package/dist/cli-bundle/chunks/chunk-6YRAMXRS.js.map +1 -0
  118. package/dist/cli-bundle/chunks/{chunk-7XGQXHFB.js → chunk-73PTKMAE.js} +3 -3
  119. package/dist/cli-bundle/chunks/{chunk-Y4SUQQYH.js → chunk-74PUWBGN.js} +53 -54
  120. package/dist/cli-bundle/chunks/chunk-74PUWBGN.js.map +1 -0
  121. package/dist/cli-bundle/chunks/{chunk-T5472OMV.js → chunk-7L6TXOOC.js} +4 -6
  122. package/dist/cli-bundle/chunks/{chunk-T5472OMV.js.map → chunk-7L6TXOOC.js.map} +1 -1
  123. package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js +17 -0
  124. package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js.map +7 -0
  125. package/dist/cli-bundle/chunks/{chunk-3VY3YQO6.js → chunk-7RIJGN4R.js} +2 -2
  126. package/dist/cli-bundle/chunks/{chunk-G6PYHBBR.js → chunk-7WDETKGP.js} +192 -113
  127. package/dist/cli-bundle/chunks/chunk-7WDETKGP.js.map +7 -0
  128. package/dist/cli-bundle/chunks/{chunk-AONIHR2C.js → chunk-A3UNLXNJ.js} +40 -260
  129. package/dist/cli-bundle/chunks/chunk-A3UNLXNJ.js.map +7 -0
  130. package/dist/cli-bundle/chunks/{chunk-4KD54S3Z.js → chunk-AWN4PPH5.js} +10 -14
  131. package/dist/cli-bundle/chunks/{chunk-4KD54S3Z.js.map → chunk-AWN4PPH5.js.map} +1 -1
  132. package/dist/cli-bundle/chunks/{chunk-FXR67XVQ.js → chunk-BN3CWK6G.js} +2 -2
  133. package/dist/cli-bundle/chunks/{chunk-KFWBJPSG.js → chunk-BOWQWXLI.js} +12 -24
  134. package/dist/cli-bundle/chunks/chunk-BOWQWXLI.js.map +1 -0
  135. package/dist/cli-bundle/chunks/{chunk-4BHT5VDC.js → chunk-C2KCIZKZ.js} +2 -2
  136. package/dist/cli-bundle/chunks/{chunk-O6LLO73I.js → chunk-CHRNYKNI.js} +2 -2
  137. package/dist/cli-bundle/chunks/{chunk-UELRKQQU.js → chunk-CY5IJMUM.js} +1239 -495
  138. package/dist/cli-bundle/chunks/chunk-CY5IJMUM.js.map +1 -0
  139. package/dist/cli-bundle/chunks/chunk-CZVISY5A.js +87 -0
  140. package/dist/cli-bundle/chunks/chunk-CZVISY5A.js.map +7 -0
  141. package/dist/cli-bundle/chunks/{chunk-7K2XXO4I.js → chunk-D5LYZVGB.js} +7 -9
  142. package/dist/cli-bundle/chunks/{chunk-7K2XXO4I.js.map → chunk-D5LYZVGB.js.map} +1 -1
  143. package/dist/cli-bundle/chunks/{chunk-ZQ3ZVXX2.js → chunk-D6USKAMA.js} +2 -2
  144. package/dist/cli-bundle/chunks/{context-BLBD3PUB.js → chunk-DJDXAU74.js} +19 -21
  145. package/dist/cli-bundle/chunks/chunk-DJDXAU74.js.map +7 -0
  146. package/dist/cli-bundle/chunks/{chunk-WZQWHN4R.js → chunk-DLDCPF5X.js} +3 -3
  147. package/dist/cli-bundle/chunks/{chunk-HFFUQR73.js → chunk-DORJSBGJ.js} +35 -9
  148. package/dist/cli-bundle/chunks/chunk-DORJSBGJ.js.map +7 -0
  149. package/dist/cli-bundle/chunks/{chunk-XVF4YARA.js → chunk-DRPF274X.js} +5 -7
  150. package/dist/cli-bundle/chunks/{chunk-XVF4YARA.js.map → chunk-DRPF274X.js.map} +2 -2
  151. package/dist/cli-bundle/chunks/{chunk-QL5RVYOA.js → chunk-DU66JUGT.js} +16 -14
  152. package/dist/cli-bundle/chunks/chunk-DU66JUGT.js.map +7 -0
  153. package/dist/cli-bundle/chunks/{chunk-UVC5LOR7.js → chunk-E2Q2ULMR.js} +4 -4
  154. package/dist/cli-bundle/chunks/{chunk-U2Z5YUSO.js → chunk-EVWYAG46.js} +9 -11
  155. package/dist/cli-bundle/chunks/{chunk-U2Z5YUSO.js.map → chunk-EVWYAG46.js.map} +1 -1
  156. package/dist/cli-bundle/chunks/{chunk-5VOINNKT.js → chunk-F6VH3LFC.js} +2 -2
  157. package/dist/cli-bundle/chunks/{chunk-VFAQ4LMN.js → chunk-F7G53BOA.js} +18 -11
  158. package/dist/cli-bundle/chunks/chunk-F7G53BOA.js.map +7 -0
  159. package/dist/cli-bundle/chunks/{chunk-Q2KNGP7C.js → chunk-FBZ5XAAF.js} +9 -11
  160. package/dist/cli-bundle/chunks/{chunk-Q2KNGP7C.js.map → chunk-FBZ5XAAF.js.map} +1 -1
  161. package/dist/cli-bundle/chunks/{chunk-H4IIJDE4.js → chunk-FDEVKXC4.js} +2 -2
  162. package/dist/cli-bundle/chunks/{chunk-7UGEAPRY.js → chunk-GF7EAR22.js} +10 -14
  163. package/dist/cli-bundle/chunks/{chunk-7UGEAPRY.js.map → chunk-GF7EAR22.js.map} +1 -1
  164. package/dist/cli-bundle/chunks/{context-DHLVPXN3.js → chunk-HIBK6H4S.js} +20 -22
  165. package/dist/cli-bundle/chunks/chunk-HIBK6H4S.js.map +1 -0
  166. package/dist/cli-bundle/chunks/{chunk-34EONI5F.js → chunk-HUYYMTGW.js} +2 -2
  167. package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js +14 -0
  168. package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js.map +1 -0
  169. package/dist/cli-bundle/chunks/{chunk-BB6MDVNQ.js → chunk-IBU2LLWM.js} +8 -12
  170. package/dist/cli-bundle/chunks/{chunk-BB6MDVNQ.js.map → chunk-IBU2LLWM.js.map} +1 -1
  171. package/dist/cli-bundle/chunks/{chunk-55ISXAQH.js → chunk-IDYCAK35.js} +53 -54
  172. package/dist/cli-bundle/chunks/chunk-IDYCAK35.js.map +7 -0
  173. package/dist/cli-bundle/chunks/{chunk-M4T5DXD5.js → chunk-IF4ERU6A.js} +7 -9
  174. package/dist/cli-bundle/chunks/{chunk-M4T5DXD5.js.map → chunk-IF4ERU6A.js.map} +1 -1
  175. package/dist/cli-bundle/chunks/{chunk-CIIK67GW.js → chunk-IHXXUIXS.js} +4 -4
  176. package/dist/cli-bundle/chunks/chunk-IZQOJR2B.js +2459 -0
  177. package/dist/cli-bundle/chunks/chunk-IZQOJR2B.js.map +7 -0
  178. package/dist/cli-bundle/chunks/{chunk-SBQTAVJZ.js → chunk-JIP67N2K.js} +3 -3
  179. package/dist/cli-bundle/chunks/chunk-JJ4SG243.js +119 -0
  180. package/dist/cli-bundle/chunks/chunk-JJ4SG243.js.map +7 -0
  181. package/dist/cli-bundle/chunks/{chunk-TQZH6OD6.js → chunk-JTRKME24.js} +11 -13
  182. package/dist/cli-bundle/chunks/{chunk-TQZH6OD6.js.map → chunk-JTRKME24.js.map} +1 -1
  183. package/dist/cli-bundle/chunks/{chunk-WBRKK5QR.js → chunk-JVQ7UOYC.js} +6 -8
  184. package/dist/cli-bundle/chunks/{chunk-WBRKK5QR.js.map → chunk-JVQ7UOYC.js.map} +1 -1
  185. package/dist/cli-bundle/chunks/{chunk-KQMUV6LX.js → chunk-JZG5ADVE.js} +191 -98
  186. package/dist/cli-bundle/chunks/chunk-JZG5ADVE.js.map +1 -0
  187. package/dist/cli-bundle/chunks/{chunk-46G6RSB6.js → chunk-K46GQ265.js} +17 -15
  188. package/dist/cli-bundle/chunks/chunk-K46GQ265.js.map +1 -0
  189. package/dist/cli-bundle/chunks/{chunk-5UVVASSA.js → chunk-KGQ3W65B.js} +100 -35
  190. package/dist/cli-bundle/chunks/chunk-KGQ3W65B.js.map +1 -0
  191. package/dist/cli-bundle/chunks/{chunk-2T3JG6V4.js → chunk-KRASIL6M.js} +2 -2
  192. package/dist/cli-bundle/chunks/{chunk-SR3EKWZG.js → chunk-KTMMTOIP.js} +127 -127
  193. package/dist/cli-bundle/chunks/chunk-KTMMTOIP.js.map +7 -0
  194. package/dist/cli-bundle/chunks/{chunk-DT5LPYOD.js → chunk-KYDYQMNW.js} +5 -7
  195. package/dist/cli-bundle/chunks/{chunk-DT5LPYOD.js.map → chunk-KYDYQMNW.js.map} +1 -1
  196. package/dist/cli-bundle/chunks/{chunk-IPKJ6B36.js → chunk-LBH7UYKY.js} +106 -34
  197. package/dist/cli-bundle/chunks/chunk-LBH7UYKY.js.map +7 -0
  198. package/dist/cli-bundle/chunks/{chunk-P77P2ILI.js → chunk-MLHX6DN5.js} +2 -2
  199. package/dist/cli-bundle/chunks/{chunk-YUDJD3XO.js → chunk-NIBP3I7A.js} +36 -10
  200. package/dist/cli-bundle/chunks/chunk-NIBP3I7A.js.map +1 -0
  201. package/dist/cli-bundle/chunks/{schema-RBTJ2YXW.js → chunk-NO6Y6FB2.js} +144 -67
  202. package/dist/cli-bundle/chunks/chunk-NO6Y6FB2.js.map +7 -0
  203. package/dist/cli-bundle/chunks/{chunk-2CKH2LMV.js → chunk-OB3RJV5F.js} +2 -2
  204. package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js +379 -0
  205. package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js.map +1 -0
  206. package/dist/cli-bundle/chunks/{chunk-FIGAZ4Y7.js → chunk-OUQ5JEFM.js} +3 -3
  207. package/dist/cli-bundle/chunks/{chunk-NK3UPBVG.js → chunk-QE5UFCCO.js} +2 -2
  208. package/dist/cli-bundle/chunks/{chunk-MJTINN54.js → chunk-RM6MHL6A.js} +110 -113
  209. package/dist/cli-bundle/chunks/chunk-RM6MHL6A.js.map +7 -0
  210. package/dist/cli-bundle/chunks/{chunk-LRKKONT2.js → chunk-RPRW26NG.js} +12 -16
  211. package/dist/cli-bundle/chunks/{chunk-LRKKONT2.js.map → chunk-RPRW26NG.js.map} +1 -1
  212. package/dist/cli-bundle/chunks/{chunk-WM5ZVBPE.js → chunk-SJZTPVFT.js} +4 -4
  213. package/dist/cli-bundle/chunks/{chunk-MJTSZKK5.js → chunk-SNUK7H5J.js} +1363 -605
  214. package/dist/cli-bundle/chunks/chunk-SNUK7H5J.js.map +7 -0
  215. package/dist/cli-bundle/chunks/chunk-T7ZMQI4J.js +2435 -0
  216. package/dist/cli-bundle/chunks/chunk-T7ZMQI4J.js.map +1 -0
  217. package/dist/cli-bundle/chunks/{chunk-W72GHSJE.js → chunk-TQ6E76BE.js} +11 -13
  218. package/dist/cli-bundle/chunks/{chunk-W72GHSJE.js.map → chunk-TQ6E76BE.js.map} +1 -1
  219. package/dist/cli-bundle/chunks/{chunk-ZRK4O56R.js → chunk-UB3V5WUI.js} +225 -189
  220. package/dist/cli-bundle/chunks/chunk-UB3V5WUI.js.map +1 -0
  221. package/dist/cli-bundle/chunks/{chunk-SKN7LC5W.js → chunk-UFKNF23C.js} +11 -23
  222. package/dist/cli-bundle/chunks/chunk-UFKNF23C.js.map +7 -0
  223. package/dist/cli-bundle/chunks/{chunk-VAYA4XFX.js → chunk-V3KLX7U7.js} +3 -3
  224. package/dist/cli-bundle/chunks/{chunk-GAJVRGGA.js → chunk-VD3LKZFX.js} +41 -254
  225. package/dist/cli-bundle/chunks/chunk-VD3LKZFX.js.map +1 -0
  226. package/dist/cli-bundle/chunks/{chunk-AD3A7ZD6.js → chunk-VMY7MZEM.js} +10 -14
  227. package/dist/cli-bundle/chunks/{chunk-AD3A7ZD6.js.map → chunk-VMY7MZEM.js.map} +1 -1
  228. package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js +382 -0
  229. package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js.map +7 -0
  230. package/dist/cli-bundle/chunks/{chunk-CE5P2NQR.js → chunk-WFJZDUM7.js} +19 -12
  231. package/dist/cli-bundle/chunks/chunk-WFJZDUM7.js.map +1 -0
  232. package/dist/cli-bundle/chunks/{schema-MNTAVQCY.js → chunk-WTRUDJ3R.js} +136 -66
  233. package/dist/cli-bundle/chunks/chunk-WTRUDJ3R.js.map +1 -0
  234. package/dist/cli-bundle/chunks/{chunk-T72AZDBA.js → chunk-YEDFE4DC.js} +6 -8
  235. package/dist/cli-bundle/chunks/{chunk-T72AZDBA.js.map → chunk-YEDFE4DC.js.map} +1 -1
  236. package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js +84 -0
  237. package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js.map +1 -0
  238. package/dist/cli-bundle/chunks/{chunk-H2IP4QLJ.js → chunk-Z55WX4IQ.js} +12 -16
  239. package/dist/cli-bundle/chunks/{chunk-H2IP4QLJ.js.map → chunk-Z55WX4IQ.js.map} +1 -1
  240. package/dist/cli-bundle/chunks/{chunk-2RDVQEWV.js → chunk-Z5BM2FKQ.js} +4 -4
  241. package/dist/cli-bundle/chunks/{chunk-66MEDTUD.js → chunk-ZEATCVAC.js} +2 -2
  242. package/dist/cli-bundle/chunks/{chunk-NCVCO3NZ.js → chunk-ZFIEEDTJ.js} +3 -3
  243. package/dist/cli-bundle/chunks/{chunk-7SV63ZHD.js → chunk-ZIE6WXJ2.js} +128 -128
  244. package/dist/cli-bundle/chunks/chunk-ZIE6WXJ2.js.map +1 -0
  245. package/dist/cli-bundle/chunks/{claim-4KHAA2RN.js → claim-6NINZYB3.js} +10 -12
  246. package/dist/cli-bundle/chunks/{claim-4KHAA2RN.js.map → claim-6NINZYB3.js.map} +1 -1
  247. package/dist/cli-bundle/chunks/{claim-CSPJFLNH.js → claim-HMCLSLUE.js} +8 -10
  248. package/dist/cli-bundle/chunks/{claim-CSPJFLNH.js.map → claim-HMCLSLUE.js.map} +1 -1
  249. package/dist/cli-bundle/chunks/close-37KEHLYM.js +14 -0
  250. package/dist/cli-bundle/chunks/{close-W56IOGYG.js → close-OP3LK7Z2.js} +7 -8
  251. package/dist/cli-bundle/chunks/{close-many-BX5DCSVV.js → close-many-BFMP6HHK.js} +15 -17
  252. package/dist/cli-bundle/chunks/{close-many-BX5DCSVV.js.map → close-many-BFMP6HHK.js.map} +1 -1
  253. package/dist/cli-bundle/chunks/{close-many-TQU5F4E4.js → close-many-CXJBOWWY.js} +17 -19
  254. package/dist/cli-bundle/chunks/{close-many-TQU5F4E4.js.map → close-many-CXJBOWWY.js.map} +1 -1
  255. package/dist/cli-bundle/chunks/{comments-VRECH75R.js → comments-ETHABIY6.js} +9 -11
  256. package/dist/cli-bundle/chunks/{comments-VRECH75R.js.map → comments-ETHABIY6.js.map} +1 -1
  257. package/dist/cli-bundle/chunks/{comments-U5KUC4EU.js → comments-MU2WMBUY.js} +11 -13
  258. package/dist/cli-bundle/chunks/{comments-U5KUC4EU.js.map → comments-MU2WMBUY.js.map} +1 -1
  259. package/dist/cli-bundle/chunks/{config-D3OKQO52.js → config-FIXJZEQK.js} +18 -387
  260. package/dist/cli-bundle/chunks/config-FIXJZEQK.js.map +7 -0
  261. package/dist/cli-bundle/chunks/{config-MMJA4LLK.js → config-X3ZVCUUG.js} +18 -380
  262. package/dist/cli-bundle/chunks/config-X3ZVCUUG.js.map +1 -0
  263. package/dist/cli-bundle/chunks/context-7ZEZV3BV.js +42 -0
  264. package/dist/cli-bundle/chunks/context-XDI4DKKT.js +46 -0
  265. package/dist/cli-bundle/chunks/{contracts-XGVMMPC5.js → contracts-KP4QAGVW.js} +72 -15
  266. package/dist/cli-bundle/chunks/contracts-KP4QAGVW.js.map +1 -0
  267. package/dist/cli-bundle/chunks/{contracts-C3SZCXXG.js → contracts-SMOAN5NF.js} +72 -15
  268. package/dist/cli-bundle/chunks/contracts-SMOAN5NF.js.map +7 -0
  269. package/dist/cli-bundle/chunks/{copy-HHL3K4QP.js → copy-CWM6SBY6.js} +7 -11
  270. package/dist/cli-bundle/chunks/{copy-HHL3K4QP.js.map → copy-CWM6SBY6.js.map} +1 -1
  271. package/dist/cli-bundle/chunks/{copy-5D5DX3VK.js → copy-JJ3KOQW2.js} +9 -13
  272. package/dist/cli-bundle/chunks/{copy-5D5DX3VK.js.map → copy-JJ3KOQW2.js.map} +1 -1
  273. package/dist/cli-bundle/chunks/create-DFMNBKBS.js +28 -0
  274. package/dist/cli-bundle/chunks/{create-IXY43O4H.js → create-J5Q2ELZT.js} +12 -14
  275. package/dist/cli-bundle/chunks/{delete-IBUR3M42.js → delete-2GZLQEUQ.js} +7 -9
  276. package/dist/cli-bundle/chunks/{delete-IBUR3M42.js.map → delete-2GZLQEUQ.js.map} +1 -1
  277. package/dist/cli-bundle/chunks/{delete-QQC2FGUH.js → delete-OOQS4KVD.js} +5 -7
  278. package/dist/cli-bundle/chunks/{delete-QQC2FGUH.js.map → delete-OOQS4KVD.js.map} +1 -1
  279. package/dist/cli-bundle/chunks/{deps-KWKRHXIN.js → deps-IF4IGL4R.js} +6 -9
  280. package/dist/cli-bundle/chunks/{deps-KWKRHXIN.js.map → deps-IF4IGL4R.js.map} +1 -1
  281. package/dist/cli-bundle/chunks/{deps-VTPO4BSE.js → deps-ZVGGCRR6.js} +8 -11
  282. package/dist/cli-bundle/chunks/{deps-VTPO4BSE.js.map → deps-ZVGGCRR6.js.map} +1 -1
  283. package/dist/cli-bundle/chunks/{docs-IIO3FEUO.js → docs-2TIFR62T.js} +8 -9
  284. package/dist/cli-bundle/chunks/{docs-IIO3FEUO.js.map → docs-2TIFR62T.js.map} +1 -1
  285. package/dist/cli-bundle/chunks/{docs-7CHFHXLN.js → docs-NFTBCQQC.js} +10 -11
  286. package/dist/cli-bundle/chunks/{docs-7CHFHXLN.js.map → docs-NFTBCQQC.js.map} +1 -1
  287. package/dist/cli-bundle/chunks/{eval-IO7LREOL.js → eval-2F6EH4XN.js} +12 -14
  288. package/dist/cli-bundle/chunks/{eval-IO7LREOL.js.map → eval-2F6EH4XN.js.map} +1 -1
  289. package/dist/cli-bundle/chunks/{eval-CEYYEPSX.js → eval-PFKXQR3B.js} +10 -12
  290. package/dist/cli-bundle/chunks/{eval-CEYYEPSX.js.map → eval-PFKXQR3B.js.map} +1 -1
  291. package/dist/cli-bundle/chunks/{extension-KCPUWSY2.js → extension-3LRYX7SW.js} +11 -7
  292. package/dist/cli-bundle/chunks/{extension-UTTQDUYI.js → extension-GMVOIP4O.js} +11 -7
  293. package/dist/cli-bundle/chunks/{files-Z2HHEFGP.js → files-DF3HO6XK.js} +11 -13
  294. package/dist/cli-bundle/chunks/{files-Z2HHEFGP.js.map → files-DF3HO6XK.js.map} +1 -1
  295. package/dist/cli-bundle/chunks/{files-TPUL6KWB.js → files-T5ODMETM.js} +9 -11
  296. package/dist/cli-bundle/chunks/{files-TPUL6KWB.js.map → files-T5ODMETM.js.map} +1 -1
  297. package/dist/cli-bundle/chunks/{focus-YRNNH7IP.js → focus-DLXKK4AH.js} +10 -14
  298. package/dist/cli-bundle/chunks/{focus-YRNNH7IP.js.map → focus-DLXKK4AH.js.map} +1 -1
  299. package/dist/cli-bundle/chunks/{focus-JVJCGC2D.js → focus-MY5ARIEK.js} +8 -12
  300. package/dist/cli-bundle/chunks/{focus-JVJCGC2D.js.map → focus-MY5ARIEK.js.map} +1 -1
  301. package/dist/cli-bundle/chunks/{gc-O5GUO3SU.js → gc-FULIVYR4.js} +3 -3
  302. package/dist/cli-bundle/chunks/{gc-PYVVEELM.js → gc-MDGRR2SU.js} +3 -3
  303. package/dist/cli-bundle/chunks/{get-X4O3HBEY.js → get-AWK324RS.js} +10 -13
  304. package/dist/cli-bundle/chunks/{get-X4O3HBEY.js.map → get-AWK324RS.js.map} +1 -1
  305. package/dist/cli-bundle/chunks/{get-ENLTEGTX.js → get-VYPIICPC.js} +12 -15
  306. package/dist/cli-bundle/chunks/{get-ENLTEGTX.js.map → get-VYPIICPC.js.map} +1 -1
  307. package/dist/cli-bundle/chunks/{health-5EXTY44Q.js → health-FBCVZGSX.js} +16 -17
  308. package/dist/cli-bundle/chunks/{health-5EXTY44Q.js.map → health-FBCVZGSX.js.map} +1 -1
  309. package/dist/cli-bundle/chunks/{health-BOTB7YSU.js → health-Q66C43GN.js} +18 -19
  310. package/dist/cli-bundle/chunks/{health-BOTB7YSU.js.map → health-Q66C43GN.js.map} +1 -1
  311. package/dist/cli-bundle/chunks/history-5XUSLAJA.js +18 -0
  312. package/dist/cli-bundle/chunks/{history-AJTXLT6S.js → history-X4OSES6K.js} +8 -10
  313. package/dist/cli-bundle/chunks/{history-compact-46MRHW3I.js → history-compact-2GHT32UX.js} +13 -16
  314. package/dist/cli-bundle/chunks/{history-compact-46MRHW3I.js.map → history-compact-2GHT32UX.js.map} +1 -1
  315. package/dist/cli-bundle/chunks/{history-compact-43OOUAWD.js → history-compact-WLCQEKXS.js} +11 -14
  316. package/dist/cli-bundle/chunks/{history-compact-43OOUAWD.js.map → history-compact-WLCQEKXS.js.map} +1 -1
  317. package/dist/cli-bundle/chunks/{history-redact-KUUUVUFM.js → history-redact-45YW65BK.js} +9 -11
  318. package/dist/cli-bundle/chunks/history-redact-BVHWDXPR.js +19 -0
  319. package/dist/cli-bundle/chunks/{history-repair-B5PZBOPU.js → history-repair-FY75IC26.js} +13 -16
  320. package/dist/cli-bundle/chunks/{history-repair-B5PZBOPU.js.map → history-repair-FY75IC26.js.map} +1 -1
  321. package/dist/cli-bundle/chunks/{history-repair-VQTYOSRS.js → history-repair-GABSDSVD.js} +11 -14
  322. package/dist/cli-bundle/chunks/{history-repair-VQTYOSRS.js.map → history-repair-GABSDSVD.js.map} +1 -1
  323. package/dist/cli-bundle/chunks/{init-BNLVFPRG.js → init-KO7CGIRQ.js} +11 -11
  324. package/dist/cli-bundle/chunks/init-TRYJELH4.js +21 -0
  325. package/dist/cli-bundle/chunks/{learnings-MUUU5KMC.js → learnings-3F7YLI45.js} +9 -11
  326. package/dist/cli-bundle/chunks/{learnings-MUUU5KMC.js.map → learnings-3F7YLI45.js.map} +1 -1
  327. package/dist/cli-bundle/chunks/{learnings-XSGX52S7.js → learnings-LHZT5BHW.js} +11 -13
  328. package/dist/cli-bundle/chunks/{learnings-XSGX52S7.js.map → learnings-LHZT5BHW.js.map} +1 -1
  329. package/dist/cli-bundle/chunks/{list-32U7BSKE.js → list-ROT7JF62.js} +10 -10
  330. package/dist/cli-bundle/chunks/{list-ZEEOHLTQ.js → list-Y6AU5BJS.js} +10 -10
  331. package/dist/cli-bundle/chunks/next-66BJB4N2.js +277 -0
  332. package/dist/cli-bundle/chunks/next-66BJB4N2.js.map +7 -0
  333. package/dist/cli-bundle/chunks/next-N5MWJTBY.js +274 -0
  334. package/dist/cli-bundle/chunks/next-N5MWJTBY.js.map +1 -0
  335. package/dist/cli-bundle/chunks/{notes-OHU25L3M.js → notes-EVJZ3VAB.js} +11 -13
  336. package/dist/cli-bundle/chunks/{notes-OHU25L3M.js.map → notes-EVJZ3VAB.js.map} +1 -1
  337. package/dist/cli-bundle/chunks/{notes-NJ45OZGF.js → notes-FW6YFLND.js} +9 -11
  338. package/dist/cli-bundle/chunks/{notes-NJ45OZGF.js.map → notes-FW6YFLND.js.map} +1 -1
  339. package/dist/cli-bundle/chunks/{plan-LWWAEV5Y.js → plan-DQ7G4EDC.js} +15 -18
  340. package/dist/cli-bundle/chunks/{plan-LWWAEV5Y.js.map → plan-DQ7G4EDC.js.map} +1 -1
  341. package/dist/cli-bundle/chunks/{plan-KQA7CAKI.js → plan-ZHKZ7JVF.js} +17 -20
  342. package/dist/cli-bundle/chunks/{plan-KQA7CAKI.js.map → plan-ZHKZ7JVF.js.map} +1 -1
  343. package/dist/cli-bundle/chunks/profile-CHAW6SEA.js +1197 -0
  344. package/dist/cli-bundle/chunks/profile-CHAW6SEA.js.map +1 -0
  345. package/dist/cli-bundle/chunks/profile-UPZGCDOG.js +1235 -0
  346. package/dist/cli-bundle/chunks/profile-UPZGCDOG.js.map +7 -0
  347. package/dist/cli-bundle/chunks/{register-list-query-DDCHPONM.js → register-list-query-KY6Z6WV7.js} +44 -20
  348. package/dist/cli-bundle/chunks/register-list-query-KY6Z6WV7.js.map +7 -0
  349. package/dist/cli-bundle/chunks/{register-list-query-YNPBVIKM.js → register-list-query-Y2VRHPCL.js} +45 -21
  350. package/dist/cli-bundle/chunks/register-list-query-Y2VRHPCL.js.map +1 -0
  351. package/dist/cli-bundle/chunks/{register-mutation-LAVKYY63.js → register-mutation-N6AYSKPM.js} +103 -37
  352. package/dist/cli-bundle/chunks/register-mutation-N6AYSKPM.js.map +7 -0
  353. package/dist/cli-bundle/chunks/{register-mutation-7ALWDDAX.js → register-mutation-PCARIGZS.js} +104 -38
  354. package/dist/cli-bundle/chunks/register-mutation-PCARIGZS.js.map +1 -0
  355. package/dist/cli-bundle/chunks/{register-operations-U5JAW3WE.js → register-operations-L6CYTOIH.js} +30 -32
  356. package/dist/cli-bundle/chunks/{register-operations-U5JAW3WE.js.map → register-operations-L6CYTOIH.js.map} +1 -1
  357. package/dist/cli-bundle/chunks/{register-operations-R4VOQ6EF.js → register-operations-YAT6FUUB.js} +32 -34
  358. package/dist/cli-bundle/chunks/{register-operations-R4VOQ6EF.js.map → register-operations-YAT6FUUB.js.map} +1 -1
  359. package/dist/cli-bundle/chunks/{register-setup-KBXQDCXE.js → register-setup-MPANILQF.js} +67 -24
  360. package/dist/cli-bundle/chunks/register-setup-MPANILQF.js.map +7 -0
  361. package/dist/cli-bundle/chunks/{register-setup-RCRUHMSZ.js → register-setup-N7UGXYJC.js} +68 -25
  362. package/dist/cli-bundle/chunks/register-setup-N7UGXYJC.js.map +1 -0
  363. package/dist/cli-bundle/chunks/{restore-6K53WOWO.js → restore-DKMCLPI5.js} +9 -11
  364. package/dist/cli-bundle/chunks/restore-IRAKSWIW.js +17 -0
  365. package/dist/cli-bundle/chunks/{scheduling-shortcuts-NJ5UVJFB.js → scheduling-shortcuts-3F4QUEDH.js} +14 -16
  366. package/dist/cli-bundle/chunks/{scheduling-shortcuts-NJ5UVJFB.js.map → scheduling-shortcuts-3F4QUEDH.js.map} +1 -1
  367. package/dist/cli-bundle/chunks/{scheduling-shortcuts-OQVJXG3M.js → scheduling-shortcuts-BNZLQK36.js} +12 -14
  368. package/dist/cli-bundle/chunks/{scheduling-shortcuts-OQVJXG3M.js.map → scheduling-shortcuts-BNZLQK36.js.map} +1 -1
  369. package/dist/cli-bundle/chunks/schema-OLT6LVKH.js +75 -0
  370. package/dist/cli-bundle/chunks/schema-XJXKJQF5.js +71 -0
  371. package/dist/cli-bundle/chunks/{search-6HOIVZDU.js → search-CX5UMV4H.js} +10 -12
  372. package/dist/cli-bundle/chunks/{search-ZWYEMASC.js → search-KP6H7COV.js} +10 -12
  373. package/dist/cli-bundle/chunks/{stats-R5OAJVZK.js → stats-7XW4OEMK.js} +20 -12
  374. package/dist/cli-bundle/chunks/stats-7XW4OEMK.js.map +7 -0
  375. package/dist/cli-bundle/chunks/{stats-FS742AMA.js → stats-QZUG6MX5.js} +21 -13
  376. package/dist/cli-bundle/chunks/stats-QZUG6MX5.js.map +1 -0
  377. package/dist/cli-bundle/chunks/{telemetry-7DIGDQUO.js → telemetry-DIFPXCAT.js} +4 -4
  378. package/dist/cli-bundle/chunks/{telemetry-FWEXSJLQ.js → telemetry-WTYFUPRL.js} +4 -4
  379. package/dist/cli-bundle/chunks/{test-NZF7OT2F.js → test-HU2BS7EY.js} +14 -16
  380. package/dist/cli-bundle/chunks/test-HU2BS7EY.js.map +1 -0
  381. package/dist/cli-bundle/chunks/test-QNDXZQCW.js +34 -0
  382. package/dist/cli-bundle/chunks/test-QNDXZQCW.js.map +7 -0
  383. package/dist/cli-bundle/chunks/{test-all-DPN62TX7.js → test-all-PZTBLLQ6.js} +17 -20
  384. package/dist/cli-bundle/chunks/{test-all-DPN62TX7.js.map → test-all-PZTBLLQ6.js.map} +1 -1
  385. package/dist/cli-bundle/chunks/{test-all-KL7TLMJF.js → test-all-XLPI4USF.js} +19 -22
  386. package/dist/cli-bundle/chunks/{test-all-KL7TLMJF.js.map → test-all-XLPI4USF.js.map} +1 -1
  387. package/dist/cli-bundle/chunks/{test-runs-C6CFIVOS.js → test-runs-CA6K32RD.js} +6 -7
  388. package/dist/cli-bundle/chunks/test-runs-CA6K32RD.js.map +1 -0
  389. package/dist/cli-bundle/chunks/{test-runs-IAJDL6CA.js → test-runs-LANLLPVO.js} +5 -6
  390. package/dist/cli-bundle/chunks/test-runs-LANLLPVO.js.map +7 -0
  391. package/dist/cli-bundle/chunks/update-DJKWLBWJ.js +28 -0
  392. package/dist/cli-bundle/chunks/update-DJKWLBWJ.js.map +1 -0
  393. package/dist/cli-bundle/chunks/update-UXDLTEOZ.js +24 -0
  394. package/dist/cli-bundle/chunks/update-UXDLTEOZ.js.map +7 -0
  395. package/dist/cli-bundle/chunks/{update-many-YEH2DQL6.js → update-many-LU3SCNK5.js} +32 -33
  396. package/dist/cli-bundle/chunks/{update-many-YEH2DQL6.js.map → update-many-LU3SCNK5.js.map} +1 -1
  397. package/dist/cli-bundle/chunks/{update-many-MUTIOAP3.js → update-many-VW5DGF3S.js} +34 -35
  398. package/dist/cli-bundle/chunks/{update-many-MUTIOAP3.js.map → update-many-VW5DGF3S.js.map} +1 -1
  399. package/dist/cli-bundle/chunks/{upgrade-HYJ3SWWU.js → upgrade-77FRUAXN.js} +12 -8
  400. package/dist/cli-bundle/chunks/{upgrade-HYJ3SWWU.js.map → upgrade-77FRUAXN.js.map} +1 -1
  401. package/dist/cli-bundle/chunks/{upgrade-UBNLBZNR.js → upgrade-ICXY244R.js} +10 -6
  402. package/dist/cli-bundle/chunks/{upgrade-UBNLBZNR.js.map → upgrade-ICXY244R.js.map} +1 -1
  403. package/dist/cli-bundle/chunks/{validate-6QWQVCX2.js → validate-2G566PKQ.js} +37 -28
  404. package/dist/cli-bundle/chunks/validate-2G566PKQ.js.map +7 -0
  405. package/dist/cli-bundle/chunks/{validate-W5V5ZGQX.js → validate-BDPVXHHH.js} +38 -29
  406. package/dist/cli-bundle/chunks/validate-BDPVXHHH.js.map +1 -0
  407. package/dist/cli-bundle/main.js +56 -38
  408. package/dist/cli-bundle/main.js.map +2 -2
  409. package/dist/core/config/positional-value.d.ts +2 -0
  410. package/dist/core/config/positional-value.js +2 -2
  411. package/dist/core/config/positional-value.js.map +1 -1
  412. package/dist/core/extensions/activation-summary-markdown.d.ts +71 -0
  413. package/dist/core/extensions/activation-summary-markdown.js +140 -0
  414. package/dist/core/extensions/activation-summary-markdown.js.map +1 -0
  415. package/dist/core/extensions/activation-summary.d.ts +2 -0
  416. package/dist/core/extensions/activation-summary.js +3 -2
  417. package/dist/core/extensions/activation-summary.js.map +1 -1
  418. package/dist/core/extensions/capability-usage.d.ts +1 -1
  419. package/dist/core/extensions/capability-usage.js +4 -3
  420. package/dist/core/extensions/capability-usage.js.map +1 -1
  421. package/dist/core/extensions/extension-registries.js +3 -2
  422. package/dist/core/extensions/extension-registries.js.map +1 -1
  423. package/dist/core/extensions/extension-types.d.ts +21 -1
  424. package/dist/core/extensions/extension-types.js +3 -2
  425. package/dist/core/extensions/extension-types.js.map +1 -1
  426. package/dist/core/extensions/loader.d.ts +1 -2
  427. package/dist/core/extensions/loader.js +169 -103
  428. package/dist/core/extensions/loader.js.map +1 -1
  429. package/dist/core/extensions/version-compat.d.ts +107 -0
  430. package/dist/core/extensions/version-compat.js +130 -0
  431. package/dist/core/extensions/version-compat.js.map +1 -0
  432. package/dist/core/fs/fs-utils.js +27 -2
  433. package/dist/core/fs/fs-utils.js.map +1 -1
  434. package/dist/core/item/actionability.d.ts +57 -0
  435. package/dist/core/item/actionability.js +178 -0
  436. package/dist/core/item/actionability.js.map +1 -0
  437. package/dist/core/item/type-registry.js +18 -45
  438. package/dist/core/item/type-registry.js.map +1 -1
  439. package/dist/core/profile/profile-describe.d.ts +64 -0
  440. package/dist/core/profile/profile-describe.js +83 -0
  441. package/dist/core/profile/profile-describe.js.map +1 -0
  442. package/dist/core/profile/profile-lint.d.ts +53 -0
  443. package/dist/core/profile/profile-lint.js +422 -0
  444. package/dist/core/profile/profile-lint.js.map +1 -0
  445. package/dist/core/profile/profile-plan.d.ts +145 -0
  446. package/dist/core/profile/profile-plan.js +0 -0
  447. package/dist/core/profile/profile-plan.js.map +1 -0
  448. package/dist/core/profile/profile-presets.d.ts +218 -0
  449. package/dist/core/profile/profile-presets.js +325 -0
  450. package/dist/core/profile/profile-presets.js.map +1 -0
  451. package/dist/core/schema/fields-file.js +25 -25
  452. package/dist/core/schema/fields-file.js.map +1 -1
  453. package/dist/core/schema/item-types-file.js +3 -3
  454. package/dist/core/schema/item-types-file.js.map +1 -1
  455. package/dist/core/schema/runtime-schema.js +4 -4
  456. package/dist/core/schema/runtime-schema.js.map +1 -1
  457. package/dist/core/schema/status-defs-file.js +3 -3
  458. package/dist/core/schema/status-defs-file.js.map +1 -1
  459. package/dist/core/shared/serialization.js +83 -62
  460. package/dist/core/shared/serialization.js.map +1 -1
  461. package/dist/core/store/item-store.d.ts +1 -0
  462. package/dist/core/store/item-store.js +16 -8
  463. package/dist/core/store/item-store.js.map +1 -1
  464. package/dist/core/store/paths.js +4 -32
  465. package/dist/core/store/paths.js.map +1 -1
  466. package/dist/core/store/settings.js +14 -14
  467. package/dist/core/store/settings.js.map +1 -1
  468. package/dist/core/telemetry/observability.js +50 -54
  469. package/dist/core/telemetry/observability.js.map +1 -1
  470. package/dist/core/telemetry/runtime.js +11 -2
  471. package/dist/core/telemetry/runtime.js.map +1 -1
  472. package/dist/core/test/background-runs.js +3 -2
  473. package/dist/core/test/background-runs.js.map +1 -1
  474. package/dist/core/validate/linked-artifact-reference.d.ts +24 -0
  475. package/dist/core/validate/linked-artifact-reference.js +41 -0
  476. package/dist/core/validate/linked-artifact-reference.js.map +1 -0
  477. package/dist/mcp/server.js +183 -83
  478. package/dist/mcp/server.js.map +1 -1
  479. package/dist/mcp/tool-definitions.js +33 -2
  480. package/dist/mcp/tool-definitions.js.map +1 -1
  481. package/dist/sdk/cli-contracts/commander-types.d.ts +1 -0
  482. package/dist/sdk/cli-contracts/commander-types.js +15 -2
  483. package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
  484. package/dist/sdk/cli-contracts/enum-contracts.d.ts +3 -3
  485. package/dist/sdk/cli-contracts/enum-contracts.js +6 -2
  486. package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
  487. package/dist/sdk/cli-contracts/flag-contracts.d.ts +149 -0
  488. package/dist/sdk/cli-contracts/flag-contracts.js +1583 -0
  489. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -0
  490. package/dist/sdk/cli-contracts/string-lists.d.ts +14 -0
  491. package/dist/sdk/cli-contracts/string-lists.js +20 -0
  492. package/dist/sdk/cli-contracts/string-lists.js.map +1 -0
  493. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +1 -1
  494. package/dist/sdk/cli-contracts/tool-option-contracts.js +51 -109
  495. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  496. package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +17 -0
  497. package/dist/sdk/cli-contracts/tool-parameter-tables.js +54 -5
  498. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  499. package/dist/sdk/cli-contracts/tool-schema.d.ts +74 -0
  500. package/dist/sdk/cli-contracts/tool-schema.js +840 -0
  501. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -0
  502. package/dist/sdk/cli-contracts.d.ts +13 -193
  503. package/dist/sdk/cli-contracts.js +5 -2277
  504. package/dist/sdk/cli-contracts.js.map +1 -1
  505. package/dist/sdk/compose.d.ts +346 -4
  506. package/dist/sdk/compose.js +486 -15
  507. package/dist/sdk/compose.js.map +1 -1
  508. package/dist/sdk/define.d.ts +29 -14
  509. package/dist/sdk/define.js +21 -7
  510. package/dist/sdk/define.js.map +1 -1
  511. package/dist/sdk/index.d.ts +14 -3
  512. package/dist/sdk/index.js +14 -3
  513. package/dist/sdk/index.js.map +1 -1
  514. package/dist/sdk/testing.d.ts +156 -3
  515. package/dist/sdk/testing.js +172 -4
  516. package/dist/sdk/testing.js.map +1 -1
  517. package/docs/AGENT_GUIDE.md +2 -0
  518. package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
  519. package/docs/COMMANDS.md +37 -0
  520. package/docs/EXTENSIONS.md +20 -20
  521. package/docs/RELEASING.md +6 -1
  522. package/docs/SDK.md +387 -20
  523. package/docs/TESTING.md +12 -0
  524. package/docs/examples/policy-restricted-extension/README.md +6 -0
  525. package/docs/examples/policy-restricted-extension/index.ts +40 -0
  526. package/docs/examples/policy-restricted-extension/manifest.json +2 -2
  527. package/docs/examples/starter-extension/README.md +14 -2
  528. package/docs/examples/starter-extension/{index.js → index.ts} +51 -6
  529. package/docs/examples/starter-extension/manifest.json +2 -2
  530. package/package.json +20 -7
  531. package/packages/pm-beads/extensions/beads/index.ts +3 -3
  532. package/packages/pm-beads/extensions/beads/manifest.json +2 -2
  533. package/packages/pm-beads/extensions/beads/runtime-loader.ts +19 -7
  534. package/packages/pm-beads/extensions/beads/runtime.ts +155 -37
  535. package/packages/pm-calendar/extensions/calendar/index.ts +3 -3
  536. package/packages/pm-calendar/extensions/calendar/manifest.json +2 -2
  537. package/packages/pm-calendar/extensions/calendar/runtime.ts +2 -2
  538. package/packages/pm-command-kit/extensions/command-kit/index.ts +1 -1
  539. package/packages/pm-command-kit/extensions/command-kit/manifest.json +2 -2
  540. package/packages/pm-governance-audit/extensions/governance-audit/index.ts +2 -2
  541. package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +2 -2
  542. package/packages/pm-governance-audit/extensions/governance-audit/runtime.ts +1 -1
  543. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +2 -2
  544. package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +2 -2
  545. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +1 -1
  546. package/packages/pm-kanban/README.md +97 -0
  547. package/packages/pm-kanban/extensions/kanban/index.ts +191 -0
  548. package/packages/pm-kanban/extensions/kanban/manifest.json +19 -0
  549. package/packages/pm-kanban/package.json +57 -0
  550. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.ts +1 -1
  551. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +2 -2
  552. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +2 -2
  553. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +2 -2
  554. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.ts +1 -1
  555. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -2
  556. package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +2 -2
  557. package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +1 -1
  558. package/packages/pm-templates/extensions/templates/index.ts +2 -2
  559. package/packages/pm-templates/extensions/templates/manifest.json +2 -2
  560. package/packages/pm-templates/extensions/templates/runtime.ts +1 -1
  561. package/packages/pm-todos/extensions/todos/index.ts +3 -3
  562. package/packages/pm-todos/extensions/todos/manifest.json +2 -2
  563. package/packages/pm-todos/extensions/todos/runtime-loader.ts +19 -7
  564. package/packages/pm-todos/extensions/todos/runtime.ts +177 -43
  565. package/plugins/pm-claude/scripts/pm-mcp-server.mjs +2 -2
  566. package/plugins/pm-codex/scripts/pm-mcp-server.mjs +2 -2
  567. package/scripts/bundle-cli.mjs +1 -1
  568. package/dist/cli-bundle/chunks/activity-XUZ2AHCW.js +0 -18
  569. package/dist/cli-bundle/chunks/aggregate-EGJLZQBI.js.map +0 -7
  570. package/dist/cli-bundle/chunks/aggregate-R725FC3S.js.map +0 -1
  571. package/dist/cli-bundle/chunks/chunk-2BFPAUAF.js.map +0 -1
  572. package/dist/cli-bundle/chunks/chunk-46G6RSB6.js.map +0 -1
  573. package/dist/cli-bundle/chunks/chunk-55ISXAQH.js.map +0 -7
  574. package/dist/cli-bundle/chunks/chunk-5UVVASSA.js.map +0 -1
  575. package/dist/cli-bundle/chunks/chunk-7MRQ4HMK.js +0 -78
  576. package/dist/cli-bundle/chunks/chunk-7MRQ4HMK.js.map +0 -7
  577. package/dist/cli-bundle/chunks/chunk-7SV63ZHD.js.map +0 -1
  578. package/dist/cli-bundle/chunks/chunk-AONIHR2C.js.map +0 -7
  579. package/dist/cli-bundle/chunks/chunk-C5AOG6D2.js +0 -691
  580. package/dist/cli-bundle/chunks/chunk-C5AOG6D2.js.map +0 -1
  581. package/dist/cli-bundle/chunks/chunk-CE5P2NQR.js.map +0 -1
  582. package/dist/cli-bundle/chunks/chunk-CKGNPJAG.js.map +0 -7
  583. package/dist/cli-bundle/chunks/chunk-G6PYHBBR.js.map +0 -7
  584. package/dist/cli-bundle/chunks/chunk-GAJVRGGA.js.map +0 -1
  585. package/dist/cli-bundle/chunks/chunk-HFFUQR73.js.map +0 -7
  586. package/dist/cli-bundle/chunks/chunk-IPKJ6B36.js.map +0 -7
  587. package/dist/cli-bundle/chunks/chunk-JR2LV3M4.js.map +0 -7
  588. package/dist/cli-bundle/chunks/chunk-KFWBJPSG.js.map +0 -1
  589. package/dist/cli-bundle/chunks/chunk-KQMUV6LX.js.map +0 -1
  590. package/dist/cli-bundle/chunks/chunk-MJTINN54.js.map +0 -7
  591. package/dist/cli-bundle/chunks/chunk-MJTSZKK5.js.map +0 -7
  592. package/dist/cli-bundle/chunks/chunk-MVKFOLLM.js +0 -694
  593. package/dist/cli-bundle/chunks/chunk-MVKFOLLM.js.map +0 -7
  594. package/dist/cli-bundle/chunks/chunk-QH3PJYON.js.map +0 -1
  595. package/dist/cli-bundle/chunks/chunk-QL5RVYOA.js.map +0 -7
  596. package/dist/cli-bundle/chunks/chunk-S26C36QC.js +0 -83
  597. package/dist/cli-bundle/chunks/chunk-S26C36QC.js.map +0 -1
  598. package/dist/cli-bundle/chunks/chunk-S2RUQSX2.js +0 -75
  599. package/dist/cli-bundle/chunks/chunk-S2RUQSX2.js.map +0 -1
  600. package/dist/cli-bundle/chunks/chunk-SKH7OGE5.js +0 -86
  601. package/dist/cli-bundle/chunks/chunk-SKH7OGE5.js.map +0 -7
  602. package/dist/cli-bundle/chunks/chunk-SKN7LC5W.js.map +0 -7
  603. package/dist/cli-bundle/chunks/chunk-SR3EKWZG.js.map +0 -7
  604. package/dist/cli-bundle/chunks/chunk-UELRKQQU.js.map +0 -1
  605. package/dist/cli-bundle/chunks/chunk-VFAQ4LMN.js.map +0 -7
  606. package/dist/cli-bundle/chunks/chunk-Y4SUQQYH.js.map +0 -1
  607. package/dist/cli-bundle/chunks/chunk-YDEXO24S.js +0 -654
  608. package/dist/cli-bundle/chunks/chunk-YDEXO24S.js.map +0 -1
  609. package/dist/cli-bundle/chunks/chunk-YJ3SUEPD.js +0 -657
  610. package/dist/cli-bundle/chunks/chunk-YJ3SUEPD.js.map +0 -7
  611. package/dist/cli-bundle/chunks/chunk-YUDJD3XO.js.map +0 -1
  612. package/dist/cli-bundle/chunks/chunk-ZRK4O56R.js.map +0 -1
  613. package/dist/cli-bundle/chunks/close-A3EMKBBY.js +0 -15
  614. package/dist/cli-bundle/chunks/config-D3OKQO52.js.map +0 -7
  615. package/dist/cli-bundle/chunks/config-MMJA4LLK.js.map +0 -1
  616. package/dist/cli-bundle/chunks/context-BLBD3PUB.js.map +0 -7
  617. package/dist/cli-bundle/chunks/context-DHLVPXN3.js.map +0 -1
  618. package/dist/cli-bundle/chunks/contracts-C3SZCXXG.js.map +0 -7
  619. package/dist/cli-bundle/chunks/contracts-XGVMMPC5.js.map +0 -1
  620. package/dist/cli-bundle/chunks/create-QVGFYA2X.js +0 -30
  621. package/dist/cli-bundle/chunks/history-AK3E5Z3C.js +0 -20
  622. package/dist/cli-bundle/chunks/history-redact-TWIYQV5J.js +0 -21
  623. package/dist/cli-bundle/chunks/init-RCRKW5PL.js +0 -21
  624. package/dist/cli-bundle/chunks/register-list-query-DDCHPONM.js.map +0 -7
  625. package/dist/cli-bundle/chunks/register-list-query-YNPBVIKM.js.map +0 -1
  626. package/dist/cli-bundle/chunks/register-mutation-7ALWDDAX.js.map +0 -1
  627. package/dist/cli-bundle/chunks/register-mutation-LAVKYY63.js.map +0 -7
  628. package/dist/cli-bundle/chunks/register-setup-KBXQDCXE.js.map +0 -7
  629. package/dist/cli-bundle/chunks/register-setup-RCRUHMSZ.js.map +0 -1
  630. package/dist/cli-bundle/chunks/restore-2ZKT6UDC.js +0 -19
  631. package/dist/cli-bundle/chunks/schema-MNTAVQCY.js.map +0 -1
  632. package/dist/cli-bundle/chunks/schema-RBTJ2YXW.js.map +0 -7
  633. package/dist/cli-bundle/chunks/stats-FS742AMA.js.map +0 -1
  634. package/dist/cli-bundle/chunks/stats-R5OAJVZK.js.map +0 -7
  635. package/dist/cli-bundle/chunks/test-QJXLKV26.js +0 -36
  636. package/dist/cli-bundle/chunks/test-runs-C6CFIVOS.js.map +0 -1
  637. package/dist/cli-bundle/chunks/test-runs-IAJDL6CA.js.map +0 -7
  638. package/dist/cli-bundle/chunks/update-2XCQNOD6.js +0 -28
  639. package/dist/cli-bundle/chunks/update-IWUCXVH2.js +0 -24
  640. package/dist/cli-bundle/chunks/validate-6QWQVCX2.js.map +0 -7
  641. package/dist/cli-bundle/chunks/validate-W5V5ZGQX.js.map +0 -1
  642. package/docs/examples/policy-restricted-extension/index.js +0 -21
  643. package/packages/pm-beads/extensions/beads/index.js +0 -64
  644. package/packages/pm-beads/extensions/beads/runtime-loader.js +0 -86
  645. package/packages/pm-beads/extensions/beads/runtime.js +0 -482
  646. package/packages/pm-calendar/extensions/calendar/index.js +0 -150
  647. package/packages/pm-calendar/extensions/calendar/runtime.js +0 -126
  648. package/packages/pm-command-kit/extensions/command-kit/index.js +0 -181
  649. package/packages/pm-governance-audit/extensions/governance-audit/index.js +0 -177
  650. package/packages/pm-governance-audit/extensions/governance-audit/runtime.js +0 -153
  651. package/packages/pm-guide-shell/extensions/guide-shell/index.js +0 -98
  652. package/packages/pm-guide-shell/extensions/guide-shell/runtime.js +0 -294
  653. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.js +0 -18
  654. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.js +0 -124
  655. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.js +0 -110
  656. package/packages/pm-search-advanced/extensions/search-advanced/index.js +0 -258
  657. package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +0 -361
  658. package/packages/pm-templates/extensions/templates/index.js +0 -132
  659. package/packages/pm-templates/extensions/templates/runtime.js +0 -35
  660. package/packages/pm-todos/extensions/todos/index.js +0 -81
  661. package/packages/pm-todos/extensions/todos/runtime-loader.js +0 -86
  662. package/packages/pm-todos/extensions/todos/runtime.js +0 -545
  663. /package/dist/cli-bundle/chunks/{activity-XUZ2AHCW.js.map → activity-EJBMXUBH.js.map} +0 -0
  664. /package/dist/cli-bundle/chunks/{activity-H2LMOSSW.js.map → activity-MVSEND6D.js.map} +0 -0
  665. /package/dist/cli-bundle/chunks/{chunk-IB3GYLQE.js.map → chunk-3JWQCLR5.js.map} +0 -0
  666. /package/dist/cli-bundle/chunks/{chunk-2A34E3BA.js.map → chunk-4TXTVZL3.js.map} +0 -0
  667. /package/dist/cli-bundle/chunks/{chunk-G6N5VEOK.js.map → chunk-4YIMPANT.js.map} +0 -0
  668. /package/dist/cli-bundle/chunks/{chunk-7XGQXHFB.js.map → chunk-73PTKMAE.js.map} +0 -0
  669. /package/dist/cli-bundle/chunks/{chunk-3VY3YQO6.js.map → chunk-7RIJGN4R.js.map} +0 -0
  670. /package/dist/cli-bundle/chunks/{chunk-FXR67XVQ.js.map → chunk-BN3CWK6G.js.map} +0 -0
  671. /package/dist/cli-bundle/chunks/{chunk-4BHT5VDC.js.map → chunk-C2KCIZKZ.js.map} +0 -0
  672. /package/dist/cli-bundle/chunks/{chunk-O6LLO73I.js.map → chunk-CHRNYKNI.js.map} +0 -0
  673. /package/dist/cli-bundle/chunks/{chunk-ZQ3ZVXX2.js.map → chunk-D6USKAMA.js.map} +0 -0
  674. /package/dist/cli-bundle/chunks/{chunk-WZQWHN4R.js.map → chunk-DLDCPF5X.js.map} +0 -0
  675. /package/dist/cli-bundle/chunks/{chunk-UVC5LOR7.js.map → chunk-E2Q2ULMR.js.map} +0 -0
  676. /package/dist/cli-bundle/chunks/{chunk-5VOINNKT.js.map → chunk-F6VH3LFC.js.map} +0 -0
  677. /package/dist/cli-bundle/chunks/{chunk-H4IIJDE4.js.map → chunk-FDEVKXC4.js.map} +0 -0
  678. /package/dist/cli-bundle/chunks/{chunk-34EONI5F.js.map → chunk-HUYYMTGW.js.map} +0 -0
  679. /package/dist/cli-bundle/chunks/{chunk-CIIK67GW.js.map → chunk-IHXXUIXS.js.map} +0 -0
  680. /package/dist/cli-bundle/chunks/{chunk-SBQTAVJZ.js.map → chunk-JIP67N2K.js.map} +0 -0
  681. /package/dist/cli-bundle/chunks/{chunk-2T3JG6V4.js.map → chunk-KRASIL6M.js.map} +0 -0
  682. /package/dist/cli-bundle/chunks/{chunk-P77P2ILI.js.map → chunk-MLHX6DN5.js.map} +0 -0
  683. /package/dist/cli-bundle/chunks/{chunk-2CKH2LMV.js.map → chunk-OB3RJV5F.js.map} +0 -0
  684. /package/dist/cli-bundle/chunks/{chunk-FIGAZ4Y7.js.map → chunk-OUQ5JEFM.js.map} +0 -0
  685. /package/dist/cli-bundle/chunks/{chunk-NK3UPBVG.js.map → chunk-QE5UFCCO.js.map} +0 -0
  686. /package/dist/cli-bundle/chunks/{chunk-WM5ZVBPE.js.map → chunk-SJZTPVFT.js.map} +0 -0
  687. /package/dist/cli-bundle/chunks/{chunk-VAYA4XFX.js.map → chunk-V3KLX7U7.js.map} +0 -0
  688. /package/dist/cli-bundle/chunks/{chunk-2RDVQEWV.js.map → chunk-Z5BM2FKQ.js.map} +0 -0
  689. /package/dist/cli-bundle/chunks/{chunk-66MEDTUD.js.map → chunk-ZEATCVAC.js.map} +0 -0
  690. /package/dist/cli-bundle/chunks/{chunk-NCVCO3NZ.js.map → chunk-ZFIEEDTJ.js.map} +0 -0
  691. /package/dist/cli-bundle/chunks/{close-A3EMKBBY.js.map → close-37KEHLYM.js.map} +0 -0
  692. /package/dist/cli-bundle/chunks/{close-W56IOGYG.js.map → close-OP3LK7Z2.js.map} +0 -0
  693. /package/dist/cli-bundle/chunks/{create-QVGFYA2X.js.map → context-7ZEZV3BV.js.map} +0 -0
  694. /package/dist/cli-bundle/chunks/{create-IXY43O4H.js.map → context-XDI4DKKT.js.map} +0 -0
  695. /package/dist/cli-bundle/chunks/{extension-UTTQDUYI.js.map → create-DFMNBKBS.js.map} +0 -0
  696. /package/dist/cli-bundle/chunks/{extension-KCPUWSY2.js.map → create-J5Q2ELZT.js.map} +0 -0
  697. /package/dist/cli-bundle/chunks/{history-AJTXLT6S.js.map → extension-3LRYX7SW.js.map} +0 -0
  698. /package/dist/cli-bundle/chunks/{history-AK3E5Z3C.js.map → extension-GMVOIP4O.js.map} +0 -0
  699. /package/dist/cli-bundle/chunks/{gc-O5GUO3SU.js.map → gc-FULIVYR4.js.map} +0 -0
  700. /package/dist/cli-bundle/chunks/{gc-PYVVEELM.js.map → gc-MDGRR2SU.js.map} +0 -0
  701. /package/dist/cli-bundle/chunks/{history-redact-TWIYQV5J.js.map → history-5XUSLAJA.js.map} +0 -0
  702. /package/dist/cli-bundle/chunks/{history-redact-KUUUVUFM.js.map → history-X4OSES6K.js.map} +0 -0
  703. /package/dist/cli-bundle/chunks/{init-BNLVFPRG.js.map → history-redact-45YW65BK.js.map} +0 -0
  704. /package/dist/cli-bundle/chunks/{init-RCRKW5PL.js.map → history-redact-BVHWDXPR.js.map} +0 -0
  705. /package/dist/cli-bundle/chunks/{list-32U7BSKE.js.map → init-KO7CGIRQ.js.map} +0 -0
  706. /package/dist/cli-bundle/chunks/{list-ZEEOHLTQ.js.map → init-TRYJELH4.js.map} +0 -0
  707. /package/dist/cli-bundle/chunks/{restore-6K53WOWO.js.map → list-ROT7JF62.js.map} +0 -0
  708. /package/dist/cli-bundle/chunks/{restore-2ZKT6UDC.js.map → list-Y6AU5BJS.js.map} +0 -0
  709. /package/dist/cli-bundle/chunks/{search-6HOIVZDU.js.map → restore-DKMCLPI5.js.map} +0 -0
  710. /package/dist/cli-bundle/chunks/{search-ZWYEMASC.js.map → restore-IRAKSWIW.js.map} +0 -0
  711. /package/dist/cli-bundle/chunks/{test-NZF7OT2F.js.map → schema-OLT6LVKH.js.map} +0 -0
  712. /package/dist/cli-bundle/chunks/{test-QJXLKV26.js.map → schema-XJXKJQF5.js.map} +0 -0
  713. /package/dist/cli-bundle/chunks/{update-2XCQNOD6.js.map → search-CX5UMV4H.js.map} +0 -0
  714. /package/dist/cli-bundle/chunks/{update-IWUCXVH2.js.map → search-KP6H7COV.js.map} +0 -0
  715. /package/dist/cli-bundle/chunks/{telemetry-7DIGDQUO.js.map → telemetry-DIFPXCAT.js.map} +0 -0
  716. /package/dist/cli-bundle/chunks/{telemetry-FWEXSJLQ.js.map → telemetry-WTYFUPRL.js.map} +0 -0
@@ -5,10 +5,11 @@ import crypto from "node:crypto";
5
5
  !(function() {
6
6
  try {
7
7
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
8
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "4ddafbee-315f-5aa0-b08f-d4d7a82cfe8d");
8
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "4ba3885b-85fc-5941-bf52-6c70b2bb5c2a");
9
9
  } catch (e2) {
10
10
  }
11
11
  })();
12
+ var WINDOWS_RENAME_RETRY_DELAYS_MS = [10, 25, 50, 100];
12
13
  async function ensureDir(dirPath) {
13
14
  await fs.mkdir(dirPath, { recursive: true });
14
15
  }
@@ -38,6 +39,26 @@ async function writeFileAtomic(targetPath, contents) {
38
39
  try {
39
40
  await fs.rename(tempPath, targetPath);
40
41
  } catch (error) {
42
+ if (process.platform === "win32" && (isErrno(error, "EPERM") || isErrno(error, "EBUSY"))) {
43
+ let lastError = error;
44
+ for (const delayMs of WINDOWS_RENAME_RETRY_DELAYS_MS) {
45
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
46
+ try {
47
+ await fs.rename(tempPath, targetPath);
48
+ return;
49
+ } catch (retryError) {
50
+ lastError = retryError;
51
+ if (!isErrno(retryError, "EPERM") && !isErrno(retryError, "EBUSY")) {
52
+ break;
53
+ }
54
+ }
55
+ }
56
+ try {
57
+ await fs.unlink(tempPath);
58
+ } catch {
59
+ }
60
+ throw lastError;
61
+ }
41
62
  if (isErrno(error, "EXDEV")) {
42
63
  try {
43
64
  await fs.copyFile(tempPath, targetPath);
@@ -156,7 +177,7 @@ function resolvePmCliVersion(metaUrl, fallbackRelativeSegments = []) {
156
177
  !(function() {
157
178
  try {
158
179
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
159
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "a8e01f7b-34b8-58a6-b894-3fcb8bad7d73");
180
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "add4a412-10a4-5c04-b3a2-998cc74fdd38");
160
181
  } catch (e2) {
161
182
  }
162
183
  })();
@@ -197,6 +218,7 @@ var KNOWN_EXTENSION_POLICY_SURFACES = [
197
218
  "schema.itemfields",
198
219
  "schema.itemtypes",
199
220
  "schema.migrations",
221
+ "schema.profiles",
200
222
  "parser.override",
201
223
  "preflight.override",
202
224
  "services.override",
@@ -542,103 +564,921 @@ var SETTINGS_DEFAULTS = {
542
564
  model: "",
543
565
  top_k: 20
544
566
  }
545
- },
546
- providers: {
547
- openai: {
548
- base_url: "",
549
- api_key: "",
550
- model: ""
551
- },
552
- ollama: {
553
- base_url: "",
554
- model: ""
567
+ },
568
+ providers: {
569
+ openai: {
570
+ base_url: "",
571
+ api_key: "",
572
+ model: ""
573
+ },
574
+ ollama: {
575
+ base_url: "",
576
+ model: ""
577
+ }
578
+ },
579
+ context: {
580
+ default_depth: "brief",
581
+ activity_limit: 10,
582
+ stale_threshold_days: 7,
583
+ sections: {
584
+ hierarchy: true,
585
+ activity: true,
586
+ progress: true,
587
+ recently_created: true,
588
+ unparented: true,
589
+ blockers: true,
590
+ files: true,
591
+ workload: true,
592
+ staleness: true,
593
+ tests: true
594
+ }
595
+ },
596
+ vector_store: {
597
+ adapter: "",
598
+ collection_name: "pm_items",
599
+ qdrant: {
600
+ url: "",
601
+ api_key: ""
602
+ },
603
+ lancedb: {
604
+ path: ""
605
+ }
606
+ }
607
+ };
608
+ var EMPTY_CANONICAL_DOCUMENT = {
609
+ metadata: {},
610
+ body: ""
611
+ };
612
+ var EXIT_CODE = {
613
+ SUCCESS: 0,
614
+ GENERIC_FAILURE: 1,
615
+ USAGE: 2,
616
+ NOT_FOUND: 3,
617
+ CONFLICT: 4,
618
+ DEPENDENCY_FAILED: 5
619
+ };
620
+ var TELEMETRY_ERROR_CATEGORY_BY_CODE = Object.freeze({
621
+ unknown_command: "usage",
622
+ unknown_option: "usage",
623
+ missing_required_option: "usage",
624
+ missing_required_argument: "usage",
625
+ invalid_command_usage: "usage",
626
+ linked_test_value_not_quoted: "usage",
627
+ invalid_argument_value: "validation",
628
+ health_findings: "validation",
629
+ validation_findings: "validation",
630
+ close_through_update: "validation",
631
+ no_update_fields: "validation",
632
+ unsupported_update_option: "validation",
633
+ tracker_not_initialized: "validation",
634
+ item_not_found: "validation",
635
+ ownership_conflict: "conflict",
636
+ lock_conflict: "conflict",
637
+ terminal_state_conflict: "conflict",
638
+ dependency_failed: "runtime",
639
+ command_failed: "runtime",
640
+ unknown_error: "runtime"
641
+ });
642
+ function resolveTelemetryErrorCategory(errorCode) {
643
+ const normalized = (errorCode ?? "").trim().toLowerCase();
644
+ if (normalized.length === 0) {
645
+ return "unknown";
646
+ }
647
+ const explicit = TELEMETRY_ERROR_CATEGORY_BY_CODE[normalized];
648
+ if (typeof explicit === "string") {
649
+ return explicit;
650
+ }
651
+ if (normalized.includes("conflict") || normalized.includes("locked")) {
652
+ return "conflict";
653
+ }
654
+ if (normalized.startsWith("unknown_") || normalized.startsWith("missing_required_")) {
655
+ return "usage";
656
+ }
657
+ if (normalized.startsWith("invalid_") || normalized.endsWith("_not_found") || normalized.includes("validation")) {
658
+ return "validation";
659
+ }
660
+ if (normalized.endsWith("_error") || normalized.endsWith("_failed")) {
661
+ return "runtime";
662
+ }
663
+ return "unknown";
664
+ }
665
+
666
+ // dist/types.js
667
+ !(function() {
668
+ try {
669
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
670
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "46812059-b93e-5599-a222-4ac0de6f4911");
671
+ } catch (e2) {
672
+ }
673
+ })();
674
+ var BUILTIN_ITEM_TYPE_VALUES = [
675
+ "Epic",
676
+ "Feature",
677
+ "Task",
678
+ "Chore",
679
+ "Issue",
680
+ "Decision",
681
+ "Event",
682
+ "Reminder",
683
+ "Milestone",
684
+ "Meeting",
685
+ "Plan"
686
+ ];
687
+ var ITEM_TYPE_VALUES = BUILTIN_ITEM_TYPE_VALUES;
688
+ var STATUS_VALUES = [
689
+ "draft",
690
+ "open",
691
+ "in_progress",
692
+ "blocked",
693
+ "closed",
694
+ "canceled"
695
+ ];
696
+ var RUNTIME_STATUS_ROLE_VALUES = [
697
+ "draft",
698
+ "active",
699
+ "blocked",
700
+ "terminal",
701
+ "terminal_done",
702
+ "terminal_canceled",
703
+ "default_open",
704
+ "default_close",
705
+ "default_cancel"
706
+ ];
707
+ var RUNTIME_FIELD_TYPE_VALUES = ["string", "number", "boolean", "string_array"];
708
+ var RUNTIME_FIELD_COMMAND_VALUES = ["create", "update", "update_many", "list", "search", "calendar", "context"];
709
+ var RUNTIME_UNKNOWN_FIELD_POLICY_VALUES = ["allow", "warn", "reject"];
710
+ var DEPENDENCY_KIND_VALUES = [
711
+ "blocks",
712
+ "parent",
713
+ "child",
714
+ "parent_child",
715
+ "child_of",
716
+ "related",
717
+ "related_to",
718
+ "discovered_from",
719
+ "blocked_by",
720
+ "incident_from",
721
+ "epic",
722
+ "supersedes",
723
+ "task"
724
+ ];
725
+ var SCOPE_VALUES = ["project", "global"];
726
+ var RISK_VALUES = ["low", "medium", "high", "critical"];
727
+ var ISSUE_SEVERITY_VALUES = ["low", "medium", "high", "critical"];
728
+ var CONFIDENCE_TEXT_VALUES = ["low", "medium", "high"];
729
+ var GOVERNANCE_PRESET_VALUES = ["minimal", "default", "strict", "custom"];
730
+ var RECURRENCE_FREQUENCY_VALUES = ["daily", "weekly", "monthly", "yearly"];
731
+ var RECURRENCE_WEEKDAY_VALUES = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"];
732
+ function weekdayOrderIndex(value) {
733
+ return RECURRENCE_WEEKDAY_VALUES.indexOf(value);
734
+ }
735
+ var PLAN_MODE_VALUES = [
736
+ "draft",
737
+ "research",
738
+ "review",
739
+ "approved",
740
+ "executing",
741
+ "paused",
742
+ "completed",
743
+ "superseded"
744
+ ];
745
+ var PLAN_STEP_STATUS_VALUES = [
746
+ "pending",
747
+ "in_progress",
748
+ "completed",
749
+ "blocked",
750
+ "skipped",
751
+ "superseded"
752
+ ];
753
+ var PLAN_HARNESS_VALUES = ["codex", "claude-code", "cursor", "generic"];
754
+ var PLAN_STEP_LINK_KIND_VALUES = [
755
+ "related",
756
+ "blocks",
757
+ "blocked_by",
758
+ "depends_on",
759
+ "discovered_from",
760
+ "implements",
761
+ "verifies",
762
+ "supersedes"
763
+ ];
764
+ var CONTEXT_DEPTH_VALUES = ["brief", "standard", "deep", "full"];
765
+ var CONTEXT_SECTION_VALUES = [
766
+ "hierarchy",
767
+ "activity",
768
+ "progress",
769
+ "recently_created",
770
+ "unparented",
771
+ "blockers",
772
+ "files",
773
+ "workload",
774
+ "staleness",
775
+ "tests"
776
+ ];
777
+
778
+ // dist/types/index.js
779
+ !(function() {
780
+ try {
781
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
782
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "c57bc662-d60a-54b1-b2da-a7d9d7fde67a");
783
+ } catch (e2) {
784
+ }
785
+ })();
786
+
787
+ // dist/core/item/item-type-definition.js
788
+ !(function() {
789
+ try {
790
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
791
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "257435ee-2ef3-5736-a403-57d6265cf280");
792
+ } catch (e2) {
793
+ }
794
+ })();
795
+ function normalizeItemTypeStringList(values) {
796
+ return [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
797
+ }
798
+ function normalizeItemTypeOption(option) {
799
+ const key = option.key.trim();
800
+ if (key.length === 0) {
801
+ return null;
802
+ }
803
+ const aliases = normalizeItemTypeStringList(option.aliases);
804
+ const description = option.description?.trim();
805
+ return {
806
+ key,
807
+ values: normalizeItemTypeStringList(option.values),
808
+ required: option.required === true ? true : void 0,
809
+ aliases: aliases.length > 0 ? aliases : void 0,
810
+ description: description && description.length > 0 ? description : void 0
811
+ };
812
+ }
813
+ var keepPolicyCommand = (command) => command;
814
+ var strictPolicyCommand = (command) => {
815
+ const normalized = command.trim().toLowerCase();
816
+ return normalized === "create" || normalized === "update" ? normalized : null;
817
+ };
818
+ function normalizeItemTypeCommandOptionPolicy(policy, resolvePolicyCommand) {
819
+ const command = resolvePolicyCommand(policy.command);
820
+ if (command === null) {
821
+ return null;
822
+ }
823
+ const option = policy.option.trim();
824
+ if (option.length === 0) {
825
+ return null;
826
+ }
827
+ return {
828
+ command,
829
+ option,
830
+ required: policy.required,
831
+ visible: policy.visible,
832
+ enabled: policy.enabled
833
+ };
834
+ }
835
+ function normalizeItemTypeCommandOptionPolicies(policies, resolvePolicyCommand) {
836
+ const dedupedByKey = /* @__PURE__ */ new Map();
837
+ for (const policy of policies ?? []) {
838
+ const normalized = normalizeItemTypeCommandOptionPolicy(policy, resolvePolicyCommand);
839
+ if (!normalized) {
840
+ continue;
841
+ }
842
+ dedupedByKey.set(`${normalized.command}:${normalized.option.toLowerCase()}`, normalized);
843
+ }
844
+ return [...dedupedByKey.values()].sort((left, right) => left.command === right.command ? left.option.localeCompare(right.option) : left.command.localeCompare(right.command));
845
+ }
846
+ function normalizeItemTypeDefinition(definition, options = {}) {
847
+ const resolvePolicyCommand = options.resolvePolicyCommand ?? keepPolicyCommand;
848
+ const name = definition.name.trim();
849
+ if (name.length === 0) {
850
+ return null;
851
+ }
852
+ const hasRequiredCreateFields = definition.required_create_fields !== void 0;
853
+ const hasRequiredCreateRepeatables = definition.required_create_repeatables !== void 0;
854
+ const hasOptions = definition.options !== void 0;
855
+ const hasCommandOptionPolicies = definition.command_option_policies !== void 0;
856
+ const folder = definition.folder?.trim();
857
+ const description = definition.description?.trim();
858
+ const defaultStatus = definition.default_status?.trim();
859
+ const aliases = normalizeItemTypeStringList(definition.aliases);
860
+ const normalizedOptions = (definition.options ?? []).map((option) => normalizeItemTypeOption(option)).filter((option) => option !== null).sort((left, right) => left.key.localeCompare(right.key));
861
+ const commandOptionPolicies = normalizeItemTypeCommandOptionPolicies(definition.command_option_policies, resolvePolicyCommand);
862
+ return {
863
+ name,
864
+ description: description && description.length > 0 ? description : void 0,
865
+ default_status: defaultStatus && defaultStatus.length > 0 ? defaultStatus : void 0,
866
+ folder: folder && folder.length > 0 ? folder : void 0,
867
+ aliases: aliases.length > 0 ? aliases : void 0,
868
+ required_create_fields: hasRequiredCreateFields ? normalizeItemTypeStringList(definition.required_create_fields) : void 0,
869
+ required_create_repeatables: hasRequiredCreateRepeatables ? normalizeItemTypeStringList(definition.required_create_repeatables) : void 0,
870
+ options: hasOptions ? normalizedOptions : void 0,
871
+ command_option_policies: hasCommandOptionPolicies ? commandOptionPolicies : void 0
872
+ };
873
+ }
874
+
875
+ // dist/core/item/type-registry.js
876
+ !(function() {
877
+ try {
878
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
879
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "aca609de-d881-5f34-804f-ed3daa6aab2a");
880
+ } catch (e2) {
881
+ }
882
+ })();
883
+ var DEFAULT_REQUIRED_CREATE_FIELDS = [
884
+ "title",
885
+ "description",
886
+ "status",
887
+ "priority",
888
+ "tags",
889
+ "body",
890
+ "deadline",
891
+ "estimatedMinutes",
892
+ "acceptanceCriteria",
893
+ "author",
894
+ "message",
895
+ "assignee"
896
+ ];
897
+ var DEFAULT_REQUIRED_CREATE_REPEATABLES = ["dep", "comment", "note", "learning", "file", "test", "doc"];
898
+ var COMMON_MUTATION_COMMAND_OPTION_KEYS = [
899
+ "deadline",
900
+ "estimatedMinutes",
901
+ "acceptanceCriteria",
902
+ "definitionOfReady",
903
+ "order",
904
+ "goal",
905
+ "objective",
906
+ "value",
907
+ "impact",
908
+ "outcome",
909
+ "whyNow",
910
+ "assignee",
911
+ "parent",
912
+ "reviewer",
913
+ "risk",
914
+ "confidence",
915
+ "sprint",
916
+ "release",
917
+ "blockedBy",
918
+ "blockedReason",
919
+ "unblockNote",
920
+ "reporter",
921
+ "severity",
922
+ "environment",
923
+ "reproSteps",
924
+ "resolution",
925
+ "expectedResult",
926
+ "actualResult",
927
+ "affectedVersion",
928
+ "fixedVersion",
929
+ "component",
930
+ "regression",
931
+ "customerImpact"
932
+ ];
933
+ var CREATE_COMMAND_OPTION_KEYS = [
934
+ "title",
935
+ "description",
936
+ "type",
937
+ "status",
938
+ "priority",
939
+ "tags",
940
+ "body",
941
+ ...COMMON_MUTATION_COMMAND_OPTION_KEYS,
942
+ "author",
943
+ "message",
944
+ "dep",
945
+ "comment",
946
+ "note",
947
+ "learning",
948
+ "file",
949
+ "test",
950
+ "doc",
951
+ "reminder",
952
+ "event",
953
+ "typeOption",
954
+ "field"
955
+ ];
956
+ var UPDATE_COMMAND_OPTION_KEYS = [
957
+ "title",
958
+ "description",
959
+ "body",
960
+ "status",
961
+ "closeReason",
962
+ "priority",
963
+ "type",
964
+ "tags",
965
+ ...COMMON_MUTATION_COMMAND_OPTION_KEYS,
966
+ "author",
967
+ "message",
968
+ "comment",
969
+ "note",
970
+ "learning",
971
+ "file",
972
+ "test",
973
+ "doc",
974
+ "reminder",
975
+ "event",
976
+ "typeOption",
977
+ "field",
978
+ "allowAuditUpdate",
979
+ "force"
980
+ ];
981
+ var SHARED_COMMAND_OPTION_ALIASES = {
982
+ "close-reason": "closeReason",
983
+ close_reason: "closeReason",
984
+ "estimated-minutes": "estimatedMinutes",
985
+ estimated_minutes: "estimatedMinutes",
986
+ estimate: "estimatedMinutes",
987
+ "acceptance-criteria": "acceptanceCriteria",
988
+ acceptance_criteria: "acceptanceCriteria",
989
+ ac: "acceptanceCriteria",
990
+ "definition-of-ready": "definitionOfReady",
991
+ definition_of_ready: "definitionOfReady",
992
+ rank: "order",
993
+ "why-now": "whyNow",
994
+ why_now: "whyNow",
995
+ "blocked-by": "blockedBy",
996
+ blocked_by: "blockedBy",
997
+ "blocked-reason": "blockedReason",
998
+ blocked_reason: "blockedReason",
999
+ "unblock-note": "unblockNote",
1000
+ unblock_note: "unblockNote",
1001
+ "repro-steps": "reproSteps",
1002
+ repro_steps: "reproSteps",
1003
+ "expected-result": "expectedResult",
1004
+ expected_result: "expectedResult",
1005
+ "actual-result": "actualResult",
1006
+ actual_result: "actualResult",
1007
+ "affected-version": "affectedVersion",
1008
+ affected_version: "affectedVersion",
1009
+ "fixed-version": "fixedVersion",
1010
+ fixed_version: "fixedVersion",
1011
+ "customer-impact": "customerImpact",
1012
+ customer_impact: "customerImpact",
1013
+ "type-option": "typeOption",
1014
+ type_option: "typeOption",
1015
+ type_options: "typeOption"
1016
+ };
1017
+ var CREATE_COMMAND_OPTION_ALIASES = {
1018
+ ...SHARED_COMMAND_OPTION_ALIASES
1019
+ };
1020
+ var UPDATE_COMMAND_OPTION_ALIASES = {
1021
+ ...SHARED_COMMAND_OPTION_ALIASES,
1022
+ "allow-audit-update": "allowAuditUpdate",
1023
+ allow_audit_update: "allowAuditUpdate"
1024
+ };
1025
+ var CREATE_COMMAND_OPTION_FLAG_LABELS = {
1026
+ title: "--title",
1027
+ description: "--description",
1028
+ type: "--type",
1029
+ status: "--status",
1030
+ priority: "--priority",
1031
+ tags: "--tags",
1032
+ body: "--body",
1033
+ deadline: "--deadline",
1034
+ estimatedMinutes: "--estimate/--estimated-minutes",
1035
+ acceptanceCriteria: "--acceptance-criteria/--ac",
1036
+ definitionOfReady: "--definition-of-ready",
1037
+ order: "--order/--rank",
1038
+ goal: "--goal",
1039
+ objective: "--objective",
1040
+ value: "--value",
1041
+ impact: "--impact",
1042
+ outcome: "--outcome",
1043
+ whyNow: "--why-now",
1044
+ author: "--author",
1045
+ message: "--message",
1046
+ assignee: "--assignee",
1047
+ parent: "--parent",
1048
+ reviewer: "--reviewer",
1049
+ risk: "--risk",
1050
+ confidence: "--confidence",
1051
+ sprint: "--sprint",
1052
+ release: "--release",
1053
+ blockedBy: "--blocked-by",
1054
+ blockedReason: "--blocked-reason",
1055
+ unblockNote: "--unblock-note",
1056
+ reporter: "--reporter",
1057
+ severity: "--severity",
1058
+ environment: "--environment",
1059
+ reproSteps: "--repro-steps",
1060
+ resolution: "--resolution",
1061
+ expectedResult: "--expected-result",
1062
+ actualResult: "--actual-result",
1063
+ affectedVersion: "--affected-version",
1064
+ fixedVersion: "--fixed-version",
1065
+ component: "--component",
1066
+ regression: "--regression",
1067
+ customerImpact: "--customer-impact",
1068
+ dep: "--dep",
1069
+ comment: "--comment",
1070
+ note: "--note",
1071
+ learning: "--learning",
1072
+ file: "--file",
1073
+ test: "--test",
1074
+ doc: "--doc",
1075
+ reminder: "--reminder",
1076
+ event: "--event",
1077
+ typeOption: "--type-option"
1078
+ };
1079
+ var UPDATE_COMMAND_OPTION_FLAG_LABELS = {
1080
+ title: "--title",
1081
+ description: "--description",
1082
+ body: "--body",
1083
+ status: "--status",
1084
+ closeReason: "--close-reason",
1085
+ priority: "--priority",
1086
+ type: "--type",
1087
+ tags: "--tags",
1088
+ deadline: "--deadline",
1089
+ estimatedMinutes: "--estimate/--estimated-minutes",
1090
+ acceptanceCriteria: "--acceptance-criteria/--ac",
1091
+ definitionOfReady: "--definition-of-ready",
1092
+ order: "--order/--rank",
1093
+ goal: "--goal",
1094
+ objective: "--objective",
1095
+ value: "--value",
1096
+ impact: "--impact",
1097
+ outcome: "--outcome",
1098
+ whyNow: "--why-now",
1099
+ assignee: "--assignee",
1100
+ parent: "--parent",
1101
+ reviewer: "--reviewer",
1102
+ risk: "--risk",
1103
+ confidence: "--confidence",
1104
+ sprint: "--sprint",
1105
+ release: "--release",
1106
+ blockedBy: "--blocked-by",
1107
+ blockedReason: "--blocked-reason",
1108
+ unblockNote: "--unblock-note",
1109
+ reporter: "--reporter",
1110
+ severity: "--severity",
1111
+ environment: "--environment",
1112
+ reproSteps: "--repro-steps",
1113
+ resolution: "--resolution",
1114
+ expectedResult: "--expected-result",
1115
+ actualResult: "--actual-result",
1116
+ affectedVersion: "--affected-version",
1117
+ fixedVersion: "--fixed-version",
1118
+ component: "--component",
1119
+ regression: "--regression",
1120
+ customerImpact: "--customer-impact",
1121
+ comment: "--comment",
1122
+ note: "--note",
1123
+ learning: "--learning",
1124
+ file: "--file",
1125
+ test: "--test",
1126
+ doc: "--doc",
1127
+ reminder: "--reminder",
1128
+ event: "--event",
1129
+ typeOption: "--type-option",
1130
+ allowAuditUpdate: "--allow-audit-update",
1131
+ author: "--author",
1132
+ message: "--message",
1133
+ force: "--force"
1134
+ };
1135
+ function normalizeCommandOptionToken(value) {
1136
+ return value.trim().replace(/^--+/, "").toLowerCase();
1137
+ }
1138
+ function commandOptionKeys(command) {
1139
+ return command === "create" ? CREATE_COMMAND_OPTION_KEYS : UPDATE_COMMAND_OPTION_KEYS;
1140
+ }
1141
+ function commandOptionAliases(command) {
1142
+ return command === "create" ? CREATE_COMMAND_OPTION_ALIASES : UPDATE_COMMAND_OPTION_ALIASES;
1143
+ }
1144
+ function canonicalizeCommandOptionKey(command, rawOption) {
1145
+ const normalizedToken = normalizeCommandOptionToken(rawOption);
1146
+ if (normalizedToken.length === 0) {
1147
+ return void 0;
1148
+ }
1149
+ const aliased = commandOptionAliases(command)[normalizedToken];
1150
+ if (aliased) {
1151
+ return aliased;
1152
+ }
1153
+ return commandOptionKeys(command).find((candidate) => candidate.toLowerCase() === normalizedToken);
1154
+ }
1155
+ function commandOptionFlagLabel(command, optionKey) {
1156
+ const labels = command === "create" ? CREATE_COMMAND_OPTION_FLAG_LABELS : UPDATE_COMMAND_OPTION_FLAG_LABELS;
1157
+ return labels[optionKey] ?? `--${optionKey.replace(/([A-Z])/g, "-$1").toLowerCase()}`;
1158
+ }
1159
+ function toDefaultFolder(name) {
1160
+ const normalized = toSlugToken(name);
1161
+ if (normalized.length === 0) {
1162
+ return "items";
1163
+ }
1164
+ return normalized.endsWith("s") ? normalized : `${normalized}s`;
1165
+ }
1166
+ function toSlugToken(value) {
1167
+ const trimmed = value.trim().toLowerCase();
1168
+ let slug = "";
1169
+ let pendingDash = false;
1170
+ for (const character of trimmed) {
1171
+ const code = character.charCodeAt(0);
1172
+ const isAlpha = code >= 97 && code <= 122;
1173
+ const isDigit = code >= 48 && code <= 57;
1174
+ if (isAlpha || isDigit) {
1175
+ if (pendingDash && slug.length > 0) {
1176
+ slug += "-";
1177
+ }
1178
+ slug += character;
1179
+ pendingDash = false;
1180
+ continue;
1181
+ }
1182
+ if (slug.length > 0) {
1183
+ pendingDash = true;
1184
+ }
1185
+ }
1186
+ return slug;
1187
+ }
1188
+ function normalizeTypeDefinition(definition) {
1189
+ return normalizeItemTypeDefinition(definition, { resolvePolicyCommand: strictPolicyCommand });
1190
+ }
1191
+ function coerceTypeDefinitionFromUnknown(raw) {
1192
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
1193
+ return null;
1194
+ }
1195
+ const record = raw;
1196
+ const name = typeof record.name === "string" ? record.name : "";
1197
+ if (name.trim().length === 0) {
1198
+ return null;
1199
+ }
1200
+ const folder = typeof record.folder === "string" ? record.folder : void 0;
1201
+ const description = typeof record.description === "string" ? record.description : void 0;
1202
+ const defaultStatus = typeof record.default_status === "string" ? record.default_status : void 0;
1203
+ const aliases = Array.isArray(record.aliases) ? record.aliases.filter((value) => typeof value === "string") : void 0;
1204
+ const requiredCreateFields = Array.isArray(record.required_create_fields) ? record.required_create_fields.filter((value) => typeof value === "string") : void 0;
1205
+ const requiredCreateRepeatables = Array.isArray(record.required_create_repeatables) ? record.required_create_repeatables.filter((value) => typeof value === "string") : void 0;
1206
+ let options;
1207
+ if (Array.isArray(record.options)) {
1208
+ options = [];
1209
+ for (const entry of record.options) {
1210
+ if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
1211
+ continue;
1212
+ }
1213
+ const optionRecord = entry;
1214
+ if (typeof optionRecord.key !== "string") {
1215
+ continue;
1216
+ }
1217
+ options.push({
1218
+ key: optionRecord.key,
1219
+ values: Array.isArray(optionRecord.values) ? optionRecord.values.filter((value) => typeof value === "string") : [],
1220
+ required: optionRecord.required === void 0 ? void 0 : Boolean(optionRecord.required),
1221
+ aliases: Array.isArray(optionRecord.aliases) ? optionRecord.aliases.filter((value) => typeof value === "string") : void 0,
1222
+ description: typeof optionRecord.description === "string" ? optionRecord.description : void 0
1223
+ });
1224
+ }
1225
+ }
1226
+ let commandOptionPolicies;
1227
+ if (Array.isArray(record.command_option_policies)) {
1228
+ commandOptionPolicies = [];
1229
+ for (const entry of record.command_option_policies) {
1230
+ if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
1231
+ continue;
1232
+ }
1233
+ const policyRecord = entry;
1234
+ if (typeof policyRecord.command !== "string" || typeof policyRecord.option !== "string") {
1235
+ continue;
1236
+ }
1237
+ const normalizedCommand = policyRecord.command.trim().toLowerCase();
1238
+ if (normalizedCommand !== "create" && normalizedCommand !== "update") {
1239
+ continue;
1240
+ }
1241
+ commandOptionPolicies.push({
1242
+ command: normalizedCommand,
1243
+ option: policyRecord.option,
1244
+ required: policyRecord.required === void 0 ? void 0 : Boolean(policyRecord.required),
1245
+ visible: policyRecord.visible === void 0 ? void 0 : Boolean(policyRecord.visible),
1246
+ enabled: policyRecord.enabled === void 0 ? void 0 : Boolean(policyRecord.enabled)
1247
+ });
1248
+ }
1249
+ }
1250
+ return {
1251
+ name,
1252
+ description,
1253
+ default_status: defaultStatus,
1254
+ folder,
1255
+ aliases,
1256
+ required_create_fields: requiredCreateFields,
1257
+ required_create_repeatables: requiredCreateRepeatables,
1258
+ options,
1259
+ command_option_policies: commandOptionPolicies
1260
+ };
1261
+ }
1262
+ function applyTypeDefinitions(source, target) {
1263
+ for (const rawDefinition of source) {
1264
+ const normalizedDefinition = normalizeTypeDefinition(rawDefinition);
1265
+ if (!normalizedDefinition) {
1266
+ continue;
1267
+ }
1268
+ const lowerName = normalizedDefinition.name.toLowerCase();
1269
+ const existing = target.get(lowerName);
1270
+ const keepName = existing?.name ?? normalizedDefinition.name;
1271
+ const folder = normalizedDefinition.folder ?? existing?.folder ?? toDefaultFolder(keepName);
1272
+ const aliases = normalizeItemTypeStringList([
1273
+ ...existing?.aliases ?? [],
1274
+ ...normalizedDefinition.aliases ?? []
1275
+ ]);
1276
+ const requiredCreateFields = normalizedDefinition.required_create_fields ? normalizeItemTypeStringList(normalizedDefinition.required_create_fields) : existing?.required_create_fields ?? [];
1277
+ const requiredCreateRepeatables = normalizedDefinition.required_create_repeatables ? normalizeItemTypeStringList(normalizedDefinition.required_create_repeatables) : existing?.required_create_repeatables ?? [];
1278
+ const options = normalizedDefinition.options ? normalizedDefinition.options : existing?.options ? [...existing.options] : [];
1279
+ const commandOptionPolicies = normalizedDefinition.command_option_policies ? normalizedDefinition.command_option_policies : existing?.command_option_policies ? [...existing.command_option_policies] : [];
1280
+ const defaultStatus = normalizedDefinition.default_status ?? existing?.default_status;
1281
+ const description = normalizedDefinition.description ?? existing?.description;
1282
+ target.set(lowerName, {
1283
+ name: keepName,
1284
+ ...description ? { description } : {},
1285
+ ...defaultStatus ? { default_status: defaultStatus } : {},
1286
+ folder,
1287
+ aliases,
1288
+ required_create_fields: requiredCreateFields,
1289
+ required_create_repeatables: requiredCreateRepeatables,
1290
+ options,
1291
+ command_option_policies: commandOptionPolicies
1292
+ });
1293
+ }
1294
+ }
1295
+ function collectExtensionTypeDefinitions(registrations) {
1296
+ if (!registrations) {
1297
+ return [];
1298
+ }
1299
+ const definitions = [];
1300
+ for (const registration of registrations.item_types ?? []) {
1301
+ const typeDefinitionsRaw = registration.types;
1302
+ if (!Array.isArray(typeDefinitionsRaw)) {
1303
+ continue;
1304
+ }
1305
+ for (const rawDefinition of typeDefinitionsRaw) {
1306
+ const normalized = coerceTypeDefinitionFromUnknown(rawDefinition);
1307
+ if (normalized) {
1308
+ definitions.push(normalized);
1309
+ }
1310
+ }
1311
+ }
1312
+ return definitions;
1313
+ }
1314
+ function resolveItemTypeRegistry(settings, extensionRegistrations = null) {
1315
+ const byLowerName = /* @__PURE__ */ new Map();
1316
+ for (const builtin of ITEM_TYPE_VALUES) {
1317
+ byLowerName.set(builtin.toLowerCase(), {
1318
+ name: builtin,
1319
+ folder: TYPE_TO_FOLDER[builtin],
1320
+ aliases: [],
1321
+ required_create_fields: [...DEFAULT_REQUIRED_CREATE_FIELDS],
1322
+ required_create_repeatables: [...DEFAULT_REQUIRED_CREATE_REPEATABLES],
1323
+ options: [],
1324
+ command_option_policies: []
1325
+ });
1326
+ }
1327
+ applyTypeDefinitions(settings.item_types?.definitions ?? [], byLowerName);
1328
+ applyTypeDefinitions(collectExtensionTypeDefinitions(extensionRegistrations), byLowerName);
1329
+ const definitions = [...byLowerName.values()].sort((left, right) => left.name.localeCompare(right.name));
1330
+ const byType = {};
1331
+ const aliasToType = {};
1332
+ const typeToFolder = {};
1333
+ for (const definition of definitions) {
1334
+ byType[definition.name] = definition;
1335
+ typeToFolder[definition.name] = definition.folder;
1336
+ aliasToType[definition.name.toLowerCase()] = definition.name;
1337
+ for (const alias of definition.aliases) {
1338
+ aliasToType[alias.toLowerCase()] = definition.name;
1339
+ }
1340
+ }
1341
+ const folders = [...new Set(definitions.map((definition) => definition.folder))].sort((left, right) => left.localeCompare(right));
1342
+ return {
1343
+ types: definitions.map((definition) => definition.name),
1344
+ folders,
1345
+ type_to_folder: typeToFolder,
1346
+ by_type: byType,
1347
+ alias_to_type: aliasToType
1348
+ };
1349
+ }
1350
+ function resolveTypeName(rawType, registry) {
1351
+ if (rawType === void 0) {
1352
+ return void 0;
1353
+ }
1354
+ return registry.alias_to_type[rawType.trim().toLowerCase()];
1355
+ }
1356
+ function resolveTypeDefinition(typeName, registry) {
1357
+ const resolvedName = resolveTypeName(typeName, registry);
1358
+ if (!resolvedName) {
1359
+ return void 0;
1360
+ }
1361
+ return registry.by_type[resolvedName];
1362
+ }
1363
+ function resolveCommandOptionPolicyState(typeDefinition, command, baseRequiredOptions) {
1364
+ const errors = [];
1365
+ const required = /* @__PURE__ */ new Set();
1366
+ const hidden = /* @__PURE__ */ new Set();
1367
+ const disabled = /* @__PURE__ */ new Set();
1368
+ for (const rawBase of baseRequiredOptions) {
1369
+ const canonical = canonicalizeCommandOptionKey(command, rawBase);
1370
+ if (!canonical) {
1371
+ errors.push(`Unsupported base required option "${rawBase}" for command "${command}" on type "${typeDefinition.name}"`);
1372
+ continue;
1373
+ }
1374
+ required.add(canonical);
1375
+ }
1376
+ for (const policy of typeDefinition.command_option_policies) {
1377
+ if (policy.command !== command) {
1378
+ continue;
555
1379
  }
556
- },
557
- context: {
558
- default_depth: "brief",
559
- activity_limit: 10,
560
- stale_threshold_days: 7,
561
- sections: {
562
- hierarchy: true,
563
- activity: true,
564
- progress: true,
565
- recently_created: true,
566
- unparented: true,
567
- blockers: true,
568
- files: true,
569
- workload: true,
570
- staleness: true,
571
- tests: true
1380
+ const canonical = canonicalizeCommandOptionKey(command, policy.option);
1381
+ if (!canonical) {
1382
+ errors.push(`Unsupported command_option_policies option "${policy.option}" for command "${command}" on type "${typeDefinition.name}"`);
1383
+ continue;
572
1384
  }
573
- },
574
- vector_store: {
575
- adapter: "",
576
- collection_name: "pm_items",
577
- qdrant: {
578
- url: "",
579
- api_key: ""
580
- },
581
- lancedb: {
582
- path: ""
1385
+ if (policy.required !== void 0) {
1386
+ if (policy.required) {
1387
+ required.add(canonical);
1388
+ } else {
1389
+ required.delete(canonical);
1390
+ }
1391
+ }
1392
+ if (policy.visible !== void 0) {
1393
+ if (policy.visible) {
1394
+ hidden.delete(canonical);
1395
+ } else {
1396
+ hidden.add(canonical);
1397
+ }
1398
+ }
1399
+ if (policy.enabled !== void 0) {
1400
+ if (policy.enabled) {
1401
+ disabled.delete(canonical);
1402
+ } else {
1403
+ disabled.add(canonical);
1404
+ }
583
1405
  }
584
1406
  }
585
- };
586
- var EMPTY_CANONICAL_DOCUMENT = {
587
- metadata: {},
588
- body: ""
589
- };
590
- var EXIT_CODE = {
591
- SUCCESS: 0,
592
- GENERIC_FAILURE: 1,
593
- USAGE: 2,
594
- NOT_FOUND: 3,
595
- CONFLICT: 4,
596
- DEPENDENCY_FAILED: 5
597
- };
598
- var TELEMETRY_ERROR_CATEGORY_BY_CODE = Object.freeze({
599
- unknown_command: "usage",
600
- unknown_option: "usage",
601
- missing_required_option: "usage",
602
- missing_required_argument: "usage",
603
- invalid_command_usage: "usage",
604
- linked_test_value_not_quoted: "usage",
605
- invalid_argument_value: "validation",
606
- health_findings: "validation",
607
- validation_findings: "validation",
608
- close_through_update: "validation",
609
- no_update_fields: "validation",
610
- unsupported_update_option: "validation",
611
- tracker_not_initialized: "validation",
612
- item_not_found: "validation",
613
- ownership_conflict: "conflict",
614
- lock_conflict: "conflict",
615
- terminal_state_conflict: "conflict",
616
- dependency_failed: "runtime",
617
- command_failed: "runtime",
618
- unknown_error: "runtime"
619
- });
620
- function resolveTelemetryErrorCategory(errorCode) {
621
- const normalized = (errorCode ?? "").trim().toLowerCase();
622
- if (normalized.length === 0) {
623
- return "unknown";
1407
+ for (const option of required) {
1408
+ if (disabled.has(option)) {
1409
+ errors.push(`Option "${option}" cannot be both required and disabled for command "${command}" on type "${typeDefinition.name}"`);
1410
+ }
624
1411
  }
625
- const explicit = TELEMETRY_ERROR_CATEGORY_BY_CODE[normalized];
626
- if (typeof explicit === "string") {
627
- return explicit;
1412
+ return {
1413
+ required: [...required],
1414
+ hidden: [...hidden].sort((left, right) => left.localeCompare(right)),
1415
+ disabled: [...disabled].sort((left, right) => left.localeCompare(right)),
1416
+ errors
1417
+ };
1418
+ }
1419
+ function validateTypeOptions(typeName, rawTypeOptions, registry) {
1420
+ const typeDefinition = resolveTypeDefinition(typeName, registry);
1421
+ if (!typeDefinition) {
1422
+ return {
1423
+ normalized: void 0,
1424
+ errors: [`Unknown type "${typeName}"`]
1425
+ };
628
1426
  }
629
- if (normalized.includes("conflict") || normalized.includes("locked")) {
630
- return "conflict";
1427
+ const errors = [];
1428
+ const optionByAlias = /* @__PURE__ */ new Map();
1429
+ for (const option of typeDefinition.options) {
1430
+ optionByAlias.set(option.key.toLowerCase(), option);
1431
+ for (const alias of option.aliases ?? []) {
1432
+ optionByAlias.set(alias.toLowerCase(), option);
1433
+ }
631
1434
  }
632
- if (normalized.startsWith("unknown_") || normalized.startsWith("missing_required_")) {
633
- return "usage";
1435
+ const normalized = {};
1436
+ for (const [rawKey, rawValue] of Object.entries(rawTypeOptions ?? {})) {
1437
+ const trimmedKey = rawKey.trim();
1438
+ const trimmedValue = rawValue.trim();
1439
+ if (trimmedKey.length === 0) {
1440
+ errors.push("type option keys must not be empty");
1441
+ continue;
1442
+ }
1443
+ if (trimmedValue.length === 0) {
1444
+ errors.push(`type option "${trimmedKey}" must not be empty`);
1445
+ continue;
1446
+ }
1447
+ const optionDefinition = optionByAlias.get(trimmedKey.toLowerCase());
1448
+ if (!optionDefinition) {
1449
+ const allowed = typeDefinition.options.map((option) => option.key).join(", ");
1450
+ errors.push(typeDefinition.options.length > 0 ? `Unknown type option "${trimmedKey}" for type "${typeDefinition.name}". Allowed: ${allowed}` : `Type "${typeDefinition.name}" does not define any configurable type options`);
1451
+ continue;
1452
+ }
1453
+ const allowedValues = optionDefinition.values;
1454
+ let resolvedValue = trimmedValue;
1455
+ if (allowedValues.length > 0) {
1456
+ const valueLookup = new Map(allowedValues.map((value) => [value.toLowerCase(), value]));
1457
+ const canonical = valueLookup.get(trimmedValue.toLowerCase());
1458
+ if (!canonical) {
1459
+ errors.push(`Invalid value "${trimmedValue}" for type option "${optionDefinition.key}". Allowed: ${allowedValues.join(", ")}`);
1460
+ continue;
1461
+ }
1462
+ resolvedValue = canonical;
1463
+ }
1464
+ normalized[optionDefinition.key] = resolvedValue;
634
1465
  }
635
- if (normalized.startsWith("invalid_") || normalized.endsWith("_not_found") || normalized.includes("validation")) {
636
- return "validation";
1466
+ for (const option of typeDefinition.options) {
1467
+ if (option.required && !(option.key in normalized)) {
1468
+ errors.push(`Missing required type option "${option.key}" for type "${typeDefinition.name}"`);
1469
+ }
637
1470
  }
638
- if (normalized.endsWith("_error") || normalized.endsWith("_failed")) {
639
- return "runtime";
1471
+ const sortedKeys = Object.keys(normalized).sort((left, right) => left.localeCompare(right));
1472
+ if (sortedKeys.length === 0) {
1473
+ return {
1474
+ normalized: void 0,
1475
+ errors
1476
+ };
640
1477
  }
641
- return "unknown";
1478
+ return {
1479
+ normalized: Object.fromEntries(sortedKeys.map((key) => [key, normalized[key]])),
1480
+ errors
1481
+ };
642
1482
  }
643
1483
 
644
1484
  // dist/core/store/paths.js
@@ -648,7 +1488,7 @@ import path4 from "node:path";
648
1488
  !(function() {
649
1489
  try {
650
1490
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
651
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "7e5cc2a5-f199-5629-b251-a0e9df176341");
1491
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "d46f24c7-aad0-58e5-b27e-ce9388964d8a");
652
1492
  } catch (e2) {
653
1493
  }
654
1494
  })();
@@ -712,37 +1552,8 @@ function resolveGlobalPmRoot(cwd) {
712
1552
  function getSettingsPath(pmRoot) {
713
1553
  return path4.join(pmRoot, SETTINGS_FILENAME);
714
1554
  }
715
- function deriveDefaultTypeFolder(type) {
716
- const normalized = toSlugToken(type);
717
- if (normalized.length === 0) {
718
- return "items";
719
- }
720
- return normalized.endsWith("s") ? normalized : `${normalized}s`;
721
- }
722
- function toSlugToken(value) {
723
- const trimmed = value.trim().toLowerCase();
724
- let slug = "";
725
- let pendingDash = false;
726
- for (const character of trimmed) {
727
- const code = character.charCodeAt(0);
728
- const isAlpha = code >= 97 && code <= 122;
729
- const isDigit = code >= 48 && code <= 57;
730
- if (isAlpha || isDigit) {
731
- if (pendingDash && slug.length > 0) {
732
- slug += "-";
733
- }
734
- slug += character;
735
- pendingDash = false;
736
- continue;
737
- }
738
- if (slug.length > 0) {
739
- pendingDash = true;
740
- }
741
- }
742
- return slug;
743
- }
744
1555
  function getTypeDirPath(pmRoot, type, typeToFolder = TYPE_TO_FOLDER) {
745
- const folder = typeToFolder[type] ?? deriveDefaultTypeFolder(type);
1556
+ const folder = typeToFolder[type] ?? toDefaultFolder(type);
746
1557
  return path4.join(pmRoot, folder);
747
1558
  }
748
1559
  function getItemPath(pmRoot, type, id, itemFormat = "toon", typeToFolder = TYPE_TO_FOLDER) {
@@ -853,11 +1664,63 @@ function asRecordLoose(value) {
853
1664
  return value;
854
1665
  }
855
1666
 
1667
+ // dist/core/shared/levenshtein.js
1668
+ !(function() {
1669
+ try {
1670
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
1671
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "99ae52e7-bf5e-51ab-a222-d6ffb82027ff");
1672
+ } catch (e2) {
1673
+ }
1674
+ })();
1675
+ function levenshteinDistanceWithinLimit(left, right, limit) {
1676
+ if (left === right) {
1677
+ return 0;
1678
+ }
1679
+ if (Math.abs(left.length - right.length) > limit) {
1680
+ return null;
1681
+ }
1682
+ const width = right.length + 1;
1683
+ const beforePrevious = new Array(width);
1684
+ const previous = new Array(width);
1685
+ const current = new Array(width);
1686
+ for (let column = 0; column < width; column += 1) {
1687
+ beforePrevious[column] = 0;
1688
+ previous[column] = column;
1689
+ }
1690
+ for (let row = 1; row <= left.length; row += 1) {
1691
+ current[0] = row;
1692
+ let rowMin = current[0];
1693
+ for (let column = 1; column <= right.length; column += 1) {
1694
+ const cost = left[row - 1] === right[column - 1] ? 0 : 1;
1695
+ const substitution = previous[column - 1] + cost;
1696
+ const insertion = current[column - 1] + 1;
1697
+ const deletion = previous[column] + 1;
1698
+ let candidate = Math.min(substitution, insertion, deletion);
1699
+ if (row > 1 && column > 1 && left[row - 1] === right[column - 2] && left[row - 2] === right[column - 1]) {
1700
+ candidate = Math.min(candidate, beforePrevious[column - 2] + 1);
1701
+ }
1702
+ current[column] = candidate;
1703
+ if (candidate < rowMin) {
1704
+ rowMin = candidate;
1705
+ }
1706
+ }
1707
+ if (rowMin > limit) {
1708
+ return null;
1709
+ }
1710
+ for (let column = 0; column < width; column += 1) {
1711
+ beforePrevious[column] = previous[column];
1712
+ previous[column] = current[column];
1713
+ }
1714
+ }
1715
+ const result = previous[right.length];
1716
+ return result <= limit ? result : null;
1717
+ }
1718
+
856
1719
  // dist/core/extensions/extension-registries.js
857
1720
  !(function() {
858
1721
  try {
859
1722
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
860
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "2520e0b0-3e9e-5f16-93a0-c0e45fc8bb8f");
1723
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "dcfdfd88-3d2a-57c9-9873-d8d7d9cf339d");
861
1724
  } catch (e2) {
862
1725
  }
863
1726
  })();
@@ -903,6 +1766,7 @@ function createEmptyExtensionRegistrationRegistry() {
903
1766
  item_fields: [],
904
1767
  item_types: [],
905
1768
  migrations: [],
1769
+ profiles: [],
906
1770
  importers: [],
907
1771
  exporters: [],
908
1772
  search_providers: [],
@@ -1401,59 +2265,7 @@ function isFlagDefaultValueCoercible(value, kind) {
1401
2265
  if (typeof value === "boolean") {
1402
2266
  return true;
1403
2267
  }
1404
- return typeof value === "string" && ["true", "false", "1", "0"].includes(value.trim().toLowerCase());
1405
- }
1406
-
1407
- // dist/core/shared/levenshtein.js
1408
- !(function() {
1409
- try {
1410
- var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
1411
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "99ae52e7-bf5e-51ab-a222-d6ffb82027ff");
1412
- } catch (e2) {
1413
- }
1414
- })();
1415
- function levenshteinDistanceWithinLimit(left, right, limit) {
1416
- if (left === right) {
1417
- return 0;
1418
- }
1419
- if (Math.abs(left.length - right.length) > limit) {
1420
- return null;
1421
- }
1422
- const width = right.length + 1;
1423
- const beforePrevious = new Array(width);
1424
- const previous = new Array(width);
1425
- const current = new Array(width);
1426
- for (let column = 0; column < width; column += 1) {
1427
- beforePrevious[column] = 0;
1428
- previous[column] = column;
1429
- }
1430
- for (let row = 1; row <= left.length; row += 1) {
1431
- current[0] = row;
1432
- let rowMin = current[0];
1433
- for (let column = 1; column <= right.length; column += 1) {
1434
- const cost = left[row - 1] === right[column - 1] ? 0 : 1;
1435
- const substitution = previous[column - 1] + cost;
1436
- const insertion = current[column - 1] + 1;
1437
- const deletion = previous[column] + 1;
1438
- let candidate = Math.min(substitution, insertion, deletion);
1439
- if (row > 1 && column > 1 && left[row - 1] === right[column - 2] && left[row - 2] === right[column - 1]) {
1440
- candidate = Math.min(candidate, beforePrevious[column - 2] + 1);
1441
- }
1442
- current[column] = candidate;
1443
- if (candidate < rowMin) {
1444
- rowMin = candidate;
1445
- }
1446
- }
1447
- if (rowMin > limit) {
1448
- return null;
1449
- }
1450
- for (let column = 0; column < width; column += 1) {
1451
- beforePrevious[column] = previous[column];
1452
- previous[column] = current[column];
1453
- }
1454
- }
1455
- const result = previous[right.length];
1456
- return result <= limit ? result : null;
2268
+ return typeof value === "string" && ["true", "false", "1", "0"].includes(value.trim().toLowerCase());
1457
2269
  }
1458
2270
 
1459
2271
  // dist/core/extensions/item-field-types.js
@@ -1483,6 +2295,100 @@ function suggestKnownItemFieldType(value) {
1483
2295
  return null;
1484
2296
  }
1485
2297
 
2298
+ // dist/core/extensions/version-compat.js
2299
+ !(function() {
2300
+ try {
2301
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
2302
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "9675b93b-da90-574d-a6cf-ea7448b40600");
2303
+ } catch (e2) {
2304
+ }
2305
+ })();
2306
+ function formatVersionBoundValue(value) {
2307
+ return typeof value === "string" ? value : String(value);
2308
+ }
2309
+ function parseComparableVersion(value) {
2310
+ const normalized = value.trim().replace(/^>=\s*/, "").replace(/^v/i, "");
2311
+ const release = normalized.split(/[+-]/, 1)[0];
2312
+ if (!/^\d+(?:[.-]\d+)*$/.test(release)) {
2313
+ return null;
2314
+ }
2315
+ return release.split(/[.-]/).map((part) => Number(part));
2316
+ }
2317
+ function compareComparableVersions(currentVersion, otherVersion) {
2318
+ const currentParts = parseComparableVersion(currentVersion);
2319
+ const otherParts = parseComparableVersion(otherVersion);
2320
+ if (!currentParts || !otherParts) {
2321
+ return null;
2322
+ }
2323
+ const width = Math.max(currentParts.length, otherParts.length);
2324
+ for (let index = 0; index < width; index += 1) {
2325
+ const current = currentParts[index] ?? 0;
2326
+ const other = otherParts[index] ?? 0;
2327
+ if (current > other) {
2328
+ return 1;
2329
+ }
2330
+ if (current < other) {
2331
+ return -1;
2332
+ }
2333
+ }
2334
+ return 0;
2335
+ }
2336
+ function evaluatePmMinVersionBound(required, currentVersion) {
2337
+ if (required === void 0 || required === null) {
2338
+ return { kind: "pm_min_version", status: "absent", allowed: true, required: "", current: currentVersion };
2339
+ }
2340
+ const declared = formatVersionBoundValue(required);
2341
+ if (typeof required !== "string" || declared.trim().length === 0) {
2342
+ return { kind: "pm_min_version", status: "invalid", allowed: false, required: declared, current: currentVersion };
2343
+ }
2344
+ if (!parseComparableVersion(declared)) {
2345
+ return { kind: "pm_min_version", status: "invalid", allowed: false, required: declared, current: currentVersion };
2346
+ }
2347
+ if (currentVersion === null) {
2348
+ return { kind: "pm_min_version", status: "unchecked", allowed: true, required: declared, current: null };
2349
+ }
2350
+ const comparison = compareComparableVersions(currentVersion, declared);
2351
+ if (comparison === null) {
2352
+ return { kind: "pm_min_version", status: "unchecked", allowed: true, required: declared, current: currentVersion };
2353
+ }
2354
+ if (comparison < 0) {
2355
+ return { kind: "pm_min_version", status: "unmet", allowed: false, required: declared, current: currentVersion };
2356
+ }
2357
+ return { kind: "pm_min_version", status: "ok", allowed: true, required: declared, current: currentVersion };
2358
+ }
2359
+ function evaluatePmMaxVersionBound(required, currentVersion, exceededMode) {
2360
+ if (required === void 0 || required === null) {
2361
+ return { kind: "pm_max_version", status: "absent", allowed: true, required: "", current: currentVersion };
2362
+ }
2363
+ const declared = formatVersionBoundValue(required);
2364
+ if (typeof required !== "string" || declared.trim().length === 0) {
2365
+ return { kind: "pm_max_version", status: "invalid", allowed: false, required: declared, current: currentVersion };
2366
+ }
2367
+ if (/^[<>=~^]/.test(declared.trim()) || !parseComparableVersion(declared)) {
2368
+ return { kind: "pm_max_version", status: "invalid", allowed: false, required: declared, current: currentVersion };
2369
+ }
2370
+ if (currentVersion === null) {
2371
+ return { kind: "pm_max_version", status: "unchecked", allowed: true, required: declared, current: null };
2372
+ }
2373
+ const comparison = compareComparableVersions(currentVersion, declared);
2374
+ if (comparison === null) {
2375
+ return { kind: "pm_max_version", status: "unchecked", allowed: true, required: declared, current: currentVersion };
2376
+ }
2377
+ if (comparison > 0) {
2378
+ if (exceededMode === "warn") {
2379
+ return {
2380
+ kind: "pm_max_version",
2381
+ status: "exceeded_warn",
2382
+ allowed: true,
2383
+ required: declared,
2384
+ current: currentVersion
2385
+ };
2386
+ }
2387
+ return { kind: "pm_max_version", status: "exceeded", allowed: false, required: declared, current: currentVersion };
2388
+ }
2389
+ return { kind: "pm_max_version", status: "ok", allowed: true, required: declared, current: currentVersion };
2390
+ }
2391
+
1486
2392
  // dist/core/extensions/extension-capability-aliases.js
1487
2393
  !(function() {
1488
2394
  try {
@@ -2114,7 +3020,7 @@ function evaluateExtensionPolicyForRegistration(policy, extension, surface, meth
2114
3020
  !(function() {
2115
3021
  try {
2116
3022
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
2117
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "7c9e6f67-48e5-5952-a7a7-341aafa36244");
3023
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "a323e13b-37e3-5ec6-bc21-1ab78e0b30b9");
2118
3024
  } catch (e2) {
2119
3025
  }
2120
3026
  })();
@@ -2613,33 +3519,6 @@ function formatUnknownError(error) {
2613
3519
  }
2614
3520
  return String(error);
2615
3521
  }
2616
- function parseComparableVersion(value) {
2617
- const normalized = value.trim().replace(/^>=\s*/, "").replace(/^v/i, "");
2618
- const release = normalized.split(/[+-]/, 1)[0];
2619
- if (!/^\d+(?:[.-]\d+)*$/.test(release)) {
2620
- return null;
2621
- }
2622
- return release.split(/[.-]/).map((part) => Number(part));
2623
- }
2624
- function compareComparableVersions(currentVersion, minimumVersion) {
2625
- const currentParts = parseComparableVersion(currentVersion);
2626
- const minimumParts = parseComparableVersion(minimumVersion);
2627
- if (!currentParts || !minimumParts) {
2628
- return null;
2629
- }
2630
- const width = Math.max(currentParts.length, minimumParts.length);
2631
- for (let index = 0; index < width; index += 1) {
2632
- const current = currentParts[index] ?? 0;
2633
- const minimum = minimumParts[index] ?? 0;
2634
- if (current > minimum) {
2635
- return 1;
2636
- }
2637
- if (current < minimum) {
2638
- return -1;
2639
- }
2640
- }
2641
- return 0;
2642
- }
2643
3522
  async function readCurrentPmCliVersion() {
2644
3523
  try {
2645
3524
  const packageRoot = resolvePmPackageRootFromModule(import.meta.url, ["../../.."]);
@@ -2654,81 +3533,48 @@ function resolveCurrentPmCliVersion() {
2654
3533
  currentPmCliVersionPromise ??= readCurrentPmCliVersion();
2655
3534
  return currentPmCliVersionPromise;
2656
3535
  }
2657
- async function evaluatePmMinVersionCompatibility(layer, manifest) {
2658
- if (typeof manifest.pm_min_version !== "string" || manifest.pm_min_version.trim().length === 0) {
2659
- return { allowed: true };
2660
- }
2661
- if (!parseComparableVersion(manifest.pm_min_version)) {
2662
- return {
2663
- allowed: false,
2664
- warning: `extension_pm_min_version_invalid:${layer}:${manifest.name}:required=${manifest.pm_min_version}`
2665
- };
2666
- }
2667
- const currentVersion = await resolveCurrentPmCliVersion();
2668
- if (!currentVersion) {
2669
- return {
2670
- allowed: true,
2671
- warning: `extension_pm_min_version_unchecked:${layer}:${manifest.name}:required=${manifest.pm_min_version}:current=unknown`
2672
- };
3536
+ function formatPmVersionCompatibilityWarning(layer, manifest, evaluation) {
3537
+ const current = evaluation.current ?? "unknown";
3538
+ if (evaluation.kind === "pm_min_version") {
3539
+ switch (evaluation.status) {
3540
+ case "invalid":
3541
+ return `extension_pm_min_version_invalid:${layer}:${manifest.name}:required=${evaluation.required}`;
3542
+ case "unchecked":
3543
+ return `extension_pm_min_version_unchecked:${layer}:${manifest.name}:required=${evaluation.required}:current=${current}`;
3544
+ case "unmet":
3545
+ return `extension_pm_min_version_unmet:${layer}:${manifest.name}:required=${evaluation.required}:current=${current}`;
3546
+ default:
3547
+ return void 0;
3548
+ }
2673
3549
  }
2674
- const comparison = compareComparableVersions(currentVersion, manifest.pm_min_version);
2675
- if (comparison === null) {
2676
- return {
2677
- allowed: true,
2678
- warning: `extension_pm_min_version_unchecked:${layer}:${manifest.name}:required=${manifest.pm_min_version}:current=${currentVersion}`
2679
- };
3550
+ switch (evaluation.status) {
3551
+ case "invalid":
3552
+ return `extension_pm_max_version_invalid:${layer}:${manifest.name}:allowed=${evaluation.required}`;
3553
+ case "unchecked":
3554
+ return `extension_pm_max_version_unchecked:${layer}:${manifest.name}:allowed=${evaluation.required}:current=${current}`;
3555
+ case "exceeded_warn":
3556
+ return `extension_pm_max_version_exceeded_warn:${layer}:${manifest.name}:allowed=${evaluation.required}:current=${current}`;
3557
+ case "exceeded":
3558
+ return `extension_pm_max_version_exceeded:${layer}:${manifest.name}:allowed=${evaluation.required}:current=${current}`;
3559
+ default:
3560
+ return void 0;
2680
3561
  }
2681
- if (comparison < 0) {
2682
- return {
2683
- allowed: false,
2684
- warning: `extension_pm_min_version_unmet:${layer}:${manifest.name}:required=${manifest.pm_min_version}:current=${currentVersion}`
2685
- };
3562
+ }
3563
+ async function evaluatePmMinVersionCompatibility(layer, manifest) {
3564
+ if (manifest.pm_min_version === void 0) {
3565
+ return { allowed: true };
2686
3566
  }
2687
- return { allowed: true };
3567
+ const evaluation = evaluatePmMinVersionBound(manifest.pm_min_version, await resolveCurrentPmCliVersion());
3568
+ const warning = formatPmVersionCompatibilityWarning(layer, manifest, evaluation);
3569
+ return warning ? { allowed: evaluation.allowed, warning } : { allowed: evaluation.allowed };
2688
3570
  }
2689
3571
  async function evaluatePmMaxVersionCompatibility(layer, manifest, exceededMode) {
2690
- if (typeof manifest.pm_max_version !== "string" || manifest.pm_max_version.trim().length === 0) {
3572
+ if (manifest.pm_max_version === void 0) {
2691
3573
  return { allowed: true };
2692
3574
  }
2693
- if (/^[<>=~^]/.test(manifest.pm_max_version.trim())) {
2694
- return {
2695
- allowed: false,
2696
- warning: `extension_pm_max_version_invalid:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}`
2697
- };
2698
- }
2699
- if (!parseComparableVersion(manifest.pm_max_version)) {
2700
- return {
2701
- allowed: false,
2702
- warning: `extension_pm_max_version_invalid:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}`
2703
- };
2704
- }
2705
- const currentVersion = await resolveCurrentPmCliVersion();
2706
- if (!currentVersion) {
2707
- return {
2708
- allowed: true,
2709
- warning: `extension_pm_max_version_unchecked:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}:current=unknown`
2710
- };
2711
- }
2712
- const comparison = compareComparableVersions(currentVersion, manifest.pm_max_version);
2713
- if (comparison === null) {
2714
- return {
2715
- allowed: true,
2716
- warning: `extension_pm_max_version_unchecked:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}:current=${currentVersion}`
2717
- };
2718
- }
2719
- if (comparison > 0) {
2720
- if (exceededMode === "warn") {
2721
- return {
2722
- allowed: true,
2723
- warning: `extension_pm_max_version_exceeded_warn:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}:current=${currentVersion}`
2724
- };
2725
- }
2726
- return {
2727
- allowed: false,
2728
- warning: `extension_pm_max_version_exceeded:${layer}:${manifest.name}:allowed=${manifest.pm_max_version}:current=${currentVersion}`
2729
- };
2730
- }
2731
- return { allowed: true };
3575
+ const evaluation = evaluatePmMaxVersionBound(manifest.pm_max_version, await resolveCurrentPmCliVersion(), exceededMode);
3576
+ const warning = formatPmVersionCompatibilityWarning(layer, manifest, evaluation);
3577
+ return warning ? { allowed: evaluation.allowed, warning } : { allowed: evaluation.allowed };
2732
3578
  }
2733
3579
  async function fingerprintPath(pathToInspect) {
2734
3580
  try {
@@ -3161,6 +4007,86 @@ function validateMigrationDefinition(definition) {
3161
4007
  throw new TypeError("registerMigration definition.run must be a function when provided");
3162
4008
  }
3163
4009
  }
4010
+ var PROJECT_PROFILE_DIMENSIONS = [
4011
+ "types",
4012
+ "statuses",
4013
+ "fields",
4014
+ "workflows",
4015
+ "config",
4016
+ "templates",
4017
+ "packages"
4018
+ ];
4019
+ function validateProjectProfileEntryShape(dimension, index, entry) {
4020
+ const at = `registerProfile profile.${dimension}[${index}]`;
4021
+ if (dimension === "types") {
4022
+ if (entry.name !== void 0 && typeof entry.name !== "string") {
4023
+ throw new TypeError(`${at}.name must be a string when provided`);
4024
+ }
4025
+ return;
4026
+ }
4027
+ if (dimension === "workflows") {
4028
+ if (typeof entry.type !== "string") {
4029
+ throw new TypeError(`${at}.type must be a string`);
4030
+ }
4031
+ if (!Array.isArray(entry.allowed_transitions)) {
4032
+ throw new TypeError(`${at}.allowed_transitions must be an array`);
4033
+ }
4034
+ for (const [pairIndex, pair] of entry.allowed_transitions.entries()) {
4035
+ if (!Array.isArray(pair)) {
4036
+ throw new TypeError(`${at}.allowed_transitions[${pairIndex}] must be a [from, to] array`);
4037
+ }
4038
+ }
4039
+ return;
4040
+ }
4041
+ if (dimension === "templates") {
4042
+ if (typeof entry.name !== "string") {
4043
+ throw new TypeError(`${at}.name must be a string`);
4044
+ }
4045
+ if (typeof entry.options !== "object" || entry.options === null || Array.isArray(entry.options)) {
4046
+ throw new TypeError(`${at}.options must be an object`);
4047
+ }
4048
+ return;
4049
+ }
4050
+ if (dimension === "packages") {
4051
+ if (typeof entry.spec !== "string") {
4052
+ throw new TypeError(`${at}.spec must be a string`);
4053
+ }
4054
+ }
4055
+ }
4056
+ function validateProjectProfileDefinition(profile) {
4057
+ const record = asRegistrationRecord("registerProfile profile", profile);
4058
+ assertNonEmptyString("registerProfile profile.name", record.name);
4059
+ assertNonEmptyString("registerProfile profile.title", record.title);
4060
+ if (record.summary !== void 0 && typeof record.summary !== "string") {
4061
+ throw new TypeError("registerProfile profile.summary must be a string when provided");
4062
+ }
4063
+ for (const dimension of PROJECT_PROFILE_DIMENSIONS) {
4064
+ const value = record[dimension];
4065
+ if (value === void 0) {
4066
+ continue;
4067
+ }
4068
+ if (!Array.isArray(value)) {
4069
+ throw new TypeError(`registerProfile profile.${dimension} must be an array when provided`);
4070
+ }
4071
+ for (const [index, entry] of value.entries()) {
4072
+ if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
4073
+ throw new TypeError(`registerProfile profile.${dimension}[${index}] must be an object`);
4074
+ }
4075
+ validateProjectProfileEntryShape(dimension, index, entry);
4076
+ }
4077
+ }
4078
+ }
4079
+ function applyProjectProfileDefaults(profile) {
4080
+ if (profile.summary === void 0) {
4081
+ profile.summary = "";
4082
+ }
4083
+ for (const dimension of PROJECT_PROFILE_DIMENSIONS) {
4084
+ if (profile[dimension] === void 0) {
4085
+ profile[dimension] = [];
4086
+ }
4087
+ }
4088
+ return profile;
4089
+ }
3164
4090
  function attachRuntimeDefinition(entry, runtimeDefinition) {
3165
4091
  Object.defineProperty(entry, "runtime_definition", {
3166
4092
  value: runtimeDefinition,
@@ -3462,6 +4388,19 @@ function createExtensionApi(extension, hooks, commands, parsers, preflight, serv
3462
4388
  definition: normalizeRegistrationRecord("registerMigration definition", definition)
3463
4389
  }, runtimeDefinition));
3464
4390
  };
4391
+ const registerProfile = (profile) => {
4392
+ assertExtensionCapability(extension, "schema", "registerProfile");
4393
+ if (!allowRegistration("schema.profiles", "registerProfile", "schema")) {
4394
+ return;
4395
+ }
4396
+ const snapshot = cloneRuntimeRegistrationValue(profile);
4397
+ validateProjectProfileDefinition(snapshot);
4398
+ registrations.profiles.push({
4399
+ layer: extension.layer,
4400
+ name: extension.name,
4401
+ profile: applyProjectProfileDefaults(snapshot)
4402
+ });
4403
+ };
3465
4404
  const applyImportExportCommandMetadata = (method, commandPath, options) => {
3466
4405
  if (options === void 0) {
3467
4406
  return;
@@ -3660,6 +4599,7 @@ function createExtensionApi(extension, hooks, commands, parsers, preflight, serv
3660
4599
  registerItemFields,
3661
4600
  registerItemTypes,
3662
4601
  registerMigration,
4602
+ registerProfile,
3663
4603
  registerRenderer,
3664
4604
  registerImporter,
3665
4605
  registerExporter,
@@ -3685,6 +4625,7 @@ function getRegistrationCounts(registrations) {
3685
4625
  item_fields: itemFieldCount,
3686
4626
  item_types: itemTypeCount,
3687
4627
  migrations: registrations.migrations.length,
4628
+ profiles: registrations.profiles.length,
3688
4629
  importers: registrations.importers.length,
3689
4630
  exporters: registrations.exporters.length,
3690
4631
  search_providers: registrations.search_providers.length,
@@ -3869,7 +4810,7 @@ async function activateExtensions(loadResult) {
3869
4810
  !(function() {
3870
4811
  try {
3871
4812
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
3872
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "f6134b79-a7d0-57d9-b25a-8e3e7b4af416");
4813
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "7cc05bac-f673-59a1-9d51-64361cf5a939");
3873
4814
  } catch (e2) {
3874
4815
  }
3875
4816
  })();
@@ -3917,6 +4858,7 @@ function attributeCapabilityUsage(activation) {
3917
4858
  record(registrations.item_fields, "schema");
3918
4859
  record(registrations.item_types, "schema");
3919
4860
  record(registrations.migrations, "schema");
4861
+ record(registrations.profiles, "schema");
3920
4862
  record(registrations.importers, "importers");
3921
4863
  record(registrations.exporters, "importers");
3922
4864
  record(registrations.search_providers, "search");
@@ -4180,163 +5122,42 @@ function runActiveRendererOverride(format, result) {
4180
5122
  }
4181
5123
  function buildServiceContext(service, payload) {
4182
5124
  return {
4183
- service,
4184
- command: activeCommandContext?.command,
4185
- args: activeCommandContext ? [...activeCommandContext.args] : [],
4186
- options: activeCommandContext?.options ? { ...activeCommandContext.options } : {},
4187
- global: activeCommandContext?.global ? { ...activeCommandContext.global } : void 0,
4188
- pm_root: activeCommandContext?.pm_root,
4189
- payload
4190
- };
4191
- }
4192
- async function runActiveServiceOverride(service, payload) {
4193
- if (!activeExtensionServices) {
4194
- return {
4195
- handled: false,
4196
- result: payload,
4197
- warnings: []
4198
- };
4199
- }
4200
- return runServiceOverride(activeExtensionServices, buildServiceContext(service, payload));
4201
- }
4202
- function runActiveServiceOverrideSync(service, payload) {
4203
- if (!activeExtensionServices) {
4204
- return {
4205
- handled: false,
4206
- result: payload,
4207
- warnings: []
4208
- };
4209
- }
4210
- return runServiceOverrideSync(activeExtensionServices, buildServiceContext(service, payload));
4211
- }
4212
-
4213
- // dist/types.js
4214
- !(function() {
4215
- try {
4216
- var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
4217
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "46812059-b93e-5599-a222-4ac0de6f4911");
4218
- } catch (e2) {
4219
- }
4220
- })();
4221
- var BUILTIN_ITEM_TYPE_VALUES = [
4222
- "Epic",
4223
- "Feature",
4224
- "Task",
4225
- "Chore",
4226
- "Issue",
4227
- "Decision",
4228
- "Event",
4229
- "Reminder",
4230
- "Milestone",
4231
- "Meeting",
4232
- "Plan"
4233
- ];
4234
- var ITEM_TYPE_VALUES = BUILTIN_ITEM_TYPE_VALUES;
4235
- var STATUS_VALUES = [
4236
- "draft",
4237
- "open",
4238
- "in_progress",
4239
- "blocked",
4240
- "closed",
4241
- "canceled"
4242
- ];
4243
- var RUNTIME_STATUS_ROLE_VALUES = [
4244
- "draft",
4245
- "active",
4246
- "blocked",
4247
- "terminal",
4248
- "terminal_done",
4249
- "terminal_canceled",
4250
- "default_open",
4251
- "default_close",
4252
- "default_cancel"
4253
- ];
4254
- var RUNTIME_FIELD_TYPE_VALUES = ["string", "number", "boolean", "string_array"];
4255
- var RUNTIME_FIELD_COMMAND_VALUES = ["create", "update", "update_many", "list", "search", "calendar", "context"];
4256
- var RUNTIME_UNKNOWN_FIELD_POLICY_VALUES = ["allow", "warn", "reject"];
4257
- var DEPENDENCY_KIND_VALUES = [
4258
- "blocks",
4259
- "parent",
4260
- "child",
4261
- "parent_child",
4262
- "child_of",
4263
- "related",
4264
- "related_to",
4265
- "discovered_from",
4266
- "blocked_by",
4267
- "incident_from",
4268
- "epic",
4269
- "supersedes",
4270
- "task"
4271
- ];
4272
- var SCOPE_VALUES = ["project", "global"];
4273
- var RISK_VALUES = ["low", "medium", "high", "critical"];
4274
- var ISSUE_SEVERITY_VALUES = ["low", "medium", "high", "critical"];
4275
- var CONFIDENCE_TEXT_VALUES = ["low", "medium", "high"];
4276
- var GOVERNANCE_PRESET_VALUES = ["minimal", "default", "strict", "custom"];
4277
- var RECURRENCE_FREQUENCY_VALUES = ["daily", "weekly", "monthly", "yearly"];
4278
- var RECURRENCE_WEEKDAY_VALUES = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"];
4279
- function weekdayOrderIndex(value) {
4280
- return RECURRENCE_WEEKDAY_VALUES.indexOf(value);
5125
+ service,
5126
+ command: activeCommandContext?.command,
5127
+ args: activeCommandContext ? [...activeCommandContext.args] : [],
5128
+ options: activeCommandContext?.options ? { ...activeCommandContext.options } : {},
5129
+ global: activeCommandContext?.global ? { ...activeCommandContext.global } : void 0,
5130
+ pm_root: activeCommandContext?.pm_root,
5131
+ payload
5132
+ };
4281
5133
  }
4282
- var PLAN_MODE_VALUES = [
4283
- "draft",
4284
- "research",
4285
- "review",
4286
- "approved",
4287
- "executing",
4288
- "paused",
4289
- "completed",
4290
- "superseded"
4291
- ];
4292
- var PLAN_STEP_STATUS_VALUES = [
4293
- "pending",
4294
- "in_progress",
4295
- "completed",
4296
- "blocked",
4297
- "skipped",
4298
- "superseded"
4299
- ];
4300
- var PLAN_HARNESS_VALUES = ["codex", "claude-code", "cursor", "generic"];
4301
- var PLAN_STEP_LINK_KIND_VALUES = [
4302
- "related",
4303
- "blocks",
4304
- "blocked_by",
4305
- "depends_on",
4306
- "discovered_from",
4307
- "implements",
4308
- "verifies",
4309
- "supersedes"
4310
- ];
4311
- var CONTEXT_DEPTH_VALUES = ["brief", "standard", "deep", "full"];
4312
- var CONTEXT_SECTION_VALUES = [
4313
- "hierarchy",
4314
- "activity",
4315
- "progress",
4316
- "recently_created",
4317
- "unparented",
4318
- "blockers",
4319
- "files",
4320
- "workload",
4321
- "staleness",
4322
- "tests"
4323
- ];
4324
-
4325
- // dist/types/index.js
4326
- !(function() {
4327
- try {
4328
- var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
4329
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "c57bc662-d60a-54b1-b2da-a7d9d7fde67a");
4330
- } catch (e2) {
5134
+ async function runActiveServiceOverride(service, payload) {
5135
+ if (!activeExtensionServices) {
5136
+ return {
5137
+ handled: false,
5138
+ result: payload,
5139
+ warnings: []
5140
+ };
4331
5141
  }
4332
- })();
5142
+ return runServiceOverride(activeExtensionServices, buildServiceContext(service, payload));
5143
+ }
5144
+ function runActiveServiceOverrideSync(service, payload) {
5145
+ if (!activeExtensionServices) {
5146
+ return {
5147
+ handled: false,
5148
+ result: payload,
5149
+ warnings: []
5150
+ };
5151
+ }
5152
+ return runServiceOverrideSync(activeExtensionServices, buildServiceContext(service, payload));
5153
+ }
4333
5154
 
4334
5155
  // dist/core/schema/runtime-schema.js
4335
5156
  import path6 from "node:path";
4336
5157
  !(function() {
4337
5158
  try {
4338
5159
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
4339
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "c2d4d36f-68de-588d-82d7-a9265fc434ba");
5160
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "d3baeeb6-0912-515f-95c1-735d3849fed4");
4340
5161
  } catch (e2) {
4341
5162
  }
4342
5163
  })();
@@ -4495,7 +5316,7 @@ function normalizeRuntimeFieldDefinition(definition) {
4495
5316
  function normalizeRuntimeSchemaSettings(schema) {
4496
5317
  const files = {
4497
5318
  ...DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,
4498
- ...schema?.files ?? {}
5319
+ ...schema?.files
4499
5320
  };
4500
5321
  const statusesSource = schema?.statuses && schema.statuses.length > 0 ? schema.statuses : DEFAULT_RUNTIME_STATUS_DEFINITIONS;
4501
5322
  const normalizedStatuses = (() => {
@@ -4760,7 +5581,7 @@ async function loadRuntimeSchemaFromOptionalFiles(pmRoot, schema) {
4760
5581
  fields: [...normalizedSchema.fields, ...loadedFields ?? []],
4761
5582
  workflow: {
4762
5583
  ...normalizedSchema.workflow,
4763
- ...loadedWorkflow ?? {}
5584
+ ...loadedWorkflow
4764
5585
  },
4765
5586
  type_workflows: [...normalizedSchema.type_workflows ?? [], ...loadedTypeWorkflows ?? []]
4766
5587
  });
@@ -4922,7 +5743,7 @@ import crypto2 from "node:crypto";
4922
5743
  !(function() {
4923
5744
  try {
4924
5745
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
4925
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "99f2fe3b-ac31-5e50-a687-cc8517987abe");
5746
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "bb00ffab-139c-512c-ac1f-2535f77a1f86");
4926
5747
  } catch (e2) {
4927
5748
  }
4928
5749
  })();
@@ -4972,74 +5793,73 @@ function sortObjectKeys(value) {
4972
5793
  function stableStringify(value) {
4973
5794
  return JSON.stringify(sortObjectKeys(value));
4974
5795
  }
4975
- function stableValueEquals(left, right) {
4976
- if (Object.is(left, right)) {
4977
- return true;
5796
+ function hasUnmatchedEquivalent(leftValue, rightValues, matchedIndexes, equals) {
5797
+ for (let index = 0; index < rightValues.length; index += 1) {
5798
+ if (matchedIndexes.has(index)) {
5799
+ continue;
5800
+ }
5801
+ if (equals(leftValue, rightValues[index])) {
5802
+ matchedIndexes.add(index);
5803
+ return true;
5804
+ }
4978
5805
  }
4979
- if (left === null || right === null || typeof left !== "object" || typeof right !== "object") {
4980
- return false;
5806
+ return false;
5807
+ }
5808
+ function compareRegExpValues(left, right) {
5809
+ if (!(left instanceof RegExp || right instanceof RegExp)) {
5810
+ return void 0;
4981
5811
  }
4982
- if (left instanceof RegExp || right instanceof RegExp) {
4983
- return left instanceof RegExp && right instanceof RegExp && left.toString() === right.toString();
5812
+ return left instanceof RegExp && right instanceof RegExp && left.toString() === right.toString();
5813
+ }
5814
+ function compareDateValues(left, right) {
5815
+ if (!(left instanceof Date || right instanceof Date)) {
5816
+ return void 0;
4984
5817
  }
4985
- if (left instanceof Date || right instanceof Date) {
4986
- return left instanceof Date && right instanceof Date && left.getTime() === right.getTime();
5818
+ return left instanceof Date && right instanceof Date && left.getTime() === right.getTime();
5819
+ }
5820
+ function compareSetValues(left, right) {
5821
+ if (!(left instanceof Set || right instanceof Set)) {
5822
+ return void 0;
4987
5823
  }
4988
- if (left instanceof Set || right instanceof Set) {
4989
- if (!(left instanceof Set && right instanceof Set) || left.size !== right.size) {
4990
- return false;
4991
- }
4992
- const rightValues = [...right];
4993
- const matched = /* @__PURE__ */ new Set();
4994
- for (const leftValue of left) {
4995
- let found = false;
4996
- for (let index = 0; index < rightValues.length; index += 1) {
4997
- if (matched.has(index)) {
4998
- continue;
4999
- }
5000
- if (stableValueEquals(leftValue, rightValues[index])) {
5001
- matched.add(index);
5002
- found = true;
5003
- break;
5004
- }
5005
- }
5006
- if (!found) {
5007
- return false;
5008
- }
5009
- }
5010
- return true;
5824
+ if (!(left instanceof Set && right instanceof Set) || left.size !== right.size) {
5825
+ return false;
5011
5826
  }
5012
- if (left instanceof Map || right instanceof Map) {
5013
- if (!(left instanceof Map && right instanceof Map) || left.size !== right.size) {
5827
+ const rightValues = [...right];
5828
+ const matched = /* @__PURE__ */ new Set();
5829
+ for (const leftValue of left) {
5830
+ if (!hasUnmatchedEquivalent(leftValue, rightValues, matched, stableValueEquals)) {
5014
5831
  return false;
5015
5832
  }
5016
- const rightEntries = [...right.entries()];
5017
- const matched = /* @__PURE__ */ new Set();
5018
- for (const [leftKey, leftValue] of left.entries()) {
5019
- let found = false;
5020
- for (let index = 0; index < rightEntries.length; index += 1) {
5021
- if (matched.has(index)) {
5022
- continue;
5023
- }
5024
- const [rightKey, rightValue] = rightEntries[index];
5025
- if (stableValueEquals(leftKey, rightKey) && stableValueEquals(leftValue, rightValue)) {
5026
- matched.add(index);
5027
- found = true;
5028
- break;
5029
- }
5030
- }
5031
- if (!found) {
5032
- return false;
5033
- }
5034
- }
5035
- return true;
5036
5833
  }
5037
- if (Array.isArray(left) || Array.isArray(right)) {
5038
- if (!Array.isArray(left) || !Array.isArray(right) || left.length !== right.length) {
5834
+ return true;
5835
+ }
5836
+ function compareMapValues(left, right) {
5837
+ if (!(left instanceof Map || right instanceof Map)) {
5838
+ return void 0;
5839
+ }
5840
+ if (!(left instanceof Map && right instanceof Map) || left.size !== right.size) {
5841
+ return false;
5842
+ }
5843
+ const rightEntries = [...right.entries()];
5844
+ const matched = /* @__PURE__ */ new Set();
5845
+ for (const [leftKey, leftValue] of left.entries()) {
5846
+ const leftEntry = [leftKey, leftValue];
5847
+ if (!hasUnmatchedEquivalent(leftEntry, rightEntries, matched, ([candidateKey, candidateValue], [rightKey, rightValue]) => stableValueEquals(candidateKey, rightKey) && stableValueEquals(candidateValue, rightValue))) {
5039
5848
  return false;
5040
5849
  }
5041
- return left.every((value, index) => stableValueEquals(value, right[index]));
5042
5850
  }
5851
+ return true;
5852
+ }
5853
+ function compareArrayValues(left, right) {
5854
+ if (!(Array.isArray(left) || Array.isArray(right))) {
5855
+ return void 0;
5856
+ }
5857
+ if (!Array.isArray(left) || !Array.isArray(right) || left.length !== right.length) {
5858
+ return false;
5859
+ }
5860
+ return left.every((value, index) => stableValueEquals(value, right[index]));
5861
+ }
5862
+ function comparePlainObjectValues(left, right) {
5043
5863
  const leftKeys = Object.keys(left).sort((a, b) => a.localeCompare(b));
5044
5864
  const rightKeys = Object.keys(right).sort((a, b) => a.localeCompare(b));
5045
5865
  if (leftKeys.length !== rightKeys.length) {
@@ -5056,6 +5876,28 @@ function stableValueEquals(left, right) {
5056
5876
  }
5057
5877
  return true;
5058
5878
  }
5879
+ var SPECIALIZED_STABLE_VALUE_COMPARISONS = [
5880
+ compareRegExpValues,
5881
+ compareDateValues,
5882
+ compareSetValues,
5883
+ compareMapValues,
5884
+ compareArrayValues
5885
+ ];
5886
+ function stableValueEquals(left, right) {
5887
+ if (Object.is(left, right)) {
5888
+ return true;
5889
+ }
5890
+ if (left === null || right === null || typeof left !== "object" || typeof right !== "object") {
5891
+ return false;
5892
+ }
5893
+ for (const compare of SPECIALIZED_STABLE_VALUE_COMPARISONS) {
5894
+ const result = compare(left, right);
5895
+ if (result !== void 0) {
5896
+ return result;
5897
+ }
5898
+ }
5899
+ return comparePlainObjectValues(left, right);
5900
+ }
5059
5901
  function sha256Hex(value) {
5060
5902
  return crypto2.createHash("sha256").update(value, "utf8").digest("hex");
5061
5903
  }
@@ -5415,94 +6257,6 @@ function validateSettings(raw) {
5415
6257
  return { success: true, data: result.value };
5416
6258
  }
5417
6259
 
5418
- // dist/core/item/item-type-definition.js
5419
- !(function() {
5420
- try {
5421
- var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5422
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "257435ee-2ef3-5736-a403-57d6265cf280");
5423
- } catch (e2) {
5424
- }
5425
- })();
5426
- function normalizeItemTypeStringList(values) {
5427
- return [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
5428
- }
5429
- function normalizeItemTypeOption(option) {
5430
- const key = option.key.trim();
5431
- if (key.length === 0) {
5432
- return null;
5433
- }
5434
- const aliases = normalizeItemTypeStringList(option.aliases);
5435
- const description = option.description?.trim();
5436
- return {
5437
- key,
5438
- values: normalizeItemTypeStringList(option.values),
5439
- required: option.required === true ? true : void 0,
5440
- aliases: aliases.length > 0 ? aliases : void 0,
5441
- description: description && description.length > 0 ? description : void 0
5442
- };
5443
- }
5444
- var keepPolicyCommand = (command) => command;
5445
- var strictPolicyCommand = (command) => {
5446
- const normalized = command.trim().toLowerCase();
5447
- return normalized === "create" || normalized === "update" ? normalized : null;
5448
- };
5449
- function normalizeItemTypeCommandOptionPolicy(policy, resolvePolicyCommand) {
5450
- const command = resolvePolicyCommand(policy.command);
5451
- if (command === null) {
5452
- return null;
5453
- }
5454
- const option = policy.option.trim();
5455
- if (option.length === 0) {
5456
- return null;
5457
- }
5458
- return {
5459
- command,
5460
- option,
5461
- required: policy.required,
5462
- visible: policy.visible,
5463
- enabled: policy.enabled
5464
- };
5465
- }
5466
- function normalizeItemTypeCommandOptionPolicies(policies, resolvePolicyCommand) {
5467
- const dedupedByKey = /* @__PURE__ */ new Map();
5468
- for (const policy of policies ?? []) {
5469
- const normalized = normalizeItemTypeCommandOptionPolicy(policy, resolvePolicyCommand);
5470
- if (!normalized) {
5471
- continue;
5472
- }
5473
- dedupedByKey.set(`${normalized.command}:${normalized.option.toLowerCase()}`, normalized);
5474
- }
5475
- return [...dedupedByKey.values()].sort((left, right) => left.command === right.command ? left.option.localeCompare(right.option) : left.command.localeCompare(right.command));
5476
- }
5477
- function normalizeItemTypeDefinition(definition, options = {}) {
5478
- const resolvePolicyCommand = options.resolvePolicyCommand ?? keepPolicyCommand;
5479
- const name = definition.name.trim();
5480
- if (name.length === 0) {
5481
- return null;
5482
- }
5483
- const hasRequiredCreateFields = definition.required_create_fields !== void 0;
5484
- const hasRequiredCreateRepeatables = definition.required_create_repeatables !== void 0;
5485
- const hasOptions = definition.options !== void 0;
5486
- const hasCommandOptionPolicies = definition.command_option_policies !== void 0;
5487
- const folder = definition.folder?.trim();
5488
- const description = definition.description?.trim();
5489
- const defaultStatus = definition.default_status?.trim();
5490
- const aliases = normalizeItemTypeStringList(definition.aliases);
5491
- const normalizedOptions = (definition.options ?? []).map((option) => normalizeItemTypeOption(option)).filter((option) => option !== null).sort((left, right) => left.key.localeCompare(right.key));
5492
- const commandOptionPolicies = normalizeItemTypeCommandOptionPolicies(definition.command_option_policies, resolvePolicyCommand);
5493
- return {
5494
- name,
5495
- description: description && description.length > 0 ? description : void 0,
5496
- default_status: defaultStatus && defaultStatus.length > 0 ? defaultStatus : void 0,
5497
- folder: folder && folder.length > 0 ? folder : void 0,
5498
- aliases: aliases.length > 0 ? aliases : void 0,
5499
- required_create_fields: hasRequiredCreateFields ? normalizeItemTypeStringList(definition.required_create_fields) : void 0,
5500
- required_create_repeatables: hasRequiredCreateRepeatables ? normalizeItemTypeStringList(definition.required_create_repeatables) : void 0,
5501
- options: hasOptions ? normalizedOptions : void 0,
5502
- command_option_policies: hasCommandOptionPolicies ? commandOptionPolicies : void 0
5503
- };
5504
- }
5505
-
5506
6260
  // dist/core/validate/estimate-defaults.js
5507
6261
  !(function() {
5508
6262
  try {
@@ -5653,7 +6407,7 @@ function clearSettingsReadCache(pmRoot) {
5653
6407
  !(function() {
5654
6408
  try {
5655
6409
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5656
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "45ec3f18-8048-5e45-acc9-7544f0bffbde");
6410
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "76965ca9-e890-5aa2-a7ca-22f8d179dd5c");
5657
6411
  } catch (e2) {
5658
6412
  }
5659
6413
  })();
@@ -6126,19 +6880,19 @@ function mergeSettings(settings) {
6126
6880
  ...settings,
6127
6881
  item_format: settings.item_format === "json_markdown" ? "toon" : settings.item_format ?? defaults.item_format,
6128
6882
  locks: { ...defaults.locks, ...settings.locks },
6129
- checkpoints: { ...defaults.checkpoints, ...settings.checkpoints ?? {} },
6883
+ checkpoints: { ...defaults.checkpoints, ...settings.checkpoints },
6130
6884
  output: { ...defaults.output, ...settings.output },
6131
6885
  history: {
6132
6886
  ...defaults.history,
6133
- ...settings.history ?? {},
6887
+ ...settings.history,
6134
6888
  compact_policy: {
6135
6889
  ...defaults.history.compact_policy,
6136
- ...settings.history?.compact_policy ?? {}
6890
+ ...settings.history?.compact_policy
6137
6891
  }
6138
6892
  },
6139
6893
  validation: {
6140
6894
  ...defaults.validation,
6141
- ...settings.validation ?? {},
6895
+ ...settings.validation,
6142
6896
  parent_reference: governance.parent_reference,
6143
6897
  metadata_profile: governance.metadata_profile,
6144
6898
  metadata_required_fields: normalizeValidationMetadataRequiredFields(settings.validation?.metadata_required_fields),
@@ -6174,7 +6928,7 @@ function mergeSettings(settings) {
6174
6928
  stale_threshold_days: settings.context?.stale_threshold_days ?? defaults.context.stale_threshold_days,
6175
6929
  sections: {
6176
6930
  ...defaults.context.sections,
6177
- ...settings.context?.sections ?? {}
6931
+ ...settings.context?.sections
6178
6932
  }
6179
6933
  },
6180
6934
  extensions: {
@@ -6188,13 +6942,13 @@ function mergeSettings(settings) {
6188
6942
  mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(settings.search?.mutation_refresh_policy),
6189
6943
  query_expansion: {
6190
6944
  ...defaults.search.query_expansion,
6191
- ...settings.search?.query_expansion ?? {},
6945
+ ...settings.search?.query_expansion,
6192
6946
  enabled: normalizeSearchQueryExpansionEnabled(settings.search?.query_expansion?.enabled),
6193
6947
  provider: normalizeSearchQueryExpansionProvider(settings.search?.query_expansion?.provider)
6194
6948
  },
6195
6949
  rerank: {
6196
6950
  ...defaults.search.rerank,
6197
- ...settings.search?.rerank ?? {},
6951
+ ...settings.search?.rerank,
6198
6952
  enabled: normalizeSearchRerankEnabled(settings.search?.rerank?.enabled),
6199
6953
  model: normalizeSearchRerankModel(settings.search?.rerank?.model),
6200
6954
  top_k: normalizeSearchRerankTopK(settings.search?.rerank?.top_k)
@@ -6266,13 +7020,13 @@ function serializeSettings(settings, options = {}) {
6266
7020
  mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(baseSettings.search?.mutation_refresh_policy),
6267
7021
  query_expansion: {
6268
7022
  ...SETTINGS_DEFAULTS.search.query_expansion,
6269
- ...baseSettings.search?.query_expansion ?? {},
7023
+ ...baseSettings.search?.query_expansion,
6270
7024
  enabled: normalizeSearchQueryExpansionEnabled(baseSettings.search?.query_expansion?.enabled),
6271
7025
  provider: normalizeSearchQueryExpansionProvider(baseSettings.search?.query_expansion?.provider)
6272
7026
  },
6273
7027
  rerank: {
6274
7028
  ...SETTINGS_DEFAULTS.search.rerank,
6275
- ...baseSettings.search?.rerank ?? {},
7029
+ ...baseSettings.search?.rerank,
6276
7030
  enabled: normalizeSearchRerankEnabled(baseSettings.search?.rerank?.enabled),
6277
7031
  model: normalizeSearchRerankModel(baseSettings.search?.rerank?.model),
6278
7032
  top_k: normalizeSearchRerankTopK(baseSettings.search?.rerank?.top_k)
@@ -6284,7 +7038,7 @@ function serializeSettings(settings, options = {}) {
6284
7038
  stale_threshold_days: baseSettings.context?.stale_threshold_days ?? SETTINGS_DEFAULTS.context.stale_threshold_days,
6285
7039
  sections: {
6286
7040
  ...SETTINGS_DEFAULTS.context.sections,
6287
- ...baseSettings.context?.sections ?? {}
7041
+ ...baseSettings.context?.sections
6288
7042
  }
6289
7043
  },
6290
7044
  extensions: {
@@ -6296,8 +7050,8 @@ function serializeSettings(settings, options = {}) {
6296
7050
  ...baseSettings.vector_store,
6297
7051
  adapter: baseSettings.vector_store?.adapter ?? SETTINGS_DEFAULTS.vector_store.adapter,
6298
7052
  collection_name: normalizeVectorStoreCollectionName(baseSettings.vector_store?.collection_name),
6299
- qdrant: { ...baseSettings.vector_store?.qdrant ?? {} },
6300
- lancedb: { ...baseSettings.vector_store?.lancedb ?? {} }
7053
+ qdrant: { ...baseSettings.vector_store?.qdrant },
7054
+ lancedb: { ...baseSettings.vector_store?.lancedb }
6301
7055
  }
6302
7056
  };
6303
7057
  const ordered = orderObject({
@@ -6598,6 +7352,33 @@ export {
6598
7352
  EMPTY_CANONICAL_DOCUMENT,
6599
7353
  EXIT_CODE,
6600
7354
  resolveTelemetryErrorCategory,
7355
+ BUILTIN_ITEM_TYPE_VALUES,
7356
+ STATUS_VALUES,
7357
+ RUNTIME_STATUS_ROLE_VALUES,
7358
+ RUNTIME_FIELD_TYPE_VALUES,
7359
+ RUNTIME_FIELD_COMMAND_VALUES,
7360
+ DEPENDENCY_KIND_VALUES,
7361
+ SCOPE_VALUES,
7362
+ RISK_VALUES,
7363
+ ISSUE_SEVERITY_VALUES,
7364
+ CONFIDENCE_TEXT_VALUES,
7365
+ RECURRENCE_FREQUENCY_VALUES,
7366
+ RECURRENCE_WEEKDAY_VALUES,
7367
+ weekdayOrderIndex,
7368
+ PLAN_MODE_VALUES,
7369
+ PLAN_STEP_STATUS_VALUES,
7370
+ PLAN_HARNESS_VALUES,
7371
+ PLAN_STEP_LINK_KIND_VALUES,
7372
+ CONTEXT_DEPTH_VALUES,
7373
+ CONTEXT_SECTION_VALUES,
7374
+ canonicalizeCommandOptionKey,
7375
+ commandOptionFlagLabel,
7376
+ toDefaultFolder,
7377
+ resolveItemTypeRegistry,
7378
+ resolveTypeName,
7379
+ resolveTypeDefinition,
7380
+ resolveCommandOptionPolicyState,
7381
+ validateTypeOptions,
6601
7382
  ITEM_FILE_EXTENSIONS,
6602
7383
  resolvePmRoot,
6603
7384
  resolveGlobalPmRoot,
@@ -6667,29 +7448,6 @@ export {
6667
7448
  runActiveRendererOverride,
6668
7449
  runActiveServiceOverride,
6669
7450
  runActiveServiceOverrideSync,
6670
- BUILTIN_ITEM_TYPE_VALUES,
6671
- ITEM_TYPE_VALUES,
6672
- STATUS_VALUES,
6673
- RUNTIME_STATUS_ROLE_VALUES,
6674
- RUNTIME_FIELD_TYPE_VALUES,
6675
- RUNTIME_FIELD_COMMAND_VALUES,
6676
- DEPENDENCY_KIND_VALUES,
6677
- SCOPE_VALUES,
6678
- RISK_VALUES,
6679
- ISSUE_SEVERITY_VALUES,
6680
- CONFIDENCE_TEXT_VALUES,
6681
- RECURRENCE_FREQUENCY_VALUES,
6682
- RECURRENCE_WEEKDAY_VALUES,
6683
- weekdayOrderIndex,
6684
- PLAN_MODE_VALUES,
6685
- PLAN_STEP_STATUS_VALUES,
6686
- PLAN_HARNESS_VALUES,
6687
- PLAN_STEP_LINK_KIND_VALUES,
6688
- CONTEXT_DEPTH_VALUES,
6689
- CONTEXT_SECTION_VALUES,
6690
- normalizeItemTypeStringList,
6691
- strictPolicyCommand,
6692
- normalizeItemTypeDefinition,
6693
7451
  DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,
6694
7452
  DEFAULT_RUNTIME_STATUS_DEFINITIONS,
6695
7453
  normalizeRuntimeSchemaSettings,
@@ -6712,4 +7470,4 @@ export {
6712
7470
  readSettings,
6713
7471
  writeSettings
6714
7472
  };
6715
- //# sourceMappingURL=chunk-MJTSZKK5.js.map
7473
+ //# sourceMappingURL=chunk-SNUK7H5J.js.map