@unbrained/pm-cli 2026.7.6 → 2026.7.7

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 (666) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/cli/commands/annotation-command.d.ts +1 -0
  3. package/dist/cli/commands/annotation-command.js +29 -2
  4. package/dist/cli/commands/annotation-command.js.map +1 -1
  5. package/dist/cli/commands/comments.js +3 -4
  6. package/dist/cli/commands/comments.js.map +1 -1
  7. package/dist/cli/commands/extension/bundled-catalog.d.ts +3 -0
  8. package/dist/cli/commands/extension/bundled-catalog.js +38 -28
  9. package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
  10. package/dist/cli/commands/extension/install-sources.js +81 -18
  11. package/dist/cli/commands/extension/install-sources.js.map +1 -1
  12. package/dist/cli/commands/health.js +9 -5
  13. package/dist/cli/commands/health.js.map +1 -1
  14. package/dist/cli/commands/learnings.js +5 -3
  15. package/dist/cli/commands/learnings.js.map +1 -1
  16. package/dist/cli/commands/notes.js +5 -3
  17. package/dist/cli/commands/notes.js.map +1 -1
  18. package/dist/cli/commands/reindex.js +4 -3
  19. package/dist/cli/commands/reindex.js.map +1 -1
  20. package/dist/cli/commands/search.js +3 -3
  21. package/dist/cli/commands/search.js.map +1 -1
  22. package/dist/cli/commands/test.d.ts +9 -0
  23. package/dist/cli/commands/test.js +144 -105
  24. package/dist/cli/commands/test.js.map +1 -1
  25. package/dist/cli/extension-command-help.js +10 -2
  26. package/dist/cli/extension-command-help.js.map +1 -1
  27. package/dist/cli/register-list-query.d.ts +1 -1
  28. package/dist/cli/register-list-query.js +18 -27
  29. package/dist/cli/register-list-query.js.map +1 -1
  30. package/dist/cli/register-operations.d.ts +0 -8
  31. package/dist/cli/register-operations.js +41 -46
  32. package/dist/cli/register-operations.js.map +1 -1
  33. package/dist/cli/register-setup.js +113 -13
  34. package/dist/cli/register-setup.js.map +1 -1
  35. package/dist/cli/registration-helpers.d.ts +5 -1
  36. package/dist/cli/registration-helpers.js +14 -2
  37. package/dist/cli/registration-helpers.js.map +1 -1
  38. package/dist/cli-bundle/chunks/append-F7WPGIQL.js +11 -0
  39. package/dist/cli-bundle/chunks/{gc-2DNMPXMC.js → append-PVCTBVJG.js} +8 -9
  40. package/dist/cli-bundle/chunks/{chunk-EGAP5OWD.js → chunk-2APXX4TZ.js} +16 -14
  41. package/dist/cli-bundle/chunks/chunk-2APXX4TZ.js.map +1 -0
  42. package/dist/cli-bundle/chunks/{chunk-R5BMJX33.js → chunk-2LEJGRQ7.js} +2 -2
  43. package/dist/cli-bundle/chunks/{chunk-AZYGZGGI.js → chunk-2TILG6F2.js} +3 -3
  44. package/dist/cli-bundle/chunks/{chunk-SMB7RV23.js → chunk-3G6UMXT3.js} +6 -8
  45. package/dist/cli-bundle/chunks/{chunk-SMB7RV23.js.map → chunk-3G6UMXT3.js.map} +1 -1
  46. package/dist/cli-bundle/chunks/{chunk-GJ7QC5DJ.js → chunk-3TYOW6RR.js} +8 -8
  47. package/dist/cli-bundle/chunks/{chunk-B6DUFX6H.js → chunk-3X542TEY.js} +7 -7
  48. package/dist/cli-bundle/chunks/{chunk-B6XS3R3O.js → chunk-42LXP4VO.js} +12 -16
  49. package/dist/cli-bundle/chunks/{chunk-B6XS3R3O.js.map → chunk-42LXP4VO.js.map} +1 -1
  50. package/dist/cli-bundle/chunks/{chunk-CL36D4PC.js → chunk-43SIHQND.js} +36 -15
  51. package/dist/cli-bundle/chunks/chunk-43SIHQND.js.map +7 -0
  52. package/dist/cli-bundle/chunks/{chunk-7D7OOEYG.js → chunk-43UQN754.js} +10 -14
  53. package/dist/cli-bundle/chunks/{chunk-7D7OOEYG.js.map → chunk-43UQN754.js.map} +1 -1
  54. package/dist/cli-bundle/chunks/{chunk-ALFPSEWO.js → chunk-43YSKY75.js} +4 -6
  55. package/dist/cli-bundle/chunks/{chunk-ALFPSEWO.js.map → chunk-43YSKY75.js.map} +1 -1
  56. package/dist/cli-bundle/chunks/{chunk-NO442GWJ.js → chunk-4BKDAEDF.js} +5 -5
  57. package/dist/cli-bundle/chunks/{chunk-NO442GWJ.js.map → chunk-4BKDAEDF.js.map} +2 -2
  58. package/dist/cli-bundle/chunks/{chunk-4LELACOL.js → chunk-4IQKDKGE.js} +15 -23
  59. package/dist/cli-bundle/chunks/{chunk-4LELACOL.js.map → chunk-4IQKDKGE.js.map} +1 -1
  60. package/dist/cli-bundle/chunks/{chunk-F3K4JGFD.js → chunk-4MZOKTI2.js} +6 -8
  61. package/dist/cli-bundle/chunks/{chunk-F3K4JGFD.js.map → chunk-4MZOKTI2.js.map} +1 -1
  62. package/dist/cli-bundle/chunks/{chunk-D2XRLB55.js → chunk-52NS7JDP.js} +14 -20
  63. package/dist/cli-bundle/chunks/{chunk-D2XRLB55.js.map → chunk-52NS7JDP.js.map} +1 -1
  64. package/dist/cli-bundle/chunks/{chunk-IX5BXEMX.js → chunk-565WYS5W.js} +12 -16
  65. package/dist/cli-bundle/chunks/{chunk-IX5BXEMX.js.map → chunk-565WYS5W.js.map} +1 -1
  66. package/dist/cli-bundle/chunks/{chunk-UH7T2DAX.js → chunk-5FIQ4EX3.js} +12 -18
  67. package/dist/cli-bundle/chunks/{chunk-UH7T2DAX.js.map → chunk-5FIQ4EX3.js.map} +1 -1
  68. package/dist/cli-bundle/chunks/{chunk-DMRNBQOI.js → chunk-6G6O3OPQ.js} +256 -36
  69. package/dist/cli-bundle/chunks/chunk-6G6O3OPQ.js.map +1 -0
  70. package/dist/cli-bundle/chunks/{chunk-G64OCSKU.js → chunk-6LCJRGPD.js} +9 -13
  71. package/dist/cli-bundle/chunks/{chunk-G64OCSKU.js.map → chunk-6LCJRGPD.js.map} +1 -1
  72. package/dist/cli-bundle/chunks/{chunk-7WBAJSS6.js → chunk-6UQCNWFV.js} +6 -8
  73. package/dist/cli-bundle/chunks/{chunk-7WBAJSS6.js.map → chunk-6UQCNWFV.js.map} +1 -1
  74. package/dist/cli-bundle/chunks/{chunk-ZSUS2OD3.js → chunk-6XTSYPPO.js} +1216 -387
  75. package/dist/cli-bundle/chunks/chunk-6XTSYPPO.js.map +7 -0
  76. package/dist/cli-bundle/chunks/chunk-7ML7JONU.js +5434 -0
  77. package/dist/cli-bundle/chunks/chunk-7ML7JONU.js.map +1 -0
  78. package/dist/cli-bundle/chunks/{chunk-ZZD4J5XY.js → chunk-7PNQA24K.js} +30 -36
  79. package/dist/cli-bundle/chunks/{chunk-ZZD4J5XY.js.map → chunk-7PNQA24K.js.map} +1 -1
  80. package/dist/cli-bundle/chunks/{chunk-JJP45OEI.js → chunk-7VQ3JJN5.js} +2 -2
  81. package/dist/cli-bundle/chunks/{chunk-OGWQ2IEP.js → chunk-7Y5N34HX.js} +8 -12
  82. package/dist/cli-bundle/chunks/{chunk-OGWQ2IEP.js.map → chunk-7Y5N34HX.js.map} +1 -1
  83. package/dist/cli-bundle/chunks/{chunk-MWMVPCIE.js → chunk-AGAVEDIE.js} +7 -7
  84. package/dist/cli-bundle/chunks/{chunk-22KBU3MW.js → chunk-AJUON7E6.js} +3 -3
  85. package/dist/cli-bundle/chunks/{chunk-ZJ262CED.js → chunk-ARKHKYYS.js} +13 -21
  86. package/dist/cli-bundle/chunks/{chunk-ZJ262CED.js.map → chunk-ARKHKYYS.js.map} +1 -1
  87. package/dist/cli-bundle/chunks/{chunk-46CUF5L6.js → chunk-C5ACVMOI.js} +99 -51
  88. package/dist/cli-bundle/chunks/chunk-C5ACVMOI.js.map +7 -0
  89. package/dist/cli-bundle/chunks/{chunk-LPSSSDJR.js → chunk-CJQM7O7R.js} +16 -20
  90. package/dist/cli-bundle/chunks/{chunk-LPSSSDJR.js.map → chunk-CJQM7O7R.js.map} +1 -1
  91. package/dist/cli-bundle/chunks/{chunk-GBAX2ZAQ.js → chunk-D2DCTFTL.js} +10 -12
  92. package/dist/cli-bundle/chunks/{chunk-GBAX2ZAQ.js.map → chunk-D2DCTFTL.js.map} +1 -1
  93. package/dist/cli-bundle/chunks/{chunk-XHET7YUZ.js → chunk-DDDWVPID.js} +8 -10
  94. package/dist/cli-bundle/chunks/{chunk-XHET7YUZ.js.map → chunk-DDDWVPID.js.map} +1 -1
  95. package/dist/cli-bundle/chunks/{chunk-HIHMT6WS.js → chunk-DG6BSXZ7.js} +5 -5
  96. package/dist/cli-bundle/chunks/{chunk-HIHMT6WS.js.map → chunk-DG6BSXZ7.js.map} +2 -2
  97. package/dist/cli-bundle/chunks/{chunk-IWVU4C2F.js → chunk-DR2V5OIV.js} +3 -3
  98. package/dist/cli-bundle/chunks/{chunk-ZGK4L4JM.js → chunk-E3LWJUGF.js} +4 -6
  99. package/dist/cli-bundle/chunks/{chunk-ZGK4L4JM.js.map → chunk-E3LWJUGF.js.map} +1 -1
  100. package/dist/cli-bundle/chunks/{chunk-XUC7PI2H.js → chunk-E3YQFSFE.js} +6 -10
  101. package/dist/cli-bundle/chunks/{chunk-XUC7PI2H.js.map → chunk-E3YQFSFE.js.map} +1 -1
  102. package/dist/cli-bundle/chunks/{chunk-XG625QP4.js → chunk-EDO7VXSO.js} +2 -2
  103. package/dist/cli-bundle/chunks/{chunk-MA4SM3QZ.js → chunk-EIUBK2LT.js} +12 -18
  104. package/dist/cli-bundle/chunks/{chunk-MA4SM3QZ.js.map → chunk-EIUBK2LT.js.map} +1 -1
  105. package/dist/cli-bundle/chunks/{chunk-YN7Y6DQZ.js → chunk-EMXPI36L.js} +14 -20
  106. package/dist/cli-bundle/chunks/{chunk-YN7Y6DQZ.js.map → chunk-EMXPI36L.js.map} +1 -1
  107. package/dist/cli-bundle/chunks/{chunk-MLIYFOE7.js → chunk-EOUVR7JN.js} +12 -8
  108. package/dist/cli-bundle/chunks/chunk-EOUVR7JN.js.map +1 -0
  109. package/dist/cli-bundle/chunks/{chunk-Y4M7CPQP.js → chunk-EVEPHNXJ.js} +4 -4
  110. package/dist/cli-bundle/chunks/{chunk-M7JNBQAD.js → chunk-F6MT7KKE.js} +4 -6
  111. package/dist/cli-bundle/chunks/{chunk-M7JNBQAD.js.map → chunk-F6MT7KKE.js.map} +1 -1
  112. package/dist/cli-bundle/chunks/{chunk-W3DSJQIO.js → chunk-F6YC2A6X.js} +7 -11
  113. package/dist/cli-bundle/chunks/{chunk-W3DSJQIO.js.map → chunk-F6YC2A6X.js.map} +1 -1
  114. package/dist/cli-bundle/chunks/chunk-FILL6BB2.js +5514 -0
  115. package/dist/cli-bundle/chunks/chunk-FILL6BB2.js.map +7 -0
  116. package/dist/cli-bundle/chunks/{chunk-JDDLOQAE.js → chunk-FN6SB4HU.js} +2 -2
  117. package/dist/cli-bundle/chunks/chunk-GH73UOSJ.js +5359 -0
  118. package/dist/cli-bundle/chunks/chunk-GH73UOSJ.js.map +1 -0
  119. package/dist/cli-bundle/chunks/{chunk-EKFNL33R.js → chunk-GLS6VMWI.js} +37 -16
  120. package/dist/cli-bundle/chunks/chunk-GLS6VMWI.js.map +1 -0
  121. package/dist/cli-bundle/chunks/{chunk-HOVCGJSD.js → chunk-GPIDUMMN.js} +9 -11
  122. package/dist/cli-bundle/chunks/{chunk-HOVCGJSD.js.map → chunk-GPIDUMMN.js.map} +1 -1
  123. package/dist/cli-bundle/chunks/{chunk-SQOIV3OQ.js → chunk-GTM5HQL4.js} +11 -15
  124. package/dist/cli-bundle/chunks/{chunk-SQOIV3OQ.js.map → chunk-GTM5HQL4.js.map} +1 -1
  125. package/dist/cli-bundle/chunks/{chunk-24YG75HI.js → chunk-H2SMKL2N.js} +8 -8
  126. package/dist/cli-bundle/chunks/{chunk-QLMX7SRD.js → chunk-HHEWQXPD.js} +6 -6
  127. package/dist/cli-bundle/chunks/chunk-HHEWQXPD.js.map +7 -0
  128. package/dist/cli-bundle/chunks/{chunk-EGY6JBQ3.js → chunk-HX6QXV5P.js} +2 -2
  129. package/dist/cli-bundle/chunks/{chunk-4ZBE5GUN.js → chunk-I74FMIWA.js} +10 -16
  130. package/dist/cli-bundle/chunks/{chunk-4ZBE5GUN.js.map → chunk-I74FMIWA.js.map} +1 -1
  131. package/dist/cli-bundle/chunks/{chunk-3N6RRO2Q.js → chunk-IDIBF4E2.js} +20 -24
  132. package/dist/cli-bundle/chunks/{chunk-3N6RRO2Q.js.map → chunk-IDIBF4E2.js.map} +1 -1
  133. package/dist/cli-bundle/chunks/{chunk-6QBJLYBP.js → chunk-II7R6KD4.js} +8 -7
  134. package/dist/cli-bundle/chunks/{chunk-6QBJLYBP.js.map → chunk-II7R6KD4.js.map} +1 -1
  135. package/dist/cli-bundle/chunks/chunk-J2VGADNG.js +10320 -0
  136. package/dist/cli-bundle/chunks/chunk-J2VGADNG.js.map +1 -0
  137. package/dist/cli-bundle/chunks/{chunk-FT3QTERD.js → chunk-J7BOLHAV.js} +5 -7
  138. package/dist/cli-bundle/chunks/{chunk-FT3QTERD.js.map → chunk-J7BOLHAV.js.map} +1 -1
  139. package/dist/cli-bundle/chunks/{chunk-GANUTS7W.js → chunk-KTGJ2CBU.js} +4 -6
  140. package/dist/cli-bundle/chunks/{chunk-GANUTS7W.js.map → chunk-KTGJ2CBU.js.map} +1 -1
  141. package/dist/cli-bundle/chunks/{chunk-LK6XLOGP.js → chunk-LCFJ7XAM.js} +22 -2
  142. package/dist/cli-bundle/chunks/{chunk-LK6XLOGP.js.map → chunk-LCFJ7XAM.js.map} +3 -3
  143. package/dist/cli-bundle/chunks/{chunk-3UJRFJ5R.js → chunk-LZQU6XJG.js} +28 -34
  144. package/dist/cli-bundle/chunks/{chunk-3UJRFJ5R.js.map → chunk-LZQU6XJG.js.map} +1 -1
  145. package/dist/cli-bundle/chunks/{chunk-L5PSPMZ4.js → chunk-M62RO3XK.js} +10 -14
  146. package/dist/cli-bundle/chunks/{chunk-L5PSPMZ4.js.map → chunk-M62RO3XK.js.map} +1 -1
  147. package/dist/cli-bundle/chunks/{chunk-CFB33L7W.js → chunk-MCEUKJKW.js} +12 -14
  148. package/dist/cli-bundle/chunks/{chunk-CFB33L7W.js.map → chunk-MCEUKJKW.js.map} +1 -1
  149. package/dist/cli-bundle/chunks/{chunk-TKD5VCTD.js → chunk-MHNMCDWR.js} +343 -195
  150. package/dist/cli-bundle/chunks/chunk-MHNMCDWR.js.map +1 -0
  151. package/dist/cli-bundle/chunks/{chunk-O6AWCQRQ.js → chunk-MRFWUSVA.js} +4 -6
  152. package/dist/cli-bundle/chunks/{chunk-O6AWCQRQ.js.map → chunk-MRFWUSVA.js.map} +1 -1
  153. package/dist/cli-bundle/chunks/{chunk-SQYJ4HF2.js → chunk-N6ZHDLUY.js} +6 -8
  154. package/dist/cli-bundle/chunks/{chunk-SQYJ4HF2.js.map → chunk-N6ZHDLUY.js.map} +1 -1
  155. package/dist/cli-bundle/chunks/{chunk-ZWBEPGD7.js → chunk-NWWL22C7.js} +7 -9
  156. package/dist/cli-bundle/chunks/{chunk-ZWBEPGD7.js.map → chunk-NWWL22C7.js.map} +1 -1
  157. package/dist/cli-bundle/chunks/{chunk-Y46GD4IX.js → chunk-P3MJJW7P.js} +2 -2
  158. package/dist/cli-bundle/chunks/{chunk-MVYWGY2A.js → chunk-PDXJXEZJ.js} +2 -2
  159. package/dist/cli-bundle/chunks/{chunk-SGMFPXKR.js → chunk-Q64AYQYW.js} +10 -12
  160. package/dist/cli-bundle/chunks/{chunk-SGMFPXKR.js.map → chunk-Q64AYQYW.js.map} +1 -1
  161. package/dist/cli-bundle/chunks/{chunk-EBRZZ54H.js → chunk-QDABF2RB.js} +26 -34
  162. package/dist/cli-bundle/chunks/{chunk-EBRZZ54H.js.map → chunk-QDABF2RB.js.map} +1 -1
  163. package/dist/cli-bundle/chunks/{chunk-TULGS6X6.js → chunk-QFBSP3NI.js} +529 -46
  164. package/dist/cli-bundle/chunks/chunk-QFBSP3NI.js.map +1 -0
  165. package/dist/cli-bundle/chunks/{chunk-GDDAGPWJ.js → chunk-RB3KLPAH.js} +10 -14
  166. package/dist/cli-bundle/chunks/{chunk-GDDAGPWJ.js.map → chunk-RB3KLPAH.js.map} +1 -1
  167. package/dist/cli-bundle/chunks/{chunk-3VHSI5FL.js → chunk-RY7PTTUB.js} +94 -53
  168. package/dist/cli-bundle/chunks/chunk-RY7PTTUB.js.map +1 -0
  169. package/dist/cli-bundle/chunks/{chunk-COSPOP7H.js → chunk-S547WBYG.js} +343 -195
  170. package/dist/cli-bundle/chunks/chunk-S547WBYG.js.map +7 -0
  171. package/dist/cli-bundle/chunks/{chunk-NZEHECMW.js → chunk-S5BNGFN5.js} +24 -32
  172. package/dist/cli-bundle/chunks/{chunk-NZEHECMW.js.map → chunk-S5BNGFN5.js.map} +1 -1
  173. package/dist/cli-bundle/chunks/{chunk-MVSP7WGJ.js → chunk-S6VC2A2K.js} +8 -12
  174. package/dist/cli-bundle/chunks/{chunk-MVSP7WGJ.js.map → chunk-S6VC2A2K.js.map} +1 -1
  175. package/dist/cli-bundle/chunks/{chunk-45FYNUFJ.js → chunk-SIM5JDON.js} +6 -6
  176. package/dist/cli-bundle/chunks/{chunk-45FYNUFJ.js.map → chunk-SIM5JDON.js.map} +1 -1
  177. package/dist/cli-bundle/chunks/{chunk-VPIM42PC.js → chunk-SY75LYXR.js} +11 -7
  178. package/dist/cli-bundle/chunks/chunk-SY75LYXR.js.map +7 -0
  179. package/dist/cli-bundle/chunks/{chunk-K46RF36U.js → chunk-TEISGNSH.js} +7 -7
  180. package/dist/cli-bundle/chunks/chunk-TEISGNSH.js.map +1 -0
  181. package/dist/cli-bundle/chunks/{chunk-AGHMOTGM.js → chunk-TEKZOS7M.js} +2 -2
  182. package/dist/cli-bundle/chunks/{chunk-W572BIEB.js → chunk-TGUK6XN6.js} +14 -18
  183. package/dist/cli-bundle/chunks/{chunk-W572BIEB.js.map → chunk-TGUK6XN6.js.map} +1 -1
  184. package/dist/cli-bundle/chunks/{chunk-E42XTBSP.js → chunk-TNC6MZUD.js} +8 -12
  185. package/dist/cli-bundle/chunks/{chunk-E42XTBSP.js.map → chunk-TNC6MZUD.js.map} +1 -1
  186. package/dist/cli-bundle/chunks/chunk-TZLYO4PP.js +10498 -0
  187. package/dist/cli-bundle/chunks/chunk-TZLYO4PP.js.map +7 -0
  188. package/dist/cli-bundle/chunks/{chunk-57NWPFF2.js → chunk-UO7XAZK6.js} +17 -4
  189. package/dist/cli-bundle/chunks/chunk-UO7XAZK6.js.map +1 -0
  190. package/dist/cli-bundle/chunks/{chunk-JVH7QBVV.js → chunk-V5ZWKJNY.js} +2 -2
  191. package/dist/cli-bundle/chunks/{chunk-I36Y7PCE.js → chunk-VGO73OCK.js} +6 -6
  192. package/dist/cli-bundle/chunks/{chunk-I36Y7PCE.js.map → chunk-VGO73OCK.js.map} +1 -1
  193. package/dist/cli-bundle/chunks/{chunk-KUOOJR35.js → chunk-VLEA2UTQ.js} +2 -2
  194. package/dist/cli-bundle/chunks/{chunk-RCQZK2GO.js → chunk-W5HXHC7C.js} +7 -9
  195. package/dist/cli-bundle/chunks/{chunk-RCQZK2GO.js.map → chunk-W5HXHC7C.js.map} +1 -1
  196. package/dist/cli-bundle/chunks/{chunk-MUH7A3FD.js → chunk-WCWVEXGA.js} +2 -2
  197. package/dist/cli-bundle/chunks/chunk-X47MKQXU.js +6690 -0
  198. package/dist/cli-bundle/chunks/chunk-X47MKQXU.js.map +7 -0
  199. package/dist/cli-bundle/chunks/{chunk-NB7RLQFW.js → chunk-XBX5CBRQ.js} +5 -7
  200. package/dist/cli-bundle/chunks/{chunk-NB7RLQFW.js.map → chunk-XBX5CBRQ.js.map} +1 -1
  201. package/dist/cli-bundle/chunks/{chunk-SCUR7K7N.js → chunk-XC3X7BQR.js} +541 -44
  202. package/dist/cli-bundle/chunks/chunk-XC3X7BQR.js.map +7 -0
  203. package/dist/cli-bundle/chunks/{chunk-CRVYGJUI.js → chunk-XHCVAZGM.js} +13 -17
  204. package/dist/cli-bundle/chunks/{chunk-CRVYGJUI.js.map → chunk-XHCVAZGM.js.map} +1 -1
  205. package/dist/cli-bundle/chunks/{chunk-XB7KFVFI.js → chunk-XPMXPR7K.js} +7 -9
  206. package/dist/cli-bundle/chunks/{chunk-XB7KFVFI.js.map → chunk-XPMXPR7K.js.map} +1 -1
  207. package/dist/cli-bundle/chunks/{chunk-4CJFCTLM.js → chunk-XS2TMNXR.js} +6 -8
  208. package/dist/cli-bundle/chunks/{chunk-4CJFCTLM.js.map → chunk-XS2TMNXR.js.map} +1 -1
  209. package/dist/cli-bundle/chunks/{chunk-HFDADVJZ.js → chunk-XXIYUTLK.js} +10 -14
  210. package/dist/cli-bundle/chunks/{chunk-HFDADVJZ.js.map → chunk-XXIYUTLK.js.map} +1 -1
  211. package/dist/cli-bundle/chunks/{chunk-EOKXK3R3.js → chunk-XZWL7VNE.js} +1220 -398
  212. package/dist/cli-bundle/chunks/chunk-XZWL7VNE.js.map +1 -0
  213. package/dist/cli-bundle/chunks/chunk-Y5IKRUEM.js +6624 -0
  214. package/dist/cli-bundle/chunks/chunk-Y5IKRUEM.js.map +1 -0
  215. package/dist/cli-bundle/chunks/{chunk-6LLVNJXT.js → chunk-Y7KYVCZM.js} +12 -18
  216. package/dist/cli-bundle/chunks/{chunk-6LLVNJXT.js.map → chunk-Y7KYVCZM.js.map} +1 -1
  217. package/dist/cli-bundle/chunks/{chunk-VIIUS6N6.js → chunk-YCVWWIKY.js} +16 -14
  218. package/dist/cli-bundle/chunks/chunk-YCVWWIKY.js.map +7 -0
  219. package/dist/cli-bundle/chunks/{chunk-CFNGIXZP.js → chunk-YH5NBDFA.js} +22 -26
  220. package/dist/cli-bundle/chunks/{chunk-CFNGIXZP.js.map → chunk-YH5NBDFA.js.map} +1 -1
  221. package/dist/cli-bundle/chunks/chunk-YNCFP5AR.js +5509 -0
  222. package/dist/cli-bundle/chunks/chunk-YNCFP5AR.js.map +7 -0
  223. package/dist/cli-bundle/chunks/{chunk-NC33K5ZS.js → chunk-YPD7SQ5P.js} +7 -6
  224. package/dist/cli-bundle/chunks/{chunk-NC33K5ZS.js.map → chunk-YPD7SQ5P.js.map} +2 -2
  225. package/dist/cli-bundle/chunks/{chunk-NGXQ3PFT.js → chunk-YPMZMKN7.js} +2 -2
  226. package/dist/cli-bundle/chunks/{chunk-KGFUY7WN.js → chunk-YTD5GICJ.js} +4 -4
  227. package/dist/cli-bundle/chunks/{chunk-W6DYWXPQ.js → chunk-ZNEG2UDO.js} +261 -34
  228. package/dist/cli-bundle/chunks/{chunk-W6DYWXPQ.js.map → chunk-ZNEG2UDO.js.map} +4 -4
  229. package/dist/cli-bundle/chunks/{chunk-7DT4WSH2.js → chunk-ZO7CLOY2.js} +3 -3
  230. package/dist/cli-bundle/chunks/{close-2SSSHHUZ.js → close-3YYQ5OG2.js} +5 -9
  231. package/dist/cli-bundle/chunks/close-Z3Q4U7TS.js +12 -0
  232. package/dist/cli-bundle/chunks/close-many-3L2RXH3M.js +22 -0
  233. package/dist/cli-bundle/chunks/close-many-D366FTIG.js +26 -0
  234. package/dist/cli-bundle/chunks/comments-54XDJNFE.js +17 -0
  235. package/dist/cli-bundle/chunks/comments-HGHC2PN6.js +13 -0
  236. package/dist/cli-bundle/chunks/{copy-32ROBIDL.js → copy-44RT5GDW.js} +4 -8
  237. package/dist/cli-bundle/chunks/copy-UGMUGHZA.js +9 -0
  238. package/dist/cli-bundle/chunks/{create-E77SDCUP.js → create-4GWJWPXG.js} +9 -14
  239. package/dist/cli-bundle/chunks/create-AZXCUYKP.js +25 -0
  240. package/dist/cli-bundle/chunks/delete-Y6SXIQ4X.js +10 -0
  241. package/dist/cli-bundle/chunks/{delete-RA5KTCLB.js → delete-YQ2VPXNF.js} +4 -8
  242. package/dist/cli-bundle/chunks/{deps-32SU7HO5.js → deps-BU5EBJDU.js} +4 -8
  243. package/dist/cli-bundle/chunks/deps-FMANWFRP.js +13 -0
  244. package/dist/cli-bundle/chunks/{docs-RRUPT7O2.js → docs-OQBSJNIA.js} +6 -10
  245. package/dist/cli-bundle/chunks/docs-VNPBZXEL.js +14 -0
  246. package/dist/cli-bundle/chunks/files-72HZEBOE.js +18 -0
  247. package/dist/cli-bundle/chunks/{files-PYKR2UUG.js → files-HTSB2KJG.js} +6 -10
  248. package/dist/cli-bundle/chunks/{contracts-NYPEW2G4.js → focus-FOG4ALC2.js} +7 -9
  249. package/dist/cli-bundle/chunks/focus-SUTMKXGX.js +10 -0
  250. package/dist/cli-bundle/chunks/{history-compact-3MNXLKAT.js → history-compact-M6IFAMBP.js} +9 -13
  251. package/dist/cli-bundle/chunks/history-compact-NEXRPP2O.js +21 -0
  252. package/dist/cli-bundle/chunks/{history-redact-P6DYF55G.js → history-redact-NQX3OGZP.js} +7 -11
  253. package/dist/cli-bundle/chunks/history-redact-WQJBZ3PX.js +17 -0
  254. package/dist/cli-bundle/chunks/history-repair-CBHMHAJO.js +19 -0
  255. package/dist/cli-bundle/chunks/{history-repair-ZJQFMWPD.js → history-repair-NHOJG7WO.js} +9 -13
  256. package/dist/cli-bundle/chunks/learnings-M64NTSOR.js +13 -0
  257. package/dist/cli-bundle/chunks/{append-BGML6VLD.js → learnings-T63JGKKN.js} +9 -11
  258. package/dist/cli-bundle/chunks/notes-73WE2UV2.js +13 -0
  259. package/dist/cli-bundle/chunks/notes-U7L6HQQ2.js +17 -0
  260. package/dist/cli-bundle/chunks/plan-OSCNYFGC.js +24 -0
  261. package/dist/cli-bundle/chunks/{plan-CHVE7PBR.js → plan-TN537L24.js} +10 -15
  262. package/dist/cli-bundle/chunks/{profile-ZXGSKBJD.js → profile-MHAMXMHQ.js} +9 -13
  263. package/dist/cli-bundle/chunks/{profile-LD23PSI6.js → profile-TIGLAKJ7.js} +9 -13
  264. package/dist/cli-bundle/chunks/{register-list-query-OEYQHFXO.js → register-list-query-OHXD7G5N.js} +41 -33
  265. package/dist/cli-bundle/chunks/register-list-query-OHXD7G5N.js.map +7 -0
  266. package/dist/cli-bundle/chunks/{register-list-query-B42JCCOI.js → register-list-query-ZCRABAPN.js} +42 -34
  267. package/dist/cli-bundle/chunks/register-list-query-ZCRABAPN.js.map +1 -0
  268. package/dist/cli-bundle/chunks/{register-mutation-IAEST26S.js → register-mutation-P3G4XP6Q.js} +36 -41
  269. package/dist/cli-bundle/chunks/{register-mutation-IAEST26S.js.map → register-mutation-P3G4XP6Q.js.map} +1 -1
  270. package/dist/cli-bundle/chunks/{register-mutation-3QXIHCQG.js → register-mutation-XX4H56PE.js} +34 -39
  271. package/dist/cli-bundle/chunks/{register-mutation-3QXIHCQG.js.map → register-mutation-XX4H56PE.js.map} +1 -1
  272. package/dist/cli-bundle/chunks/{chunk-5BMM6XQY.js → register-operations-V6PIYEDU.js} +79 -46
  273. package/dist/cli-bundle/chunks/register-operations-V6PIYEDU.js.map +1 -0
  274. package/dist/cli-bundle/chunks/{chunk-Z3U3U5KD.js → register-operations-V6VKTG54.js} +78 -45
  275. package/dist/cli-bundle/chunks/register-operations-V6VKTG54.js.map +7 -0
  276. package/dist/cli-bundle/chunks/{register-setup-3ZVVX2VN.js → register-setup-6RVAWT6W.js} +129 -29
  277. package/dist/cli-bundle/chunks/register-setup-6RVAWT6W.js.map +7 -0
  278. package/dist/cli-bundle/chunks/{register-setup-Q6KFNIOZ.js → register-setup-6YVUSQYD.js} +130 -30
  279. package/dist/cli-bundle/chunks/register-setup-6YVUSQYD.js.map +1 -0
  280. package/dist/cli-bundle/chunks/{restore-5RQHAPMA.js → restore-HC3YSWF7.js} +7 -11
  281. package/dist/cli-bundle/chunks/restore-LFAMMRYZ.js +15 -0
  282. package/dist/cli-bundle/chunks/{schema-HBORFC6B.js → schema-DAGSYO6E.js} +6 -10
  283. package/dist/cli-bundle/chunks/{schema-245WW4G2.js → schema-UBXJCQAC.js} +6 -10
  284. package/dist/cli-bundle/chunks/update-CJGG5WMV.js +21 -0
  285. package/dist/cli-bundle/chunks/update-LKD64AFP.js +25 -0
  286. package/dist/cli-bundle/chunks/update-many-G4SM7BHC.js +31 -0
  287. package/dist/cli-bundle/chunks/update-many-VLIV3D7R.js +35 -0
  288. package/dist/cli-bundle/main.js +29 -31
  289. package/dist/cli-bundle/main.js.map +2 -2
  290. package/dist/cli-bundle/sdk-runtime.js +129 -107
  291. package/dist/cli-bundle/sdk-testing.js +7 -8
  292. package/dist/cli-bundle/sdk.js +122 -117
  293. package/dist/cli-bundle/sdk.js.map +2 -2
  294. package/dist/core/history/drift-scan.js +3 -8
  295. package/dist/core/history/drift-scan.js.map +1 -1
  296. package/dist/core/output/mutation-projection.js +11 -5
  297. package/dist/core/output/mutation-projection.js.map +1 -1
  298. package/dist/core/search/cache.js +3 -3
  299. package/dist/core/search/cache.js.map +1 -1
  300. package/dist/core/search/semantic-defaults.d.ts +2 -0
  301. package/dist/core/search/semantic-defaults.js +11 -4
  302. package/dist/core/search/semantic-defaults.js.map +1 -1
  303. package/dist/core/search/vector-stores.d.ts +1 -1
  304. package/dist/core/search/vector-stores.js +33 -7
  305. package/dist/core/search/vector-stores.js.map +1 -1
  306. package/dist/mcp/server.d.ts +1 -1
  307. package/dist/sdk/cli-contracts/flag-contracts.js +7 -7
  308. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  309. package/dist/sdk/cli-contracts/tool-schema.js +9 -7
  310. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  311. package/dist/sdk/index.d.ts +1 -1
  312. package/dist/sdk/index.js +3 -3
  313. package/dist/sdk/index.js.map +1 -1
  314. package/dist/sdk/runtime.d.ts +151 -8
  315. package/dist/sdk/runtime.js +255 -14
  316. package/dist/sdk/runtime.js.map +1 -1
  317. package/dist/sdk/start-task-status.d.ts +13 -0
  318. package/dist/sdk/start-task-status.js +19 -0
  319. package/dist/sdk/start-task-status.js.map +1 -0
  320. package/docs/COMMANDS.md +10 -1
  321. package/docs/SDK.md +35 -0
  322. package/docs/TESTING.md +3 -0
  323. package/package.json +1 -1
  324. package/dist/cli-bundle/chunks/activity-WJCGCYPU.js +0 -18
  325. package/dist/cli-bundle/chunks/activity-Z6QUAUSG.js +0 -22
  326. package/dist/cli-bundle/chunks/aggregate-BDM6EIAR.js +0 -25
  327. package/dist/cli-bundle/chunks/aggregate-VQ2DHU3S.js +0 -21
  328. package/dist/cli-bundle/chunks/append-RKJYPU74.js +0 -15
  329. package/dist/cli-bundle/chunks/chunk-2XG4IZON.js +0 -218
  330. package/dist/cli-bundle/chunks/chunk-2XG4IZON.js.map +0 -7
  331. package/dist/cli-bundle/chunks/chunk-37E72CNS.js +0 -217
  332. package/dist/cli-bundle/chunks/chunk-37E72CNS.js.map +0 -1
  333. package/dist/cli-bundle/chunks/chunk-3GCS5SKL.js +0 -228
  334. package/dist/cli-bundle/chunks/chunk-3GCS5SKL.js.map +0 -1
  335. package/dist/cli-bundle/chunks/chunk-3KTN6IBA.js +0 -2330
  336. package/dist/cli-bundle/chunks/chunk-3KTN6IBA.js.map +0 -7
  337. package/dist/cli-bundle/chunks/chunk-3VHSI5FL.js.map +0 -1
  338. package/dist/cli-bundle/chunks/chunk-425E4QL5.js +0 -278
  339. package/dist/cli-bundle/chunks/chunk-425E4QL5.js.map +0 -7
  340. package/dist/cli-bundle/chunks/chunk-46CUF5L6.js.map +0 -7
  341. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js +0 -87
  342. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js.map +0 -7
  343. package/dist/cli-bundle/chunks/chunk-4HIFVN7N.js +0 -249
  344. package/dist/cli-bundle/chunks/chunk-4HIFVN7N.js.map +0 -7
  345. package/dist/cli-bundle/chunks/chunk-4IWYTWGF.js +0 -819
  346. package/dist/cli-bundle/chunks/chunk-4IWYTWGF.js.map +0 -1
  347. package/dist/cli-bundle/chunks/chunk-4MZVRJOE.js +0 -279
  348. package/dist/cli-bundle/chunks/chunk-4MZVRJOE.js.map +0 -1
  349. package/dist/cli-bundle/chunks/chunk-57NWPFF2.js.map +0 -1
  350. package/dist/cli-bundle/chunks/chunk-5AJXHQM7.js +0 -268
  351. package/dist/cli-bundle/chunks/chunk-5AJXHQM7.js.map +0 -1
  352. package/dist/cli-bundle/chunks/chunk-5BMM6XQY.js.map +0 -1
  353. package/dist/cli-bundle/chunks/chunk-5GZ7TDD6.js +0 -1868
  354. package/dist/cli-bundle/chunks/chunk-5GZ7TDD6.js.map +0 -7
  355. package/dist/cli-bundle/chunks/chunk-5VAA4YHR.js +0 -1749
  356. package/dist/cli-bundle/chunks/chunk-5VAA4YHR.js.map +0 -7
  357. package/dist/cli-bundle/chunks/chunk-64YKRTSV.js +0 -1961
  358. package/dist/cli-bundle/chunks/chunk-64YKRTSV.js.map +0 -1
  359. package/dist/cli-bundle/chunks/chunk-7C2O74AE.js +0 -23
  360. package/dist/cli-bundle/chunks/chunk-7C2O74AE.js.map +0 -7
  361. package/dist/cli-bundle/chunks/chunk-B7FRNMYN.js +0 -421
  362. package/dist/cli-bundle/chunks/chunk-B7FRNMYN.js.map +0 -1
  363. package/dist/cli-bundle/chunks/chunk-C5JBZRPU.js +0 -1985
  364. package/dist/cli-bundle/chunks/chunk-C5JBZRPU.js.map +0 -7
  365. package/dist/cli-bundle/chunks/chunk-CL36D4PC.js.map +0 -7
  366. package/dist/cli-bundle/chunks/chunk-COSPOP7H.js.map +0 -7
  367. package/dist/cli-bundle/chunks/chunk-COWTDV6B.js +0 -3461
  368. package/dist/cli-bundle/chunks/chunk-COWTDV6B.js.map +0 -7
  369. package/dist/cli-bundle/chunks/chunk-DEWEK6AN.js +0 -1858
  370. package/dist/cli-bundle/chunks/chunk-DEWEK6AN.js.map +0 -1
  371. package/dist/cli-bundle/chunks/chunk-DMRNBQOI.js.map +0 -1
  372. package/dist/cli-bundle/chunks/chunk-E3SZTQ4K.js +0 -1932
  373. package/dist/cli-bundle/chunks/chunk-E3SZTQ4K.js.map +0 -1
  374. package/dist/cli-bundle/chunks/chunk-EGAP5OWD.js.map +0 -1
  375. package/dist/cli-bundle/chunks/chunk-EKFNL33R.js.map +0 -1
  376. package/dist/cli-bundle/chunks/chunk-ENGQOEUY.js +0 -1704
  377. package/dist/cli-bundle/chunks/chunk-ENGQOEUY.js.map +0 -1
  378. package/dist/cli-bundle/chunks/chunk-EOKXK3R3.js.map +0 -1
  379. package/dist/cli-bundle/chunks/chunk-FLZSGSQR.js +0 -231
  380. package/dist/cli-bundle/chunks/chunk-FLZSGSQR.js.map +0 -7
  381. package/dist/cli-bundle/chunks/chunk-FOUYJE4A.js +0 -2090
  382. package/dist/cli-bundle/chunks/chunk-FOUYJE4A.js.map +0 -1
  383. package/dist/cli-bundle/chunks/chunk-G24G7ZAV.js +0 -1570
  384. package/dist/cli-bundle/chunks/chunk-G24G7ZAV.js.map +0 -1
  385. package/dist/cli-bundle/chunks/chunk-GEYZ4G4O.js +0 -239
  386. package/dist/cli-bundle/chunks/chunk-GEYZ4G4O.js.map +0 -1
  387. package/dist/cli-bundle/chunks/chunk-GPLPTGOV.js +0 -530
  388. package/dist/cli-bundle/chunks/chunk-GPLPTGOV.js.map +0 -7
  389. package/dist/cli-bundle/chunks/chunk-GZRDYONU.js +0 -1005
  390. package/dist/cli-bundle/chunks/chunk-GZRDYONU.js.map +0 -7
  391. package/dist/cli-bundle/chunks/chunk-HN6NSXNW.js +0 -277
  392. package/dist/cli-bundle/chunks/chunk-HN6NSXNW.js.map +0 -7
  393. package/dist/cli-bundle/chunks/chunk-IQNVQHOP.js +0 -309
  394. package/dist/cli-bundle/chunks/chunk-IQNVQHOP.js.map +0 -7
  395. package/dist/cli-bundle/chunks/chunk-JINYH2DB.js +0 -371
  396. package/dist/cli-bundle/chunks/chunk-JINYH2DB.js.map +0 -7
  397. package/dist/cli-bundle/chunks/chunk-JQXPY7DN.js +0 -2257
  398. package/dist/cli-bundle/chunks/chunk-JQXPY7DN.js.map +0 -7
  399. package/dist/cli-bundle/chunks/chunk-K46RF36U.js.map +0 -1
  400. package/dist/cli-bundle/chunks/chunk-KERMZVY5.js +0 -371
  401. package/dist/cli-bundle/chunks/chunk-KERMZVY5.js.map +0 -7
  402. package/dist/cli-bundle/chunks/chunk-KSRUHV2H.js +0 -76
  403. package/dist/cli-bundle/chunks/chunk-KSRUHV2H.js.map +0 -1
  404. package/dist/cli-bundle/chunks/chunk-LP3HSFZ2.js +0 -140
  405. package/dist/cli-bundle/chunks/chunk-LP3HSFZ2.js.map +0 -1
  406. package/dist/cli-bundle/chunks/chunk-MAWDPCJW.js +0 -1601
  407. package/dist/cli-bundle/chunks/chunk-MAWDPCJW.js.map +0 -1
  408. package/dist/cli-bundle/chunks/chunk-MFAZSEM5.js +0 -1031
  409. package/dist/cli-bundle/chunks/chunk-MFAZSEM5.js.map +0 -1
  410. package/dist/cli-bundle/chunks/chunk-MFSCBT5Q.js +0 -995
  411. package/dist/cli-bundle/chunks/chunk-MFSCBT5Q.js.map +0 -1
  412. package/dist/cli-bundle/chunks/chunk-ML5X7DP2.js +0 -296
  413. package/dist/cli-bundle/chunks/chunk-ML5X7DP2.js.map +0 -1
  414. package/dist/cli-bundle/chunks/chunk-MLIYFOE7.js.map +0 -1
  415. package/dist/cli-bundle/chunks/chunk-MR6FJ7LL.js +0 -2043
  416. package/dist/cli-bundle/chunks/chunk-MR6FJ7LL.js.map +0 -7
  417. package/dist/cli-bundle/chunks/chunk-MXYA5SAJ.js +0 -2033
  418. package/dist/cli-bundle/chunks/chunk-MXYA5SAJ.js.map +0 -1
  419. package/dist/cli-bundle/chunks/chunk-N745W3B3.js +0 -1604
  420. package/dist/cli-bundle/chunks/chunk-N745W3B3.js.map +0 -7
  421. package/dist/cli-bundle/chunks/chunk-NMP5I3I5.js +0 -1615
  422. package/dist/cli-bundle/chunks/chunk-NMP5I3I5.js.map +0 -7
  423. package/dist/cli-bundle/chunks/chunk-NNHHXJB2.js +0 -20
  424. package/dist/cli-bundle/chunks/chunk-NNHHXJB2.js.map +0 -1
  425. package/dist/cli-bundle/chunks/chunk-PZUGEOPS.js +0 -143
  426. package/dist/cli-bundle/chunks/chunk-PZUGEOPS.js.map +0 -7
  427. package/dist/cli-bundle/chunks/chunk-QLMX7SRD.js.map +0 -7
  428. package/dist/cli-bundle/chunks/chunk-QX6HM775.js +0 -398
  429. package/dist/cli-bundle/chunks/chunk-QX6HM775.js.map +0 -7
  430. package/dist/cli-bundle/chunks/chunk-QZ342C63.js +0 -220
  431. package/dist/cli-bundle/chunks/chunk-QZ342C63.js.map +0 -7
  432. package/dist/cli-bundle/chunks/chunk-R2EMWY7Q.js +0 -368
  433. package/dist/cli-bundle/chunks/chunk-R2EMWY7Q.js.map +0 -1
  434. package/dist/cli-bundle/chunks/chunk-RFNYTESG.js +0 -520
  435. package/dist/cli-bundle/chunks/chunk-RFNYTESG.js.map +0 -1
  436. package/dist/cli-bundle/chunks/chunk-RKQOO2UM.js +0 -79
  437. package/dist/cli-bundle/chunks/chunk-RKQOO2UM.js.map +0 -7
  438. package/dist/cli-bundle/chunks/chunk-RQLT6ZWB.js +0 -282
  439. package/dist/cli-bundle/chunks/chunk-RQLT6ZWB.js.map +0 -7
  440. package/dist/cli-bundle/chunks/chunk-S3JS6YVZ.js +0 -274
  441. package/dist/cli-bundle/chunks/chunk-S3JS6YVZ.js.map +0 -1
  442. package/dist/cli-bundle/chunks/chunk-SCUR7K7N.js.map +0 -7
  443. package/dist/cli-bundle/chunks/chunk-SHQY2IDC.js +0 -1977
  444. package/dist/cli-bundle/chunks/chunk-SHQY2IDC.js.map +0 -7
  445. package/dist/cli-bundle/chunks/chunk-SPZ6DOGY.js +0 -1041
  446. package/dist/cli-bundle/chunks/chunk-SPZ6DOGY.js.map +0 -7
  447. package/dist/cli-bundle/chunks/chunk-T42JWV3F.js +0 -822
  448. package/dist/cli-bundle/chunks/chunk-T42JWV3F.js.map +0 -7
  449. package/dist/cli-bundle/chunks/chunk-TKD5VCTD.js.map +0 -1
  450. package/dist/cli-bundle/chunks/chunk-TULGS6X6.js.map +0 -1
  451. package/dist/cli-bundle/chunks/chunk-TZXRBVAM.js +0 -2306
  452. package/dist/cli-bundle/chunks/chunk-TZXRBVAM.js.map +0 -1
  453. package/dist/cli-bundle/chunks/chunk-VIIUS6N6.js.map +0 -7
  454. package/dist/cli-bundle/chunks/chunk-VPIM42PC.js.map +0 -7
  455. package/dist/cli-bundle/chunks/chunk-VQRSPVME.js +0 -368
  456. package/dist/cli-bundle/chunks/chunk-VQRSPVME.js.map +0 -1
  457. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js +0 -84
  458. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js.map +0 -1
  459. package/dist/cli-bundle/chunks/chunk-WG34ZNQQ.js +0 -3423
  460. package/dist/cli-bundle/chunks/chunk-WG34ZNQQ.js.map +0 -1
  461. package/dist/cli-bundle/chunks/chunk-WLSM645P.js +0 -2247
  462. package/dist/cli-bundle/chunks/chunk-WLSM645P.js.map +0 -1
  463. package/dist/cli-bundle/chunks/chunk-WRTENIX3.js +0 -215
  464. package/dist/cli-bundle/chunks/chunk-WRTENIX3.js.map +0 -1
  465. package/dist/cli-bundle/chunks/chunk-WSBLYDWV.js +0 -388
  466. package/dist/cli-bundle/chunks/chunk-WSBLYDWV.js.map +0 -1
  467. package/dist/cli-bundle/chunks/chunk-XC5BURG2.js +0 -306
  468. package/dist/cli-bundle/chunks/chunk-XC5BURG2.js.map +0 -1
  469. package/dist/cli-bundle/chunks/chunk-XDB7RWQT.js +0 -424
  470. package/dist/cli-bundle/chunks/chunk-XDB7RWQT.js.map +0 -7
  471. package/dist/cli-bundle/chunks/chunk-Y6BK55A3.js +0 -2128
  472. package/dist/cli-bundle/chunks/chunk-Y6BK55A3.js.map +0 -7
  473. package/dist/cli-bundle/chunks/chunk-Z3U3U5KD.js.map +0 -7
  474. package/dist/cli-bundle/chunks/chunk-ZO3XKAOP.js +0 -299
  475. package/dist/cli-bundle/chunks/chunk-ZO3XKAOP.js.map +0 -7
  476. package/dist/cli-bundle/chunks/chunk-ZSUS2OD3.js.map +0 -7
  477. package/dist/cli-bundle/chunks/claim-RFS7BROJ.js +0 -19
  478. package/dist/cli-bundle/chunks/claim-XP5AWZ5H.js +0 -23
  479. package/dist/cli-bundle/chunks/close-GEANHQ2J.js +0 -16
  480. package/dist/cli-bundle/chunks/close-many-CMZW7ITN.js +0 -31
  481. package/dist/cli-bundle/chunks/close-many-ZFDIG6M7.js +0 -27
  482. package/dist/cli-bundle/chunks/comments-MFSYVNNU.js +0 -21
  483. package/dist/cli-bundle/chunks/comments-XUBPXDYX.js +0 -17
  484. package/dist/cli-bundle/chunks/config-D7XQMONX.js +0 -18
  485. package/dist/cli-bundle/chunks/config-T4FHBSYN.js +0 -22
  486. package/dist/cli-bundle/chunks/context-DIU275XI.js +0 -48
  487. package/dist/cli-bundle/chunks/context-JCOYB4LZ.js +0 -44
  488. package/dist/cli-bundle/chunks/contracts-BVO7CSLK.js +0 -12
  489. package/dist/cli-bundle/chunks/copy-NAGLGMHZ.js +0 -13
  490. package/dist/cli-bundle/chunks/create-4V7SWNBB.js +0 -30
  491. package/dist/cli-bundle/chunks/delete-NQI5OSKN.js +0 -14
  492. package/dist/cli-bundle/chunks/deps-T7SCWXEX.js +0 -17
  493. package/dist/cli-bundle/chunks/docs-WL2IWGWV.js +0 -18
  494. package/dist/cli-bundle/chunks/eval-NF2J5SHR.js +0 -23
  495. package/dist/cli-bundle/chunks/eval-SKDT3MZU.js +0 -27
  496. package/dist/cli-bundle/chunks/extension-LAXKCAYE.js +0 -42
  497. package/dist/cli-bundle/chunks/extension-ZISPBRBC.js +0 -38
  498. package/dist/cli-bundle/chunks/files-EWRQHGIS.js +0 -22
  499. package/dist/cli-bundle/chunks/focus-4T7TM4MT.js +0 -18
  500. package/dist/cli-bundle/chunks/focus-L3YUASOD.js +0 -14
  501. package/dist/cli-bundle/chunks/gc-2PCTYYRI.js +0 -12
  502. package/dist/cli-bundle/chunks/get-7DMITJ3G.js +0 -23
  503. package/dist/cli-bundle/chunks/get-VKQXCXLL.js +0 -19
  504. package/dist/cli-bundle/chunks/health-CVSTAR2F.js +0 -31
  505. package/dist/cli-bundle/chunks/health-TV3GKTFN.js +0 -35
  506. package/dist/cli-bundle/chunks/history-D4JUX5XV.js +0 -20
  507. package/dist/cli-bundle/chunks/history-D4JUX5XV.js.map +0 -7
  508. package/dist/cli-bundle/chunks/history-LQ2UWZTE.js +0 -24
  509. package/dist/cli-bundle/chunks/history-LQ2UWZTE.js.map +0 -1
  510. package/dist/cli-bundle/chunks/history-compact-3MNXLKAT.js.map +0 -1
  511. package/dist/cli-bundle/chunks/history-compact-QWEO32FP.js +0 -25
  512. package/dist/cli-bundle/chunks/history-compact-QWEO32FP.js.map +0 -7
  513. package/dist/cli-bundle/chunks/history-redact-3OIVBVIY.js +0 -21
  514. package/dist/cli-bundle/chunks/history-redact-3OIVBVIY.js.map +0 -7
  515. package/dist/cli-bundle/chunks/history-redact-P6DYF55G.js.map +0 -1
  516. package/dist/cli-bundle/chunks/history-repair-I3E73UGQ.js +0 -23
  517. package/dist/cli-bundle/chunks/history-repair-I3E73UGQ.js.map +0 -7
  518. package/dist/cli-bundle/chunks/history-repair-ZJQFMWPD.js.map +0 -1
  519. package/dist/cli-bundle/chunks/init-C3LJPWQZ.js +0 -30
  520. package/dist/cli-bundle/chunks/init-C3LJPWQZ.js.map +0 -1
  521. package/dist/cli-bundle/chunks/init-J3DPGWQI.js +0 -26
  522. package/dist/cli-bundle/chunks/init-J3DPGWQI.js.map +0 -7
  523. package/dist/cli-bundle/chunks/learnings-5BO2SNDW.js +0 -21
  524. package/dist/cli-bundle/chunks/learnings-5BO2SNDW.js.map +0 -1
  525. package/dist/cli-bundle/chunks/learnings-OGP4JB4I.js +0 -17
  526. package/dist/cli-bundle/chunks/learnings-OGP4JB4I.js.map +0 -7
  527. package/dist/cli-bundle/chunks/list-O5NZVSPN.js +0 -36
  528. package/dist/cli-bundle/chunks/list-O5NZVSPN.js.map +0 -1
  529. package/dist/cli-bundle/chunks/list-Z55YCNTC.js +0 -32
  530. package/dist/cli-bundle/chunks/list-Z55YCNTC.js.map +0 -7
  531. package/dist/cli-bundle/chunks/next-GBNTGXFC.js +0 -28
  532. package/dist/cli-bundle/chunks/next-GBNTGXFC.js.map +0 -7
  533. package/dist/cli-bundle/chunks/next-QKW7PTKE.js +0 -32
  534. package/dist/cli-bundle/chunks/next-QKW7PTKE.js.map +0 -1
  535. package/dist/cli-bundle/chunks/notes-R5FZTKWF.js +0 -17
  536. package/dist/cli-bundle/chunks/notes-R5FZTKWF.js.map +0 -7
  537. package/dist/cli-bundle/chunks/notes-WCGIULVG.js +0 -21
  538. package/dist/cli-bundle/chunks/notes-WCGIULVG.js.map +0 -1
  539. package/dist/cli-bundle/chunks/plan-ADISFYH4.js +0 -29
  540. package/dist/cli-bundle/chunks/plan-ADISFYH4.js.map +0 -7
  541. package/dist/cli-bundle/chunks/plan-CHVE7PBR.js.map +0 -1
  542. package/dist/cli-bundle/chunks/profile-LD23PSI6.js.map +0 -7
  543. package/dist/cli-bundle/chunks/profile-ZXGSKBJD.js.map +0 -1
  544. package/dist/cli-bundle/chunks/register-list-query-B42JCCOI.js.map +0 -1
  545. package/dist/cli-bundle/chunks/register-list-query-OEYQHFXO.js.map +0 -7
  546. package/dist/cli-bundle/chunks/register-operations-I3M3U7DS.js +0 -19
  547. package/dist/cli-bundle/chunks/register-operations-I3M3U7DS.js.map +0 -7
  548. package/dist/cli-bundle/chunks/register-operations-UHKENLZV.js +0 -23
  549. package/dist/cli-bundle/chunks/register-operations-UHKENLZV.js.map +0 -1
  550. package/dist/cli-bundle/chunks/register-setup-3ZVVX2VN.js.map +0 -7
  551. package/dist/cli-bundle/chunks/register-setup-Q6KFNIOZ.js.map +0 -1
  552. package/dist/cli-bundle/chunks/restore-5RQHAPMA.js.map +0 -1
  553. package/dist/cli-bundle/chunks/restore-PNEIBBLW.js +0 -19
  554. package/dist/cli-bundle/chunks/restore-PNEIBBLW.js.map +0 -7
  555. package/dist/cli-bundle/chunks/scheduling-shortcuts-4G56YHVQ.js +0 -29
  556. package/dist/cli-bundle/chunks/scheduling-shortcuts-4G56YHVQ.js.map +0 -1
  557. package/dist/cli-bundle/chunks/scheduling-shortcuts-75DULBYP.js +0 -25
  558. package/dist/cli-bundle/chunks/scheduling-shortcuts-75DULBYP.js.map +0 -7
  559. package/dist/cli-bundle/chunks/schema-245WW4G2.js.map +0 -1
  560. package/dist/cli-bundle/chunks/schema-HBORFC6B.js.map +0 -7
  561. package/dist/cli-bundle/chunks/search-AOZC5SIK.js +0 -34
  562. package/dist/cli-bundle/chunks/search-AOZC5SIK.js.map +0 -7
  563. package/dist/cli-bundle/chunks/search-DRXPGHD7.js +0 -38
  564. package/dist/cli-bundle/chunks/search-DRXPGHD7.js.map +0 -1
  565. package/dist/cli-bundle/chunks/stats-NJG4NLHG.js +0 -21
  566. package/dist/cli-bundle/chunks/stats-NJG4NLHG.js.map +0 -1
  567. package/dist/cli-bundle/chunks/stats-RG6AG4N2.js +0 -17
  568. package/dist/cli-bundle/chunks/stats-RG6AG4N2.js.map +0 -7
  569. package/dist/cli-bundle/chunks/telemetry-HQC2JJIF.js +0 -14
  570. package/dist/cli-bundle/chunks/telemetry-HQC2JJIF.js.map +0 -7
  571. package/dist/cli-bundle/chunks/telemetry-MPNL3HHY.js +0 -18
  572. package/dist/cli-bundle/chunks/telemetry-MPNL3HHY.js.map +0 -1
  573. package/dist/cli-bundle/chunks/test-6CMOCWUC.js +0 -39
  574. package/dist/cli-bundle/chunks/test-6CMOCWUC.js.map +0 -7
  575. package/dist/cli-bundle/chunks/test-RI7XHBZL.js +0 -43
  576. package/dist/cli-bundle/chunks/test-RI7XHBZL.js.map +0 -1
  577. package/dist/cli-bundle/chunks/test-all-7R7YRZIA.js +0 -29
  578. package/dist/cli-bundle/chunks/test-all-7R7YRZIA.js.map +0 -7
  579. package/dist/cli-bundle/chunks/test-all-QEIORFYW.js +0 -33
  580. package/dist/cli-bundle/chunks/test-all-QEIORFYW.js.map +0 -1
  581. package/dist/cli-bundle/chunks/test-runs-5Y2BOU2S.js +0 -28
  582. package/dist/cli-bundle/chunks/test-runs-5Y2BOU2S.js.map +0 -1
  583. package/dist/cli-bundle/chunks/test-runs-PVGC3GRZ.js +0 -24
  584. package/dist/cli-bundle/chunks/test-runs-PVGC3GRZ.js.map +0 -7
  585. package/dist/cli-bundle/chunks/update-QVJDFEAP.js +0 -30
  586. package/dist/cli-bundle/chunks/update-QVJDFEAP.js.map +0 -1
  587. package/dist/cli-bundle/chunks/update-VQVHAY6X.js +0 -26
  588. package/dist/cli-bundle/chunks/update-VQVHAY6X.js.map +0 -7
  589. package/dist/cli-bundle/chunks/update-many-S7XWBSB3.js +0 -37
  590. package/dist/cli-bundle/chunks/update-many-S7XWBSB3.js.map +0 -7
  591. package/dist/cli-bundle/chunks/update-many-YIYW6XQ6.js +0 -41
  592. package/dist/cli-bundle/chunks/update-many-YIYW6XQ6.js.map +0 -1
  593. package/dist/cli-bundle/chunks/upgrade-OPRXA56R.js +0 -24
  594. package/dist/cli-bundle/chunks/upgrade-OPRXA56R.js.map +0 -7
  595. package/dist/cli-bundle/chunks/upgrade-WH4BTQLX.js +0 -28
  596. package/dist/cli-bundle/chunks/upgrade-WH4BTQLX.js.map +0 -1
  597. package/dist/cli-bundle/chunks/validate-4NTXSB62.js +0 -36
  598. package/dist/cli-bundle/chunks/validate-4NTXSB62.js.map +0 -1
  599. package/dist/cli-bundle/chunks/validate-MUFXQZMI.js +0 -32
  600. package/dist/cli-bundle/chunks/validate-MUFXQZMI.js.map +0 -7
  601. /package/dist/cli-bundle/chunks/{activity-WJCGCYPU.js.map → append-F7WPGIQL.js.map} +0 -0
  602. /package/dist/cli-bundle/chunks/{activity-Z6QUAUSG.js.map → append-PVCTBVJG.js.map} +0 -0
  603. /package/dist/cli-bundle/chunks/{chunk-R5BMJX33.js.map → chunk-2LEJGRQ7.js.map} +0 -0
  604. /package/dist/cli-bundle/chunks/{chunk-AZYGZGGI.js.map → chunk-2TILG6F2.js.map} +0 -0
  605. /package/dist/cli-bundle/chunks/{chunk-GJ7QC5DJ.js.map → chunk-3TYOW6RR.js.map} +0 -0
  606. /package/dist/cli-bundle/chunks/{chunk-B6DUFX6H.js.map → chunk-3X542TEY.js.map} +0 -0
  607. /package/dist/cli-bundle/chunks/{chunk-JJP45OEI.js.map → chunk-7VQ3JJN5.js.map} +0 -0
  608. /package/dist/cli-bundle/chunks/{chunk-MWMVPCIE.js.map → chunk-AGAVEDIE.js.map} +0 -0
  609. /package/dist/cli-bundle/chunks/{chunk-22KBU3MW.js.map → chunk-AJUON7E6.js.map} +0 -0
  610. /package/dist/cli-bundle/chunks/{chunk-IWVU4C2F.js.map → chunk-DR2V5OIV.js.map} +0 -0
  611. /package/dist/cli-bundle/chunks/{chunk-XG625QP4.js.map → chunk-EDO7VXSO.js.map} +0 -0
  612. /package/dist/cli-bundle/chunks/{chunk-Y4M7CPQP.js.map → chunk-EVEPHNXJ.js.map} +0 -0
  613. /package/dist/cli-bundle/chunks/{chunk-JDDLOQAE.js.map → chunk-FN6SB4HU.js.map} +0 -0
  614. /package/dist/cli-bundle/chunks/{chunk-24YG75HI.js.map → chunk-H2SMKL2N.js.map} +0 -0
  615. /package/dist/cli-bundle/chunks/{chunk-EGY6JBQ3.js.map → chunk-HX6QXV5P.js.map} +0 -0
  616. /package/dist/cli-bundle/chunks/{chunk-Y46GD4IX.js.map → chunk-P3MJJW7P.js.map} +0 -0
  617. /package/dist/cli-bundle/chunks/{chunk-MVYWGY2A.js.map → chunk-PDXJXEZJ.js.map} +0 -0
  618. /package/dist/cli-bundle/chunks/{chunk-AGHMOTGM.js.map → chunk-TEKZOS7M.js.map} +0 -0
  619. /package/dist/cli-bundle/chunks/{chunk-JVH7QBVV.js.map → chunk-V5ZWKJNY.js.map} +0 -0
  620. /package/dist/cli-bundle/chunks/{chunk-KUOOJR35.js.map → chunk-VLEA2UTQ.js.map} +0 -0
  621. /package/dist/cli-bundle/chunks/{chunk-MUH7A3FD.js.map → chunk-WCWVEXGA.js.map} +0 -0
  622. /package/dist/cli-bundle/chunks/{chunk-NGXQ3PFT.js.map → chunk-YPMZMKN7.js.map} +0 -0
  623. /package/dist/cli-bundle/chunks/{chunk-KGFUY7WN.js.map → chunk-YTD5GICJ.js.map} +0 -0
  624. /package/dist/cli-bundle/chunks/{chunk-7DT4WSH2.js.map → chunk-ZO7CLOY2.js.map} +0 -0
  625. /package/dist/cli-bundle/chunks/{aggregate-BDM6EIAR.js.map → close-3YYQ5OG2.js.map} +0 -0
  626. /package/dist/cli-bundle/chunks/{aggregate-VQ2DHU3S.js.map → close-Z3Q4U7TS.js.map} +0 -0
  627. /package/dist/cli-bundle/chunks/{append-RKJYPU74.js.map → close-many-3L2RXH3M.js.map} +0 -0
  628. /package/dist/cli-bundle/chunks/{append-BGML6VLD.js.map → close-many-D366FTIG.js.map} +0 -0
  629. /package/dist/cli-bundle/chunks/{claim-XP5AWZ5H.js.map → comments-54XDJNFE.js.map} +0 -0
  630. /package/dist/cli-bundle/chunks/{claim-RFS7BROJ.js.map → comments-HGHC2PN6.js.map} +0 -0
  631. /package/dist/cli-bundle/chunks/{close-2SSSHHUZ.js.map → copy-44RT5GDW.js.map} +0 -0
  632. /package/dist/cli-bundle/chunks/{close-GEANHQ2J.js.map → copy-UGMUGHZA.js.map} +0 -0
  633. /package/dist/cli-bundle/chunks/{close-many-CMZW7ITN.js.map → create-4GWJWPXG.js.map} +0 -0
  634. /package/dist/cli-bundle/chunks/{close-many-ZFDIG6M7.js.map → create-AZXCUYKP.js.map} +0 -0
  635. /package/dist/cli-bundle/chunks/{comments-XUBPXDYX.js.map → delete-Y6SXIQ4X.js.map} +0 -0
  636. /package/dist/cli-bundle/chunks/{comments-MFSYVNNU.js.map → delete-YQ2VPXNF.js.map} +0 -0
  637. /package/dist/cli-bundle/chunks/{config-T4FHBSYN.js.map → deps-BU5EBJDU.js.map} +0 -0
  638. /package/dist/cli-bundle/chunks/{config-D7XQMONX.js.map → deps-FMANWFRP.js.map} +0 -0
  639. /package/dist/cli-bundle/chunks/{context-DIU275XI.js.map → docs-OQBSJNIA.js.map} +0 -0
  640. /package/dist/cli-bundle/chunks/{context-JCOYB4LZ.js.map → docs-VNPBZXEL.js.map} +0 -0
  641. /package/dist/cli-bundle/chunks/{contracts-BVO7CSLK.js.map → files-72HZEBOE.js.map} +0 -0
  642. /package/dist/cli-bundle/chunks/{contracts-NYPEW2G4.js.map → files-HTSB2KJG.js.map} +0 -0
  643. /package/dist/cli-bundle/chunks/{copy-32ROBIDL.js.map → focus-FOG4ALC2.js.map} +0 -0
  644. /package/dist/cli-bundle/chunks/{copy-NAGLGMHZ.js.map → focus-SUTMKXGX.js.map} +0 -0
  645. /package/dist/cli-bundle/chunks/{create-E77SDCUP.js.map → history-compact-M6IFAMBP.js.map} +0 -0
  646. /package/dist/cli-bundle/chunks/{create-4V7SWNBB.js.map → history-compact-NEXRPP2O.js.map} +0 -0
  647. /package/dist/cli-bundle/chunks/{delete-RA5KTCLB.js.map → history-redact-NQX3OGZP.js.map} +0 -0
  648. /package/dist/cli-bundle/chunks/{delete-NQI5OSKN.js.map → history-redact-WQJBZ3PX.js.map} +0 -0
  649. /package/dist/cli-bundle/chunks/{deps-T7SCWXEX.js.map → history-repair-CBHMHAJO.js.map} +0 -0
  650. /package/dist/cli-bundle/chunks/{deps-32SU7HO5.js.map → history-repair-NHOJG7WO.js.map} +0 -0
  651. /package/dist/cli-bundle/chunks/{docs-WL2IWGWV.js.map → learnings-M64NTSOR.js.map} +0 -0
  652. /package/dist/cli-bundle/chunks/{docs-RRUPT7O2.js.map → learnings-T63JGKKN.js.map} +0 -0
  653. /package/dist/cli-bundle/chunks/{eval-NF2J5SHR.js.map → notes-73WE2UV2.js.map} +0 -0
  654. /package/dist/cli-bundle/chunks/{eval-SKDT3MZU.js.map → notes-U7L6HQQ2.js.map} +0 -0
  655. /package/dist/cli-bundle/chunks/{extension-ZISPBRBC.js.map → plan-OSCNYFGC.js.map} +0 -0
  656. /package/dist/cli-bundle/chunks/{extension-LAXKCAYE.js.map → plan-TN537L24.js.map} +0 -0
  657. /package/dist/cli-bundle/chunks/{files-PYKR2UUG.js.map → profile-MHAMXMHQ.js.map} +0 -0
  658. /package/dist/cli-bundle/chunks/{files-EWRQHGIS.js.map → profile-TIGLAKJ7.js.map} +0 -0
  659. /package/dist/cli-bundle/chunks/{focus-4T7TM4MT.js.map → restore-HC3YSWF7.js.map} +0 -0
  660. /package/dist/cli-bundle/chunks/{focus-L3YUASOD.js.map → restore-LFAMMRYZ.js.map} +0 -0
  661. /package/dist/cli-bundle/chunks/{gc-2PCTYYRI.js.map → schema-DAGSYO6E.js.map} +0 -0
  662. /package/dist/cli-bundle/chunks/{gc-2DNMPXMC.js.map → schema-UBXJCQAC.js.map} +0 -0
  663. /package/dist/cli-bundle/chunks/{get-VKQXCXLL.js.map → update-CJGG5WMV.js.map} +0 -0
  664. /package/dist/cli-bundle/chunks/{get-7DMITJ3G.js.map → update-LKD64AFP.js.map} +0 -0
  665. /package/dist/cli-bundle/chunks/{health-CVSTAR2F.js.map → update-many-G4SM7BHC.js.map} +0 -0
  666. /package/dist/cli-bundle/chunks/{health-TV3GKTFN.js.map → update-many-VLIV3D7R.js.map} +0 -0
@@ -1,15 +1,32 @@
1
1
  import {
2
- locateItem,
3
- readLocatedItem
4
- } from "./chunk-5VAA4YHR.js";
2
+ ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,
3
+ CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,
4
+ CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,
5
+ CREATE_COMMANDER_STRING_OPTION_CONTRACTS,
6
+ LIST_COMMANDER_STRING_OPTION_CONTRACTS,
7
+ NEXT_COMMANDER_STRING_OPTION_CONTRACTS,
8
+ SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,
9
+ UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,
10
+ UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,
11
+ readFirstStringFromCommanderOptions,
12
+ readFirstValueFromCommanderOptions,
13
+ readStringArrayFromCommanderOptions
14
+ } from "./chunk-YCVWWIKY.js";
5
15
  import {
6
- nowIso
7
- } from "./chunk-FLZSGSQR.js";
16
+ printError,
17
+ writeStdout
18
+ } from "./chunk-SY75LYXR.js";
8
19
  import {
20
+ PmCliError,
9
21
  getActiveExtensionRegistrations,
10
- readSettings
11
- } from "./chunk-SHQY2IDC.js";
22
+ locateItem,
23
+ nowIso,
24
+ readLocatedItem,
25
+ readSettings,
26
+ setActiveCommandResult
27
+ } from "./chunk-YNCFP5AR.js";
12
28
  import {
29
+ EXIT_CODE,
13
30
  coercePositiveInteger,
14
31
  getSettingsPath,
15
32
  isFiniteNumberArray,
@@ -18,11 +35,18 @@ import {
18
35
  removeFileIfExists,
19
36
  resolveItemTypeRegistry,
20
37
  resolvePmPackageRootFromModule,
38
+ resolvePmRoot,
21
39
  toErrorMessage,
22
40
  toNonEmptyString,
23
41
  trimTrailingSlashes,
24
42
  writeFileAtomic
25
- } from "./chunk-LK6XLOGP.js";
43
+ } from "./chunk-LCFJ7XAM.js";
44
+
45
+ // dist/cli/registration-helpers.js
46
+ import { Option } from "commander";
47
+
48
+ // dist/core/search/cache.js
49
+ import path2 from "node:path";
26
50
 
27
51
  // dist/core/search/http-client.js
28
52
  !(function() {
@@ -530,19 +554,171 @@ function buildSemanticCorpusInput(document, options = {}) {
530
554
  return `${serialized.slice(0, keepLength)}${SEMANTIC_CORPUS_TRUNCATION_SUFFIX}`;
531
555
  }
532
556
 
557
+ // dist/core/search/embedding-batches.js
558
+ !(function() {
559
+ try {
560
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
561
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "10cfb21a-29c1-5d92-935e-c2e855fdc727");
562
+ } catch (e2) {
563
+ }
564
+ })();
565
+ function resolveBatchRuntime(settings, maxInputCharacters) {
566
+ const batchSizeCandidate = settings.search.embedding_batch_size;
567
+ const timeoutMsCandidate = settings.search.embedding_timeout_ms;
568
+ const maxRetriesCandidate = settings.search.scanner_max_batch_retries;
569
+ const batchSize = Number.isFinite(batchSizeCandidate) && batchSizeCandidate > 0 ? Math.floor(batchSizeCandidate) : 1;
570
+ const timeoutMs = Number.isFinite(timeoutMsCandidate) && timeoutMsCandidate > 0 ? Math.floor(timeoutMsCandidate) : 3e4;
571
+ const maxRetries = Number.isFinite(maxRetriesCandidate) && maxRetriesCandidate >= 0 ? Math.floor(maxRetriesCandidate) : 0;
572
+ return {
573
+ batchSize,
574
+ timeoutMs,
575
+ maxRetries,
576
+ maxBatchInputCharacters: Number.POSITIVE_INFINITY,
577
+ maxInputCharacters
578
+ };
579
+ }
580
+ function createBatches(inputs, batchSize, maxBatchInputCharacters) {
581
+ const batches = [];
582
+ let currentBatch = [];
583
+ let currentCharacters = 0;
584
+ for (const input of inputs) {
585
+ const wouldExceedCount = currentBatch.length >= batchSize;
586
+ const wouldExceedCharacters = currentBatch.length > 0 && Number.isFinite(maxBatchInputCharacters) && currentCharacters + input.length > maxBatchInputCharacters;
587
+ if (wouldExceedCount || wouldExceedCharacters) {
588
+ batches.push(currentBatch);
589
+ currentBatch = [];
590
+ currentCharacters = 0;
591
+ }
592
+ currentBatch.push(input);
593
+ currentCharacters += input.length;
594
+ }
595
+ batches.push(currentBatch);
596
+ return batches;
597
+ }
598
+ function resolveProviderBatchRuntime(provider, runtime) {
599
+ if (provider.name !== "ollama") {
600
+ return runtime;
601
+ }
602
+ return {
603
+ ...runtime,
604
+ maxBatchInputCharacters: OLLAMA_SEMANTIC_CORPUS_INPUT_MAX_CHARACTERS
605
+ };
606
+ }
607
+ function truncateInputForRuntime(input, maxInputCharacters) {
608
+ if (!Number.isFinite(maxInputCharacters) || maxInputCharacters <= 0 || input.length <= maxInputCharacters) {
609
+ return input;
610
+ }
611
+ const keepLength = Math.max(0, maxInputCharacters - SEMANTIC_CORPUS_TRUNCATION_SUFFIX.length);
612
+ return `${input.slice(0, keepLength)}${SEMANTIC_CORPUS_TRUNCATION_SUFFIX}`.slice(0, maxInputCharacters);
613
+ }
614
+ function isEmbeddingTimeoutError(error) {
615
+ const message = toErrorMessage(error).toLowerCase();
616
+ return message.includes("timed out") || message.includes("timeout");
617
+ }
618
+ function buildEmbeddingFailureMessage(provider, batchLabel, batchSize, timeoutMs, attempts, error) {
619
+ const base = `Embedding batch ${batchLabel} failed after ${attempts} attempt(s): ${toErrorMessage(error)}`;
620
+ const details = `provider=${provider.name} model=${provider.model} batch_size=${batchSize} timeout_ms=${timeoutMs}`;
621
+ if (!isEmbeddingTimeoutError(error)) {
622
+ return `${base} (${details})`;
623
+ }
624
+ return `${base} (${details}; guidance=check provider availability or lower search.embedding_batch_size, raise search.embedding_timeout_ms, or run keyword search while semantic indexing catches up)`;
625
+ }
626
+ async function executeBatchWithAdaptiveSplit(provider, batch, batchLabel, timeoutMs, maxRetries, warnings) {
627
+ let lastError = null;
628
+ for (let attempt = 0; attempt <= maxRetries; attempt += 1) {
629
+ try {
630
+ const batchVectors = await executeEmbeddingRequest(provider, batch, { timeout_ms: timeoutMs });
631
+ if (attempt > 0) {
632
+ warnings.push(`search_embedding_batch_retry_succeeded:batch=${batchLabel}:attempt=${attempt + 1}:size=${batch.length}`);
633
+ }
634
+ return batchVectors;
635
+ } catch (error) {
636
+ lastError = error;
637
+ if (isEmbeddingTimeoutError(error) && batch.length > 1) {
638
+ const midpoint = Math.ceil(batch.length / 2);
639
+ const left = batch.slice(0, midpoint);
640
+ const right = batch.slice(midpoint);
641
+ warnings.push(`search_embedding_batch_split_after_timeout:batch=${batchLabel}:size=${batch.length}:parts=${left.length}|${right.length}`);
642
+ return [
643
+ ...await executeBatchWithAdaptiveSplit(provider, left, `${batchLabel}.1`, timeoutMs, maxRetries, warnings),
644
+ ...await executeBatchWithAdaptiveSplit(provider, right, `${batchLabel}.2`, timeoutMs, maxRetries, warnings)
645
+ ];
646
+ }
647
+ if (attempt < maxRetries) {
648
+ const delayMs = Math.min(1e3 * 2 ** attempt, 8e3);
649
+ await new Promise((resolve2) => setTimeout(resolve2, delayMs));
650
+ }
651
+ }
652
+ }
653
+ throw new Error(buildEmbeddingFailureMessage(provider, batchLabel, batch.length, timeoutMs, maxRetries + 1, lastError));
654
+ }
655
+ async function executeEmbeddingBatchesWithRetry(provider, settings, inputs, options = {}) {
656
+ if (inputs.length === 0) {
657
+ return {
658
+ vectors: [],
659
+ warnings: []
660
+ };
661
+ }
662
+ const warnings = [];
663
+ const corpusLimitResolution = resolveSemanticCorpusCharacterLimit(provider.name, settings.search.embedding_corpus_max_characters);
664
+ if (corpusLimitResolution.warning) {
665
+ warnings.push(corpusLimitResolution.warning);
666
+ }
667
+ const runtime = resolveProviderBatchRuntime(provider, resolveBatchRuntime(settings, corpusLimitResolution.maxCharacters));
668
+ let truncatedInputCount = 0;
669
+ const normalizedInputs = inputs.map((input) => {
670
+ const normalized = truncateInputForRuntime(input, runtime.maxInputCharacters);
671
+ if (normalized.length < input.length) {
672
+ truncatedInputCount += 1;
673
+ }
674
+ return normalized;
675
+ });
676
+ if (truncatedInputCount > 0) {
677
+ warnings.push(`search_embedding_input_truncated:count=${truncatedInputCount}:max_characters=${runtime.maxInputCharacters}`);
678
+ }
679
+ const batches = createBatches(normalizedInputs, runtime.batchSize, runtime.maxBatchInputCharacters);
680
+ const vectors = [];
681
+ let completedInputs = 0;
682
+ for (let batchIndex = 0; batchIndex < batches.length; batchIndex += 1) {
683
+ const batch = batches[batchIndex];
684
+ options.onProgress?.({
685
+ batch_index: batchIndex + 1,
686
+ batch_total: batches.length,
687
+ batch_size: batch.length,
688
+ completed_inputs: completedInputs,
689
+ total_inputs: normalizedInputs.length,
690
+ phase: "start"
691
+ });
692
+ vectors.push(...await executeBatchWithAdaptiveSplit(provider, batch, String(batchIndex + 1), runtime.timeoutMs, runtime.maxRetries, warnings));
693
+ completedInputs += batch.length;
694
+ options.onProgress?.({
695
+ batch_index: batchIndex + 1,
696
+ batch_total: batches.length,
697
+ batch_size: batch.length,
698
+ completed_inputs: completedInputs,
699
+ total_inputs: normalizedInputs.length,
700
+ phase: "complete"
701
+ });
702
+ }
703
+ return {
704
+ vectors,
705
+ warnings
706
+ };
707
+ }
708
+
533
709
  // dist/core/search/semantic-defaults.js
534
710
  import { spawnSync } from "node:child_process";
535
711
  !(function() {
536
712
  try {
537
713
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
538
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "e60fbb33-d9f9-5212-a26d-628e6e2e6fd9");
714
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "7e8365ed-5fc5-5a75-a0a5-3db958c07f88");
539
715
  } catch (e2) {
540
716
  }
541
717
  })();
542
718
  var DISABLE_AUTO_DEFAULTS_ENV = "PM_DISABLE_OLLAMA_AUTO_DEFAULTS";
543
719
  var OLLAMA_MODEL_ENV = "PM_OLLAMA_MODEL";
544
720
  var DEFAULT_OLLAMA_BASE_URL = "http://localhost:11434";
545
- var DEFAULT_OLLAMA_MODEL = "qwen3-embedding:0.6b";
721
+ var RECOMMENDED_OLLAMA_EMBEDDING_MODEL = "qwen3-embedding:0.6b";
546
722
  var DEFAULT_LANCEDB_PATH = ".agents/pm/search/lancedb/";
547
723
  var OLLAMA_VERSION_TIMEOUT_MS = 1500;
548
724
  var OLLAMA_LIST_TIMEOUT_MS = 2500;
@@ -632,7 +808,7 @@ function resolveAutoOllamaModel(settings) {
632
808
  return listedModel;
633
809
  }
634
810
  }
635
- return DEFAULT_OLLAMA_MODEL;
811
+ return null;
636
812
  }
637
813
  function resolveSemanticDefaultNeeds(settings) {
638
814
  return {
@@ -693,6 +869,13 @@ function resolveSettingsWithSemanticRuntimeDefaults(settings) {
693
869
  }
694
870
  const nextSettings = structuredClone(settings);
695
871
  const resolvedModel = resolveAutoOllamaModel(nextSettings);
872
+ if (!resolvedModel) {
873
+ return {
874
+ ...unchanged,
875
+ auto_ollama_defaults_skipped_reason: "no_installed_embedding_model",
876
+ auto_ollama_defaults_remediation: `Run ollama pull ${RECOMMENDED_OLLAMA_EMBEDDING_MODEL} or configure providers.ollama.model explicitly (and search.embedding_model if you need an override).`
877
+ };
878
+ }
696
879
  applyOllamaProviderDefaults(nextSettings, needs, resolvedModel);
697
880
  applyVectorStoreDefaults(nextSettings, needs);
698
881
  applySearchEmbeddingDefaults(nextSettings, needs, resolvedModel);
@@ -702,57 +885,200 @@ function resolveSettingsWithSemanticRuntimeDefaults(settings) {
702
885
  };
703
886
  }
704
887
 
705
- // dist/core/search/vector-stores.js
706
- import { mkdir, readFile, stat, unlink } from "node:fs/promises";
707
- import { dirname, join, resolve } from "node:path";
888
+ // dist/core/search/background-refresh.js
889
+ import { spawn } from "node:child_process";
890
+ import { mkdirSync, rmSync, statSync } from "node:fs";
891
+ import path from "node:path";
708
892
  !(function() {
709
893
  try {
710
894
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
711
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "e5399bf5-c400-5819-8095-d0f1616785ec");
895
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "f10096ab-4dea-55ca-a631-6cb087bf9c4a");
712
896
  } catch (e2) {
713
897
  }
714
898
  })();
715
- var DEFAULT_COLLECTION = "pm_items";
716
- var COLLECTION_SANITIZE_PATTERN = /[^a-zA-Z0-9_-]/g;
717
- var MAX_COLLECTION_NAME_LENGTH = 128;
718
- var LANCE_DB_LOCAL_SNAPSHOT_DIR = ".pm-cli-local-vectors";
719
- var LANCE_DB_LOCAL_SNAPSHOT_VERSION = 1;
720
- var lanceDbLocalTables = /* @__PURE__ */ new Map();
721
- function resolveStoreCollectionName(store) {
722
- const candidate = toNonEmptyString(store.collection_name) ?? DEFAULT_COLLECTION;
723
- return candidate.replaceAll(COLLECTION_SANITIZE_PATTERN, "_").slice(0, MAX_COLLECTION_NAME_LENGTH);
899
+ var REINDEX_LOCK_ID = "reindex";
900
+ var PENDING_QUEUE_REL_PATH = "search/pending-refresh.json";
901
+ var PENDING_QUEUE_GATE_REL_PATH = "search/pending-refresh.gate.lock";
902
+ var PENDING_QUEUE_GATE_STALE_MS = 3e4;
903
+ var SEARCH_REFRESH_INLINE_ENV = "PM_SEARCH_REFRESH_INLINE";
904
+ var SEARCH_REFRESH_CHILD_ENV = "PM_SEARCH_REFRESH_CHILD";
905
+ function parseBooleanTrueLike(value) {
906
+ if (typeof value !== "string") {
907
+ return false;
908
+ }
909
+ const normalized = value.trim().toLowerCase();
910
+ return normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on";
724
911
  }
725
- function normalizeVector(value) {
726
- if (!isFiniteNumberArray(value) || value.length === 0) {
727
- throw new Error("Vector values must be a non-empty numeric array");
912
+ function shouldRunSearchRefreshInForeground() {
913
+ if (parseBooleanTrueLike(process.env[SEARCH_REFRESH_INLINE_ENV])) {
914
+ return true;
728
915
  }
729
- return [...value];
916
+ if (parseBooleanTrueLike(process.env[SEARCH_REFRESH_CHILD_ENV])) {
917
+ return true;
918
+ }
919
+ const nodeEnv = (process.env.NODE_ENV ?? "").trim().toLowerCase();
920
+ return typeof process.env.VITEST === "string" || typeof process.env.VITEST_WORKER_ID === "string" || nodeEnv === "test";
730
921
  }
731
- function normalizeLimit(value) {
732
- if (!Number.isFinite(value) || value <= 0) {
733
- throw new Error("Vector query limit must be a positive number");
922
+ function pendingQueuePath(pmRoot) {
923
+ return path.join(pmRoot, PENDING_QUEUE_REL_PATH);
924
+ }
925
+ function pendingQueueGatePath(pmRoot) {
926
+ return path.join(pmRoot, PENDING_QUEUE_GATE_REL_PATH);
927
+ }
928
+ function acquireQueueGate(pmRoot) {
929
+ const gatePath = pendingQueueGatePath(pmRoot);
930
+ try {
931
+ if (Date.now() - statSync(gatePath).mtimeMs < PENDING_QUEUE_GATE_STALE_MS) {
932
+ return false;
933
+ }
934
+ rmSync(gatePath, { recursive: true, force: true });
935
+ } catch {
936
+ }
937
+ try {
938
+ mkdirSync(path.dirname(gatePath), { recursive: true });
939
+ mkdirSync(gatePath);
940
+ return true;
941
+ } catch {
942
+ return false;
734
943
  }
735
- return Math.floor(value);
736
944
  }
737
- function normalizeQdrantQueryResponse(payload) {
738
- const result = payload.result;
739
- if (!Array.isArray(result)) {
740
- throw new TypeError("Qdrant query response must include a result array");
945
+ function releaseQueueGate(pmRoot) {
946
+ try {
947
+ rmSync(pendingQueueGatePath(pmRoot), { recursive: true, force: true });
948
+ } catch {
741
949
  }
742
- const hits = result.map((entry, index) => {
743
- const idValue = entry.id;
744
- const idCandidate = typeof idValue === "number" ? String(idValue) : idValue;
745
- const id = toNonEmptyString(idCandidate);
746
- if (!id) {
747
- throw new Error(`Qdrant query response entry at index ${index} is missing a non-empty id`);
748
- }
749
- const score = entry.score;
750
- if (typeof score !== "number" || !Number.isFinite(score)) {
751
- throw new TypeError(`Qdrant query response entry at index ${index} is missing a finite numeric score`);
950
+ }
951
+ async function withQueueGate(pmRoot, fn, fallback) {
952
+ for (let attempt = 0; attempt < 50; attempt += 1) {
953
+ if (acquireQueueGate(pmRoot)) {
954
+ try {
955
+ return await fn();
956
+ } finally {
957
+ releaseQueueGate(pmRoot);
958
+ }
752
959
  }
753
- const payloadValue = entry.payload;
754
- if (payloadValue !== void 0 && (typeof payloadValue !== "object" || payloadValue === null || Array.isArray(payloadValue))) {
755
- throw new Error(`Qdrant query response entry at index ${index} must provide payload as an object when set`);
960
+ await delay(20);
961
+ }
962
+ return fallback;
963
+ }
964
+ function delay(ms) {
965
+ return new Promise((resolve2) => {
966
+ setTimeout(resolve2, ms);
967
+ });
968
+ }
969
+ async function readPendingQueueIds(pmRoot) {
970
+ const raw = await readFileIfExists(pendingQueuePath(pmRoot));
971
+ if (!raw || raw.trim().length === 0) {
972
+ return [];
973
+ }
974
+ try {
975
+ const parsed = JSON.parse(raw);
976
+ if (!Array.isArray(parsed.ids)) {
977
+ return [];
978
+ }
979
+ return parsed.ids.filter((id) => typeof id === "string" && id.length > 0);
980
+ } catch {
981
+ return [];
982
+ }
983
+ }
984
+ async function writePendingQueueIds(pmRoot, ids) {
985
+ await writeFileAtomic(pendingQueuePath(pmRoot), `${JSON.stringify({ ids })}
986
+ `);
987
+ }
988
+ async function enqueuePendingRefreshIds(pmRoot, itemIds) {
989
+ const incoming = itemIds.filter((id) => typeof id === "string" && id.trim().length > 0);
990
+ if (incoming.length === 0) {
991
+ return;
992
+ }
993
+ const mergeIncoming = async () => {
994
+ const existing = await readPendingQueueIds(pmRoot);
995
+ const merged = [.../* @__PURE__ */ new Set([...existing, ...incoming])].sort((left, right) => left.localeCompare(right));
996
+ await writePendingQueueIds(pmRoot, merged);
997
+ };
998
+ const gated = await withQueueGate(pmRoot, async () => {
999
+ await mergeIncoming();
1000
+ return true;
1001
+ }, false);
1002
+ if (!gated) {
1003
+ await mergeIncoming();
1004
+ }
1005
+ }
1006
+ function searchRefreshRunnerPath() {
1007
+ return path.join(resolvePmPackageRootFromModule(import.meta.url, ["../../.."]), "dist", "cli", "search-refresh.js");
1008
+ }
1009
+ function dispatchRefreshChild(pmRoot) {
1010
+ try {
1011
+ const child = spawn(process.execPath, [searchRefreshRunnerPath()], {
1012
+ detached: true,
1013
+ stdio: "ignore",
1014
+ env: {
1015
+ ...process.env,
1016
+ PM_PATH: pmRoot,
1017
+ [SEARCH_REFRESH_CHILD_ENV]: "1"
1018
+ }
1019
+ });
1020
+ child.on("error", () => {
1021
+ });
1022
+ child.unref();
1023
+ } catch {
1024
+ }
1025
+ }
1026
+ async function scheduleBackgroundSemanticRefresh(pmRoot, itemIds) {
1027
+ await enqueuePendingRefreshIds(pmRoot, itemIds);
1028
+ dispatchRefreshChild(pmRoot);
1029
+ }
1030
+
1031
+ // dist/core/search/vector-stores.js
1032
+ import { mkdir, readFile, stat, unlink } from "node:fs/promises";
1033
+ import { basename, dirname, isAbsolute, join, resolve } from "node:path";
1034
+ !(function() {
1035
+ try {
1036
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
1037
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "ce15301c-9763-5069-b4ae-fa3eb6b83640");
1038
+ } catch (e2) {
1039
+ }
1040
+ })();
1041
+ var DEFAULT_COLLECTION = "pm_items";
1042
+ var COLLECTION_SANITIZE_PATTERN = /[^a-zA-Z0-9_-]/g;
1043
+ var MAX_COLLECTION_NAME_LENGTH = 128;
1044
+ var LANCE_DB_LOCAL_SNAPSHOT_DIR = ".pm-cli-local-vectors";
1045
+ var LANCE_DB_LOCAL_SNAPSHOT_VERSION = 1;
1046
+ var lanceDbLocalTables = /* @__PURE__ */ new Map();
1047
+ function resolveStoreCollectionName(store) {
1048
+ const candidate = toNonEmptyString(store.collection_name) ?? DEFAULT_COLLECTION;
1049
+ return candidate.replaceAll(COLLECTION_SANITIZE_PATTERN, "_").slice(0, MAX_COLLECTION_NAME_LENGTH);
1050
+ }
1051
+ function normalizeVector(value) {
1052
+ if (!isFiniteNumberArray(value) || value.length === 0) {
1053
+ throw new Error("Vector values must be a non-empty numeric array");
1054
+ }
1055
+ return [...value];
1056
+ }
1057
+ function normalizeLimit(value) {
1058
+ if (!Number.isFinite(value) || value <= 0) {
1059
+ throw new Error("Vector query limit must be a positive number");
1060
+ }
1061
+ return Math.floor(value);
1062
+ }
1063
+ function normalizeQdrantQueryResponse(payload) {
1064
+ const result = payload.result;
1065
+ if (!Array.isArray(result)) {
1066
+ throw new TypeError("Qdrant query response must include a result array");
1067
+ }
1068
+ const hits = result.map((entry, index) => {
1069
+ const idValue = entry.id;
1070
+ const idCandidate = typeof idValue === "number" ? String(idValue) : idValue;
1071
+ const id = toNonEmptyString(idCandidate);
1072
+ if (!id) {
1073
+ throw new Error(`Qdrant query response entry at index ${index} is missing a non-empty id`);
1074
+ }
1075
+ const score = entry.score;
1076
+ if (typeof score !== "number" || !Number.isFinite(score)) {
1077
+ throw new TypeError(`Qdrant query response entry at index ${index} is missing a finite numeric score`);
1078
+ }
1079
+ const payloadValue = entry.payload;
1080
+ if (payloadValue !== void 0 && (typeof payloadValue !== "object" || payloadValue === null || Array.isArray(payloadValue))) {
1081
+ throw new Error(`Qdrant query response entry at index ${index} must provide payload as an object when set`);
756
1082
  }
757
1083
  return {
758
1084
  id,
@@ -805,7 +1131,21 @@ function resolveQdrantStore(settings) {
805
1131
  ...apiKey ? { api_key: apiKey } : {}
806
1132
  };
807
1133
  }
808
- function resolveLanceDbStore(settings) {
1134
+ function resolveWorkspaceRootFromPmRoot(pmRoot) {
1135
+ const resolved = resolve(pmRoot);
1136
+ const parent = dirname(resolved);
1137
+ if (basename(resolved) === "pm" && basename(parent) === ".agents") {
1138
+ return dirname(parent);
1139
+ }
1140
+ return resolved;
1141
+ }
1142
+ function anchorLanceDbStorePath(storePath, pmRoot) {
1143
+ if (!pmRoot || isAbsolute(storePath)) {
1144
+ return storePath;
1145
+ }
1146
+ return resolve(resolveWorkspaceRootFromPmRoot(pmRoot), storePath);
1147
+ }
1148
+ function resolveLanceDbStore(settings, pmRoot) {
809
1149
  const lancedbPath = toNonEmptyString(settings.vector_store?.lancedb?.path);
810
1150
  if (!lancedbPath) {
811
1151
  return null;
@@ -813,7 +1153,7 @@ function resolveLanceDbStore(settings) {
813
1153
  const collectionName = toNonEmptyString(settings.vector_store?.collection_name);
814
1154
  return {
815
1155
  name: "lancedb",
816
- path: lancedbPath,
1156
+ path: anchorLanceDbStorePath(lancedbPath, pmRoot),
817
1157
  ...collectionName && collectionName !== DEFAULT_COLLECTION ? { collection_name: collectionName } : {}
818
1158
  };
819
1159
  }
@@ -1048,9 +1388,9 @@ function cosineSimilarity(left, right) {
1048
1388
  }
1049
1389
  return dotProd / (leftNorm * rightNorm);
1050
1390
  }
1051
- function resolveVectorStores(settings) {
1391
+ function resolveVectorStores(settings, pmRoot) {
1052
1392
  const qdrant = resolveQdrantStore(settings);
1053
- const lancedb = resolveLanceDbStore(settings);
1393
+ const lancedb = resolveLanceDbStore(settings, pmRoot);
1054
1394
  const available = [qdrant, lancedb].filter((entry) => entry !== null);
1055
1395
  const preferredName = toNonEmptyString(settings.vector_store?.adapter);
1056
1396
  const preferredKey = preferredName ? preferredName.toLowerCase() : null;
@@ -1375,352 +1715,54 @@ function inferConsistentVectorDimension(vectors, context) {
1375
1715
  }
1376
1716
 
1377
1717
  // dist/core/search/cache.js
1378
- import path2 from "node:path";
1379
-
1380
- // dist/core/search/embedding-batches.js
1381
1718
  !(function() {
1382
1719
  try {
1383
1720
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
1384
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "10cfb21a-29c1-5d92-935e-c2e855fdc727");
1721
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "0af5c45d-b1b3-543b-aa4a-a70d52010fac");
1385
1722
  } catch (e2) {
1386
1723
  }
1387
1724
  })();
1388
- function resolveBatchRuntime(settings, maxInputCharacters) {
1389
- const batchSizeCandidate = settings.search.embedding_batch_size;
1390
- const timeoutMsCandidate = settings.search.embedding_timeout_ms;
1391
- const maxRetriesCandidate = settings.search.scanner_max_batch_retries;
1392
- const batchSize = Number.isFinite(batchSizeCandidate) && batchSizeCandidate > 0 ? Math.floor(batchSizeCandidate) : 1;
1393
- const timeoutMs = Number.isFinite(timeoutMsCandidate) && timeoutMsCandidate > 0 ? Math.floor(timeoutMsCandidate) : 3e4;
1394
- const maxRetries = Number.isFinite(maxRetriesCandidate) && maxRetriesCandidate >= 0 ? Math.floor(maxRetriesCandidate) : 0;
1395
- return {
1396
- batchSize,
1397
- timeoutMs,
1398
- maxRetries,
1399
- maxBatchInputCharacters: Number.POSITIVE_INFINITY,
1400
- maxInputCharacters
1401
- };
1402
- }
1403
- function createBatches(inputs, batchSize, maxBatchInputCharacters) {
1404
- const batches = [];
1405
- let currentBatch = [];
1406
- let currentCharacters = 0;
1407
- for (const input of inputs) {
1408
- const wouldExceedCount = currentBatch.length >= batchSize;
1409
- const wouldExceedCharacters = currentBatch.length > 0 && Number.isFinite(maxBatchInputCharacters) && currentCharacters + input.length > maxBatchInputCharacters;
1410
- if (wouldExceedCount || wouldExceedCharacters) {
1411
- batches.push(currentBatch);
1412
- currentBatch = [];
1413
- currentCharacters = 0;
1414
- }
1415
- currentBatch.push(input);
1416
- currentCharacters += input.length;
1417
- }
1418
- batches.push(currentBatch);
1419
- return batches;
1420
- }
1421
- function resolveProviderBatchRuntime(provider, runtime) {
1422
- if (provider.name !== "ollama") {
1423
- return runtime;
1424
- }
1425
- return {
1426
- ...runtime,
1427
- maxBatchInputCharacters: OLLAMA_SEMANTIC_CORPUS_INPUT_MAX_CHARACTERS
1428
- };
1429
- }
1430
- function truncateInputForRuntime(input, maxInputCharacters) {
1431
- if (!Number.isFinite(maxInputCharacters) || maxInputCharacters <= 0 || input.length <= maxInputCharacters) {
1432
- return input;
1433
- }
1434
- const keepLength = Math.max(0, maxInputCharacters - SEMANTIC_CORPUS_TRUNCATION_SUFFIX.length);
1435
- return `${input.slice(0, keepLength)}${SEMANTIC_CORPUS_TRUNCATION_SUFFIX}`.slice(0, maxInputCharacters);
1725
+ var SEARCH_CACHE_ARTIFACT_PATHS = ["index/manifest.json", "search/embeddings.jsonl"];
1726
+ var VECTORIZATION_STATUS_LEDGER_PATH = "search/vectorization-status.json";
1727
+ function formatInvalidationWarning(relativePath, error) {
1728
+ return `search_cache_invalidation_failed:${relativePath}:${String(error)}`;
1436
1729
  }
1437
- function isEmbeddingTimeoutError(error) {
1438
- const message = toErrorMessage(error).toLowerCase();
1439
- return message.includes("timed out") || message.includes("timeout");
1730
+ function toUniqueSorted(values) {
1731
+ return [...new Set([...values].map((value) => value.trim()).filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
1440
1732
  }
1441
- function buildEmbeddingFailureMessage(provider, batchLabel, batchSize, timeoutMs, attempts, error) {
1442
- const base = `Embedding batch ${batchLabel} failed after ${attempts} attempt(s): ${toErrorMessage(error)}`;
1443
- const details = `provider=${provider.name} model=${provider.model} batch_size=${batchSize} timeout_ms=${timeoutMs}`;
1444
- if (!isEmbeddingTimeoutError(error)) {
1445
- return `${base} (${details})`;
1446
- }
1447
- return `${base} (${details}; guidance=check provider availability or lower search.embedding_batch_size, raise search.embedding_timeout_ms, or run keyword search while semantic indexing catches up)`;
1733
+ function isValidUpdatedAt(value) {
1734
+ return typeof value === "string" && value.trim().length > 0 && Number.isFinite(Date.parse(value));
1448
1735
  }
1449
- async function executeBatchWithAdaptiveSplit(provider, batch, batchLabel, timeoutMs, maxRetries, warnings) {
1450
- let lastError = null;
1451
- for (let attempt = 0; attempt <= maxRetries; attempt += 1) {
1452
- try {
1453
- const batchVectors = await executeEmbeddingRequest(provider, batch, { timeout_ms: timeoutMs });
1454
- if (attempt > 0) {
1455
- warnings.push(`search_embedding_batch_retry_succeeded:batch=${batchLabel}:attempt=${attempt + 1}:size=${batch.length}`);
1456
- }
1457
- return batchVectors;
1458
- } catch (error) {
1459
- lastError = error;
1460
- if (isEmbeddingTimeoutError(error) && batch.length > 1) {
1461
- const midpoint = Math.ceil(batch.length / 2);
1462
- const left = batch.slice(0, midpoint);
1463
- const right = batch.slice(midpoint);
1464
- warnings.push(`search_embedding_batch_split_after_timeout:batch=${batchLabel}:size=${batch.length}:parts=${left.length}|${right.length}`);
1465
- return [
1466
- ...await executeBatchWithAdaptiveSplit(provider, left, `${batchLabel}.1`, timeoutMs, maxRetries, warnings),
1467
- ...await executeBatchWithAdaptiveSplit(provider, right, `${batchLabel}.2`, timeoutMs, maxRetries, warnings)
1468
- ];
1469
- }
1470
- if (attempt < maxRetries) {
1471
- const delayMs = Math.min(1e3 * 2 ** attempt, 8e3);
1472
- await new Promise((resolve2) => setTimeout(resolve2, delayMs));
1473
- }
1736
+ function normalizeVectorizationLedgerEntries(entries) {
1737
+ const normalized = /* @__PURE__ */ new Map();
1738
+ for (const [rawId, rawUpdatedAt] of Object.entries(entries)) {
1739
+ const id = rawId.trim();
1740
+ if (id.length === 0 || !isValidUpdatedAt(rawUpdatedAt)) {
1741
+ continue;
1474
1742
  }
1743
+ normalized.set(id, rawUpdatedAt);
1475
1744
  }
1476
- throw new Error(buildEmbeddingFailureMessage(provider, batchLabel, batch.length, timeoutMs, maxRetries + 1, lastError));
1745
+ return Object.fromEntries([...normalized.entries()].sort((left, right) => left[0].localeCompare(right[0])));
1477
1746
  }
1478
- async function executeEmbeddingBatchesWithRetry(provider, settings, inputs, options = {}) {
1479
- if (inputs.length === 0) {
1747
+ async function readVectorizationStatusLedger(pmRoot) {
1748
+ const ledgerPath = path2.join(pmRoot, VECTORIZATION_STATUS_LEDGER_PATH);
1749
+ const raw = await readFileIfExists(ledgerPath);
1750
+ if (raw === null || raw.trim().length === 0) {
1480
1751
  return {
1481
- vectors: [],
1752
+ entries: {},
1753
+ embedding: null,
1482
1754
  warnings: []
1483
1755
  };
1484
1756
  }
1485
- const warnings = [];
1486
- const corpusLimitResolution = resolveSemanticCorpusCharacterLimit(provider.name, settings.search.embedding_corpus_max_characters);
1487
- if (corpusLimitResolution.warning) {
1488
- warnings.push(corpusLimitResolution.warning);
1489
- }
1490
- const runtime = resolveProviderBatchRuntime(provider, resolveBatchRuntime(settings, corpusLimitResolution.maxCharacters));
1491
- let truncatedInputCount = 0;
1492
- const normalizedInputs = inputs.map((input) => {
1493
- const normalized = truncateInputForRuntime(input, runtime.maxInputCharacters);
1494
- if (normalized.length < input.length) {
1495
- truncatedInputCount += 1;
1496
- }
1497
- return normalized;
1498
- });
1499
- if (truncatedInputCount > 0) {
1500
- warnings.push(`search_embedding_input_truncated:count=${truncatedInputCount}:max_characters=${runtime.maxInputCharacters}`);
1501
- }
1502
- const batches = createBatches(normalizedInputs, runtime.batchSize, runtime.maxBatchInputCharacters);
1503
- const vectors = [];
1504
- let completedInputs = 0;
1505
- for (let batchIndex = 0; batchIndex < batches.length; batchIndex += 1) {
1506
- const batch = batches[batchIndex];
1507
- options.onProgress?.({
1508
- batch_index: batchIndex + 1,
1509
- batch_total: batches.length,
1510
- batch_size: batch.length,
1511
- completed_inputs: completedInputs,
1512
- total_inputs: normalizedInputs.length,
1513
- phase: "start"
1514
- });
1515
- vectors.push(...await executeBatchWithAdaptiveSplit(provider, batch, String(batchIndex + 1), runtime.timeoutMs, runtime.maxRetries, warnings));
1516
- completedInputs += batch.length;
1517
- options.onProgress?.({
1518
- batch_index: batchIndex + 1,
1519
- batch_total: batches.length,
1520
- batch_size: batch.length,
1521
- completed_inputs: completedInputs,
1522
- total_inputs: normalizedInputs.length,
1523
- phase: "complete"
1524
- });
1525
- }
1526
- return {
1527
- vectors,
1528
- warnings
1529
- };
1530
- }
1531
-
1532
- // dist/core/search/background-refresh.js
1533
- import { spawn } from "node:child_process";
1534
- import { mkdirSync, rmSync, statSync } from "node:fs";
1535
- import path from "node:path";
1536
- !(function() {
1537
- try {
1538
- var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
1539
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "f10096ab-4dea-55ca-a631-6cb087bf9c4a");
1540
- } catch (e2) {
1541
- }
1542
- })();
1543
- var REINDEX_LOCK_ID = "reindex";
1544
- var PENDING_QUEUE_REL_PATH = "search/pending-refresh.json";
1545
- var PENDING_QUEUE_GATE_REL_PATH = "search/pending-refresh.gate.lock";
1546
- var PENDING_QUEUE_GATE_STALE_MS = 3e4;
1547
- var SEARCH_REFRESH_INLINE_ENV = "PM_SEARCH_REFRESH_INLINE";
1548
- var SEARCH_REFRESH_CHILD_ENV = "PM_SEARCH_REFRESH_CHILD";
1549
- function parseBooleanTrueLike(value) {
1550
- if (typeof value !== "string") {
1551
- return false;
1552
- }
1553
- const normalized = value.trim().toLowerCase();
1554
- return normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on";
1555
- }
1556
- function shouldRunSearchRefreshInForeground() {
1557
- if (parseBooleanTrueLike(process.env[SEARCH_REFRESH_INLINE_ENV])) {
1558
- return true;
1559
- }
1560
- if (parseBooleanTrueLike(process.env[SEARCH_REFRESH_CHILD_ENV])) {
1561
- return true;
1562
- }
1563
- const nodeEnv = (process.env.NODE_ENV ?? "").trim().toLowerCase();
1564
- return typeof process.env.VITEST === "string" || typeof process.env.VITEST_WORKER_ID === "string" || nodeEnv === "test";
1565
- }
1566
- function pendingQueuePath(pmRoot) {
1567
- return path.join(pmRoot, PENDING_QUEUE_REL_PATH);
1568
- }
1569
- function pendingQueueGatePath(pmRoot) {
1570
- return path.join(pmRoot, PENDING_QUEUE_GATE_REL_PATH);
1571
- }
1572
- function acquireQueueGate(pmRoot) {
1573
- const gatePath = pendingQueueGatePath(pmRoot);
1574
- try {
1575
- if (Date.now() - statSync(gatePath).mtimeMs < PENDING_QUEUE_GATE_STALE_MS) {
1576
- return false;
1577
- }
1578
- rmSync(gatePath, { recursive: true, force: true });
1579
- } catch {
1580
- }
1581
- try {
1582
- mkdirSync(path.dirname(gatePath), { recursive: true });
1583
- mkdirSync(gatePath);
1584
- return true;
1585
- } catch {
1586
- return false;
1587
- }
1588
- }
1589
- function releaseQueueGate(pmRoot) {
1590
- try {
1591
- rmSync(pendingQueueGatePath(pmRoot), { recursive: true, force: true });
1592
- } catch {
1593
- }
1594
- }
1595
- async function withQueueGate(pmRoot, fn, fallback) {
1596
- for (let attempt = 0; attempt < 50; attempt += 1) {
1597
- if (acquireQueueGate(pmRoot)) {
1598
- try {
1599
- return await fn();
1600
- } finally {
1601
- releaseQueueGate(pmRoot);
1602
- }
1603
- }
1604
- await delay(20);
1605
- }
1606
- return fallback;
1607
- }
1608
- function delay(ms) {
1609
- return new Promise((resolve2) => {
1610
- setTimeout(resolve2, ms);
1611
- });
1612
- }
1613
- async function readPendingQueueIds(pmRoot) {
1614
- const raw = await readFileIfExists(pendingQueuePath(pmRoot));
1615
- if (!raw || raw.trim().length === 0) {
1616
- return [];
1617
- }
1618
- try {
1619
- const parsed = JSON.parse(raw);
1620
- if (!Array.isArray(parsed.ids)) {
1621
- return [];
1622
- }
1623
- return parsed.ids.filter((id) => typeof id === "string" && id.length > 0);
1624
- } catch {
1625
- return [];
1626
- }
1627
- }
1628
- async function writePendingQueueIds(pmRoot, ids) {
1629
- await writeFileAtomic(pendingQueuePath(pmRoot), `${JSON.stringify({ ids })}
1630
- `);
1631
- }
1632
- async function enqueuePendingRefreshIds(pmRoot, itemIds) {
1633
- const incoming = itemIds.filter((id) => typeof id === "string" && id.trim().length > 0);
1634
- if (incoming.length === 0) {
1635
- return;
1636
- }
1637
- const mergeIncoming = async () => {
1638
- const existing = await readPendingQueueIds(pmRoot);
1639
- const merged = [.../* @__PURE__ */ new Set([...existing, ...incoming])].sort((left, right) => left.localeCompare(right));
1640
- await writePendingQueueIds(pmRoot, merged);
1641
- };
1642
- const gated = await withQueueGate(pmRoot, async () => {
1643
- await mergeIncoming();
1644
- return true;
1645
- }, false);
1646
- if (!gated) {
1647
- await mergeIncoming();
1648
- }
1649
- }
1650
- function searchRefreshRunnerPath() {
1651
- return path.join(resolvePmPackageRootFromModule(import.meta.url, ["../../.."]), "dist", "cli", "search-refresh.js");
1652
- }
1653
- function dispatchRefreshChild(pmRoot) {
1654
- try {
1655
- const child = spawn(process.execPath, [searchRefreshRunnerPath()], {
1656
- detached: true,
1657
- stdio: "ignore",
1658
- env: {
1659
- ...process.env,
1660
- PM_PATH: pmRoot,
1661
- [SEARCH_REFRESH_CHILD_ENV]: "1"
1662
- }
1663
- });
1664
- child.on("error", () => {
1665
- });
1666
- child.unref();
1667
- } catch {
1668
- }
1669
- }
1670
- async function scheduleBackgroundSemanticRefresh(pmRoot, itemIds) {
1671
- await enqueuePendingRefreshIds(pmRoot, itemIds);
1672
- dispatchRefreshChild(pmRoot);
1673
- }
1674
-
1675
- // dist/core/search/cache.js
1676
- !(function() {
1677
- try {
1678
- var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
1679
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "81b33560-411e-51e7-8009-cf3615d51a2a");
1680
- } catch (e2) {
1681
- }
1682
- })();
1683
- var SEARCH_CACHE_ARTIFACT_PATHS = ["index/manifest.json", "search/embeddings.jsonl"];
1684
- var VECTORIZATION_STATUS_LEDGER_PATH = "search/vectorization-status.json";
1685
- function formatInvalidationWarning(relativePath, error) {
1686
- return `search_cache_invalidation_failed:${relativePath}:${String(error)}`;
1687
- }
1688
- function toUniqueSorted(values) {
1689
- return [...new Set([...values].map((value) => value.trim()).filter((value) => value.length > 0))].sort((left, right) => left.localeCompare(right));
1690
- }
1691
- function isValidUpdatedAt(value) {
1692
- return typeof value === "string" && value.trim().length > 0 && Number.isFinite(Date.parse(value));
1693
- }
1694
- function normalizeVectorizationLedgerEntries(entries) {
1695
- const normalized = /* @__PURE__ */ new Map();
1696
- for (const [rawId, rawUpdatedAt] of Object.entries(entries)) {
1697
- const id = rawId.trim();
1698
- if (id.length === 0 || !isValidUpdatedAt(rawUpdatedAt)) {
1699
- continue;
1700
- }
1701
- normalized.set(id, rawUpdatedAt);
1702
- }
1703
- return Object.fromEntries([...normalized.entries()].sort((left, right) => left[0].localeCompare(right[0])));
1704
- }
1705
- async function readVectorizationStatusLedger(pmRoot) {
1706
- const ledgerPath = path2.join(pmRoot, VECTORIZATION_STATUS_LEDGER_PATH);
1707
- const raw = await readFileIfExists(ledgerPath);
1708
- if (raw === null || raw.trim().length === 0) {
1709
- return {
1710
- entries: {},
1711
- embedding: null,
1712
- warnings: []
1713
- };
1714
- }
1715
- let parsed;
1716
- try {
1717
- parsed = JSON.parse(raw);
1718
- } catch {
1719
- return {
1720
- entries: {},
1721
- embedding: null,
1722
- warnings: ["search_vectorization_status_ledger_invalid"]
1723
- };
1757
+ let parsed;
1758
+ try {
1759
+ parsed = JSON.parse(raw);
1760
+ } catch {
1761
+ return {
1762
+ entries: {},
1763
+ embedding: null,
1764
+ warnings: ["search_vectorization_status_ledger_invalid"]
1765
+ };
1724
1766
  }
1725
1767
  if (typeof parsed !== "object" || parsed === null || parsed.version !== 1 || !Array.isArray(parsed.items)) {
1726
1768
  return {
@@ -1818,7 +1860,7 @@ async function resolveSemanticRefreshRuntimeContext(pmRoot, normalizedItemIds, o
1818
1860
  if (!provider) {
1819
1861
  return buildSkippedSemanticRefreshResult(normalizedItemIds, "search_semantic_refresh_skipped:provider_unconfigured");
1820
1862
  }
1821
- const vectorStore = resolveVectorStores(effectiveSettings).active;
1863
+ const vectorStore = resolveVectorStores(effectiveSettings, pmRoot).active;
1822
1864
  if (!vectorStore) {
1823
1865
  return buildSkippedSemanticRefreshResult(normalizedItemIds, "search_semantic_refresh_skipped:vector_store_unconfigured");
1824
1866
  }
@@ -2072,6 +2114,770 @@ async function refreshSearchArtifactsForMutation(pmRoot, itemIds, options = {})
2072
2114
  };
2073
2115
  }
2074
2116
 
2117
+ // dist/cli/registration-helpers.js
2118
+ !(function() {
2119
+ try {
2120
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
2121
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "b171fdb9-1d1c-5054-8632-924de7f9756f");
2122
+ } catch (e2) {
2123
+ }
2124
+ })();
2125
+ var RESOLVED_GLOBAL_OPTIONS = /* @__PURE__ */ Symbol("pm.resolvedGlobalOptions");
2126
+ function commandOptionsReader(command) {
2127
+ return typeof command === "object" && command !== null ? command : {};
2128
+ }
2129
+ function resolveCommanderContract(contracts, target) {
2130
+ const contract = contracts.find((entry) => entry.target === target);
2131
+ return contract ?? { target, keys: [target] };
2132
+ }
2133
+ function setResolvedGlobalOptions(command, globalOptions) {
2134
+ command[RESOLVED_GLOBAL_OPTIONS] = { ...globalOptions };
2135
+ }
2136
+ function clearResolvedGlobalOptions(command) {
2137
+ delete command[RESOLVED_GLOBAL_OPTIONS];
2138
+ }
2139
+ function getGlobalOptions(command) {
2140
+ const resolved = command[RESOLVED_GLOBAL_OPTIONS];
2141
+ if (resolved) {
2142
+ return { ...resolved };
2143
+ }
2144
+ const reader = commandOptionsReader(command);
2145
+ const opts = typeof reader.optsWithGlobals === "function" ? reader.optsWithGlobals() : typeof reader.opts === "function" ? reader.opts() : {};
2146
+ return {
2147
+ json: opts.json === true ? true : void 0,
2148
+ quiet: Boolean(opts.quiet),
2149
+ noChangedFields: opts.changedFields === false,
2150
+ idOnly: opts.idOnly === true,
2151
+ path: typeof opts.pmPath === "string" ? opts.pmPath : typeof opts.path === "string" ? opts.path : void 0,
2152
+ noExtensions: opts.extensions === false,
2153
+ noPager: Boolean(opts.noPager),
2154
+ profile: Boolean(opts.profile)
2155
+ };
2156
+ }
2157
+ function getCommandPath(command) {
2158
+ const parts = [];
2159
+ let current = command;
2160
+ while (current?.parent) {
2161
+ parts.unshift(current.name());
2162
+ current = current.parent;
2163
+ }
2164
+ return parts.join(" ");
2165
+ }
2166
+ async function applyDefaultOutputFormat(globalOptions) {
2167
+ if (globalOptions.json === true) {
2168
+ return globalOptions;
2169
+ }
2170
+ const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
2171
+ if (!await pathExists(getSettingsPath(pmRoot))) {
2172
+ return globalOptions;
2173
+ }
2174
+ const settings = await readSettings(pmRoot);
2175
+ return {
2176
+ ...globalOptions,
2177
+ defaultOutputFormat: settings.output.default_format
2178
+ };
2179
+ }
2180
+ function collect(value, previous) {
2181
+ const next = previous ?? [];
2182
+ next.push(value);
2183
+ return next;
2184
+ }
2185
+ function pushOptionalValueFlag(args, flag, value) {
2186
+ if (typeof value !== "string") {
2187
+ return;
2188
+ }
2189
+ const trimmed = value.trim();
2190
+ if (trimmed.length === 0) {
2191
+ return;
2192
+ }
2193
+ args.push(flag, trimmed);
2194
+ }
2195
+ function pushOptionalBooleanFlag(args, flag, value) {
2196
+ if (value === true) {
2197
+ args.push(flag);
2198
+ }
2199
+ }
2200
+ function pushRepeatableValueFlag(args, flag, values) {
2201
+ if (!Array.isArray(values)) {
2202
+ return;
2203
+ }
2204
+ for (const value of values) {
2205
+ if (typeof value !== "string") {
2206
+ continue;
2207
+ }
2208
+ const trimmed = value.trim();
2209
+ if (trimmed.length === 0) {
2210
+ continue;
2211
+ }
2212
+ args.push(flag, trimmed);
2213
+ }
2214
+ }
2215
+ function optionTrue(options, key) {
2216
+ return options[key] === true ? true : void 0;
2217
+ }
2218
+ function optionFalse(options, key) {
2219
+ return options[key] === false ? true : void 0;
2220
+ }
2221
+ function readOptionString(options, key) {
2222
+ return typeof options[key] === "string" ? options[key] : void 0;
2223
+ }
2224
+ function addHiddenOption(command, flags, description) {
2225
+ command.addOption(new Option(flags, description).hideHelp());
2226
+ }
2227
+ function anyOptionTrue(options, keys) {
2228
+ return keys.some((key) => options[key] === true) ? true : void 0;
2229
+ }
2230
+ function copyUnknownOptions(target, source) {
2231
+ for (const [key, value] of Object.entries(source)) {
2232
+ if (key === "__proto__" || key === "constructor" || key === "prototype") {
2233
+ continue;
2234
+ }
2235
+ if (Object.hasOwn(target, key)) {
2236
+ continue;
2237
+ }
2238
+ target[key] = value;
2239
+ }
2240
+ }
2241
+ function buildBackgroundTestCommandArgs(id, options) {
2242
+ const args = ["test", id, "--run", "--json", "--progress"];
2243
+ pushRepeatableValueFlag(args, "--add", options.add);
2244
+ pushRepeatableValueFlag(args, "--add-json", options.addJson);
2245
+ pushRepeatableValueFlag(args, "--remove", options.remove);
2246
+ pushOptionalValueFlag(args, "--match", options.match);
2247
+ pushOptionalValueFlag(args, "--only-index", options.onlyIndex);
2248
+ pushOptionalBooleanFlag(args, "--only-last", options.onlyLast);
2249
+ pushOptionalValueFlag(args, "--timeout", options.timeout);
2250
+ pushRepeatableValueFlag(args, "--env-set", options.envSet);
2251
+ pushRepeatableValueFlag(args, "--env-clear", options.envClear);
2252
+ pushOptionalBooleanFlag(args, "--shared-host-safe", options.sharedHostSafe);
2253
+ pushOptionalValueFlag(args, "--pm-context", options.pmContext);
2254
+ pushOptionalBooleanFlag(args, "--override-linked-pm-context", options.overrideLinkedPmContext);
2255
+ pushOptionalBooleanFlag(args, "--fail-on-context-mismatch", options.failOnContextMismatch);
2256
+ pushOptionalBooleanFlag(args, "--fail-on-skipped", options.failOnSkipped);
2257
+ pushOptionalBooleanFlag(args, "--fail-on-empty-test-run", options.failOnEmptyTestRun);
2258
+ pushOptionalBooleanFlag(args, "--require-assertions-for-pm", options.requireAssertionsForPm);
2259
+ pushOptionalBooleanFlag(args, "--check-context", options.checkContext);
2260
+ pushOptionalBooleanFlag(args, "--auto-pm-context", options.autoPmContext);
2261
+ pushOptionalValueFlag(args, "--author", options.author);
2262
+ pushOptionalValueFlag(args, "--message", options.message);
2263
+ pushOptionalBooleanFlag(args, "--force", options.force);
2264
+ return args;
2265
+ }
2266
+ function buildBackgroundTestAllCommandArgs(options) {
2267
+ const args = ["test-all", "--json", "--progress"];
2268
+ pushOptionalValueFlag(args, "--status", options.status);
2269
+ pushOptionalValueFlag(args, "--limit", options.limit);
2270
+ pushOptionalValueFlag(args, "--offset", options.offset);
2271
+ pushOptionalValueFlag(args, "--timeout", options.timeout);
2272
+ pushRepeatableValueFlag(args, "--env-set", options.envSet);
2273
+ pushRepeatableValueFlag(args, "--env-clear", options.envClear);
2274
+ pushOptionalBooleanFlag(args, "--shared-host-safe", options.sharedHostSafe);
2275
+ pushOptionalValueFlag(args, "--pm-context", options.pmContext);
2276
+ pushOptionalBooleanFlag(args, "--override-linked-pm-context", options.overrideLinkedPmContext);
2277
+ pushOptionalBooleanFlag(args, "--fail-on-context-mismatch", options.failOnContextMismatch);
2278
+ pushOptionalBooleanFlag(args, "--fail-on-skipped", options.failOnSkipped);
2279
+ pushOptionalBooleanFlag(args, "--fail-on-empty-test-run", options.failOnEmptyTestRun);
2280
+ pushOptionalBooleanFlag(args, "--require-assertions-for-pm", options.requireAssertionsForPm);
2281
+ pushOptionalBooleanFlag(args, "--check-context", options.checkContext);
2282
+ pushOptionalBooleanFlag(args, "--auto-pm-context", options.autoPmContext);
2283
+ return args;
2284
+ }
2285
+ function formatHookWarnings(warnings) {
2286
+ return warnings.join(",");
2287
+ }
2288
+ function normalizeCreateOptions(commandOptions, options = {}) {
2289
+ const readCreateString = (target) => readFirstStringFromCommanderOptions(commandOptions, resolveCommanderContract(CREATE_COMMANDER_STRING_OPTION_CONTRACTS, target));
2290
+ const readCreateList = (target) => readStringArrayFromCommanderOptions(commandOptions, resolveCommanderContract(CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, target));
2291
+ const type = readCreateString("type");
2292
+ if (options.requireType !== false && type === void 0) {
2293
+ throw new PmCliError("Missing required option --type <value>. Why required: create resolves runtime schema fields/workflow from item type. Retry: add --type <built-in or configured custom type> (example: --type Task).", EXIT_CODE.USAGE);
2294
+ }
2295
+ const normalized = {
2296
+ title: readCreateString("title"),
2297
+ description: readCreateString("description"),
2298
+ type,
2299
+ template: readCreateString("template"),
2300
+ createMode: readCreateString("createMode"),
2301
+ schedulePreset: readCreateString("schedulePreset"),
2302
+ status: readCreateString("status"),
2303
+ priority: readCreateString("priority"),
2304
+ tags: readCreateString("tags"),
2305
+ addTags: readCreateList("addTags"),
2306
+ body: readCreateString("body"),
2307
+ deadline: readCreateString("deadline"),
2308
+ estimatedMinutes: readCreateString("estimatedMinutes"),
2309
+ acceptanceCriteria: readCreateString("acceptanceCriteria"),
2310
+ definitionOfReady: readCreateString("definitionOfReady"),
2311
+ order: readCreateString("order"),
2312
+ rank: readCreateString("rank"),
2313
+ goal: readCreateString("goal"),
2314
+ objective: readCreateString("objective"),
2315
+ value: readCreateString("value"),
2316
+ impact: readCreateString("impact"),
2317
+ outcome: readCreateString("outcome"),
2318
+ whyNow: readCreateString("whyNow"),
2319
+ author: readCreateString("author"),
2320
+ message: readCreateString("message"),
2321
+ assignee: readCreateString("assignee"),
2322
+ parent: readCreateString("parent"),
2323
+ allowMissingParent: optionTrue(commandOptions, "allowMissingParent") === true,
2324
+ reviewer: readCreateString("reviewer"),
2325
+ risk: readCreateString("risk"),
2326
+ confidence: readCreateString("confidence"),
2327
+ sprint: readCreateString("sprint"),
2328
+ release: readCreateString("release"),
2329
+ blockedBy: readCreateString("blockedBy"),
2330
+ blockedReason: readCreateString("blockedReason"),
2331
+ unblockNote: readCreateString("unblockNote"),
2332
+ reporter: readCreateString("reporter"),
2333
+ severity: readCreateString("severity"),
2334
+ environment: readCreateString("environment"),
2335
+ reproSteps: readCreateString("reproSteps"),
2336
+ resolution: readCreateString("resolution"),
2337
+ expectedResult: readCreateString("expectedResult"),
2338
+ actualResult: readCreateString("actualResult"),
2339
+ affectedVersion: readCreateString("affectedVersion"),
2340
+ fixedVersion: readCreateString("fixedVersion"),
2341
+ component: readCreateString("component"),
2342
+ regression: readCreateString("regression"),
2343
+ customerImpact: readCreateString("customerImpact"),
2344
+ dep: readCreateList("dep"),
2345
+ comment: readCreateList("comment"),
2346
+ note: readCreateList("note"),
2347
+ learning: readCreateList("learning"),
2348
+ file: readCreateList("file"),
2349
+ test: readCreateList("test"),
2350
+ doc: readCreateList("doc"),
2351
+ reminder: readCreateList("reminder"),
2352
+ event: readCreateList("event"),
2353
+ typeOption: readCreateList("typeOption"),
2354
+ field: readCreateList("field"),
2355
+ unset: readCreateList("unset"),
2356
+ clearDeps: optionTrue(commandOptions, "clearDeps"),
2357
+ clearComments: optionTrue(commandOptions, "clearComments"),
2358
+ clearNotes: optionTrue(commandOptions, "clearNotes"),
2359
+ clearLearnings: optionTrue(commandOptions, "clearLearnings"),
2360
+ clearFiles: optionTrue(commandOptions, "clearFiles"),
2361
+ clearTests: optionTrue(commandOptions, "clearTests"),
2362
+ clearDocs: optionTrue(commandOptions, "clearDocs"),
2363
+ clearReminders: optionTrue(commandOptions, "clearReminders"),
2364
+ clearEvents: optionTrue(commandOptions, "clearEvents"),
2365
+ clearTypeOptions: optionTrue(commandOptions, "clearTypeOptions")
2366
+ };
2367
+ copyUnknownOptions(normalized, commandOptions);
2368
+ return normalized;
2369
+ }
2370
+ function normalizeUpdateOptions(commandOptions) {
2371
+ const readUpdateString = (target) => readFirstStringFromCommanderOptions(commandOptions, resolveCommanderContract(UPDATE_COMMANDER_STRING_OPTION_CONTRACTS, target));
2372
+ const readUpdateList = (target) => readStringArrayFromCommanderOptions(commandOptions, resolveCommanderContract(UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, target));
2373
+ const normalized = {
2374
+ title: readUpdateString("title"),
2375
+ description: readUpdateString("description"),
2376
+ body: readUpdateString("body"),
2377
+ status: readUpdateString("status"),
2378
+ closeReason: readUpdateString("closeReason"),
2379
+ priority: readUpdateString("priority"),
2380
+ type: readUpdateString("type"),
2381
+ tags: readUpdateString("tags"),
2382
+ addTags: readUpdateList("addTags"),
2383
+ removeTags: readUpdateList("removeTags"),
2384
+ deadline: readUpdateString("deadline"),
2385
+ estimatedMinutes: readUpdateString("estimatedMinutes"),
2386
+ acceptanceCriteria: readUpdateString("acceptanceCriteria"),
2387
+ definitionOfReady: readUpdateString("definitionOfReady"),
2388
+ order: readUpdateString("order"),
2389
+ rank: readUpdateString("rank"),
2390
+ goal: readUpdateString("goal"),
2391
+ objective: readUpdateString("objective"),
2392
+ value: readUpdateString("value"),
2393
+ impact: readUpdateString("impact"),
2394
+ outcome: readUpdateString("outcome"),
2395
+ whyNow: readUpdateString("whyNow"),
2396
+ author: readUpdateString("author"),
2397
+ message: readUpdateString("message"),
2398
+ force: Boolean(commandOptions.force),
2399
+ allowAuditUpdate: anyOptionTrue(commandOptions, ["allowAuditUpdate", "allow_audit_update"]),
2400
+ allowAuditDepUpdate: anyOptionTrue(commandOptions, ["allowAuditDepUpdate", "allow_audit_dep_update"]),
2401
+ assignee: readUpdateString("assignee"),
2402
+ parent: readUpdateString("parent"),
2403
+ reviewer: readUpdateString("reviewer"),
2404
+ risk: readUpdateString("risk"),
2405
+ confidence: readUpdateString("confidence"),
2406
+ sprint: readUpdateString("sprint"),
2407
+ release: readUpdateString("release"),
2408
+ blockedBy: readUpdateString("blockedBy"),
2409
+ blockedReason: readUpdateString("blockedReason"),
2410
+ unblockNote: readUpdateString("unblockNote"),
2411
+ reporter: readUpdateString("reporter"),
2412
+ severity: readUpdateString("severity"),
2413
+ environment: readUpdateString("environment"),
2414
+ reproSteps: readUpdateString("reproSteps"),
2415
+ resolution: readUpdateString("resolution"),
2416
+ expectedResult: readUpdateString("expectedResult"),
2417
+ actualResult: readUpdateString("actualResult"),
2418
+ affectedVersion: readUpdateString("affectedVersion"),
2419
+ fixedVersion: readUpdateString("fixedVersion"),
2420
+ component: readUpdateString("component"),
2421
+ regression: readUpdateString("regression"),
2422
+ customerImpact: readUpdateString("customerImpact"),
2423
+ dep: readUpdateList("dep"),
2424
+ depRemove: readUpdateList("depRemove"),
2425
+ replaceDeps: optionTrue(commandOptions, "replaceDeps"),
2426
+ replaceTests: optionTrue(commandOptions, "replaceTests"),
2427
+ comment: readUpdateList("comment"),
2428
+ note: readUpdateList("note"),
2429
+ learning: readUpdateList("learning"),
2430
+ file: readUpdateList("file"),
2431
+ test: readUpdateList("test"),
2432
+ doc: readUpdateList("doc"),
2433
+ reminder: readUpdateList("reminder"),
2434
+ event: readUpdateList("event"),
2435
+ typeOption: readUpdateList("typeOption"),
2436
+ field: readUpdateList("field"),
2437
+ unset: readUpdateList("unset"),
2438
+ clearDeps: optionTrue(commandOptions, "clearDeps"),
2439
+ clearComments: optionTrue(commandOptions, "clearComments"),
2440
+ clearNotes: optionTrue(commandOptions, "clearNotes"),
2441
+ clearLearnings: optionTrue(commandOptions, "clearLearnings"),
2442
+ clearFiles: optionTrue(commandOptions, "clearFiles"),
2443
+ clearTests: optionTrue(commandOptions, "clearTests"),
2444
+ clearDocs: optionTrue(commandOptions, "clearDocs"),
2445
+ clearReminders: optionTrue(commandOptions, "clearReminders"),
2446
+ clearEvents: optionTrue(commandOptions, "clearEvents"),
2447
+ clearTypeOptions: optionTrue(commandOptions, "clearTypeOptions")
2448
+ };
2449
+ copyUnknownOptions(normalized, commandOptions);
2450
+ return normalized;
2451
+ }
2452
+ var UPDATE_MANY_CONTROL_OPTION_KEYS = /* @__PURE__ */ new Set([
2453
+ "filterStatus",
2454
+ "filterType",
2455
+ "filterTag",
2456
+ "filterPriority",
2457
+ "filterDeadlineBefore",
2458
+ "filterDeadlineAfter",
2459
+ "filterUpdatedAfter",
2460
+ "filterUpdatedBefore",
2461
+ "filterCreatedAfter",
2462
+ "filterCreatedBefore",
2463
+ "filterAssignee",
2464
+ "filterAssigneeFilter",
2465
+ "filterAssignee_filter",
2466
+ "filterParent",
2467
+ "filterSprint",
2468
+ "filterRelease",
2469
+ "filterAcMissing",
2470
+ "filterEstimatesMissing",
2471
+ "filterEstimateMissing",
2472
+ "filterResolutionMissing",
2473
+ "filterMetadataMissing",
2474
+ "filterReviewerMissing",
2475
+ "filterRiskMissing",
2476
+ "filterConfidenceMissing",
2477
+ "filterSprintMissing",
2478
+ "filterReleaseMissing",
2479
+ "filterHasNotes",
2480
+ "filterNoNotes",
2481
+ "filterHasLearnings",
2482
+ "filterNoLearnings",
2483
+ "filterHasFiles",
2484
+ "filterNoFiles",
2485
+ "filterHasDocs",
2486
+ "filterNoDocs",
2487
+ "filterHasTests",
2488
+ "filterNoTests",
2489
+ "filterHasComments",
2490
+ "filterNoComments",
2491
+ "filterHasDeps",
2492
+ "filterNoDeps",
2493
+ "filterHasBody",
2494
+ "filterEmptyBody",
2495
+ "filterHasLinkedCommand",
2496
+ "filterNoLinkedCommand",
2497
+ "ids",
2498
+ "limit",
2499
+ "offset",
2500
+ "dryRun",
2501
+ "rollback",
2502
+ "checkpoint"
2503
+ ]);
2504
+ function extractUpdateManyMutationOptionSource(commandOptions) {
2505
+ const mutationOptions = {};
2506
+ for (const [key, value] of Object.entries(commandOptions)) {
2507
+ if (UPDATE_MANY_CONTROL_OPTION_KEYS.has(key)) {
2508
+ continue;
2509
+ }
2510
+ mutationOptions[key] = value;
2511
+ }
2512
+ return mutationOptions;
2513
+ }
2514
+ function readListOptionString(options, target) {
2515
+ const contract = resolveCommanderContract(LIST_COMMANDER_STRING_OPTION_CONTRACTS, target);
2516
+ const stringValue = readFirstStringFromCommanderOptions(options, contract);
2517
+ if (stringValue !== void 0) {
2518
+ return stringValue;
2519
+ }
2520
+ for (const key of contract.keys) {
2521
+ const value = options[key];
2522
+ if (target === "ids" && typeof value === "string") {
2523
+ return value;
2524
+ }
2525
+ if (typeof value === "number" && Number.isFinite(value)) {
2526
+ return String(value);
2527
+ }
2528
+ }
2529
+ return void 0;
2530
+ }
2531
+ function readSelectionFilterOptionFields(options) {
2532
+ const filterFilesMissing = optionTrue(options, "filterFilesMissing");
2533
+ const filterDocsMissing = optionTrue(options, "filterDocsMissing");
2534
+ return {
2535
+ filterReviewerMissing: optionTrue(options, "filterReviewerMissing"),
2536
+ filterRiskMissing: optionTrue(options, "filterRiskMissing"),
2537
+ filterConfidenceMissing: optionTrue(options, "filterConfidenceMissing"),
2538
+ filterSprintMissing: optionTrue(options, "filterSprintMissing"),
2539
+ filterReleaseMissing: optionTrue(options, "filterReleaseMissing"),
2540
+ hasNotes: optionTrue(options, "hasNotes"),
2541
+ hasLearnings: optionTrue(options, "hasLearnings"),
2542
+ hasFiles: optionTrue(options, "hasFiles"),
2543
+ hasDocs: optionTrue(options, "hasDocs"),
2544
+ hasTests: optionTrue(options, "hasTests"),
2545
+ hasComments: optionTrue(options, "hasComments"),
2546
+ hasDeps: optionTrue(options, "hasDeps"),
2547
+ hasBody: optionTrue(options, "hasBody"),
2548
+ hasLinkedCommand: optionTrue(options, "hasLinkedCommand"),
2549
+ noNotes: optionFalse(options, "notes"),
2550
+ noLearnings: optionFalse(options, "learnings"),
2551
+ noFiles: optionFalse(options, "files") ?? filterFilesMissing,
2552
+ filterFilesMissing,
2553
+ noDocs: optionFalse(options, "docs") ?? filterDocsMissing,
2554
+ filterDocsMissing,
2555
+ noTests: optionFalse(options, "tests"),
2556
+ noComments: optionFalse(options, "comments"),
2557
+ noDeps: optionFalse(options, "deps"),
2558
+ emptyBody: optionTrue(options, "emptyBody"),
2559
+ noLinkedCommand: optionFalse(options, "linkedCommand")
2560
+ };
2561
+ }
2562
+ function normalizeListOptions(options) {
2563
+ const normalized = {
2564
+ status: readListOptionString(options, "status"),
2565
+ type: readListOptionString(options, "type"),
2566
+ tag: readListOptionString(options, "tag"),
2567
+ priority: readListOptionString(options, "priority"),
2568
+ deadlineBefore: readListOptionString(options, "deadlineBefore"),
2569
+ deadlineAfter: readListOptionString(options, "deadlineAfter"),
2570
+ updatedAfter: readListOptionString(options, "updatedAfter"),
2571
+ updatedBefore: readListOptionString(options, "updatedBefore"),
2572
+ createdAfter: readListOptionString(options, "createdAfter"),
2573
+ createdBefore: readListOptionString(options, "createdBefore"),
2574
+ ids: readListOptionString(options, "ids"),
2575
+ assignee: readListOptionString(options, "assignee"),
2576
+ assigneeFilter: readListOptionString(options, "assigneeFilter"),
2577
+ parent: readListOptionString(options, "parent"),
2578
+ sprint: readListOptionString(options, "sprint"),
2579
+ release: readListOptionString(options, "release"),
2580
+ limit: readListOptionString(options, "limit"),
2581
+ offset: readListOptionString(options, "offset"),
2582
+ // Commander stores --no-truncate as truncate=false; --all is the positive alias.
2583
+ noTruncate: optionFalse(options, "truncate") ?? optionTrue(options, "all"),
2584
+ includeBody: optionTrue(options, "includeBody"),
2585
+ compact: optionTrue(options, "compact"),
2586
+ brief: optionTrue(options, "brief"),
2587
+ full: optionTrue(options, "full"),
2588
+ fields: readListOptionString(options, "fields"),
2589
+ sort: readListOptionString(options, "sort"),
2590
+ order: readListOptionString(options, "order"),
2591
+ tree: optionTrue(options, "tree"),
2592
+ treeDepth: readListOptionString(options, "treeDepth"),
2593
+ filterAcMissing: optionTrue(options, "filterAcMissing"),
2594
+ filterEstimatesMissing: anyOptionTrue(options, ["filterEstimatesMissing", "filterEstimateMissing"]),
2595
+ filterResolutionMissing: optionTrue(options, "filterResolutionMissing"),
2596
+ filterMetadataMissing: optionTrue(options, "filterMetadataMissing"),
2597
+ // Governance-missing (GH-236) + content presence/absence (GH-242) filters.
2598
+ ...readSelectionFilterOptionFields(options)
2599
+ };
2600
+ copyUnknownOptions(normalized, options);
2601
+ return normalized;
2602
+ }
2603
+ function normalizeAggregateOptions(options) {
2604
+ return {
2605
+ groupBy: typeof options.groupBy === "string" ? options.groupBy : void 0,
2606
+ count: options.count === true ? true : void 0,
2607
+ completion: options.completion === true ? true : void 0,
2608
+ sum: typeof options.sum === "string" ? options.sum : void 0,
2609
+ avg: typeof options.avg === "string" ? options.avg : void 0,
2610
+ includeUnparented: options.includeUnparented === true || options.include_unparented === true,
2611
+ status: typeof options.status === "string" ? options.status : void 0,
2612
+ type: readListOptionString(options, "type"),
2613
+ tag: readListOptionString(options, "tag"),
2614
+ priority: readListOptionString(options, "priority"),
2615
+ deadlineBefore: readListOptionString(options, "deadlineBefore"),
2616
+ deadlineAfter: readListOptionString(options, "deadlineAfter"),
2617
+ assignee: readListOptionString(options, "assignee"),
2618
+ assigneeFilter: readListOptionString(options, "assigneeFilter"),
2619
+ parent: readListOptionString(options, "parent"),
2620
+ sprint: readListOptionString(options, "sprint"),
2621
+ release: readListOptionString(options, "release")
2622
+ };
2623
+ }
2624
+ function printListJsonStream(commandName, result, globalOptions) {
2625
+ setActiveCommandResult(result);
2626
+ if (globalOptions.quiet) {
2627
+ return;
2628
+ }
2629
+ const warnings = Array.isArray(result.warnings) ? result.warnings : [];
2630
+ const metaPayload = {
2631
+ type: "meta",
2632
+ command: commandName,
2633
+ count: result.count,
2634
+ now: result.now,
2635
+ filters: result.filters
2636
+ };
2637
+ if (warnings.length > 0) {
2638
+ metaPayload.warnings = warnings;
2639
+ }
2640
+ if (!writeStdout(`${JSON.stringify(metaPayload)}
2641
+ `)) {
2642
+ return;
2643
+ }
2644
+ for (const item of result.items) {
2645
+ if (!writeStdout(`${JSON.stringify({ type: "item", command: commandName, item })}
2646
+ `)) {
2647
+ return;
2648
+ }
2649
+ }
2650
+ writeStdout(`${JSON.stringify({ type: "end", command: commandName, count: result.count })}
2651
+ `);
2652
+ }
2653
+ function printActivityJsonStream(result, options, globalOptions) {
2654
+ setActiveCommandResult(result);
2655
+ if (globalOptions.quiet) {
2656
+ return;
2657
+ }
2658
+ const metaPayload = {
2659
+ type: "meta",
2660
+ command: "activity",
2661
+ count: result.count,
2662
+ filters: {
2663
+ id: options.id ?? null,
2664
+ op: options.op ?? null,
2665
+ author: options.author ?? null,
2666
+ from: options.from ?? null,
2667
+ to: options.to ?? null,
2668
+ limit: options.limit ?? null
2669
+ }
2670
+ };
2671
+ if (!writeStdout(`${JSON.stringify(metaPayload)}
2672
+ `)) {
2673
+ return;
2674
+ }
2675
+ const entries = result.compact && result.compact_activity ? result.compact_activity : result.activity;
2676
+ for (const entry of entries) {
2677
+ if (!writeStdout(`${JSON.stringify({ type: "entry", command: "activity", entry })}
2678
+ `)) {
2679
+ return;
2680
+ }
2681
+ }
2682
+ writeStdout(`${JSON.stringify({ type: "end", command: "activity", count: result.count })}
2683
+ `);
2684
+ }
2685
+ function normalizeSearchOptions(options) {
2686
+ const readSearchString = (target) => readFirstStringFromCommanderOptions(options, resolveCommanderContract(SEARCH_COMMANDER_STRING_OPTION_CONTRACTS, target));
2687
+ const readSearchStringOrNumber = (target) => {
2688
+ const candidate = readFirstValueFromCommanderOptions(options, resolveCommanderContract(SEARCH_COMMANDER_STRING_OPTION_CONTRACTS, target));
2689
+ if (typeof candidate === "string") {
2690
+ return candidate;
2691
+ }
2692
+ if (typeof candidate === "number" && Number.isFinite(candidate)) {
2693
+ return candidate;
2694
+ }
2695
+ return void 0;
2696
+ };
2697
+ const fields = readSearchString("fields");
2698
+ const compactRequested = options.compact === true;
2699
+ const fullRequested = options.full === true;
2700
+ const defaultCompact = !compactRequested && !fullRequested && fields === void 0;
2701
+ const mode = options.semantic === true ? "semantic" : options.hybrid === true ? "hybrid" : readSearchString("mode");
2702
+ const normalized = {
2703
+ mode,
2704
+ matchMode: readSearchString("matchMode"),
2705
+ minScore: readSearchStringOrNumber("minScore"),
2706
+ count: optionTrue(options, "count"),
2707
+ semanticWeight: readSearchStringOrNumber("semanticWeight"),
2708
+ includeLinked: optionTrue(options, "includeLinked"),
2709
+ titleExact: optionTrue(options, "titleExact"),
2710
+ phraseExact: optionTrue(options, "phraseExact"),
2711
+ highlight: optionTrue(options, "highlight"),
2712
+ status: readSearchString("status"),
2713
+ type: readSearchString("type"),
2714
+ tag: readSearchString("tag"),
2715
+ priority: readSearchString("priority"),
2716
+ deadlineBefore: readSearchString("deadlineBefore"),
2717
+ deadlineAfter: readSearchString("deadlineAfter"),
2718
+ updatedAfter: readSearchString("updatedAfter"),
2719
+ updatedBefore: readSearchString("updatedBefore"),
2720
+ createdAfter: readSearchString("createdAfter"),
2721
+ createdBefore: readSearchString("createdBefore"),
2722
+ assignee: readSearchString("assignee"),
2723
+ sprint: readSearchString("sprint"),
2724
+ release: readSearchString("release"),
2725
+ parent: readSearchString("parent"),
2726
+ limit: readSearchString("limit"),
2727
+ fields,
2728
+ compact: compactRequested || defaultCompact ? true : void 0,
2729
+ full: optionTrue(options, "full"),
2730
+ // Governance-missing (GH-236) + content presence/absence (GH-242) filters,
2731
+ // mirroring normalizeListOptions via the shared field slice.
2732
+ ...readSelectionFilterOptionFields(options)
2733
+ };
2734
+ copyUnknownOptions(normalized, options);
2735
+ return normalized;
2736
+ }
2737
+ function normalizeSearchKeywordsInput(keywords) {
2738
+ const query = keywords.map((entry) => entry.trim()).filter((entry) => entry.length > 0).join(" ");
2739
+ if (query.length === 0) {
2740
+ throw new PmCliError("Search query must not be empty", EXIT_CODE.USAGE);
2741
+ }
2742
+ return query;
2743
+ }
2744
+ function normalizeActivityOptions(options) {
2745
+ const readActivityString = (target) => readFirstStringFromCommanderOptions(options, resolveCommanderContract(ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS, target));
2746
+ return {
2747
+ id: readActivityString("id"),
2748
+ op: readActivityString("op"),
2749
+ author: readActivityString("author"),
2750
+ from: readActivityString("from"),
2751
+ to: readActivityString("to"),
2752
+ limit: readActivityString("limit"),
2753
+ compact: options.full === true ? false : options.compact === false ? false : true
2754
+ };
2755
+ }
2756
+ var ACTIVITY_STREAM_ENABLED_VALUES = /* @__PURE__ */ new Set(["", "rows", "ndjson", "jsonl", "true", "1", "yes", "on"]);
2757
+ var ACTIVITY_STREAM_DISABLED_VALUES = /* @__PURE__ */ new Set(["false", "off", "none", "0"]);
2758
+ function resolveActivityStreamMode(raw) {
2759
+ if (raw === true) {
2760
+ return true;
2761
+ }
2762
+ if (raw === false || raw === void 0 || raw === null) {
2763
+ return false;
2764
+ }
2765
+ if (typeof raw === "string") {
2766
+ const normalized = raw.trim().toLowerCase();
2767
+ if (ACTIVITY_STREAM_ENABLED_VALUES.has(normalized)) {
2768
+ return true;
2769
+ }
2770
+ if (ACTIVITY_STREAM_DISABLED_VALUES.has(normalized)) {
2771
+ return false;
2772
+ }
2773
+ }
2774
+ throw new PmCliError("Activity --stream accepts rows|ndjson|jsonl (or no value)", EXIT_CODE.USAGE);
2775
+ }
2776
+ function normalizeContextOptions(options) {
2777
+ const readContextString = (target) => readFirstStringFromCommanderOptions(options, resolveCommanderContract(CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS, target));
2778
+ const sectionRaw = options.section;
2779
+ const section = Array.isArray(sectionRaw) ? sectionRaw.filter((v) => typeof v === "string" && v.trim().length > 0) : typeof sectionRaw === "string" && sectionRaw.trim().length > 0 ? [sectionRaw] : void 0;
2780
+ const normalized = {
2781
+ date: readContextString("date"),
2782
+ from: readContextString("from"),
2783
+ to: readContextString("to"),
2784
+ past: options.past === true ? true : void 0,
2785
+ type: readContextString("type"),
2786
+ tag: readContextString("tag"),
2787
+ priority: readContextString("priority"),
2788
+ assignee: readContextString("assignee"),
2789
+ assigneeFilter: readContextString("assigneeFilter"),
2790
+ sprint: readContextString("sprint"),
2791
+ release: readContextString("release"),
2792
+ parent: readContextString("parent"),
2793
+ limit: readContextString("limit"),
2794
+ format: readContextString("format"),
2795
+ depth: readContextString("depth"),
2796
+ fields: readContextString("fields"),
2797
+ section: section && section.length > 0 ? section : void 0,
2798
+ activityLimit: readContextString("activityLimit"),
2799
+ staleThreshold: readContextString("staleThreshold")
2800
+ };
2801
+ for (const [key, value] of Object.entries(options)) {
2802
+ if (Object.hasOwn(normalized, key)) {
2803
+ continue;
2804
+ }
2805
+ normalized[key] = value;
2806
+ }
2807
+ return normalized;
2808
+ }
2809
+ function normalizeNextOptions(options) {
2810
+ const readNextString = (target) => readFirstStringFromCommanderOptions(options, resolveCommanderContract(NEXT_COMMANDER_STRING_OPTION_CONTRACTS, target));
2811
+ const normalized = {
2812
+ type: readNextString("type"),
2813
+ tag: readNextString("tag"),
2814
+ priority: readNextString("priority"),
2815
+ assignee: readNextString("assignee"),
2816
+ assigneeFilter: readNextString("assigneeFilter"),
2817
+ sprint: readNextString("sprint"),
2818
+ release: readNextString("release"),
2819
+ parent: readNextString("parent"),
2820
+ limit: readNextString("limit"),
2821
+ blockedLimit: readNextString("blockedLimit"),
2822
+ readyOnly: options.readyOnly === true || options.ready_only === true ? true : void 0,
2823
+ format: readNextString("format")
2824
+ };
2825
+ for (const [key, value] of Object.entries(options)) {
2826
+ if (Object.hasOwn(normalized, key)) {
2827
+ continue;
2828
+ }
2829
+ normalized[key] = value;
2830
+ }
2831
+ return normalized;
2832
+ }
2833
+ function collectMutationItemIds(result) {
2834
+ if (!result || typeof result !== "object") {
2835
+ return [];
2836
+ }
2837
+ const record = result;
2838
+ const ids = /* @__PURE__ */ new Set();
2839
+ const pushId = (value) => {
2840
+ if (typeof value !== "string") {
2841
+ return;
2842
+ }
2843
+ const normalized = value.trim();
2844
+ if (normalized.length === 0) {
2845
+ return;
2846
+ }
2847
+ ids.add(normalized);
2848
+ };
2849
+ pushId(record.id);
2850
+ const item = record.item;
2851
+ if (item && typeof item === "object") {
2852
+ pushId(item.id);
2853
+ }
2854
+ const explicitIds = record.ids;
2855
+ if (Array.isArray(explicitIds)) {
2856
+ for (const candidate of explicitIds) {
2857
+ pushId(candidate);
2858
+ }
2859
+ }
2860
+ const items = record.items;
2861
+ if (Array.isArray(items)) {
2862
+ for (const candidate of items) {
2863
+ if (!candidate || typeof candidate !== "object") {
2864
+ continue;
2865
+ }
2866
+ pushId(candidate.id);
2867
+ }
2868
+ }
2869
+ return [...ids].sort((left, right) => left.localeCompare(right));
2870
+ }
2871
+ async function invalidateSearchCachesForMutation(globalOptions, result) {
2872
+ const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
2873
+ const refreshResult = await refreshSearchArtifactsForMutation(pmRoot, collectMutationItemIds(result), {
2874
+ background: !shouldRunSearchRefreshInForeground()
2875
+ });
2876
+ if (globalOptions.profile && refreshResult.warnings.length > 0) {
2877
+ printError(`profile:search_refresh_warnings=${formatHookWarnings(refreshResult.warnings)}`);
2878
+ }
2879
+ }
2880
+
2075
2881
  export {
2076
2882
  resolveProviderConfigSource,
2077
2883
  resolveEmbeddingProviders,
@@ -2086,7 +2892,6 @@ export {
2086
2892
  executeEmbeddingBatchesWithRetry,
2087
2893
  resolveSettingsWithSemanticRuntimeDefaults,
2088
2894
  REINDEX_LOCK_ID,
2089
- shouldRunSearchRefreshInForeground,
2090
2895
  resolveVectorStores,
2091
2896
  executeVectorQuery,
2092
2897
  executeVectorUpsert,
@@ -2100,6 +2905,30 @@ export {
2100
2905
  readVectorizationStatusLedger,
2101
2906
  writeVectorizationStatusLedger,
2102
2907
  refreshSemanticEmbeddingsForMutatedItems,
2103
- refreshSearchArtifactsForMutation
2908
+ setResolvedGlobalOptions,
2909
+ clearResolvedGlobalOptions,
2910
+ getGlobalOptions,
2911
+ getCommandPath,
2912
+ applyDefaultOutputFormat,
2913
+ collect,
2914
+ readOptionString,
2915
+ addHiddenOption,
2916
+ buildBackgroundTestCommandArgs,
2917
+ buildBackgroundTestAllCommandArgs,
2918
+ formatHookWarnings,
2919
+ normalizeCreateOptions,
2920
+ normalizeUpdateOptions,
2921
+ extractUpdateManyMutationOptionSource,
2922
+ normalizeListOptions,
2923
+ normalizeAggregateOptions,
2924
+ printListJsonStream,
2925
+ printActivityJsonStream,
2926
+ normalizeSearchOptions,
2927
+ normalizeSearchKeywordsInput,
2928
+ normalizeActivityOptions,
2929
+ resolveActivityStreamMode,
2930
+ normalizeContextOptions,
2931
+ normalizeNextOptions,
2932
+ invalidateSearchCachesForMutation
2104
2933
  };
2105
- //# sourceMappingURL=chunk-ZSUS2OD3.js.map
2934
+ //# sourceMappingURL=chunk-6XTSYPPO.js.map