@unbrained/pm-cli 2026.7.1 → 2026.7.3

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 (625) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/CHANGELOG.md +25 -0
  3. package/CONTRIBUTING.md +2 -2
  4. package/README.md +1 -1
  5. package/dist/cli/commander-usage.d.ts +2 -0
  6. package/dist/cli/commander-usage.js +110 -86
  7. package/dist/cli/commander-usage.js.map +1 -1
  8. package/dist/cli/commands/activity.js +79 -57
  9. package/dist/cli/commands/activity.js.map +1 -1
  10. package/dist/cli/commands/aggregate.js +102 -79
  11. package/dist/cli/commands/aggregate.js.map +1 -1
  12. package/dist/cli/commands/calendar.js +278 -243
  13. package/dist/cli/commands/calendar.js.map +1 -1
  14. package/dist/cli/commands/close-many.js +176 -114
  15. package/dist/cli/commands/close-many.js.map +1 -1
  16. package/dist/cli/commands/close.js +157 -129
  17. package/dist/cli/commands/close.js.map +1 -1
  18. package/dist/cli/commands/comments-audit.js +50 -42
  19. package/dist/cli/commands/comments-audit.js.map +1 -1
  20. package/dist/cli/commands/config.d.ts +2 -0
  21. package/dist/cli/commands/config.js +443 -879
  22. package/dist/cli/commands/config.js.map +1 -1
  23. package/dist/cli/commands/context.js +365 -287
  24. package/dist/cli/commands/context.js.map +1 -1
  25. package/dist/cli/commands/contracts.js +352 -238
  26. package/dist/cli/commands/contracts.js.map +1 -1
  27. package/dist/cli/commands/create.js +32 -17
  28. package/dist/cli/commands/create.js.map +1 -1
  29. package/dist/cli/commands/dedupe-audit.js +46 -39
  30. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  31. package/dist/cli/commands/dedupe-merge.js +88 -69
  32. package/dist/cli/commands/dedupe-merge.js.map +1 -1
  33. package/dist/cli/commands/extension/doctor.js +56 -67
  34. package/dist/cli/commands/extension/doctor.js.map +1 -1
  35. package/dist/cli/commands/extension/shared.js +21 -15
  36. package/dist/cli/commands/extension/shared.js.map +1 -1
  37. package/dist/cli/commands/get.js +114 -81
  38. package/dist/cli/commands/get.js.map +1 -1
  39. package/dist/cli/commands/health.d.ts +17 -0
  40. package/dist/cli/commands/health.js +545 -417
  41. package/dist/cli/commands/health.js.map +1 -1
  42. package/dist/cli/commands/history-compact.js +209 -140
  43. package/dist/cli/commands/history-compact.js.map +1 -1
  44. package/dist/cli/commands/history-redact.js +162 -119
  45. package/dist/cli/commands/history-redact.js.map +1 -1
  46. package/dist/cli/commands/history-repair.js +120 -85
  47. package/dist/cli/commands/history-repair.js.map +1 -1
  48. package/dist/cli/commands/init-agent-guidance.js +32 -19
  49. package/dist/cli/commands/init-agent-guidance.js.map +1 -1
  50. package/dist/cli/commands/init.d.ts +8 -2
  51. package/dist/cli/commands/init.js +263 -162
  52. package/dist/cli/commands/init.js.map +1 -1
  53. package/dist/cli/commands/list.js +152 -102
  54. package/dist/cli/commands/list.js.map +1 -1
  55. package/dist/cli/commands/next.js +60 -40
  56. package/dist/cli/commands/next.js.map +1 -1
  57. package/dist/cli/commands/plan.js +373 -298
  58. package/dist/cli/commands/plan.js.map +1 -1
  59. package/dist/cli/commands/profile.js +23 -15
  60. package/dist/cli/commands/profile.js.map +1 -1
  61. package/dist/cli/commands/recurrence-parsers.js +43 -25
  62. package/dist/cli/commands/recurrence-parsers.js.map +1 -1
  63. package/dist/cli/commands/reindex.d.ts +21 -5
  64. package/dist/cli/commands/reindex.js +345 -205
  65. package/dist/cli/commands/reindex.js.map +1 -1
  66. package/dist/cli/commands/restore.d.ts +8 -7
  67. package/dist/cli/commands/restore.js +105 -69
  68. package/dist/cli/commands/restore.js.map +1 -1
  69. package/dist/cli/commands/schema.js +33 -30
  70. package/dist/cli/commands/schema.js.map +1 -1
  71. package/dist/cli/commands/search.d.ts +10 -2
  72. package/dist/cli/commands/search.js +503 -470
  73. package/dist/cli/commands/search.js.map +1 -1
  74. package/dist/cli/commands/telemetry.js +98 -87
  75. package/dist/cli/commands/telemetry.js.map +1 -1
  76. package/dist/cli/commands/test-all.js +237 -168
  77. package/dist/cli/commands/test-all.js.map +1 -1
  78. package/dist/cli/commands/test.d.ts +6 -5
  79. package/dist/cli/commands/test.js +424 -344
  80. package/dist/cli/commands/test.js.map +1 -1
  81. package/dist/cli/commands/update-many.js +57 -42
  82. package/dist/cli/commands/update-many.js.map +1 -1
  83. package/dist/cli/commands/update.d.ts +1 -1
  84. package/dist/cli/commands/update.js +738 -671
  85. package/dist/cli/commands/update.js.map +1 -1
  86. package/dist/cli/commands/validate.d.ts +20 -1
  87. package/dist/cli/commands/validate.js +478 -343
  88. package/dist/cli/commands/validate.js.map +1 -1
  89. package/dist/cli/error-guidance.js +406 -361
  90. package/dist/cli/error-guidance.js.map +1 -1
  91. package/dist/cli/extension-command-help.js +27 -19
  92. package/dist/cli/extension-command-help.js.map +1 -1
  93. package/dist/cli/help-json-payload.js +57 -49
  94. package/dist/cli/help-json-payload.js.map +1 -1
  95. package/dist/cli/main.d.ts +47 -0
  96. package/dist/cli/main.js +474 -371
  97. package/dist/cli/main.js.map +1 -1
  98. package/dist/cli/migration-gates.js +22 -45
  99. package/dist/cli/migration-gates.js.map +1 -1
  100. package/dist/cli/register-list-query.js +299 -310
  101. package/dist/cli/register-list-query.js.map +1 -1
  102. package/dist/cli/register-mutation.js +763 -779
  103. package/dist/cli/register-mutation.js.map +1 -1
  104. package/dist/cli/register-operations.js +386 -362
  105. package/dist/cli/register-operations.js.map +1 -1
  106. package/dist/cli/register-setup.js +120 -101
  107. package/dist/cli/register-setup.js.map +1 -1
  108. package/dist/cli/registration-helpers.d.ts +4 -0
  109. package/dist/cli/registration-helpers.js +45 -56
  110. package/dist/cli/registration-helpers.js.map +1 -1
  111. package/dist/cli-bundle/chunks/{activity-DBLQVIP6.js → activity-5YWLSPGE.js} +9 -9
  112. package/dist/cli-bundle/chunks/activity-BIML7K2D.js +16 -0
  113. package/dist/cli-bundle/chunks/{aggregate-SDF7DUOD.js → aggregate-2V2M3JZU.js} +107 -83
  114. package/dist/cli-bundle/chunks/{aggregate-SDF7DUOD.js.map → aggregate-2V2M3JZU.js.map} +2 -2
  115. package/dist/cli-bundle/chunks/{aggregate-JTEF4BP7.js → aggregate-EK7DXML7.js} +108 -84
  116. package/dist/cli-bundle/chunks/aggregate-EK7DXML7.js.map +1 -0
  117. package/dist/cli-bundle/chunks/{append-LOVPGVPT.js → append-EZESUVJT.js} +8 -8
  118. package/dist/cli-bundle/chunks/{append-QCFJSDFL.js → append-JFG4WQMG.js} +8 -8
  119. package/dist/cli-bundle/chunks/{chunk-TP5Q5ZD3.js → chunk-32IUNTG4.js} +158 -119
  120. package/dist/cli-bundle/chunks/chunk-32IUNTG4.js.map +1 -0
  121. package/dist/cli-bundle/chunks/{chunk-BHO33VBQ.js → chunk-3W2HJKJX.js} +3 -3
  122. package/dist/cli-bundle/chunks/{chunk-VARHOHYV.js → chunk-4EXFFP7T.js} +86 -52
  123. package/dist/cli-bundle/chunks/chunk-4EXFFP7T.js.map +7 -0
  124. package/dist/cli-bundle/chunks/{chunk-4DUVCVLZ.js → chunk-4PFVUUYV.js} +2 -2
  125. package/dist/cli-bundle/chunks/{chunk-JSU5P7VS.js → chunk-4WB6S4YX.js} +308 -184
  126. package/dist/cli-bundle/chunks/chunk-4WB6S4YX.js.map +1 -0
  127. package/dist/cli-bundle/chunks/{chunk-HXTQJXWT.js → chunk-572FKBRL.js} +61 -102
  128. package/dist/cli-bundle/chunks/chunk-572FKBRL.js.map +1 -0
  129. package/dist/cli-bundle/chunks/{chunk-IJYK2T43.js → chunk-5E7N4T2Z.js} +2 -2
  130. package/dist/cli-bundle/chunks/{chunk-NKZAN7BD.js → chunk-5IZUBZBR.js} +3 -3
  131. package/dist/cli-bundle/chunks/{chunk-NOLPZMSV.js → chunk-5JIWFWOZ.js} +2 -2
  132. package/dist/cli-bundle/chunks/{chunk-FFMQB7WR.js → chunk-67LARBDL.js} +493 -404
  133. package/dist/cli-bundle/chunks/chunk-67LARBDL.js.map +1 -0
  134. package/dist/cli-bundle/chunks/{chunk-6AQZPVHQ.js → chunk-6CDCWKSX.js} +4 -4
  135. package/dist/cli-bundle/chunks/{chunk-3K2M5OYU.js → chunk-6KRFL33E.js} +308 -184
  136. package/dist/cli-bundle/chunks/chunk-6KRFL33E.js.map +7 -0
  137. package/dist/cli-bundle/chunks/{chunk-LB6TP6MC.js → chunk-6NYJGMTY.js} +2 -2
  138. package/dist/cli-bundle/chunks/{chunk-SLMUGTK3.js → chunk-7CLLC75T.js} +4 -4
  139. package/dist/cli-bundle/chunks/{chunk-2466X6E4.js → chunk-7LYO6S5A.js} +8 -8
  140. package/dist/cli-bundle/chunks/{chunk-W4ULYO7Z.js → chunk-A3OQ7TFW.js} +8 -8
  141. package/dist/cli-bundle/chunks/{chunk-5CGRF3L5.js → chunk-AIKU3IIL.js} +153 -90
  142. package/dist/cli-bundle/chunks/chunk-AIKU3IIL.js.map +1 -0
  143. package/dist/cli-bundle/chunks/{chunk-WYDHYJPO.js → chunk-AJHYQCBJ.js} +39 -5
  144. package/dist/cli-bundle/chunks/chunk-AJHYQCBJ.js.map +7 -0
  145. package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js → chunk-B4O5S7I3.js} +79 -57
  146. package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js.map → chunk-B4O5S7I3.js.map} +2 -2
  147. package/dist/cli-bundle/chunks/{chunk-OTUHB4HS.js → chunk-BE2SR6QL.js} +92 -77
  148. package/dist/cli-bundle/chunks/chunk-BE2SR6QL.js.map +1 -0
  149. package/dist/cli-bundle/chunks/{chunk-JLM7BHI7.js → chunk-BI4R7HI2.js} +75 -53
  150. package/dist/cli-bundle/chunks/chunk-BI4R7HI2.js.map +7 -0
  151. package/dist/cli-bundle/chunks/{chunk-AXIDKKAT.js → chunk-CXR3CMBQ.js} +33 -6
  152. package/dist/cli-bundle/chunks/chunk-CXR3CMBQ.js.map +1 -0
  153. package/dist/cli-bundle/chunks/{chunk-ZETXE4SE.js → chunk-ECU6MMTQ.js} +713 -613
  154. package/dist/cli-bundle/chunks/chunk-ECU6MMTQ.js.map +1 -0
  155. package/dist/cli-bundle/chunks/{chunk-2D4HATP2.js → chunk-EJ2OCBHF.js} +54 -30
  156. package/dist/cli-bundle/chunks/chunk-EJ2OCBHF.js.map +1 -0
  157. package/dist/cli-bundle/chunks/{chunk-BDTISOSD.js → chunk-EQURFOMH.js} +41 -26
  158. package/dist/cli-bundle/chunks/chunk-EQURFOMH.js.map +7 -0
  159. package/dist/cli-bundle/chunks/{chunk-GJ326ZKX.js → chunk-ER4ME5U2.js} +3 -3
  160. package/dist/cli-bundle/chunks/{chunk-HZZEHPRG.js → chunk-ERG65A2L.js} +2 -2
  161. package/dist/cli-bundle/chunks/{chunk-IZBR4NRW.js → chunk-F6WNBITZ.js} +157 -113
  162. package/dist/cli-bundle/chunks/chunk-F6WNBITZ.js.map +7 -0
  163. package/dist/cli-bundle/chunks/{chunk-L5OEFZQG.js → chunk-FH2H3CBD.js} +3 -3
  164. package/dist/cli-bundle/chunks/{chunk-JPECA746.js → chunk-FUFFPIYA.js} +2 -2
  165. package/dist/cli-bundle/chunks/{chunk-CF7RL6FR.js → chunk-FZJM2TXF.js} +110 -73
  166. package/dist/cli-bundle/chunks/chunk-FZJM2TXF.js.map +1 -0
  167. package/dist/cli-bundle/chunks/{chunk-27BXPBAY.js → chunk-GUYNUXQT.js} +3 -3
  168. package/dist/cli-bundle/chunks/{chunk-MAUKX7JC.js → chunk-GVJE5T7Q.js} +2 -2
  169. package/dist/cli-bundle/chunks/{chunk-3J6JRJ3I.js → chunk-HB4FAT3O.js} +42 -60
  170. package/dist/cli-bundle/chunks/chunk-HB4FAT3O.js.map +7 -0
  171. package/dist/cli-bundle/chunks/{chunk-55SNVXRQ.js → chunk-HQAF23Q2.js} +626 -484
  172. package/dist/cli-bundle/chunks/chunk-HQAF23Q2.js.map +7 -0
  173. package/dist/cli-bundle/chunks/{chunk-ZRP4VG5U.js → chunk-JBZ2NTKX.js} +2 -2
  174. package/dist/cli-bundle/chunks/{chunk-RMMQ74TG.js → chunk-JPATY4SE.js} +54 -30
  175. package/dist/cli-bundle/chunks/chunk-JPATY4SE.js.map +7 -0
  176. package/dist/cli-bundle/chunks/{chunk-IPYBJWTE.js → chunk-K5DT2YKM.js} +109 -72
  177. package/dist/cli-bundle/chunks/chunk-K5DT2YKM.js.map +7 -0
  178. package/dist/cli-bundle/chunks/{chunk-EJUDVUYZ.js → chunk-KEZOIPCR.js} +3 -3
  179. package/dist/cli-bundle/chunks/{chunk-RVUALSJF.js → chunk-KHVGM5CS.js} +466 -365
  180. package/dist/cli-bundle/chunks/chunk-KHVGM5CS.js.map +7 -0
  181. package/dist/cli-bundle/chunks/{chunk-YITK2PJ6.js → chunk-KS6ATO47.js} +288 -175
  182. package/dist/cli-bundle/chunks/chunk-KS6ATO47.js.map +7 -0
  183. package/dist/cli-bundle/chunks/{chunk-7R4QEMZZ.js → chunk-L4SLHV6G.js} +463 -362
  184. package/dist/cli-bundle/chunks/chunk-L4SLHV6G.js.map +1 -0
  185. package/dist/cli-bundle/chunks/{chunk-RLDHZHQS.js → chunk-LBE5QFMZ.js} +158 -114
  186. package/dist/cli-bundle/chunks/chunk-LBE5QFMZ.js.map +1 -0
  187. package/dist/cli-bundle/chunks/{chunk-22WKIL3H.js → chunk-LCWQP6NM.js} +76 -54
  188. package/dist/cli-bundle/chunks/chunk-LCWQP6NM.js.map +1 -0
  189. package/dist/cli-bundle/chunks/{chunk-KNPEF7QG.js → chunk-LOWVNZBZ.js} +91 -76
  190. package/dist/cli-bundle/chunks/chunk-LOWVNZBZ.js.map +7 -0
  191. package/dist/cli-bundle/chunks/{chunk-HYTGA6GI.js → chunk-MDHWWBNZ.js} +3 -3
  192. package/dist/cli-bundle/chunks/{chunk-N74UMG5H.js → chunk-MEZZZBYX.js} +2 -2
  193. package/dist/cli-bundle/chunks/{chunk-V3NOKJF2.js → chunk-MHRS5FUX.js} +288 -175
  194. package/dist/cli-bundle/chunks/chunk-MHRS5FUX.js.map +1 -0
  195. package/dist/cli-bundle/chunks/{chunk-3XZCOZ5J.js → chunk-NOIEVOK5.js} +391 -313
  196. package/dist/cli-bundle/chunks/chunk-NOIEVOK5.js.map +1 -0
  197. package/dist/cli-bundle/chunks/{chunk-SDR5J34Q.js → chunk-NZ7QIUP5.js} +4 -4
  198. package/dist/cli-bundle/chunks/{chunk-UYUYDGIB.js → chunk-OGLGI22K.js} +115 -67
  199. package/dist/cli-bundle/chunks/{chunk-UYUYDGIB.js.map → chunk-OGLGI22K.js.map} +1 -1
  200. package/dist/cli-bundle/chunks/{chunk-DDPTYJIM.js → chunk-P5L7Z2O6.js} +2 -2
  201. package/dist/cli-bundle/chunks/{chunk-BZCEN4JA.js → chunk-PULUSQAV.js} +492 -403
  202. package/dist/cli-bundle/chunks/chunk-PULUSQAV.js.map +7 -0
  203. package/dist/cli-bundle/chunks/{chunk-3VGN2UWE.js → chunk-QCDTQCMW.js} +22 -30
  204. package/dist/cli-bundle/chunks/chunk-QCDTQCMW.js.map +1 -0
  205. package/dist/cli-bundle/chunks/{chunk-4A3BJ675.js → chunk-QNNQAAZ5.js} +24 -18
  206. package/dist/cli-bundle/chunks/{chunk-4A3BJ675.js.map → chunk-QNNQAAZ5.js.map} +1 -1
  207. package/dist/cli-bundle/chunks/{chunk-MDPEOIGN.js → chunk-RAHINBVP.js} +60 -101
  208. package/dist/cli-bundle/chunks/chunk-RAHINBVP.js.map +7 -0
  209. package/dist/cli-bundle/chunks/{chunk-CWFNTKQJ.js → chunk-RJH5VQHW.js} +43 -61
  210. package/dist/cli-bundle/chunks/chunk-RJH5VQHW.js.map +1 -0
  211. package/dist/cli-bundle/chunks/{chunk-OGXLACHC.js → chunk-SU2E4AWU.js} +6 -6
  212. package/dist/cli-bundle/chunks/{chunk-HPPFYYOV.js → chunk-SU3TB4NS.js} +2 -2
  213. package/dist/cli-bundle/chunks/{chunk-JWXRETDF.js → chunk-SYE6WMV6.js} +626 -484
  214. package/dist/cli-bundle/chunks/chunk-SYE6WMV6.js.map +1 -0
  215. package/dist/cli-bundle/chunks/{chunk-NWMZWYYB.js → chunk-T3P7PMZP.js} +42 -27
  216. package/dist/cli-bundle/chunks/chunk-T3P7PMZP.js.map +1 -0
  217. package/dist/cli-bundle/chunks/{chunk-G7I7DEZA.js → chunk-T4XBKJ3F.js} +4 -4
  218. package/dist/cli-bundle/chunks/{chunk-RH5ZBYFD.js → chunk-T6AXEBOP.js} +23 -17
  219. package/dist/cli-bundle/chunks/{chunk-RH5ZBYFD.js.map → chunk-T6AXEBOP.js.map} +2 -2
  220. package/dist/cli-bundle/chunks/{chunk-5QFDBI4F.js → chunk-TQ6AX5SQ.js} +58 -69
  221. package/dist/cli-bundle/chunks/{chunk-5QFDBI4F.js.map → chunk-TQ6AX5SQ.js.map} +2 -2
  222. package/dist/cli-bundle/chunks/{chunk-4XOIEKSD.js → chunk-U3S2B7TA.js} +86 -52
  223. package/dist/cli-bundle/chunks/chunk-U3S2B7TA.js.map +1 -0
  224. package/dist/cli-bundle/chunks/{chunk-VICZWYGZ.js → chunk-U5TR4N7J.js} +7 -7
  225. package/dist/cli-bundle/chunks/{chunk-EVMTBV6V.js → chunk-UMNQZS4H.js} +3 -3
  226. package/dist/cli-bundle/chunks/{chunk-A7FPBAQS.js → chunk-WJA3PXW7.js} +7 -7
  227. package/dist/cli-bundle/chunks/{chunk-RGEMWD6Q.js → chunk-WRYERRZX.js} +157 -118
  228. package/dist/cli-bundle/chunks/chunk-WRYERRZX.js.map +7 -0
  229. package/dist/cli-bundle/chunks/{chunk-NUHHPVVS.js → chunk-WYOIIFSE.js} +712 -612
  230. package/dist/cli-bundle/chunks/chunk-WYOIIFSE.js.map +7 -0
  231. package/dist/cli-bundle/chunks/{chunk-4DSGXSBL.js → chunk-XRYSCRZR.js} +116 -68
  232. package/dist/cli-bundle/chunks/{chunk-4DSGXSBL.js.map → chunk-XRYSCRZR.js.map} +3 -3
  233. package/dist/cli-bundle/chunks/{chunk-NU2UEROZ.js → chunk-YF746GTH.js} +59 -70
  234. package/dist/cli-bundle/chunks/{chunk-NU2UEROZ.js.map → chunk-YF746GTH.js.map} +1 -1
  235. package/dist/cli-bundle/chunks/{chunk-JMP4E6D7.js → chunk-YPWUSH72.js} +390 -312
  236. package/dist/cli-bundle/chunks/{chunk-JMP4E6D7.js.map → chunk-YPWUSH72.js.map} +2 -2
  237. package/dist/cli-bundle/chunks/{chunk-QCWF6IYD.js → chunk-YSDFIY7N.js} +3 -3
  238. package/dist/cli-bundle/chunks/{chunk-UZIWVBE6.js → chunk-YSGTMDWC.js} +2 -2
  239. package/dist/cli-bundle/chunks/{chunk-NFDPYAIP.js → chunk-YVKZ3ANP.js} +21 -29
  240. package/dist/cli-bundle/chunks/chunk-YVKZ3ANP.js.map +7 -0
  241. package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js → chunk-Z4DGFQDH.js} +80 -58
  242. package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js.map → chunk-Z4DGFQDH.js.map} +1 -1
  243. package/dist/cli-bundle/chunks/{chunk-64HNBBFQ.js → chunk-Z5F6XZXE.js} +6 -6
  244. package/dist/cli-bundle/chunks/{chunk-AVEE5EHK.js → chunk-Z7RPDF2Y.js} +3 -3
  245. package/dist/cli-bundle/chunks/{chunk-3S2KT7NG.js → chunk-ZFTKYWIF.js} +152 -89
  246. package/dist/cli-bundle/chunks/chunk-ZFTKYWIF.js.map +7 -0
  247. package/dist/cli-bundle/chunks/{claim-T3GCKV7C.js → claim-2BGBGSVI.js} +8 -8
  248. package/dist/cli-bundle/chunks/{claim-EMQLYPRW.js → claim-5GU7OE67.js} +8 -8
  249. package/dist/cli-bundle/chunks/close-6YODBUIV.js +14 -0
  250. package/dist/cli-bundle/chunks/{close-TQYAAFJP.js → close-AFVKPR57.js} +7 -7
  251. package/dist/cli-bundle/chunks/{close-many-BG5QQIDQ.js → close-many-7KLOSYLP.js} +186 -122
  252. package/dist/cli-bundle/chunks/close-many-7KLOSYLP.js.map +7 -0
  253. package/dist/cli-bundle/chunks/{close-many-LDRVEQY2.js → close-many-JKUJMHLG.js} +187 -123
  254. package/dist/cli-bundle/chunks/close-many-JKUJMHLG.js.map +1 -0
  255. package/dist/cli-bundle/chunks/{comments-YUXJRZPQ.js → comments-DNWHEBOS.js} +9 -9
  256. package/dist/cli-bundle/chunks/{comments-QCKR2YY2.js → comments-RW23R3VE.js} +9 -9
  257. package/dist/cli-bundle/chunks/config-AUM5WBYA.js +1072 -0
  258. package/dist/cli-bundle/chunks/config-AUM5WBYA.js.map +7 -0
  259. package/dist/cli-bundle/chunks/config-OZWSA2NP.js +1062 -0
  260. package/dist/cli-bundle/chunks/config-OZWSA2NP.js.map +1 -0
  261. package/dist/cli-bundle/chunks/{context-B6275WPX.js → context-OYXRGY7S.js} +12 -12
  262. package/dist/cli-bundle/chunks/{context-OCZ3FJ4Z.js → context-PKCEHQY3.js} +12 -12
  263. package/dist/cli-bundle/chunks/{contracts-HN7ABKLP.js → contracts-L6ODXNUM.js} +320 -199
  264. package/dist/cli-bundle/chunks/contracts-L6ODXNUM.js.map +7 -0
  265. package/dist/cli-bundle/chunks/{contracts-W4FZVVD6.js → contracts-X74F2GSM.js} +321 -200
  266. package/dist/cli-bundle/chunks/contracts-X74F2GSM.js.map +1 -0
  267. package/dist/cli-bundle/chunks/{copy-DEM4DATS.js → copy-6XOR3HKN.js} +5 -5
  268. package/dist/cli-bundle/chunks/{copy-BTJOSKKT.js → copy-I4NCLBR4.js} +5 -5
  269. package/dist/cli-bundle/chunks/{create-RLRJMRTM.js → create-PM45M6PE.js} +12 -12
  270. package/dist/cli-bundle/chunks/create-Z7YCH3BE.js +28 -0
  271. package/dist/cli-bundle/chunks/{delete-BHK7VB2Z.js → delete-7YXHYG67.js} +5 -5
  272. package/dist/cli-bundle/chunks/{delete-LSVHAB4Y.js → delete-LPISP43T.js} +5 -5
  273. package/dist/cli-bundle/chunks/{deps-XHYXWEPT.js → deps-N2T26FME.js} +5 -5
  274. package/dist/cli-bundle/chunks/{deps-4UDFJRUA.js → deps-WATKQDE3.js} +5 -5
  275. package/dist/cli-bundle/chunks/{docs-GYZNVS26.js → docs-6LQ3GLM7.js} +7 -7
  276. package/dist/cli-bundle/chunks/{docs-26S44RXU.js → docs-Z3X6JZLT.js} +7 -7
  277. package/dist/cli-bundle/chunks/{eval-UYF3ZPVO.js → eval-6DCLG52D.js} +10 -10
  278. package/dist/cli-bundle/chunks/{eval-PGRVIJQU.js → eval-Y3ZCUTHK.js} +10 -10
  279. package/dist/cli-bundle/chunks/{extension-CPSLJQVE.js → extension-BNINIMT7.js} +11 -11
  280. package/dist/cli-bundle/chunks/{extension-CXJ6RELI.js → extension-QWE4YYK5.js} +11 -11
  281. package/dist/cli-bundle/chunks/{files-NQHEXUZD.js → files-6SGKHS6O.js} +7 -7
  282. package/dist/cli-bundle/chunks/{files-MBNICQFM.js → files-FUYPSOFJ.js} +7 -7
  283. package/dist/cli-bundle/chunks/{focus-DWYIG7GU.js → focus-2Q3K76G2.js} +6 -6
  284. package/dist/cli-bundle/chunks/{focus-XZW5423D.js → focus-ATLBWXXD.js} +6 -6
  285. package/dist/cli-bundle/chunks/{gc-LPVMKJQJ.js → gc-RUYEMNRF.js} +3 -3
  286. package/dist/cli-bundle/chunks/{gc-7GQYOS2G.js → gc-TDWSDR66.js} +3 -3
  287. package/dist/cli-bundle/chunks/{get-A7MAOHCU.js → get-2WGLX74N.js} +120 -80
  288. package/dist/cli-bundle/chunks/get-2WGLX74N.js.map +7 -0
  289. package/dist/cli-bundle/chunks/{get-DSDEKJ3L.js → get-LY6M2JIM.js} +121 -81
  290. package/dist/cli-bundle/chunks/get-LY6M2JIM.js.map +1 -0
  291. package/dist/cli-bundle/chunks/{health-3IPFLKXB.js → health-4RKHYS3T.js} +535 -371
  292. package/dist/cli-bundle/chunks/health-4RKHYS3T.js.map +1 -0
  293. package/dist/cli-bundle/chunks/{health-GZXGBZ36.js → health-TMFVNYRA.js} +534 -370
  294. package/dist/cli-bundle/chunks/health-TMFVNYRA.js.map +7 -0
  295. package/dist/cli-bundle/chunks/history-CGNQJXFE.js +18 -0
  296. package/dist/cli-bundle/chunks/{history-NERDJNUB.js → history-SGRRS72R.js} +8 -8
  297. package/dist/cli-bundle/chunks/{history-compact-2WRZ2WK4.js → history-compact-LOED43R3.js} +213 -134
  298. package/dist/cli-bundle/chunks/history-compact-LOED43R3.js.map +7 -0
  299. package/dist/cli-bundle/chunks/{history-compact-HR7BB4LR.js → history-compact-V5DNAQHH.js} +214 -135
  300. package/dist/cli-bundle/chunks/history-compact-V5DNAQHH.js.map +1 -0
  301. package/dist/cli-bundle/chunks/{history-redact-O3NBCNWC.js → history-redact-IRL7WJ3E.js} +9 -9
  302. package/dist/cli-bundle/chunks/history-redact-N3JK7VBW.js +19 -0
  303. package/dist/cli-bundle/chunks/{history-repair-XA3LC4GA.js → history-repair-4WVBVHFR.js} +124 -84
  304. package/dist/cli-bundle/chunks/history-repair-4WVBVHFR.js.map +1 -0
  305. package/dist/cli-bundle/chunks/{history-repair-LCMOS45X.js → history-repair-PGYQJMGD.js} +123 -83
  306. package/dist/cli-bundle/chunks/history-repair-PGYQJMGD.js.map +7 -0
  307. package/dist/cli-bundle/chunks/{init-64XDLQJB.js → init-4GESW7RM.js} +12 -12
  308. package/dist/cli-bundle/chunks/init-XIDPABA4.js +22 -0
  309. package/dist/cli-bundle/chunks/{learnings-LPKCSJX7.js → learnings-4BHWFFUV.js} +9 -9
  310. package/dist/cli-bundle/chunks/{learnings-JR6MA5TI.js → learnings-4FJY7WIW.js} +9 -9
  311. package/dist/cli-bundle/chunks/{list-G5Y65VF6.js → list-472TIOVK.js} +8 -8
  312. package/dist/cli-bundle/chunks/{list-DNBJVO3E.js → list-D7BF5CL2.js} +8 -8
  313. package/dist/cli-bundle/chunks/{next-FYTQF6HG.js → next-D5STGWI2.js} +71 -46
  314. package/dist/cli-bundle/chunks/next-D5STGWI2.js.map +1 -0
  315. package/dist/cli-bundle/chunks/{next-BCERKDUR.js → next-SFQZVX2B.js} +70 -45
  316. package/dist/cli-bundle/chunks/next-SFQZVX2B.js.map +7 -0
  317. package/dist/cli-bundle/chunks/{notes-2BMU3VVQ.js → notes-6KNOSLIT.js} +9 -9
  318. package/dist/cli-bundle/chunks/{notes-6KTGO2OJ.js → notes-W4UEICGF.js} +9 -9
  319. package/dist/cli-bundle/chunks/{plan-RKZHQVXR.js → plan-JO6V7BXO.js} +373 -279
  320. package/dist/cli-bundle/chunks/plan-JO6V7BXO.js.map +1 -0
  321. package/dist/cli-bundle/chunks/{plan-4WXEQCTN.js → plan-MJQW5XK3.js} +372 -278
  322. package/dist/cli-bundle/chunks/plan-MJQW5XK3.js.map +7 -0
  323. package/dist/cli-bundle/chunks/{profile-4OMM32CD.js → profile-3TOTMUR4.js} +27 -19
  324. package/dist/cli-bundle/chunks/profile-3TOTMUR4.js.map +7 -0
  325. package/dist/cli-bundle/chunks/{profile-QLER5ENE.js → profile-WIQY2KCV.js} +28 -20
  326. package/dist/cli-bundle/chunks/profile-WIQY2KCV.js.map +1 -0
  327. package/dist/cli-bundle/chunks/register-list-query-ELBHCCFI.js +416 -0
  328. package/dist/cli-bundle/chunks/register-list-query-ELBHCCFI.js.map +7 -0
  329. package/dist/cli-bundle/chunks/register-list-query-GAPQ6DM3.js +406 -0
  330. package/dist/cli-bundle/chunks/register-list-query-GAPQ6DM3.js.map +1 -0
  331. package/dist/cli-bundle/chunks/{register-mutation-KK7PHYYU.js → register-mutation-ROFE2YPC.js} +729 -702
  332. package/dist/cli-bundle/chunks/register-mutation-ROFE2YPC.js.map +7 -0
  333. package/dist/cli-bundle/chunks/{register-mutation-ENNDUAZG.js → register-mutation-SJWMVIJ2.js} +730 -703
  334. package/dist/cli-bundle/chunks/register-mutation-SJWMVIJ2.js.map +1 -0
  335. package/dist/cli-bundle/chunks/{register-operations-HZ6XERQG.js → register-operations-IADFVH53.js} +389 -365
  336. package/dist/cli-bundle/chunks/register-operations-IADFVH53.js.map +7 -0
  337. package/dist/cli-bundle/chunks/register-operations-MEKU3AKC.js +510 -0
  338. package/dist/cli-bundle/chunks/register-operations-MEKU3AKC.js.map +1 -0
  339. package/dist/cli-bundle/chunks/{register-setup-ZKJ53RS7.js → register-setup-3QJY43CY.js} +128 -103
  340. package/dist/cli-bundle/chunks/register-setup-3QJY43CY.js.map +7 -0
  341. package/dist/cli-bundle/chunks/{register-setup-P67EMBDJ.js → register-setup-AJWUSSQX.js} +129 -104
  342. package/dist/cli-bundle/chunks/register-setup-AJWUSSQX.js.map +1 -0
  343. package/dist/cli-bundle/chunks/{restore-4MHZFJ2E.js → restore-44IHMMZZ.js} +9 -9
  344. package/dist/cli-bundle/chunks/restore-EXHU34EU.js +17 -0
  345. package/dist/cli-bundle/chunks/{scheduling-shortcuts-LB6DOLRL.js → scheduling-shortcuts-OLHNLAZY.js} +12 -12
  346. package/dist/cli-bundle/chunks/{scheduling-shortcuts-UTOYKLXQ.js → scheduling-shortcuts-TSBK4AY5.js} +12 -12
  347. package/dist/cli-bundle/chunks/{schema-73HR2OJW.js → schema-IB2NZZWD.js} +7 -7
  348. package/dist/cli-bundle/chunks/{schema-U6LJKSIR.js → schema-VBCELP5G.js} +7 -7
  349. package/dist/cli-bundle/chunks/{search-AXPXKZER.js → search-7UBETML4.js} +10 -10
  350. package/dist/cli-bundle/chunks/{search-KILGT37L.js → search-R227JOL6.js} +10 -10
  351. package/dist/cli-bundle/chunks/{stats-W5KNVJWQ.js → stats-FAG7COEH.js} +6 -6
  352. package/dist/cli-bundle/chunks/{stats-PSYVVTNZ.js → stats-MCK7PLYS.js} +6 -6
  353. package/dist/cli-bundle/chunks/{telemetry-GAHHQTOS.js → telemetry-DRPDZMAO.js} +84 -70
  354. package/dist/cli-bundle/chunks/telemetry-DRPDZMAO.js.map +7 -0
  355. package/dist/cli-bundle/chunks/{telemetry-BZUF6H7G.js → telemetry-GVVUQSJQ.js} +85 -71
  356. package/dist/cli-bundle/chunks/telemetry-GVVUQSJQ.js.map +1 -0
  357. package/dist/cli-bundle/chunks/{test-PWDIZ255.js → test-QY44WAMR.js} +15 -15
  358. package/dist/cli-bundle/chunks/{test-ACD52Z3S.js → test-SY76DZTO.js} +15 -15
  359. package/dist/cli-bundle/chunks/test-all-QD6QAEG7.js +430 -0
  360. package/dist/cli-bundle/chunks/test-all-QD6QAEG7.js.map +7 -0
  361. package/dist/cli-bundle/chunks/test-all-USPJHXFR.js +427 -0
  362. package/dist/cli-bundle/chunks/test-all-USPJHXFR.js.map +1 -0
  363. package/dist/cli-bundle/chunks/{test-runs-UXIXPDKU.js → test-runs-MG5VIGSK.js} +185 -147
  364. package/dist/cli-bundle/chunks/test-runs-MG5VIGSK.js.map +1 -0
  365. package/dist/cli-bundle/chunks/{test-runs-PLRAZEFW.js → test-runs-QIR5MJPL.js} +184 -146
  366. package/dist/cli-bundle/chunks/test-runs-QIR5MJPL.js.map +7 -0
  367. package/dist/cli-bundle/chunks/update-A7EICML6.js +24 -0
  368. package/dist/cli-bundle/chunks/{update-KFX2SIAC.js → update-IKJZWLQC.js} +15 -15
  369. package/dist/cli-bundle/chunks/{update-many-RNSBX2TA.js → update-many-BEMTDA2X.js} +84 -69
  370. package/dist/cli-bundle/chunks/{update-many-RNSBX2TA.js.map → update-many-BEMTDA2X.js.map} +1 -1
  371. package/dist/cli-bundle/chunks/{update-many-Z5GJS5LC.js → update-many-RATAARHU.js} +83 -68
  372. package/dist/cli-bundle/chunks/{update-many-Z5GJS5LC.js.map → update-many-RATAARHU.js.map} +2 -2
  373. package/dist/cli-bundle/chunks/{upgrade-BRL6KCOJ.js → upgrade-NWMR3VQL.js} +11 -11
  374. package/dist/cli-bundle/chunks/{upgrade-HAK6JG2O.js → upgrade-VU46BLJZ.js} +11 -11
  375. package/dist/cli-bundle/chunks/{validate-X5W76YJL.js → validate-GAJ6FUSI.js} +451 -321
  376. package/dist/cli-bundle/chunks/validate-GAJ6FUSI.js.map +1 -0
  377. package/dist/cli-bundle/chunks/{validate-MTUVL5VC.js → validate-NRY6MFXN.js} +450 -320
  378. package/dist/cli-bundle/chunks/validate-NRY6MFXN.js.map +7 -0
  379. package/dist/cli-bundle/main.js +1107 -916
  380. package/dist/cli-bundle/main.js.map +3 -3
  381. package/dist/core/config/nested-settings.js +89 -67
  382. package/dist/core/config/nested-settings.js.map +1 -1
  383. package/dist/core/governance/metadata-coverage.js +20 -28
  384. package/dist/core/governance/metadata-coverage.js.map +1 -1
  385. package/dist/core/history/drift-scan.js +93 -81
  386. package/dist/core/history/drift-scan.js.map +1 -1
  387. package/dist/core/item/item-type-definition.js +14 -14
  388. package/dist/core/item/item-type-definition.js.map +1 -1
  389. package/dist/core/item/type-registry.js +114 -99
  390. package/dist/core/item/type-registry.js.map +1 -1
  391. package/dist/core/output/mutation-projection.js +42 -26
  392. package/dist/core/output/mutation-projection.js.map +1 -1
  393. package/dist/core/schema/runtime-schema.js +97 -80
  394. package/dist/core/schema/runtime-schema.js.map +1 -1
  395. package/dist/core/schema/status-defs-file.js +26 -3
  396. package/dist/core/schema/status-defs-file.js.map +1 -1
  397. package/dist/core/search/corpus.js +25 -19
  398. package/dist/core/search/corpus.js.map +1 -1
  399. package/dist/core/search/semantic-defaults.js +64 -37
  400. package/dist/core/search/semantic-defaults.js.map +1 -1
  401. package/dist/core/search/vector-stores.js +32 -17
  402. package/dist/core/search/vector-stores.js.map +1 -1
  403. package/dist/core/sentry/helpers.js +31 -28
  404. package/dist/core/sentry/helpers.js.map +1 -1
  405. package/dist/core/sentry/instrument.js +54 -43
  406. package/dist/core/sentry/instrument.js.map +1 -1
  407. package/dist/core/shared/memo.d.ts +12 -0
  408. package/dist/core/shared/memo.js +25 -0
  409. package/dist/core/shared/memo.js.map +1 -0
  410. package/dist/core/shared/serialization.js +24 -14
  411. package/dist/core/shared/serialization.js.map +1 -1
  412. package/dist/core/shared/time.js +26 -4
  413. package/dist/core/shared/time.js.map +1 -1
  414. package/dist/core/store/front-matter-cache.d.ts +5 -0
  415. package/dist/core/store/front-matter-cache.js +316 -171
  416. package/dist/core/store/front-matter-cache.js.map +1 -1
  417. package/dist/core/store/item-store.js +33 -26
  418. package/dist/core/store/item-store.js.map +1 -1
  419. package/dist/core/store/settings.js +247 -203
  420. package/dist/core/store/settings.js.map +1 -1
  421. package/dist/core/test/background-runs.js +189 -160
  422. package/dist/core/test/background-runs.js.map +1 -1
  423. package/dist/sdk/cli-contracts/flag-contracts.js +71 -99
  424. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  425. package/dist/sdk/compose.js +51 -42
  426. package/dist/sdk/compose.js.map +1 -1
  427. package/docs/AGENT_GUIDE.md +2 -2
  428. package/docs/ARCHITECTURE.md +2 -2
  429. package/docs/COMMANDS.md +8 -4
  430. package/docs/CONFIGURATION.md +1 -1
  431. package/docs/EXTENSIONS.md +12 -12
  432. package/docs/ONBOARDING.md +4 -2
  433. package/docs/README.md +2 -0
  434. package/docs/examples/starter-extension/README.md +11 -10
  435. package/marketplace.json +3 -3
  436. package/package.json +2 -2
  437. package/packages/pm-beads/extensions/beads/runtime.ts +240 -167
  438. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +65 -58
  439. package/packages/pm-todos/extensions/todos/runtime.ts +65 -42
  440. package/plugins/pm-claude/.claude-plugin/plugin.json +2 -2
  441. package/plugins/pm-claude/README.md +6 -3
  442. package/plugins/pm-claude/commands/pm-init.md +1 -1
  443. package/dist/cli-bundle/chunks/activity-AW6XVFH6.js +0 -16
  444. package/dist/cli-bundle/chunks/aggregate-JTEF4BP7.js.map +0 -1
  445. package/dist/cli-bundle/chunks/chunk-22WKIL3H.js.map +0 -1
  446. package/dist/cli-bundle/chunks/chunk-2D4HATP2.js.map +0 -1
  447. package/dist/cli-bundle/chunks/chunk-3J6JRJ3I.js.map +0 -7
  448. package/dist/cli-bundle/chunks/chunk-3K2M5OYU.js.map +0 -7
  449. package/dist/cli-bundle/chunks/chunk-3S2KT7NG.js.map +0 -7
  450. package/dist/cli-bundle/chunks/chunk-3VGN2UWE.js.map +0 -1
  451. package/dist/cli-bundle/chunks/chunk-3XZCOZ5J.js.map +0 -1
  452. package/dist/cli-bundle/chunks/chunk-4XOIEKSD.js.map +0 -1
  453. package/dist/cli-bundle/chunks/chunk-55SNVXRQ.js.map +0 -7
  454. package/dist/cli-bundle/chunks/chunk-5CGRF3L5.js.map +0 -1
  455. package/dist/cli-bundle/chunks/chunk-7R4QEMZZ.js.map +0 -1
  456. package/dist/cli-bundle/chunks/chunk-AXIDKKAT.js.map +0 -1
  457. package/dist/cli-bundle/chunks/chunk-BDTISOSD.js.map +0 -7
  458. package/dist/cli-bundle/chunks/chunk-BZCEN4JA.js.map +0 -7
  459. package/dist/cli-bundle/chunks/chunk-CF7RL6FR.js.map +0 -1
  460. package/dist/cli-bundle/chunks/chunk-CWFNTKQJ.js.map +0 -1
  461. package/dist/cli-bundle/chunks/chunk-FFMQB7WR.js.map +0 -1
  462. package/dist/cli-bundle/chunks/chunk-HXTQJXWT.js.map +0 -1
  463. package/dist/cli-bundle/chunks/chunk-IPYBJWTE.js.map +0 -7
  464. package/dist/cli-bundle/chunks/chunk-IZBR4NRW.js.map +0 -7
  465. package/dist/cli-bundle/chunks/chunk-JLM7BHI7.js.map +0 -7
  466. package/dist/cli-bundle/chunks/chunk-JSU5P7VS.js.map +0 -1
  467. package/dist/cli-bundle/chunks/chunk-JWXRETDF.js.map +0 -1
  468. package/dist/cli-bundle/chunks/chunk-KNPEF7QG.js.map +0 -7
  469. package/dist/cli-bundle/chunks/chunk-MDPEOIGN.js.map +0 -7
  470. package/dist/cli-bundle/chunks/chunk-NFDPYAIP.js.map +0 -7
  471. package/dist/cli-bundle/chunks/chunk-NUHHPVVS.js.map +0 -7
  472. package/dist/cli-bundle/chunks/chunk-NWMZWYYB.js.map +0 -1
  473. package/dist/cli-bundle/chunks/chunk-OTUHB4HS.js.map +0 -1
  474. package/dist/cli-bundle/chunks/chunk-RGEMWD6Q.js.map +0 -7
  475. package/dist/cli-bundle/chunks/chunk-RLDHZHQS.js.map +0 -1
  476. package/dist/cli-bundle/chunks/chunk-RMMQ74TG.js.map +0 -7
  477. package/dist/cli-bundle/chunks/chunk-RVUALSJF.js.map +0 -7
  478. package/dist/cli-bundle/chunks/chunk-TP5Q5ZD3.js.map +0 -1
  479. package/dist/cli-bundle/chunks/chunk-V3NOKJF2.js.map +0 -1
  480. package/dist/cli-bundle/chunks/chunk-VARHOHYV.js.map +0 -7
  481. package/dist/cli-bundle/chunks/chunk-WYDHYJPO.js.map +0 -7
  482. package/dist/cli-bundle/chunks/chunk-YITK2PJ6.js.map +0 -7
  483. package/dist/cli-bundle/chunks/chunk-ZETXE4SE.js.map +0 -1
  484. package/dist/cli-bundle/chunks/close-E6ZZGCJY.js +0 -14
  485. package/dist/cli-bundle/chunks/close-many-BG5QQIDQ.js.map +0 -7
  486. package/dist/cli-bundle/chunks/close-many-LDRVEQY2.js.map +0 -1
  487. package/dist/cli-bundle/chunks/config-DMSU64QO.js +0 -1541
  488. package/dist/cli-bundle/chunks/config-DMSU64QO.js.map +0 -7
  489. package/dist/cli-bundle/chunks/config-QH2DICD6.js +0 -1531
  490. package/dist/cli-bundle/chunks/config-QH2DICD6.js.map +0 -1
  491. package/dist/cli-bundle/chunks/contracts-HN7ABKLP.js.map +0 -7
  492. package/dist/cli-bundle/chunks/contracts-W4FZVVD6.js.map +0 -1
  493. package/dist/cli-bundle/chunks/create-OH3BDGBB.js +0 -28
  494. package/dist/cli-bundle/chunks/get-A7MAOHCU.js.map +0 -7
  495. package/dist/cli-bundle/chunks/get-DSDEKJ3L.js.map +0 -1
  496. package/dist/cli-bundle/chunks/health-3IPFLKXB.js.map +0 -1
  497. package/dist/cli-bundle/chunks/health-GZXGBZ36.js.map +0 -7
  498. package/dist/cli-bundle/chunks/history-WSZHY3PN.js +0 -18
  499. package/dist/cli-bundle/chunks/history-compact-2WRZ2WK4.js.map +0 -7
  500. package/dist/cli-bundle/chunks/history-compact-HR7BB4LR.js.map +0 -1
  501. package/dist/cli-bundle/chunks/history-redact-MP6CH7U5.js +0 -19
  502. package/dist/cli-bundle/chunks/history-repair-LCMOS45X.js.map +0 -7
  503. package/dist/cli-bundle/chunks/history-repair-XA3LC4GA.js.map +0 -1
  504. package/dist/cli-bundle/chunks/init-PAX32BJA.js +0 -22
  505. package/dist/cli-bundle/chunks/next-BCERKDUR.js.map +0 -7
  506. package/dist/cli-bundle/chunks/next-FYTQF6HG.js.map +0 -1
  507. package/dist/cli-bundle/chunks/plan-4WXEQCTN.js.map +0 -7
  508. package/dist/cli-bundle/chunks/plan-RKZHQVXR.js.map +0 -1
  509. package/dist/cli-bundle/chunks/profile-4OMM32CD.js.map +0 -7
  510. package/dist/cli-bundle/chunks/profile-QLER5ENE.js.map +0 -1
  511. package/dist/cli-bundle/chunks/register-list-query-7LV46VAU.js +0 -400
  512. package/dist/cli-bundle/chunks/register-list-query-7LV46VAU.js.map +0 -1
  513. package/dist/cli-bundle/chunks/register-list-query-SNG5PGA4.js +0 -410
  514. package/dist/cli-bundle/chunks/register-list-query-SNG5PGA4.js.map +0 -7
  515. package/dist/cli-bundle/chunks/register-mutation-ENNDUAZG.js.map +0 -1
  516. package/dist/cli-bundle/chunks/register-mutation-KK7PHYYU.js.map +0 -7
  517. package/dist/cli-bundle/chunks/register-operations-C6OWLDSH.js +0 -486
  518. package/dist/cli-bundle/chunks/register-operations-C6OWLDSH.js.map +0 -1
  519. package/dist/cli-bundle/chunks/register-operations-HZ6XERQG.js.map +0 -7
  520. package/dist/cli-bundle/chunks/register-setup-P67EMBDJ.js.map +0 -1
  521. package/dist/cli-bundle/chunks/register-setup-ZKJ53RS7.js.map +0 -7
  522. package/dist/cli-bundle/chunks/restore-YALDGTQR.js +0 -17
  523. package/dist/cli-bundle/chunks/telemetry-BZUF6H7G.js.map +0 -1
  524. package/dist/cli-bundle/chunks/telemetry-GAHHQTOS.js.map +0 -7
  525. package/dist/cli-bundle/chunks/test-all-L2MDDUCA.js +0 -358
  526. package/dist/cli-bundle/chunks/test-all-L2MDDUCA.js.map +0 -1
  527. package/dist/cli-bundle/chunks/test-all-RBZ6DLU2.js +0 -361
  528. package/dist/cli-bundle/chunks/test-all-RBZ6DLU2.js.map +0 -7
  529. package/dist/cli-bundle/chunks/test-runs-PLRAZEFW.js.map +0 -7
  530. package/dist/cli-bundle/chunks/test-runs-UXIXPDKU.js.map +0 -1
  531. package/dist/cli-bundle/chunks/update-AMRSOIWP.js +0 -24
  532. package/dist/cli-bundle/chunks/validate-MTUVL5VC.js.map +0 -7
  533. package/dist/cli-bundle/chunks/validate-X5W76YJL.js.map +0 -1
  534. /package/dist/cli-bundle/chunks/{activity-DBLQVIP6.js.map → activity-5YWLSPGE.js.map} +0 -0
  535. /package/dist/cli-bundle/chunks/{activity-AW6XVFH6.js.map → activity-BIML7K2D.js.map} +0 -0
  536. /package/dist/cli-bundle/chunks/{append-LOVPGVPT.js.map → append-EZESUVJT.js.map} +0 -0
  537. /package/dist/cli-bundle/chunks/{append-QCFJSDFL.js.map → append-JFG4WQMG.js.map} +0 -0
  538. /package/dist/cli-bundle/chunks/{chunk-BHO33VBQ.js.map → chunk-3W2HJKJX.js.map} +0 -0
  539. /package/dist/cli-bundle/chunks/{chunk-4DUVCVLZ.js.map → chunk-4PFVUUYV.js.map} +0 -0
  540. /package/dist/cli-bundle/chunks/{chunk-IJYK2T43.js.map → chunk-5E7N4T2Z.js.map} +0 -0
  541. /package/dist/cli-bundle/chunks/{chunk-NKZAN7BD.js.map → chunk-5IZUBZBR.js.map} +0 -0
  542. /package/dist/cli-bundle/chunks/{chunk-NOLPZMSV.js.map → chunk-5JIWFWOZ.js.map} +0 -0
  543. /package/dist/cli-bundle/chunks/{chunk-6AQZPVHQ.js.map → chunk-6CDCWKSX.js.map} +0 -0
  544. /package/dist/cli-bundle/chunks/{chunk-LB6TP6MC.js.map → chunk-6NYJGMTY.js.map} +0 -0
  545. /package/dist/cli-bundle/chunks/{chunk-SLMUGTK3.js.map → chunk-7CLLC75T.js.map} +0 -0
  546. /package/dist/cli-bundle/chunks/{chunk-2466X6E4.js.map → chunk-7LYO6S5A.js.map} +0 -0
  547. /package/dist/cli-bundle/chunks/{chunk-W4ULYO7Z.js.map → chunk-A3OQ7TFW.js.map} +0 -0
  548. /package/dist/cli-bundle/chunks/{chunk-GJ326ZKX.js.map → chunk-ER4ME5U2.js.map} +0 -0
  549. /package/dist/cli-bundle/chunks/{chunk-HZZEHPRG.js.map → chunk-ERG65A2L.js.map} +0 -0
  550. /package/dist/cli-bundle/chunks/{chunk-L5OEFZQG.js.map → chunk-FH2H3CBD.js.map} +0 -0
  551. /package/dist/cli-bundle/chunks/{chunk-JPECA746.js.map → chunk-FUFFPIYA.js.map} +0 -0
  552. /package/dist/cli-bundle/chunks/{chunk-27BXPBAY.js.map → chunk-GUYNUXQT.js.map} +0 -0
  553. /package/dist/cli-bundle/chunks/{chunk-MAUKX7JC.js.map → chunk-GVJE5T7Q.js.map} +0 -0
  554. /package/dist/cli-bundle/chunks/{chunk-ZRP4VG5U.js.map → chunk-JBZ2NTKX.js.map} +0 -0
  555. /package/dist/cli-bundle/chunks/{chunk-EJUDVUYZ.js.map → chunk-KEZOIPCR.js.map} +0 -0
  556. /package/dist/cli-bundle/chunks/{chunk-HYTGA6GI.js.map → chunk-MDHWWBNZ.js.map} +0 -0
  557. /package/dist/cli-bundle/chunks/{chunk-N74UMG5H.js.map → chunk-MEZZZBYX.js.map} +0 -0
  558. /package/dist/cli-bundle/chunks/{chunk-SDR5J34Q.js.map → chunk-NZ7QIUP5.js.map} +0 -0
  559. /package/dist/cli-bundle/chunks/{chunk-DDPTYJIM.js.map → chunk-P5L7Z2O6.js.map} +0 -0
  560. /package/dist/cli-bundle/chunks/{chunk-OGXLACHC.js.map → chunk-SU2E4AWU.js.map} +0 -0
  561. /package/dist/cli-bundle/chunks/{chunk-HPPFYYOV.js.map → chunk-SU3TB4NS.js.map} +0 -0
  562. /package/dist/cli-bundle/chunks/{chunk-G7I7DEZA.js.map → chunk-T4XBKJ3F.js.map} +0 -0
  563. /package/dist/cli-bundle/chunks/{chunk-VICZWYGZ.js.map → chunk-U5TR4N7J.js.map} +0 -0
  564. /package/dist/cli-bundle/chunks/{chunk-EVMTBV6V.js.map → chunk-UMNQZS4H.js.map} +0 -0
  565. /package/dist/cli-bundle/chunks/{chunk-A7FPBAQS.js.map → chunk-WJA3PXW7.js.map} +0 -0
  566. /package/dist/cli-bundle/chunks/{chunk-QCWF6IYD.js.map → chunk-YSDFIY7N.js.map} +0 -0
  567. /package/dist/cli-bundle/chunks/{chunk-UZIWVBE6.js.map → chunk-YSGTMDWC.js.map} +0 -0
  568. /package/dist/cli-bundle/chunks/{chunk-64HNBBFQ.js.map → chunk-Z5F6XZXE.js.map} +0 -0
  569. /package/dist/cli-bundle/chunks/{chunk-AVEE5EHK.js.map → chunk-Z7RPDF2Y.js.map} +0 -0
  570. /package/dist/cli-bundle/chunks/{claim-T3GCKV7C.js.map → claim-2BGBGSVI.js.map} +0 -0
  571. /package/dist/cli-bundle/chunks/{claim-EMQLYPRW.js.map → claim-5GU7OE67.js.map} +0 -0
  572. /package/dist/cli-bundle/chunks/{close-E6ZZGCJY.js.map → close-6YODBUIV.js.map} +0 -0
  573. /package/dist/cli-bundle/chunks/{close-TQYAAFJP.js.map → close-AFVKPR57.js.map} +0 -0
  574. /package/dist/cli-bundle/chunks/{comments-YUXJRZPQ.js.map → comments-DNWHEBOS.js.map} +0 -0
  575. /package/dist/cli-bundle/chunks/{comments-QCKR2YY2.js.map → comments-RW23R3VE.js.map} +0 -0
  576. /package/dist/cli-bundle/chunks/{context-B6275WPX.js.map → context-OYXRGY7S.js.map} +0 -0
  577. /package/dist/cli-bundle/chunks/{context-OCZ3FJ4Z.js.map → context-PKCEHQY3.js.map} +0 -0
  578. /package/dist/cli-bundle/chunks/{copy-DEM4DATS.js.map → copy-6XOR3HKN.js.map} +0 -0
  579. /package/dist/cli-bundle/chunks/{copy-BTJOSKKT.js.map → copy-I4NCLBR4.js.map} +0 -0
  580. /package/dist/cli-bundle/chunks/{create-RLRJMRTM.js.map → create-PM45M6PE.js.map} +0 -0
  581. /package/dist/cli-bundle/chunks/{create-OH3BDGBB.js.map → create-Z7YCH3BE.js.map} +0 -0
  582. /package/dist/cli-bundle/chunks/{delete-BHK7VB2Z.js.map → delete-7YXHYG67.js.map} +0 -0
  583. /package/dist/cli-bundle/chunks/{delete-LSVHAB4Y.js.map → delete-LPISP43T.js.map} +0 -0
  584. /package/dist/cli-bundle/chunks/{deps-XHYXWEPT.js.map → deps-N2T26FME.js.map} +0 -0
  585. /package/dist/cli-bundle/chunks/{deps-4UDFJRUA.js.map → deps-WATKQDE3.js.map} +0 -0
  586. /package/dist/cli-bundle/chunks/{docs-GYZNVS26.js.map → docs-6LQ3GLM7.js.map} +0 -0
  587. /package/dist/cli-bundle/chunks/{docs-26S44RXU.js.map → docs-Z3X6JZLT.js.map} +0 -0
  588. /package/dist/cli-bundle/chunks/{eval-UYF3ZPVO.js.map → eval-6DCLG52D.js.map} +0 -0
  589. /package/dist/cli-bundle/chunks/{eval-PGRVIJQU.js.map → eval-Y3ZCUTHK.js.map} +0 -0
  590. /package/dist/cli-bundle/chunks/{extension-CPSLJQVE.js.map → extension-BNINIMT7.js.map} +0 -0
  591. /package/dist/cli-bundle/chunks/{extension-CXJ6RELI.js.map → extension-QWE4YYK5.js.map} +0 -0
  592. /package/dist/cli-bundle/chunks/{files-NQHEXUZD.js.map → files-6SGKHS6O.js.map} +0 -0
  593. /package/dist/cli-bundle/chunks/{files-MBNICQFM.js.map → files-FUYPSOFJ.js.map} +0 -0
  594. /package/dist/cli-bundle/chunks/{focus-DWYIG7GU.js.map → focus-2Q3K76G2.js.map} +0 -0
  595. /package/dist/cli-bundle/chunks/{focus-XZW5423D.js.map → focus-ATLBWXXD.js.map} +0 -0
  596. /package/dist/cli-bundle/chunks/{gc-LPVMKJQJ.js.map → gc-RUYEMNRF.js.map} +0 -0
  597. /package/dist/cli-bundle/chunks/{gc-7GQYOS2G.js.map → gc-TDWSDR66.js.map} +0 -0
  598. /package/dist/cli-bundle/chunks/{history-WSZHY3PN.js.map → history-CGNQJXFE.js.map} +0 -0
  599. /package/dist/cli-bundle/chunks/{history-NERDJNUB.js.map → history-SGRRS72R.js.map} +0 -0
  600. /package/dist/cli-bundle/chunks/{history-redact-O3NBCNWC.js.map → history-redact-IRL7WJ3E.js.map} +0 -0
  601. /package/dist/cli-bundle/chunks/{history-redact-MP6CH7U5.js.map → history-redact-N3JK7VBW.js.map} +0 -0
  602. /package/dist/cli-bundle/chunks/{init-64XDLQJB.js.map → init-4GESW7RM.js.map} +0 -0
  603. /package/dist/cli-bundle/chunks/{init-PAX32BJA.js.map → init-XIDPABA4.js.map} +0 -0
  604. /package/dist/cli-bundle/chunks/{learnings-LPKCSJX7.js.map → learnings-4BHWFFUV.js.map} +0 -0
  605. /package/dist/cli-bundle/chunks/{learnings-JR6MA5TI.js.map → learnings-4FJY7WIW.js.map} +0 -0
  606. /package/dist/cli-bundle/chunks/{list-G5Y65VF6.js.map → list-472TIOVK.js.map} +0 -0
  607. /package/dist/cli-bundle/chunks/{list-DNBJVO3E.js.map → list-D7BF5CL2.js.map} +0 -0
  608. /package/dist/cli-bundle/chunks/{notes-2BMU3VVQ.js.map → notes-6KNOSLIT.js.map} +0 -0
  609. /package/dist/cli-bundle/chunks/{notes-6KTGO2OJ.js.map → notes-W4UEICGF.js.map} +0 -0
  610. /package/dist/cli-bundle/chunks/{restore-4MHZFJ2E.js.map → restore-44IHMMZZ.js.map} +0 -0
  611. /package/dist/cli-bundle/chunks/{restore-YALDGTQR.js.map → restore-EXHU34EU.js.map} +0 -0
  612. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-LB6DOLRL.js.map → scheduling-shortcuts-OLHNLAZY.js.map} +0 -0
  613. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-UTOYKLXQ.js.map → scheduling-shortcuts-TSBK4AY5.js.map} +0 -0
  614. /package/dist/cli-bundle/chunks/{schema-73HR2OJW.js.map → schema-IB2NZZWD.js.map} +0 -0
  615. /package/dist/cli-bundle/chunks/{schema-U6LJKSIR.js.map → schema-VBCELP5G.js.map} +0 -0
  616. /package/dist/cli-bundle/chunks/{search-AXPXKZER.js.map → search-7UBETML4.js.map} +0 -0
  617. /package/dist/cli-bundle/chunks/{search-KILGT37L.js.map → search-R227JOL6.js.map} +0 -0
  618. /package/dist/cli-bundle/chunks/{stats-W5KNVJWQ.js.map → stats-FAG7COEH.js.map} +0 -0
  619. /package/dist/cli-bundle/chunks/{stats-PSYVVTNZ.js.map → stats-MCK7PLYS.js.map} +0 -0
  620. /package/dist/cli-bundle/chunks/{test-PWDIZ255.js.map → test-QY44WAMR.js.map} +0 -0
  621. /package/dist/cli-bundle/chunks/{test-ACD52Z3S.js.map → test-SY76DZTO.js.map} +0 -0
  622. /package/dist/cli-bundle/chunks/{update-AMRSOIWP.js.map → update-A7EICML6.js.map} +0 -0
  623. /package/dist/cli-bundle/chunks/{update-KFX2SIAC.js.map → update-IKJZWLQC.js.map} +0 -0
  624. /package/dist/cli-bundle/chunks/{upgrade-BRL6KCOJ.js.map → upgrade-NWMR3VQL.js.map} +0 -0
  625. /package/dist/cli-bundle/chunks/{upgrade-HAK6JG2O.js.map → upgrade-VU46BLJZ.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  // dist/core/fs/fs-utils.js
2
2
 
3
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="03ed13d8-75ea-5f3b-b089-a7347a59acca")}catch(e){}}();
3
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="aeaf9c80-302b-561b-892d-b98b811d424b")}catch(e){}}();
4
4
  import * as fs from "node:fs/promises";
5
5
  import path from "node:path";
6
6
  import crypto from "node:crypto";
@@ -787,6 +787,13 @@ function normalizeItemTypeCommandOptionPolicies(policies, resolvePolicyCommand)
787
787
  }
788
788
  return [...dedupedByKey.values()].sort((left, right) => left.command === right.command ? left.option.localeCompare(right.option) : left.command.localeCompare(right.command));
789
789
  }
790
+ function normalizeOptionalStringList(values, preservePresence) {
791
+ return preservePresence ? normalizeItemTypeStringList(values) : void 0;
792
+ }
793
+ function optionalNonEmptyString(value) {
794
+ const normalized = value?.trim();
795
+ return normalized && normalized.length > 0 ? normalized : void 0;
796
+ }
790
797
  function normalizeItemTypeDefinition(definition, options = {}) {
791
798
  const resolvePolicyCommand = options.resolvePolicyCommand ?? keepPolicyCommand;
792
799
  const name = definition.name.trim();
@@ -797,20 +804,17 @@ function normalizeItemTypeDefinition(definition, options = {}) {
797
804
  const hasRequiredCreateRepeatables = definition.required_create_repeatables !== void 0;
798
805
  const hasOptions = definition.options !== void 0;
799
806
  const hasCommandOptionPolicies = definition.command_option_policies !== void 0;
800
- const folder = definition.folder?.trim();
801
- const description = definition.description?.trim();
802
- const defaultStatus = definition.default_status?.trim();
803
807
  const aliases = normalizeItemTypeStringList(definition.aliases);
804
808
  const normalizedOptions = (definition.options ?? []).map((option) => normalizeItemTypeOption(option)).filter((option) => option !== null).sort((left, right) => left.key.localeCompare(right.key));
805
809
  const commandOptionPolicies = normalizeItemTypeCommandOptionPolicies(definition.command_option_policies, resolvePolicyCommand);
806
810
  return {
807
811
  name,
808
- description: description && description.length > 0 ? description : void 0,
809
- default_status: defaultStatus && defaultStatus.length > 0 ? defaultStatus : void 0,
810
- folder: folder && folder.length > 0 ? folder : void 0,
812
+ description: optionalNonEmptyString(definition.description),
813
+ default_status: optionalNonEmptyString(definition.default_status),
814
+ folder: optionalNonEmptyString(definition.folder),
811
815
  aliases: aliases.length > 0 ? aliases : void 0,
812
- required_create_fields: hasRequiredCreateFields ? normalizeItemTypeStringList(definition.required_create_fields) : void 0,
813
- required_create_repeatables: hasRequiredCreateRepeatables ? normalizeItemTypeStringList(definition.required_create_repeatables) : void 0,
816
+ required_create_fields: normalizeOptionalStringList(definition.required_create_fields, hasRequiredCreateFields),
817
+ required_create_repeatables: normalizeOptionalStringList(definition.required_create_repeatables, hasRequiredCreateRepeatables),
814
818
  options: hasOptions ? normalizedOptions : void 0,
815
819
  command_option_policies: hasCommandOptionPolicies ? commandOptionPolicies : void 0
816
820
  };
@@ -1125,6 +1129,58 @@ function toSlugToken(value) {
1125
1129
  function normalizeTypeDefinition(definition) {
1126
1130
  return normalizeItemTypeDefinition(definition, { resolvePolicyCommand: strictPolicyCommand });
1127
1131
  }
1132
+ function readStringArray(record, key) {
1133
+ const value = record[key];
1134
+ return Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : void 0;
1135
+ }
1136
+ function coerceOptionDefinitionFromUnknown(raw) {
1137
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
1138
+ return null;
1139
+ }
1140
+ const optionRecord = raw;
1141
+ if (typeof optionRecord.key !== "string") {
1142
+ return null;
1143
+ }
1144
+ return {
1145
+ key: optionRecord.key,
1146
+ values: readStringArray(optionRecord, "values") ?? [],
1147
+ required: optionRecord.required === void 0 ? void 0 : Boolean(optionRecord.required),
1148
+ aliases: readStringArray(optionRecord, "aliases"),
1149
+ description: typeof optionRecord.description === "string" ? optionRecord.description : void 0
1150
+ };
1151
+ }
1152
+ function coerceCommandOptionPolicyFromUnknown(raw) {
1153
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
1154
+ return null;
1155
+ }
1156
+ const policyRecord = raw;
1157
+ if (typeof policyRecord.command !== "string" || typeof policyRecord.option !== "string") {
1158
+ return null;
1159
+ }
1160
+ const normalizedCommand = policyRecord.command.trim().toLowerCase();
1161
+ if (normalizedCommand !== "create" && normalizedCommand !== "update") {
1162
+ return null;
1163
+ }
1164
+ return {
1165
+ command: normalizedCommand,
1166
+ option: policyRecord.option,
1167
+ required: policyRecord.required === void 0 ? void 0 : Boolean(policyRecord.required),
1168
+ visible: policyRecord.visible === void 0 ? void 0 : Boolean(policyRecord.visible),
1169
+ enabled: policyRecord.enabled === void 0 ? void 0 : Boolean(policyRecord.enabled)
1170
+ };
1171
+ }
1172
+ function coerceOptionDefinitionsFromRecord(record) {
1173
+ if (!Array.isArray(record.options)) {
1174
+ return void 0;
1175
+ }
1176
+ return record.options.map((entry) => coerceOptionDefinitionFromUnknown(entry)).filter((entry) => entry !== null);
1177
+ }
1178
+ function coerceCommandOptionPoliciesFromRecord(record) {
1179
+ if (!Array.isArray(record.command_option_policies)) {
1180
+ return void 0;
1181
+ }
1182
+ return record.command_option_policies.map((entry) => coerceCommandOptionPolicyFromUnknown(entry)).filter((entry) => entry !== null);
1183
+ }
1128
1184
  function coerceTypeDefinitionFromUnknown(raw) {
1129
1185
  if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
1130
1186
  return null;
@@ -1137,65 +1193,30 @@ function coerceTypeDefinitionFromUnknown(raw) {
1137
1193
  const folder = typeof record.folder === "string" ? record.folder : void 0;
1138
1194
  const description = typeof record.description === "string" ? record.description : void 0;
1139
1195
  const defaultStatus = typeof record.default_status === "string" ? record.default_status : void 0;
1140
- const aliases = Array.isArray(record.aliases) ? record.aliases.filter((value) => typeof value === "string") : void 0;
1141
- const requiredCreateFields = Array.isArray(record.required_create_fields) ? record.required_create_fields.filter((value) => typeof value === "string") : void 0;
1142
- const requiredCreateRepeatables = Array.isArray(record.required_create_repeatables) ? record.required_create_repeatables.filter((value) => typeof value === "string") : void 0;
1143
- let options;
1144
- if (Array.isArray(record.options)) {
1145
- options = [];
1146
- for (const entry of record.options) {
1147
- if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
1148
- continue;
1149
- }
1150
- const optionRecord = entry;
1151
- if (typeof optionRecord.key !== "string") {
1152
- continue;
1153
- }
1154
- options.push({
1155
- key: optionRecord.key,
1156
- values: Array.isArray(optionRecord.values) ? optionRecord.values.filter((value) => typeof value === "string") : [],
1157
- required: optionRecord.required === void 0 ? void 0 : Boolean(optionRecord.required),
1158
- aliases: Array.isArray(optionRecord.aliases) ? optionRecord.aliases.filter((value) => typeof value === "string") : void 0,
1159
- description: typeof optionRecord.description === "string" ? optionRecord.description : void 0
1160
- });
1161
- }
1162
- }
1163
- let commandOptionPolicies;
1164
- if (Array.isArray(record.command_option_policies)) {
1165
- commandOptionPolicies = [];
1166
- for (const entry of record.command_option_policies) {
1167
- if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
1168
- continue;
1169
- }
1170
- const policyRecord = entry;
1171
- if (typeof policyRecord.command !== "string" || typeof policyRecord.option !== "string") {
1172
- continue;
1173
- }
1174
- const normalizedCommand = policyRecord.command.trim().toLowerCase();
1175
- if (normalizedCommand !== "create" && normalizedCommand !== "update") {
1176
- continue;
1177
- }
1178
- commandOptionPolicies.push({
1179
- command: normalizedCommand,
1180
- option: policyRecord.option,
1181
- required: policyRecord.required === void 0 ? void 0 : Boolean(policyRecord.required),
1182
- visible: policyRecord.visible === void 0 ? void 0 : Boolean(policyRecord.visible),
1183
- enabled: policyRecord.enabled === void 0 ? void 0 : Boolean(policyRecord.enabled)
1184
- });
1185
- }
1186
- }
1187
1196
  return {
1188
1197
  name,
1189
1198
  description,
1190
1199
  default_status: defaultStatus,
1191
1200
  folder,
1192
- aliases,
1193
- required_create_fields: requiredCreateFields,
1194
- required_create_repeatables: requiredCreateRepeatables,
1195
- options,
1196
- command_option_policies: commandOptionPolicies
1201
+ aliases: readStringArray(record, "aliases"),
1202
+ required_create_fields: readStringArray(record, "required_create_fields"),
1203
+ required_create_repeatables: readStringArray(record, "required_create_repeatables"),
1204
+ options: coerceOptionDefinitionsFromRecord(record),
1205
+ command_option_policies: coerceCommandOptionPoliciesFromRecord(record)
1197
1206
  };
1198
1207
  }
1208
+ function resolveDefinitionRequiredCreateFields(normalizedDefinition, existing) {
1209
+ return normalizedDefinition.required_create_fields ? normalizeItemTypeStringList(normalizedDefinition.required_create_fields) : existing?.required_create_fields ?? [];
1210
+ }
1211
+ function resolveDefinitionRequiredCreateRepeatables(normalizedDefinition, existing) {
1212
+ return normalizedDefinition.required_create_repeatables ? normalizeItemTypeStringList(normalizedDefinition.required_create_repeatables) : existing?.required_create_repeatables ?? [];
1213
+ }
1214
+ function resolveDefinitionOptions(normalizedDefinition, existing) {
1215
+ return normalizedDefinition.options ? normalizedDefinition.options : existing?.options ? [...existing.options] : [];
1216
+ }
1217
+ function resolveDefinitionCommandOptionPolicies(normalizedDefinition, existing) {
1218
+ return normalizedDefinition.command_option_policies ? normalizedDefinition.command_option_policies : existing?.command_option_policies ? [...existing.command_option_policies] : [];
1219
+ }
1199
1220
  function applyTypeDefinitions(source, target) {
1200
1221
  for (const rawDefinition of source) {
1201
1222
  const normalizedDefinition = normalizeTypeDefinition(rawDefinition);
@@ -1210,10 +1231,6 @@ function applyTypeDefinitions(source, target) {
1210
1231
  ...existing?.aliases ?? [],
1211
1232
  ...normalizedDefinition.aliases ?? []
1212
1233
  ]);
1213
- const requiredCreateFields = normalizedDefinition.required_create_fields ? normalizeItemTypeStringList(normalizedDefinition.required_create_fields) : existing?.required_create_fields ?? [];
1214
- const requiredCreateRepeatables = normalizedDefinition.required_create_repeatables ? normalizeItemTypeStringList(normalizedDefinition.required_create_repeatables) : existing?.required_create_repeatables ?? [];
1215
- const options = normalizedDefinition.options ? normalizedDefinition.options : existing?.options ? [...existing.options] : [];
1216
- const commandOptionPolicies = normalizedDefinition.command_option_policies ? normalizedDefinition.command_option_policies : existing?.command_option_policies ? [...existing.command_option_policies] : [];
1217
1234
  const defaultStatus = normalizedDefinition.default_status ?? existing?.default_status;
1218
1235
  const description = normalizedDefinition.description ?? existing?.description;
1219
1236
  target.set(lowerName, {
@@ -1222,10 +1239,10 @@ function applyTypeDefinitions(source, target) {
1222
1239
  ...defaultStatus ? { default_status: defaultStatus } : {},
1223
1240
  folder,
1224
1241
  aliases,
1225
- required_create_fields: requiredCreateFields,
1226
- required_create_repeatables: requiredCreateRepeatables,
1227
- options,
1228
- command_option_policies: commandOptionPolicies
1242
+ required_create_fields: resolveDefinitionRequiredCreateFields(normalizedDefinition, existing),
1243
+ required_create_repeatables: resolveDefinitionRequiredCreateRepeatables(normalizedDefinition, existing),
1244
+ options: resolveDefinitionOptions(normalizedDefinition, existing),
1245
+ command_option_policies: resolveDefinitionCommandOptionPolicies(normalizedDefinition, existing)
1229
1246
  });
1230
1247
  }
1231
1248
  }
@@ -1353,6 +1370,29 @@ function resolveCommandOptionPolicyState(typeDefinition, command, baseRequiredOp
1353
1370
  errors
1354
1371
  };
1355
1372
  }
1373
+ function buildTypeOptionAliasMap(typeDefinition) {
1374
+ const optionByAlias = /* @__PURE__ */ new Map();
1375
+ for (const option of typeDefinition.options) {
1376
+ optionByAlias.set(option.key.toLowerCase(), option);
1377
+ for (const alias of option.aliases ?? []) {
1378
+ optionByAlias.set(alias.toLowerCase(), option);
1379
+ }
1380
+ }
1381
+ return optionByAlias;
1382
+ }
1383
+ function resolveTypeOptionValue(optionDefinition, trimmedValue, errors) {
1384
+ const allowedValues = optionDefinition.values;
1385
+ if (allowedValues.length === 0) {
1386
+ return trimmedValue;
1387
+ }
1388
+ const valueLookup = new Map(allowedValues.map((value) => [value.toLowerCase(), value]));
1389
+ const canonical = valueLookup.get(trimmedValue.toLowerCase());
1390
+ if (!canonical) {
1391
+ errors.push(`Invalid value "${trimmedValue}" for type option "${optionDefinition.key}". Allowed: ${allowedValues.join(", ")}`);
1392
+ return void 0;
1393
+ }
1394
+ return canonical;
1395
+ }
1356
1396
  function validateTypeOptions(typeName, rawTypeOptions, registry) {
1357
1397
  const typeDefinition = resolveTypeDefinition(typeName, registry);
1358
1398
  if (!typeDefinition) {
@@ -1362,13 +1402,7 @@ function validateTypeOptions(typeName, rawTypeOptions, registry) {
1362
1402
  };
1363
1403
  }
1364
1404
  const errors = [];
1365
- const optionByAlias = /* @__PURE__ */ new Map();
1366
- for (const option of typeDefinition.options) {
1367
- optionByAlias.set(option.key.toLowerCase(), option);
1368
- for (const alias of option.aliases ?? []) {
1369
- optionByAlias.set(alias.toLowerCase(), option);
1370
- }
1371
- }
1405
+ const optionByAlias = buildTypeOptionAliasMap(typeDefinition);
1372
1406
  const normalized = {};
1373
1407
  for (const [rawKey, rawValue] of Object.entries(rawTypeOptions ?? {})) {
1374
1408
  const trimmedKey = rawKey.trim();
@@ -1387,16 +1421,9 @@ function validateTypeOptions(typeName, rawTypeOptions, registry) {
1387
1421
  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`);
1388
1422
  continue;
1389
1423
  }
1390
- const allowedValues = optionDefinition.values;
1391
- let resolvedValue = trimmedValue;
1392
- if (allowedValues.length > 0) {
1393
- const valueLookup = new Map(allowedValues.map((value) => [value.toLowerCase(), value]));
1394
- const canonical = valueLookup.get(trimmedValue.toLowerCase());
1395
- if (!canonical) {
1396
- errors.push(`Invalid value "${trimmedValue}" for type option "${optionDefinition.key}". Allowed: ${allowedValues.join(", ")}`);
1397
- continue;
1398
- }
1399
- resolvedValue = canonical;
1424
+ const resolvedValue = resolveTypeOptionValue(optionDefinition, trimmedValue, errors);
1425
+ if (resolvedValue === void 0) {
1426
+ continue;
1400
1427
  }
1401
1428
  normalized[optionDefinition.key] = resolvedValue;
1402
1429
  }
@@ -5103,40 +5130,47 @@ function normalizeRuntimeWorkflow(workflow) {
5103
5130
  canceled_status: normalizeStatusId(workflow?.canceled_status)
5104
5131
  };
5105
5132
  }
5133
+ function appendTypeWorkflowPair(record, pair) {
5134
+ if (!Array.isArray(pair) || pair.length !== 2) {
5135
+ return;
5136
+ }
5137
+ const from = normalizeStatusToken(pair[0]);
5138
+ const to = normalizeStatusToken(pair[1]);
5139
+ if (from.length === 0 || to.length === 0) {
5140
+ return;
5141
+ }
5142
+ if (record.pairs.some((candidate) => candidate[0] === from && candidate[1] === to)) {
5143
+ return;
5144
+ }
5145
+ record.pairs.push([from, to]);
5146
+ }
5147
+ function normalizedTypeWorkflowEntry(entry) {
5148
+ const rawType = typeof entry?.type === "string" ? entry.type.trim() : "";
5149
+ if (rawType.length === 0 || !Array.isArray(entry?.allowed_transitions)) {
5150
+ return null;
5151
+ }
5152
+ const record = { type: rawType, pairs: [], denyAll: entry.allowed_transitions.length === 0 };
5153
+ for (const pair of entry.allowed_transitions) {
5154
+ appendTypeWorkflowPair(record, pair);
5155
+ }
5156
+ return { typeKey: rawType.toLowerCase(), record };
5157
+ }
5106
5158
  function normalizeTypeWorkflowDefinitions(workflows) {
5107
5159
  if (!Array.isArray(workflows) || workflows.length === 0) {
5108
5160
  return void 0;
5109
5161
  }
5110
5162
  const byTypeKey = /* @__PURE__ */ new Map();
5111
5163
  for (const entry of workflows) {
5112
- const rawType = typeof entry?.type === "string" ? entry.type.trim() : "";
5113
- if (rawType.length === 0) {
5114
- continue;
5115
- }
5116
- if (!Array.isArray(entry?.allowed_transitions)) {
5164
+ const normalized2 = normalizedTypeWorkflowEntry(entry);
5165
+ if (normalized2 === null) {
5117
5166
  continue;
5118
5167
  }
5119
- const typeKey = rawType.toLowerCase();
5120
- const pairs = entry.allowed_transitions;
5121
- const record = byTypeKey.get(typeKey) ?? { type: rawType, pairs: [], denyAll: false };
5122
- if (pairs.length === 0) {
5123
- record.denyAll = true;
5168
+ const record = byTypeKey.get(normalized2.typeKey) ?? normalized2.record;
5169
+ record.denyAll ||= normalized2.record.denyAll;
5170
+ for (const pair of normalized2.record.pairs) {
5171
+ appendTypeWorkflowPair(record, pair);
5124
5172
  }
5125
- for (const pair of pairs) {
5126
- if (!Array.isArray(pair) || pair.length !== 2) {
5127
- continue;
5128
- }
5129
- const from = normalizeStatusToken(pair[0]);
5130
- const to = normalizeStatusToken(pair[1]);
5131
- if (from.length === 0 || to.length === 0) {
5132
- continue;
5133
- }
5134
- if (record.pairs.some((candidate) => candidate[0] === from && candidate[1] === to)) {
5135
- continue;
5136
- }
5137
- record.pairs.push([from, to]);
5138
- }
5139
- byTypeKey.set(typeKey, record);
5173
+ byTypeKey.set(normalized2.typeKey, record);
5140
5174
  }
5141
5175
  const normalized = [];
5142
5176
  for (const record of byTypeKey.values()) {
@@ -5184,70 +5218,81 @@ function normalizeRuntimeFieldDefinition(definition) {
5184
5218
  allow_unset: definition.allow_unset !== false
5185
5219
  };
5186
5220
  }
5221
+ function normalizeRuntimeStatusDefinitions(statusesSource) {
5222
+ const dedupedById = /* @__PURE__ */ new Map();
5223
+ for (const [index, definition] of statusesSource.entries()) {
5224
+ const normalized = normalizeRuntimeStatusDefinition(definition, index);
5225
+ if (normalized) {
5226
+ dedupedById.set(normalized.id, normalized);
5227
+ }
5228
+ }
5229
+ const values = sortRuntimeStatusDefinitions([...dedupedById.values()]);
5230
+ if (values.length > 0) {
5231
+ return values;
5232
+ }
5233
+ return sortRuntimeStatusDefinitions(DEFAULT_RUNTIME_STATUS_DEFINITIONS.map((definition, index) => normalizeRuntimeStatusDefinition(definition, index)).filter((definition) => definition !== null));
5234
+ }
5235
+ function sortRuntimeStatusDefinitions(definitions) {
5236
+ return definitions.sort((left, right) => left.order === right.order ? left.id.localeCompare(right.id) : left.order - right.order);
5237
+ }
5238
+ function normalizeRuntimeFieldDefinitions(fieldsSource) {
5239
+ const dedupedByKey = /* @__PURE__ */ new Map();
5240
+ for (const definition of fieldsSource ?? []) {
5241
+ const normalized = normalizeRuntimeFieldDefinition(definition);
5242
+ if (normalized) {
5243
+ dedupedByKey.set(normalized.key, normalized);
5244
+ }
5245
+ }
5246
+ return [...dedupedByKey.values()].sort((left, right) => left.key.localeCompare(right.key));
5247
+ }
5248
+ function serializeRuntimeStatusDefinition(definition) {
5249
+ return {
5250
+ id: definition.id,
5251
+ aliases: definition.aliases.length > 0 ? [...definition.aliases] : void 0,
5252
+ roles: definition.roles.length > 0 ? [...definition.roles] : void 0,
5253
+ description: definition.description,
5254
+ order: definition.order
5255
+ };
5256
+ }
5257
+ function serializeRuntimeFieldDefinition(definition) {
5258
+ return {
5259
+ key: definition.key,
5260
+ metadata_key: definition.metadata_key !== definition.key ? definition.metadata_key : void 0,
5261
+ cli_flag: definition.cli_flag !== keyToDefaultCliFlag(definition.key) ? definition.cli_flag : void 0,
5262
+ cli_aliases: definition.cli_aliases.length > 0 ? [...definition.cli_aliases] : void 0,
5263
+ description: definition.description,
5264
+ type: definition.type,
5265
+ commands: [...definition.commands],
5266
+ repeatable: definition.repeatable === true ? true : void 0,
5267
+ required: definition.required === true ? true : void 0,
5268
+ required_on_create: definition.required_on_create === true ? true : void 0,
5269
+ required_types: definition.required_types.length > 0 ? [...definition.required_types] : void 0,
5270
+ allow_unset: definition.allow_unset === false ? false : void 0
5271
+ };
5272
+ }
5273
+ function normalizeUnknownFieldPolicy(policy) {
5274
+ const candidate = typeof policy === "string" ? policy.trim().toLowerCase() : "allow";
5275
+ return RUNTIME_UNKNOWN_FIELD_POLICY_SET.has(candidate) ? candidate : "allow";
5276
+ }
5187
5277
  function normalizeRuntimeSchemaSettings(schema) {
5188
5278
  const files = {
5189
5279
  ...DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,
5190
5280
  ...schema?.files
5191
5281
  };
5192
5282
  const statusesSource = schema?.statuses && schema.statuses.length > 0 ? schema.statuses : DEFAULT_RUNTIME_STATUS_DEFINITIONS;
5193
- const normalizedStatuses = (() => {
5194
- const dedupedById = /* @__PURE__ */ new Map();
5195
- for (const [index, definition] of statusesSource.entries()) {
5196
- const normalized = normalizeRuntimeStatusDefinition(definition, index);
5197
- if (!normalized) {
5198
- continue;
5199
- }
5200
- dedupedById.set(normalized.id, normalized);
5201
- }
5202
- const values = [...dedupedById.values()].sort((left, right) => left.order === right.order ? left.id.localeCompare(right.id) : left.order - right.order);
5203
- if (values.length > 0) {
5204
- return values;
5205
- }
5206
- return DEFAULT_RUNTIME_STATUS_DEFINITIONS.map((definition, index) => normalizeRuntimeStatusDefinition(definition, index)).filter((definition) => definition !== null);
5207
- })();
5208
- const normalizedFields = (() => {
5209
- const dedupedByKey = /* @__PURE__ */ new Map();
5210
- for (const definition of schema?.fields ?? []) {
5211
- const normalized = normalizeRuntimeFieldDefinition(definition);
5212
- if (!normalized) {
5213
- continue;
5214
- }
5215
- dedupedByKey.set(normalized.key, normalized);
5216
- }
5217
- return [...dedupedByKey.values()].sort((left, right) => left.key.localeCompare(right.key));
5218
- })();
5219
- const unknownFieldPolicyCandidate = typeof schema?.unknown_field_policy === "string" ? schema.unknown_field_policy.trim().toLowerCase() : "allow";
5220
- const unknownFieldPolicy = RUNTIME_UNKNOWN_FIELD_POLICY_SET.has(unknownFieldPolicyCandidate) ? unknownFieldPolicyCandidate : "allow";
5283
+ const normalizedStatuses = normalizeRuntimeStatusDefinitions(statusesSource);
5284
+ const normalizedFields = normalizeRuntimeFieldDefinitions(schema?.fields);
5221
5285
  return {
5222
5286
  version: typeof schema?.version === "number" && Number.isFinite(schema.version) ? Math.floor(schema.version) : 1,
5223
5287
  files,
5224
- statuses: normalizedStatuses.map((definition) => ({
5225
- id: definition.id,
5226
- aliases: definition.aliases.length > 0 ? [...definition.aliases] : void 0,
5227
- roles: definition.roles.length > 0 ? [...definition.roles] : void 0,
5228
- description: definition.description,
5229
- order: definition.order
5230
- })),
5231
- fields: normalizedFields.map((definition) => ({
5232
- key: definition.key,
5233
- metadata_key: definition.metadata_key !== definition.key ? definition.metadata_key : void 0,
5234
- cli_flag: definition.cli_flag !== keyToDefaultCliFlag(definition.key) ? definition.cli_flag : void 0,
5235
- cli_aliases: definition.cli_aliases.length > 0 ? [...definition.cli_aliases] : void 0,
5236
- description: definition.description,
5237
- type: definition.type,
5238
- commands: [...definition.commands],
5239
- repeatable: definition.repeatable === true ? true : void 0,
5240
- required: definition.required === true ? true : void 0,
5241
- required_on_create: definition.required_on_create === true ? true : void 0,
5242
- required_types: definition.required_types.length > 0 ? [...definition.required_types] : void 0,
5243
- allow_unset: definition.allow_unset === false ? false : void 0
5244
- })),
5288
+ statuses: normalizedStatuses.map(serializeRuntimeStatusDefinition),
5289
+ fields: normalizedFields.map(serializeRuntimeFieldDefinition),
5245
5290
  workflow: {
5246
5291
  ...DEFAULT_RUNTIME_WORKFLOW,
5247
5292
  ...normalizeRuntimeWorkflow(schema?.workflow)
5248
5293
  },
5249
5294
  type_workflows: normalizeTypeWorkflowDefinitions(schema?.type_workflows),
5250
- unknown_field_policy: unknownFieldPolicy
5295
+ unknown_field_policy: normalizeUnknownFieldPolicy(schema?.unknown_field_policy)
5251
5296
  };
5252
5297
  }
5253
5298
  function serializeJson(value) {
@@ -5604,7 +5649,7 @@ var PmCliError = class extends Error {
5604
5649
 
5605
5650
  // dist/core/shared/serialization.js
5606
5651
  import crypto2 from "node:crypto";
5607
- function sortObjectKeys(value) {
5652
+ function sortScalarValue(value) {
5608
5653
  if (value === null)
5609
5654
  return null;
5610
5655
  if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
@@ -5622,6 +5667,25 @@ function sortObjectKeys(value) {
5622
5667
  if (typeof value === "function") {
5623
5668
  return `[function:${value.name || "anonymous"}]`;
5624
5669
  }
5670
+ return void 0;
5671
+ }
5672
+ function sortPlainObjectKeys(value) {
5673
+ const sortedKeys = Object.keys(value).sort();
5674
+ const result = {};
5675
+ for (const key of sortedKeys) {
5676
+ const nested = value[key];
5677
+ if (nested === void 0) {
5678
+ continue;
5679
+ }
5680
+ result[key] = sortObjectKeys(nested);
5681
+ }
5682
+ return result;
5683
+ }
5684
+ function sortObjectKeys(value) {
5685
+ const scalarValue = sortScalarValue(value);
5686
+ if (scalarValue !== void 0) {
5687
+ return scalarValue;
5688
+ }
5625
5689
  if (Array.isArray(value)) {
5626
5690
  return value.map((entry) => sortObjectKeys(entry));
5627
5691
  }
@@ -5635,17 +5699,7 @@ function sortObjectKeys(value) {
5635
5699
  return sortObjectKeys(normalized);
5636
5700
  }
5637
5701
  }
5638
- const obj = value;
5639
- const sortedKeys = Object.keys(obj).sort((a, b) => a.localeCompare(b));
5640
- const result = {};
5641
- for (const key of sortedKeys) {
5642
- const nested = obj[key];
5643
- if (nested === void 0) {
5644
- continue;
5645
- }
5646
- result[key] = sortObjectKeys(nested);
5647
- }
5648
- return result;
5702
+ return sortPlainObjectKeys(value);
5649
5703
  }
5650
5704
  function stableStringify(value) {
5651
5705
  return JSON.stringify(sortObjectKeys(value));
@@ -6640,29 +6694,31 @@ function normalizePmMaxVersionExceededModeSetting(value) {
6640
6694
  }
6641
6695
  return void 0;
6642
6696
  }
6697
+ function normalizeExtensionPolicyList(policy, key) {
6698
+ return normalizeLowerStringList(policy?.[key] ?? SETTINGS_DEFAULTS.extensions.policy[key]);
6699
+ }
6643
6700
  function normalizeExtensionPolicySettings(policy) {
6644
- const defaults = SETTINGS_DEFAULTS.extensions.policy;
6645
6701
  const pmMaxVersionExceededMode2 = normalizePmMaxVersionExceededModeSetting(policy?.pm_max_version_exceeded_mode);
6646
6702
  return {
6647
6703
  mode: normalizeExtensionPolicyMode(policy?.mode),
6648
6704
  trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),
6649
6705
  ...pmMaxVersionExceededMode2 !== void 0 ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode2 } : {},
6650
6706
  require_provenance: policy?.require_provenance === true,
6651
- trusted_extensions: normalizeLowerStringList(policy?.trusted_extensions ?? defaults.trusted_extensions),
6707
+ trusted_extensions: normalizeExtensionPolicyList(policy, "trusted_extensions"),
6652
6708
  default_sandbox_profile: normalizeExtensionSandboxProfile(policy?.default_sandbox_profile),
6653
- allowed_extensions: normalizeLowerStringList(policy?.allowed_extensions ?? defaults.allowed_extensions),
6654
- blocked_extensions: normalizeLowerStringList(policy?.blocked_extensions ?? defaults.blocked_extensions),
6655
- allowed_capabilities: normalizeLowerStringList(policy?.allowed_capabilities ?? defaults.allowed_capabilities),
6656
- blocked_capabilities: normalizeLowerStringList(policy?.blocked_capabilities ?? defaults.blocked_capabilities),
6657
- allowed_surfaces: normalizeLowerStringList(policy?.allowed_surfaces ?? defaults.allowed_surfaces),
6658
- blocked_surfaces: normalizeLowerStringList(policy?.blocked_surfaces ?? defaults.blocked_surfaces),
6659
- allowed_commands: normalizeLowerStringList(policy?.allowed_commands ?? defaults.allowed_commands),
6660
- blocked_commands: normalizeLowerStringList(policy?.blocked_commands ?? defaults.blocked_commands),
6661
- allowed_actions: normalizeLowerStringList(policy?.allowed_actions ?? defaults.allowed_actions),
6662
- blocked_actions: normalizeLowerStringList(policy?.blocked_actions ?? defaults.blocked_actions),
6663
- allowed_services: normalizeLowerStringList(policy?.allowed_services ?? defaults.allowed_services),
6664
- blocked_services: normalizeLowerStringList(policy?.blocked_services ?? defaults.blocked_services),
6665
- extension_overrides: normalizeExtensionPolicyOverrides(policy?.extension_overrides ?? defaults.extension_overrides)
6709
+ allowed_extensions: normalizeExtensionPolicyList(policy, "allowed_extensions"),
6710
+ blocked_extensions: normalizeExtensionPolicyList(policy, "blocked_extensions"),
6711
+ allowed_capabilities: normalizeExtensionPolicyList(policy, "allowed_capabilities"),
6712
+ blocked_capabilities: normalizeExtensionPolicyList(policy, "blocked_capabilities"),
6713
+ allowed_surfaces: normalizeExtensionPolicyList(policy, "allowed_surfaces"),
6714
+ blocked_surfaces: normalizeExtensionPolicyList(policy, "blocked_surfaces"),
6715
+ allowed_commands: normalizeExtensionPolicyList(policy, "allowed_commands"),
6716
+ blocked_commands: normalizeExtensionPolicyList(policy, "blocked_commands"),
6717
+ allowed_actions: normalizeExtensionPolicyList(policy, "allowed_actions"),
6718
+ blocked_actions: normalizeExtensionPolicyList(policy, "blocked_actions"),
6719
+ allowed_services: normalizeExtensionPolicyList(policy, "allowed_services"),
6720
+ blocked_services: normalizeExtensionPolicyList(policy, "blocked_services"),
6721
+ extension_overrides: normalizeExtensionPolicyOverrides(policy?.extension_overrides ?? SETTINGS_DEFAULTS.extensions.policy.extension_overrides)
6666
6722
  };
6667
6723
  }
6668
6724
  function normalizeValidationMetadataRequiredFields(values) {
@@ -6691,6 +6747,81 @@ function recordOrEmpty(value) {
6691
6747
  function arrayOrEmpty(value) {
6692
6748
  return Array.isArray(value) ? value : [];
6693
6749
  }
6750
+ function buildValidationSettings(settings, defaults, governance) {
6751
+ return {
6752
+ ...defaults.validation,
6753
+ ...settings.validation,
6754
+ parent_reference: governance.parent_reference,
6755
+ metadata_profile: governance.metadata_profile,
6756
+ metadata_required_fields: normalizeValidationMetadataRequiredFields(settings.validation?.metadata_required_fields),
6757
+ lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_stale_blocker_reason_patterns ?? defaults.validation.lifecycle_stale_blocker_reason_patterns),
6758
+ lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_blocked_reason_patterns ?? defaults.validation.lifecycle_closure_like_blocked_reason_patterns),
6759
+ lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_resolution_patterns ?? defaults.validation.lifecycle_closure_like_resolution_patterns),
6760
+ lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_actual_result_patterns ?? defaults.validation.lifecycle_closure_like_actual_result_patterns),
6761
+ estimate_defaults_by_type: normalizeEstimateDefaultOverrides(settings.validation?.estimate_defaults_by_type)
6762
+ };
6763
+ }
6764
+ function buildTelemetrySettings(settings, defaults) {
6765
+ return {
6766
+ enabled: settings.telemetry?.enabled ?? defaults.telemetry.enabled,
6767
+ first_run_prompt_completed: settings.telemetry?.first_run_prompt_completed ?? defaults.telemetry.first_run_prompt_completed,
6768
+ capture_level: settings.telemetry?.capture_level ?? defaults.telemetry.capture_level,
6769
+ endpoint: settings.telemetry?.endpoint ?? defaults.telemetry.endpoint,
6770
+ installation_id: settings.telemetry?.installation_id ?? defaults.telemetry.installation_id,
6771
+ retention_days: settings.telemetry?.retention_days ?? defaults.telemetry.retention_days
6772
+ };
6773
+ }
6774
+ function buildSearchSettings(settings, defaults) {
6775
+ return {
6776
+ ...defaults.search,
6777
+ ...settings.search,
6778
+ mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(settings.search?.mutation_refresh_policy),
6779
+ query_expansion: {
6780
+ ...defaults.search.query_expansion,
6781
+ ...settings.search?.query_expansion,
6782
+ enabled: normalizeSearchQueryExpansionEnabled(settings.search?.query_expansion?.enabled),
6783
+ provider: normalizeSearchQueryExpansionProvider(settings.search?.query_expansion?.provider)
6784
+ },
6785
+ rerank: {
6786
+ ...defaults.search.rerank,
6787
+ ...settings.search?.rerank,
6788
+ enabled: normalizeSearchRerankEnabled(settings.search?.rerank?.enabled),
6789
+ model: normalizeSearchRerankModel(settings.search?.rerank?.model),
6790
+ top_k: normalizeSearchRerankTopK(settings.search?.rerank?.top_k)
6791
+ }
6792
+ };
6793
+ }
6794
+ function buildVectorStoreSettings(settings, defaults) {
6795
+ return {
6796
+ adapter: settings.vector_store.adapter ?? defaults.vector_store.adapter,
6797
+ collection_name: normalizeVectorStoreCollectionName(settings.vector_store.collection_name),
6798
+ qdrant: { ...defaults.vector_store.qdrant, ...settings.vector_store.qdrant },
6799
+ lancedb: { ...defaults.vector_store.lancedb, ...settings.vector_store.lancedb }
6800
+ };
6801
+ }
6802
+ function normalizeSettingsItemFormat(settings, defaults) {
6803
+ if (settings.item_format === "json_markdown") {
6804
+ return "toon";
6805
+ }
6806
+ return settings.item_format ?? defaults.item_format;
6807
+ }
6808
+ function buildContextSettings(settings, defaults) {
6809
+ return {
6810
+ default_depth: settings.context?.default_depth ?? defaults.context.default_depth,
6811
+ activity_limit: settings.context?.activity_limit ?? defaults.context.activity_limit,
6812
+ stale_threshold_days: settings.context?.stale_threshold_days ?? defaults.context.stale_threshold_days,
6813
+ sections: {
6814
+ ...defaults.context.sections,
6815
+ ...settings.context?.sections
6816
+ }
6817
+ };
6818
+ }
6819
+ function buildProviderSettings(settings, defaults) {
6820
+ return {
6821
+ openai: { ...defaults.providers.openai, ...settings.providers.openai },
6822
+ ollama: { ...defaults.providers.ollama, ...settings.providers.ollama }
6823
+ };
6824
+ }
6694
6825
  function normalizeItemTypeDefinitions(definitions) {
6695
6826
  const normalized = (definitions ?? []).map((definition) => normalizeItemTypeDefinition(definition)).filter((definition) => definition !== null);
6696
6827
  const dedupedByName = /* @__PURE__ */ new Map();
@@ -6707,7 +6838,7 @@ function mergeSettings(settings) {
6707
6838
  return {
6708
6839
  ...defaults,
6709
6840
  ...settings,
6710
- item_format: settings.item_format === "json_markdown" ? "toon" : settings.item_format ?? defaults.item_format,
6841
+ item_format: normalizeSettingsItemFormat(settings, defaults),
6711
6842
  locks: { ...defaults.locks, ...settings.locks },
6712
6843
  checkpoints: { ...defaults.checkpoints, ...settings.checkpoints },
6713
6844
  output: { ...defaults.output, ...settings.output },
@@ -6719,18 +6850,7 @@ function mergeSettings(settings) {
6719
6850
  ...settings.history?.compact_policy
6720
6851
  }
6721
6852
  },
6722
- validation: {
6723
- ...defaults.validation,
6724
- ...settings.validation,
6725
- parent_reference: governance.parent_reference,
6726
- metadata_profile: governance.metadata_profile,
6727
- metadata_required_fields: normalizeValidationMetadataRequiredFields(settings.validation?.metadata_required_fields),
6728
- lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_stale_blocker_reason_patterns ?? defaults.validation.lifecycle_stale_blocker_reason_patterns),
6729
- lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_blocked_reason_patterns ?? defaults.validation.lifecycle_closure_like_blocked_reason_patterns),
6730
- lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_resolution_patterns ?? defaults.validation.lifecycle_closure_like_resolution_patterns),
6731
- lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(settings.validation?.lifecycle_closure_like_actual_result_patterns ?? defaults.validation.lifecycle_closure_like_actual_result_patterns),
6732
- estimate_defaults_by_type: normalizeEstimateDefaultOverrides(settings.validation?.estimate_defaults_by_type)
6733
- },
6853
+ validation: buildValidationSettings(settings, defaults, governance),
6734
6854
  governance,
6735
6855
  workflow: {
6736
6856
  definition_of_done: [...settings.workflow?.definition_of_done ?? defaults.workflow.definition_of_done]
@@ -6738,177 +6858,24 @@ function mergeSettings(settings) {
6738
6858
  testing: {
6739
6859
  record_results_to_items: settings.testing?.record_results_to_items ?? defaults.testing.record_results_to_items
6740
6860
  },
6741
- telemetry: {
6742
- enabled: settings.telemetry?.enabled ?? defaults.telemetry.enabled,
6743
- first_run_prompt_completed: settings.telemetry?.first_run_prompt_completed ?? defaults.telemetry.first_run_prompt_completed,
6744
- capture_level: settings.telemetry?.capture_level ?? defaults.telemetry.capture_level,
6745
- endpoint: settings.telemetry?.endpoint ?? defaults.telemetry.endpoint,
6746
- installation_id: settings.telemetry?.installation_id ?? defaults.telemetry.installation_id,
6747
- retention_days: settings.telemetry?.retention_days ?? defaults.telemetry.retention_days
6748
- },
6861
+ telemetry: buildTelemetrySettings(settings, defaults),
6749
6862
  agent_guidance: normalizeAgentGuidanceSettings(settings.agent_guidance ?? defaults.agent_guidance),
6750
6863
  item_types: {
6751
6864
  definitions: normalizeItemTypeDefinitions(settings.item_types?.definitions)
6752
6865
  },
6753
6866
  schema: normalizeRuntimeSchemaSettings(settings.schema ?? defaults.schema),
6754
- context: {
6755
- default_depth: settings.context?.default_depth ?? defaults.context.default_depth,
6756
- activity_limit: settings.context?.activity_limit ?? defaults.context.activity_limit,
6757
- stale_threshold_days: settings.context?.stale_threshold_days ?? defaults.context.stale_threshold_days,
6758
- sections: {
6759
- ...defaults.context.sections,
6760
- ...settings.context?.sections
6761
- }
6762
- },
6867
+ context: buildContextSettings(settings, defaults),
6763
6868
  extensions: {
6764
6869
  enabled: [...settings.extensions.enabled],
6765
6870
  disabled: [...settings.extensions.disabled],
6766
6871
  policy: normalizeExtensionPolicySettings(settings.extensions.policy ?? defaults.extensions.policy)
6767
6872
  },
6768
- search: {
6769
- ...defaults.search,
6770
- ...settings.search,
6771
- mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(settings.search?.mutation_refresh_policy),
6772
- query_expansion: {
6773
- ...defaults.search.query_expansion,
6774
- ...settings.search?.query_expansion,
6775
- enabled: normalizeSearchQueryExpansionEnabled(settings.search?.query_expansion?.enabled),
6776
- provider: normalizeSearchQueryExpansionProvider(settings.search?.query_expansion?.provider)
6777
- },
6778
- rerank: {
6779
- ...defaults.search.rerank,
6780
- ...settings.search?.rerank,
6781
- enabled: normalizeSearchRerankEnabled(settings.search?.rerank?.enabled),
6782
- model: normalizeSearchRerankModel(settings.search?.rerank?.model),
6783
- top_k: normalizeSearchRerankTopK(settings.search?.rerank?.top_k)
6784
- }
6785
- },
6786
- providers: {
6787
- openai: { ...defaults.providers.openai, ...settings.providers.openai },
6788
- ollama: { ...defaults.providers.ollama, ...settings.providers.ollama }
6789
- },
6790
- vector_store: {
6791
- adapter: settings.vector_store.adapter ?? defaults.vector_store.adapter,
6792
- collection_name: normalizeVectorStoreCollectionName(settings.vector_store.collection_name),
6793
- qdrant: { ...defaults.vector_store.qdrant, ...settings.vector_store.qdrant },
6794
- lancedb: { ...defaults.vector_store.lancedb, ...settings.vector_store.lancedb }
6795
- }
6873
+ search: buildSearchSettings(settings, defaults),
6874
+ providers: buildProviderSettings(settings, defaults),
6875
+ vector_store: buildVectorStoreSettings(settings, defaults)
6796
6876
  };
6797
6877
  }
6798
- function serializeSettings(settings, options = {}) {
6799
- const baseSettings = {
6800
- ...settings,
6801
- locks: valueOrDefault(settings.locks, SETTINGS_DEFAULTS.locks),
6802
- checkpoints: valueOrDefault(settings.checkpoints, SETTINGS_DEFAULTS.checkpoints),
6803
- output: valueOrDefault(settings.output, SETTINGS_DEFAULTS.output),
6804
- history: valueOrDefault(settings.history, SETTINGS_DEFAULTS.history),
6805
- validation: valueOrDefault(settings.validation, SETTINGS_DEFAULTS.validation),
6806
- workflow: valueOrDefault(settings.workflow, SETTINGS_DEFAULTS.workflow),
6807
- testing: valueOrDefault(settings.testing, SETTINGS_DEFAULTS.testing),
6808
- telemetry: valueOrDefault(settings.telemetry, SETTINGS_DEFAULTS.telemetry),
6809
- agent_guidance: valueOrDefault(settings.agent_guidance, SETTINGS_DEFAULTS.agent_guidance),
6810
- item_types: valueOrDefault(settings.item_types, SETTINGS_DEFAULTS.item_types),
6811
- schema: valueOrDefault(settings.schema, SETTINGS_DEFAULTS.schema),
6812
- context: valueOrDefault(settings.context, SETTINGS_DEFAULTS.context),
6813
- extensions: valueOrDefault(settings.extensions, SETTINGS_DEFAULTS.extensions),
6814
- search: valueOrDefault(settings.search, SETTINGS_DEFAULTS.search),
6815
- providers: valueOrDefault(settings.providers, SETTINGS_DEFAULTS.providers),
6816
- vector_store: valueOrDefault(settings.vector_store, SETTINGS_DEFAULTS.vector_store)
6817
- };
6818
- const governance = resolveGovernanceKnobs(baseSettings);
6819
- const normalizedSchema = normalizeRuntimeSchemaSettings(baseSettings.schema);
6820
- const persistedFileBackedSections = resolvePersistedFileBackedSchemaSections(baseSettings, options.persist_source);
6821
- const normalizedSettings = {
6822
- ...baseSettings,
6823
- item_format: "toon",
6824
- validation: {
6825
- ...baseSettings.validation,
6826
- parent_reference: governance.parent_reference,
6827
- metadata_profile: governance.metadata_profile,
6828
- metadata_required_fields: normalizeValidationMetadataRequiredFields(baseSettings.validation?.metadata_required_fields),
6829
- lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_stale_blocker_reason_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_stale_blocker_reason_patterns),
6830
- lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_blocked_reason_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_blocked_reason_patterns),
6831
- lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_resolution_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_resolution_patterns),
6832
- lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_actual_result_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_actual_result_patterns),
6833
- estimate_defaults_by_type: normalizeEstimateDefaultOverrides(baseSettings.validation?.estimate_defaults_by_type)
6834
- },
6835
- governance,
6836
- agent_guidance: normalizeAgentGuidanceSettings(baseSettings.agent_guidance),
6837
- item_types: {
6838
- definitions: persistedFileBackedSections.item_type_definitions
6839
- },
6840
- schema: {
6841
- ...normalizedSchema,
6842
- statuses: persistedFileBackedSections.schema_statuses,
6843
- fields: persistedFileBackedSections.schema_fields,
6844
- type_workflows: persistedFileBackedSections.schema_type_workflows
6845
- },
6846
- search: {
6847
- ...SETTINGS_DEFAULTS.search,
6848
- ...baseSettings.search,
6849
- mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(baseSettings.search?.mutation_refresh_policy),
6850
- query_expansion: {
6851
- ...SETTINGS_DEFAULTS.search.query_expansion,
6852
- ...baseSettings.search?.query_expansion,
6853
- enabled: normalizeSearchQueryExpansionEnabled(baseSettings.search?.query_expansion?.enabled),
6854
- provider: normalizeSearchQueryExpansionProvider(baseSettings.search?.query_expansion?.provider)
6855
- },
6856
- rerank: {
6857
- ...SETTINGS_DEFAULTS.search.rerank,
6858
- ...baseSettings.search?.rerank,
6859
- enabled: normalizeSearchRerankEnabled(baseSettings.search?.rerank?.enabled),
6860
- model: normalizeSearchRerankModel(baseSettings.search?.rerank?.model),
6861
- top_k: normalizeSearchRerankTopK(baseSettings.search?.rerank?.top_k)
6862
- }
6863
- },
6864
- context: {
6865
- default_depth: baseSettings.context?.default_depth ?? SETTINGS_DEFAULTS.context.default_depth,
6866
- activity_limit: baseSettings.context?.activity_limit ?? SETTINGS_DEFAULTS.context.activity_limit,
6867
- stale_threshold_days: baseSettings.context?.stale_threshold_days ?? SETTINGS_DEFAULTS.context.stale_threshold_days,
6868
- sections: {
6869
- ...SETTINGS_DEFAULTS.context.sections,
6870
- ...baseSettings.context?.sections
6871
- }
6872
- },
6873
- extensions: {
6874
- enabled: normalizeStringList2(baseSettings.extensions?.enabled),
6875
- disabled: normalizeStringList2(baseSettings.extensions?.disabled),
6876
- policy: normalizeExtensionPolicySettings(baseSettings.extensions?.policy)
6877
- },
6878
- vector_store: {
6879
- ...baseSettings.vector_store,
6880
- adapter: baseSettings.vector_store?.adapter ?? SETTINGS_DEFAULTS.vector_store.adapter,
6881
- collection_name: normalizeVectorStoreCollectionName(baseSettings.vector_store?.collection_name),
6882
- qdrant: { ...baseSettings.vector_store?.qdrant },
6883
- lancedb: { ...baseSettings.vector_store?.lancedb }
6884
- }
6885
- };
6886
- const ordered = orderObject({
6887
- ...normalizedSettings,
6888
- governance: normalizeGovernanceForPersist(governance)
6889
- }, [
6890
- "version",
6891
- "id_prefix",
6892
- "author_default",
6893
- "item_format",
6894
- "locks",
6895
- "checkpoints",
6896
- "output",
6897
- "history",
6898
- "validation",
6899
- "governance",
6900
- "workflow",
6901
- "testing",
6902
- "telemetry",
6903
- "agent_guidance",
6904
- "item_types",
6905
- "schema",
6906
- "context",
6907
- "extensions",
6908
- "search",
6909
- "providers",
6910
- "vector_store"
6911
- ]);
6878
+ function orderSerializedSettingsSections(ordered) {
6912
6879
  ordered.locks = orderObject(ordered.locks, ["ttl_seconds"]);
6913
6880
  ordered.checkpoints = orderObject(ordered.checkpoints, ["retention_days"]);
6914
6881
  ordered.output = orderObject(ordered.output, ["default_format"]);
@@ -7038,6 +7005,140 @@ function serializeSettings(settings, options = {}) {
7038
7005
  ]);
7039
7006
  ordered.vector_store.qdrant = orderObject(recordOrEmpty(ordered.vector_store.qdrant), ["url", "api_key"]);
7040
7007
  ordered.vector_store.lancedb = orderObject(recordOrEmpty(ordered.vector_store.lancedb), ["path"]);
7008
+ }
7009
+ function buildSerializeBaseSettings(settings) {
7010
+ return {
7011
+ ...settings,
7012
+ locks: valueOrDefault(settings.locks, SETTINGS_DEFAULTS.locks),
7013
+ checkpoints: valueOrDefault(settings.checkpoints, SETTINGS_DEFAULTS.checkpoints),
7014
+ output: valueOrDefault(settings.output, SETTINGS_DEFAULTS.output),
7015
+ history: valueOrDefault(settings.history, SETTINGS_DEFAULTS.history),
7016
+ validation: valueOrDefault(settings.validation, SETTINGS_DEFAULTS.validation),
7017
+ workflow: valueOrDefault(settings.workflow, SETTINGS_DEFAULTS.workflow),
7018
+ testing: valueOrDefault(settings.testing, SETTINGS_DEFAULTS.testing),
7019
+ telemetry: valueOrDefault(settings.telemetry, SETTINGS_DEFAULTS.telemetry),
7020
+ agent_guidance: valueOrDefault(settings.agent_guidance, SETTINGS_DEFAULTS.agent_guidance),
7021
+ item_types: valueOrDefault(settings.item_types, SETTINGS_DEFAULTS.item_types),
7022
+ schema: valueOrDefault(settings.schema, SETTINGS_DEFAULTS.schema),
7023
+ context: valueOrDefault(settings.context, SETTINGS_DEFAULTS.context),
7024
+ extensions: valueOrDefault(settings.extensions, SETTINGS_DEFAULTS.extensions),
7025
+ search: valueOrDefault(settings.search, SETTINGS_DEFAULTS.search),
7026
+ providers: valueOrDefault(settings.providers, SETTINGS_DEFAULTS.providers),
7027
+ vector_store: valueOrDefault(settings.vector_store, SETTINGS_DEFAULTS.vector_store)
7028
+ };
7029
+ }
7030
+ function buildSerializedValidationSettings(baseSettings, governance) {
7031
+ return {
7032
+ ...baseSettings.validation,
7033
+ parent_reference: governance.parent_reference,
7034
+ metadata_profile: governance.metadata_profile,
7035
+ metadata_required_fields: normalizeValidationMetadataRequiredFields(baseSettings.validation?.metadata_required_fields),
7036
+ lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_stale_blocker_reason_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_stale_blocker_reason_patterns),
7037
+ lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_blocked_reason_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_blocked_reason_patterns),
7038
+ lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_resolution_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_resolution_patterns),
7039
+ lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(baseSettings.validation?.lifecycle_closure_like_actual_result_patterns ?? SETTINGS_DEFAULTS.validation.lifecycle_closure_like_actual_result_patterns),
7040
+ estimate_defaults_by_type: normalizeEstimateDefaultOverrides(baseSettings.validation?.estimate_defaults_by_type)
7041
+ };
7042
+ }
7043
+ function buildSerializedSearchSettings(baseSettings) {
7044
+ return {
7045
+ ...SETTINGS_DEFAULTS.search,
7046
+ ...baseSettings.search,
7047
+ mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(baseSettings.search?.mutation_refresh_policy),
7048
+ query_expansion: {
7049
+ ...SETTINGS_DEFAULTS.search.query_expansion,
7050
+ ...baseSettings.search?.query_expansion,
7051
+ enabled: normalizeSearchQueryExpansionEnabled(baseSettings.search?.query_expansion?.enabled),
7052
+ provider: normalizeSearchQueryExpansionProvider(baseSettings.search?.query_expansion?.provider)
7053
+ },
7054
+ rerank: {
7055
+ ...SETTINGS_DEFAULTS.search.rerank,
7056
+ ...baseSettings.search?.rerank,
7057
+ enabled: normalizeSearchRerankEnabled(baseSettings.search?.rerank?.enabled),
7058
+ model: normalizeSearchRerankModel(baseSettings.search?.rerank?.model),
7059
+ top_k: normalizeSearchRerankTopK(baseSettings.search?.rerank?.top_k)
7060
+ }
7061
+ };
7062
+ }
7063
+ function buildSerializedContextSettings(baseSettings) {
7064
+ return {
7065
+ default_depth: baseSettings.context?.default_depth ?? SETTINGS_DEFAULTS.context.default_depth,
7066
+ activity_limit: baseSettings.context?.activity_limit ?? SETTINGS_DEFAULTS.context.activity_limit,
7067
+ stale_threshold_days: baseSettings.context?.stale_threshold_days ?? SETTINGS_DEFAULTS.context.stale_threshold_days,
7068
+ sections: {
7069
+ ...SETTINGS_DEFAULTS.context.sections,
7070
+ ...baseSettings.context?.sections
7071
+ }
7072
+ };
7073
+ }
7074
+ function buildSerializedVectorStoreSettings(baseSettings) {
7075
+ return {
7076
+ ...baseSettings.vector_store,
7077
+ adapter: baseSettings.vector_store?.adapter ?? SETTINGS_DEFAULTS.vector_store.adapter,
7078
+ collection_name: normalizeVectorStoreCollectionName(baseSettings.vector_store?.collection_name),
7079
+ qdrant: { ...baseSettings.vector_store?.qdrant },
7080
+ lancedb: { ...baseSettings.vector_store?.lancedb }
7081
+ };
7082
+ }
7083
+ function buildNormalizedSettingsForSerialization(baseSettings, governance, normalizedSchema, persistedFileBackedSections) {
7084
+ return {
7085
+ ...baseSettings,
7086
+ item_format: "toon",
7087
+ validation: buildSerializedValidationSettings(baseSettings, governance),
7088
+ governance,
7089
+ agent_guidance: normalizeAgentGuidanceSettings(baseSettings.agent_guidance),
7090
+ item_types: {
7091
+ definitions: persistedFileBackedSections.item_type_definitions
7092
+ },
7093
+ schema: {
7094
+ ...normalizedSchema,
7095
+ statuses: persistedFileBackedSections.schema_statuses,
7096
+ fields: persistedFileBackedSections.schema_fields,
7097
+ type_workflows: persistedFileBackedSections.schema_type_workflows
7098
+ },
7099
+ search: buildSerializedSearchSettings(baseSettings),
7100
+ context: buildSerializedContextSettings(baseSettings),
7101
+ extensions: {
7102
+ enabled: normalizeStringList2(baseSettings.extensions?.enabled),
7103
+ disabled: normalizeStringList2(baseSettings.extensions?.disabled),
7104
+ policy: normalizeExtensionPolicySettings(baseSettings.extensions?.policy)
7105
+ },
7106
+ vector_store: buildSerializedVectorStoreSettings(baseSettings)
7107
+ };
7108
+ }
7109
+ function serializeSettings(settings, options = {}) {
7110
+ const baseSettings = buildSerializeBaseSettings(settings);
7111
+ const governance = resolveGovernanceKnobs(baseSettings);
7112
+ const normalizedSchema = normalizeRuntimeSchemaSettings(baseSettings.schema);
7113
+ const persistedFileBackedSections = resolvePersistedFileBackedSchemaSections(baseSettings, options.persist_source);
7114
+ const normalizedSettings = buildNormalizedSettingsForSerialization(baseSettings, governance, normalizedSchema, persistedFileBackedSections);
7115
+ const ordered = orderObject({
7116
+ ...normalizedSettings,
7117
+ governance: normalizeGovernanceForPersist(governance)
7118
+ }, [
7119
+ "version",
7120
+ "id_prefix",
7121
+ "author_default",
7122
+ "item_format",
7123
+ "locks",
7124
+ "checkpoints",
7125
+ "output",
7126
+ "history",
7127
+ "validation",
7128
+ "governance",
7129
+ "workflow",
7130
+ "testing",
7131
+ "telemetry",
7132
+ "agent_guidance",
7133
+ "item_types",
7134
+ "schema",
7135
+ "context",
7136
+ "extensions",
7137
+ "search",
7138
+ "providers",
7139
+ "vector_store"
7140
+ ]);
7141
+ orderSerializedSettingsSections(ordered);
7041
7142
  return `${JSON.stringify(ordered, null, 2)}
7042
7143
  `;
7043
7144
  }
@@ -7299,6 +7400,6 @@ export {
7299
7400
  readSettings,
7300
7401
  writeSettings
7301
7402
  };
7302
- //# sourceMappingURL=chunk-7R4QEMZZ.js.map
7403
+ //# sourceMappingURL=chunk-L4SLHV6G.js.map
7303
7404
 
7304
- //# debugId=03ed13d8-75ea-5f3b-b089-a7347a59acca
7405
+ //# debugId=aeaf9c80-302b-561b-892d-b98b811d424b