@unbrained/pm-cli 2026.8.5 → 2026.8.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 (251) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +44 -0
  3. package/dist/cli/main.js +14 -37
  4. package/dist/cli/register-operations.js +11 -2
  5. package/dist/cli/register-setup.d.ts +1 -1
  6. package/dist/cli/register-setup.js +46 -20
  7. package/dist/cli/stats-analytics-json.d.ts +9 -0
  8. package/dist/cli/stats-analytics-json.js +69 -0
  9. package/dist/cli-bundle/bundle-manifest.json +403 -403
  10. package/dist/cli-bundle/chunks/append-7BXBFDGD.js +2 -0
  11. package/dist/cli-bundle/chunks/{chunk-PMXJEU3F.js → chunk-2AXF3VSK.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-MHK6LIWE.js → chunk-2XS43CCV.js} +2 -2
  13. package/dist/cli-bundle/chunks/chunk-3A6KWB72.js +8 -0
  14. package/dist/cli-bundle/chunks/chunk-3ISTDB42.js +8 -0
  15. package/dist/cli-bundle/chunks/{chunk-45G53IU4.js → chunk-4MTI7XOV.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-7C4PTJG6.js → chunk-6BX5UDCN.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-4YUBDMQM.js → chunk-6QPO7KLR.js} +2 -2
  18. package/dist/cli-bundle/chunks/{chunk-HWRRMBJO.js → chunk-7MXHZHSQ.js} +2 -2
  19. package/dist/cli-bundle/chunks/{chunk-3FTILRJ2.js → chunk-7ZPMJW4U.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-2WFXWAYX.js → chunk-AGYNSNCI.js} +2 -2
  21. package/dist/cli-bundle/chunks/chunk-B4H7FEFH.js +5 -0
  22. package/dist/cli-bundle/chunks/{chunk-43HQQI6S.js → chunk-B4KLBBMN.js} +2 -2
  23. package/dist/cli-bundle/chunks/{chunk-VCKLFEUN.js → chunk-CALJHNBL.js} +12 -12
  24. package/dist/cli-bundle/chunks/{chunk-CSI3WS5I.js → chunk-CFIGP5LY.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-V3EUXXOF.js → chunk-CS6MRHG7.js} +2 -2
  26. package/dist/cli-bundle/chunks/{chunk-YSO3YFZ4.js → chunk-CUGNQQKH.js} +2 -2
  27. package/dist/cli-bundle/chunks/chunk-D4FPS43D.js +164 -0
  28. package/dist/cli-bundle/chunks/{chunk-BXQLRKWF.js → chunk-H5Y5YE6A.js} +2 -2
  29. package/dist/cli-bundle/chunks/{chunk-54FNT7U2.js → chunk-H5Y6UV6E.js} +2 -2
  30. package/dist/cli-bundle/chunks/{chunk-UP7DTVMD.js → chunk-H7KGWPDF.js} +2 -2
  31. package/dist/cli-bundle/chunks/{chunk-E2RKBKWB.js → chunk-HFSD77TQ.js} +2 -2
  32. package/dist/cli-bundle/chunks/{chunk-V3774P7D.js → chunk-HX2GTA6L.js} +2 -2
  33. package/dist/cli-bundle/chunks/{chunk-UZBWIUYD.js → chunk-J2IEKAVR.js} +2 -2
  34. package/dist/cli-bundle/chunks/{chunk-HNFD72UK.js → chunk-K44PYFXH.js} +2 -2
  35. package/dist/cli-bundle/chunks/{chunk-5ZBOIPGP.js → chunk-K4KGEEBT.js} +2 -2
  36. package/dist/cli-bundle/chunks/chunk-KFLK5TRH.js +21 -0
  37. package/dist/cli-bundle/chunks/{chunk-OMXVBQ2N.js → chunk-KL6IEBV2.js} +2 -2
  38. package/dist/cli-bundle/chunks/{chunk-7A5OT5J2.js → chunk-KWQZDZSS.js} +2 -2
  39. package/dist/cli-bundle/chunks/{chunk-M72BKL5Q.js → chunk-KZ4X3DGU.js} +2 -2
  40. package/dist/cli-bundle/chunks/chunk-LD77HJMQ.js +13 -0
  41. package/dist/cli-bundle/chunks/{chunk-VN5VITU3.js → chunk-ME2JJ4LA.js} +2 -2
  42. package/dist/cli-bundle/chunks/chunk-NFLJ3FHD.js +2 -0
  43. package/dist/cli-bundle/chunks/{chunk-A62CYISG.js → chunk-NG6OXIBR.js} +8 -8
  44. package/dist/cli-bundle/chunks/{chunk-42E7YPLG.js → chunk-NYIGHWQY.js} +2 -2
  45. package/dist/cli-bundle/chunks/{chunk-RKAVWO3O.js → chunk-NZ75GNSA.js} +2 -2
  46. package/dist/cli-bundle/chunks/{chunk-DXDREUXT.js → chunk-PCJWJNC2.js} +2 -2
  47. package/dist/cli-bundle/chunks/{chunk-ZYHOB3SN.js → chunk-PD3225AM.js} +2 -2
  48. package/dist/cli-bundle/chunks/{chunk-OTHLDSFP.js → chunk-PDEGKG7P.js} +2 -2
  49. package/dist/cli-bundle/chunks/chunk-PIE5HBNA.js +2 -0
  50. package/dist/cli-bundle/chunks/chunk-PW2H7YJR.js +56 -0
  51. package/dist/cli-bundle/chunks/{chunk-L3AZOELJ.js → chunk-TPKN3S7S.js} +2 -2
  52. package/dist/cli-bundle/chunks/{chunk-LKDGK44W.js → chunk-TPXAXTCO.js} +2 -2
  53. package/dist/cli-bundle/chunks/chunk-UFWUJO4V.js +2 -0
  54. package/dist/cli-bundle/chunks/{chunk-R546TPDE.js → chunk-UQLZQVFW.js} +2 -2
  55. package/dist/cli-bundle/chunks/{chunk-BPELKUQD.js → chunk-VT3Z5G7D.js} +2 -2
  56. package/dist/cli-bundle/chunks/chunk-WOD3WWUN.js +2 -0
  57. package/dist/cli-bundle/chunks/{chunk-4VN6GS4U.js → chunk-WSJEIGJF.js} +2 -2
  58. package/dist/cli-bundle/chunks/{chunk-UN66FZRO.js → chunk-WYNUU7ZW.js} +49 -46
  59. package/dist/cli-bundle/chunks/{chunk-NY4T3JWN.js → chunk-YGPNCCXZ.js} +2 -2
  60. package/dist/cli-bundle/chunks/close-CMY3BAUG.js +2 -0
  61. package/dist/cli-bundle/chunks/close-many-SA4XZCTK.js +2 -0
  62. package/dist/cli-bundle/chunks/comments-EZ556ZD3.js +2 -0
  63. package/dist/cli-bundle/chunks/copy-ZSGPA52X.js +2 -0
  64. package/dist/cli-bundle/chunks/{create-XLKTXTUF.js → create-I5DVV4YG.js} +2 -2
  65. package/dist/cli-bundle/chunks/delete-RL3JACSW.js +2 -0
  66. package/dist/cli-bundle/chunks/{deps-ITTY3GIC.js → deps-S7UBCECS.js} +2 -2
  67. package/dist/cli-bundle/chunks/{docs-W4OSRTYR.js → docs-ZZNVBBYO.js} +2 -2
  68. package/dist/cli-bundle/chunks/{files-EOK4AZI4.js → files-27C337VT.js} +2 -2
  69. package/dist/cli-bundle/chunks/focus-5Z2SG7LU.js +2 -0
  70. package/dist/cli-bundle/chunks/{history-compact-7UGTMLL3.js → history-compact-HJQK67CZ.js} +2 -2
  71. package/dist/cli-bundle/chunks/{history-redact-4DZRMD6Z.js → history-redact-PWC6PDWA.js} +2 -2
  72. package/dist/cli-bundle/chunks/{history-repair-UPOSZW5R.js → history-repair-N3CY4WBF.js} +2 -2
  73. package/dist/cli-bundle/chunks/{learnings-GMRNCBS3.js → learnings-4FH23XDT.js} +2 -2
  74. package/dist/cli-bundle/chunks/{profile-2MUUMHRE.js → profile-5Y5XXH5N.js} +2 -2
  75. package/dist/cli-bundle/chunks/{register-list-query-LR3SQ5ZF.js → register-list-query-FJZCJ67O.js} +2 -2
  76. package/dist/cli-bundle/chunks/{register-mutation-SUOHFVWM.js → register-mutation-YGYPW3BL.js} +3 -3
  77. package/dist/cli-bundle/chunks/register-operations-WMDSUMQF.js +2 -0
  78. package/dist/cli-bundle/chunks/register-setup-DL7FFABC.js +2 -0
  79. package/dist/cli-bundle/chunks/restore-6KYBV5BY.js +2 -0
  80. package/dist/cli-bundle/chunks/{schema-FJ4EA3XF.js → schema-EQGKBYXJ.js} +2 -2
  81. package/dist/cli-bundle/chunks/update-QVTYOD6I.js +2 -0
  82. package/dist/cli-bundle/chunks/update-many-DJSBU525.js +2 -0
  83. package/dist/cli-bundle/focused-chunks/{chunk-MJ7HWSFK.js → chunk-2ECLECMK.js} +3 -3
  84. package/dist/cli-bundle/focused-chunks/{chunk-A7BJ5SS6.js → chunk-3K4XV2BF.js} +2 -2
  85. package/dist/cli-bundle/focused-chunks/{chunk-PIMMYG7Q.js → chunk-4EX25PXM.js} +2 -2
  86. package/dist/cli-bundle/focused-chunks/chunk-4VJQTS3P.js +2 -0
  87. package/dist/cli-bundle/focused-chunks/chunk-73JUDYXT.js +2 -0
  88. package/dist/cli-bundle/focused-chunks/{chunk-WVIVUWVL.js → chunk-CIXVQPB7.js} +2 -2
  89. package/dist/cli-bundle/focused-chunks/chunk-DLTS3IHM.js +2 -0
  90. package/dist/cli-bundle/focused-chunks/{chunk-FGKY4MBE.js → chunk-DQ6FKGL3.js} +10 -10
  91. package/dist/cli-bundle/focused-chunks/{chunk-QVHKCI4T.js → chunk-HNL6IFGS.js} +2 -2
  92. package/dist/cli-bundle/focused-chunks/chunk-JLG2C4EQ.js +2 -0
  93. package/dist/cli-bundle/focused-chunks/{chunk-G6ETT4QK.js → chunk-MHMTKV5V.js} +2 -2
  94. package/dist/cli-bundle/focused-chunks/{chunk-7J5TUBUJ.js → chunk-MOTJFQ3F.js} +22 -22
  95. package/dist/cli-bundle/focused-chunks/{chunk-UIL2M2NA.js → chunk-NBJKQP4S.js} +2 -2
  96. package/dist/cli-bundle/focused-chunks/{chunk-RUR5I3TK.js → chunk-QHRTT7WT.js} +2 -2
  97. package/dist/cli-bundle/focused-chunks/{chunk-B7LJWAZE.js → chunk-R2LEMEV5.js} +2 -2
  98. package/dist/cli-bundle/focused-chunks/{chunk-SV3O7TSH.js → chunk-RPNYG5MO.js} +2 -2
  99. package/dist/cli-bundle/focused-chunks/chunk-RW5IYD4J.js +4 -0
  100. package/dist/cli-bundle/focused-chunks/chunk-TIKDBG4D.js +29 -0
  101. package/dist/cli-bundle/focused-chunks/{chunk-IPWSFADF.js → chunk-VZFU2R4M.js} +2 -2
  102. package/dist/cli-bundle/focused-chunks/{chunk-WEM2E2PE.js → chunk-YZEZAPJK.js} +2 -2
  103. package/dist/cli-bundle/focused-chunks/chunk-ZJIMJHDB.js +2 -0
  104. package/dist/cli-bundle/main.js +13 -13
  105. package/dist/cli-bundle/sdk-authoring.js +1 -1
  106. package/dist/cli-bundle/sdk-contracts.js +1 -1
  107. package/dist/cli-bundle/sdk-core.js +29 -28
  108. package/dist/cli-bundle/sdk-governance.js +1 -1
  109. package/dist/cli-bundle/sdk-graph.js +1 -1
  110. package/dist/cli-bundle/sdk-merge.js +1 -1
  111. package/dist/cli-bundle/sdk-query.js +1 -1
  112. package/dist/cli-bundle/sdk-runtime.js +1 -1
  113. package/dist/cli-bundle/sdk-testing.js +1 -1
  114. package/dist/cli-bundle/sdk.js +1 -1
  115. package/dist/core/extensions/activation-summary.d.ts +4 -0
  116. package/dist/core/extensions/activation-summary.js +5 -2
  117. package/dist/core/extensions/contribution-inventory.d.ts +1 -0
  118. package/dist/core/extensions/contribution-inventory.js +35 -2
  119. package/dist/core/extensions/extension-hook-runtime.js +5 -3
  120. package/dist/core/extensions/extension-types.d.ts +18 -1
  121. package/dist/core/extensions/extension-types.js +2 -2
  122. package/dist/core/extensions/loader.js +5 -13
  123. package/dist/core/extensions/preflight-ownership.d.ts +5 -0
  124. package/dist/core/extensions/preflight-ownership.js +42 -0
  125. package/dist/core/extensions/reserved-host-flags.js +3 -2
  126. package/dist/core/history/workspace-history.d.ts +22 -2
  127. package/dist/core/history/workspace-history.js +60 -36
  128. package/dist/core/output/output.d.ts +2 -0
  129. package/dist/core/output/output.js +3 -2
  130. package/dist/core/shared/command-types.d.ts +2 -0
  131. package/dist/core/shared/command-types.js +2 -2
  132. package/dist/mcp/tool-definitions.js +6 -2
  133. package/dist/sdk/author-attribution.js +23 -7
  134. package/dist/sdk/cli-bootstrap.d.ts +2 -0
  135. package/dist/sdk/cli-bootstrap.js +7 -2
  136. package/dist/sdk/cli-contracts/completeness.js +51 -4
  137. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  138. package/dist/sdk/cli-contracts/flag-contracts.js +9 -2
  139. package/dist/sdk/cli-contracts/registration-helpers.js +3 -2
  140. package/dist/sdk/cli-contracts/runtime-contracts.js +16 -9
  141. package/dist/sdk/cli-contracts/tool-parameter-tables.js +116 -10
  142. package/dist/sdk/cli-contracts/tool-schema.js +18 -2
  143. package/dist/sdk/cli-contracts.d.ts +1 -1
  144. package/dist/sdk/cli-contracts.js +3 -3
  145. package/dist/sdk/cli-program.js +3 -2
  146. package/dist/sdk/completion.js +5 -2
  147. package/dist/sdk/compose.d.ts +2 -2
  148. package/dist/sdk/compose.js +7 -2
  149. package/dist/sdk/contracts.d.ts +1 -0
  150. package/dist/sdk/contracts.js +2 -2
  151. package/dist/sdk/core.d.ts +3 -1
  152. package/dist/sdk/core.js +4 -3
  153. package/dist/sdk/define.d.ts +3 -1
  154. package/dist/sdk/define.js +3 -8
  155. package/dist/sdk/extension/install-sources.d.ts +43 -5
  156. package/dist/sdk/extension/install-sources.js +36 -2
  157. package/dist/sdk/extension/migrations.d.ts +114 -0
  158. package/dist/sdk/extension/migrations.js +175 -0
  159. package/dist/sdk/extension/scaffold.js +14 -9
  160. package/dist/sdk/extension/source-resolution.d.ts +50 -0
  161. package/dist/sdk/extension/source-resolution.js +66 -0
  162. package/dist/sdk/extension.d.ts +5 -1
  163. package/dist/sdk/extension.js +31 -35
  164. package/dist/sdk/generated-error-code-catalog.js +112 -2
  165. package/dist/sdk/governance/health.js +11 -2
  166. package/dist/sdk/history-analytics.d.ts +141 -0
  167. package/dist/sdk/history-analytics.js +283 -0
  168. package/dist/sdk/improvement-ledger-validation.d.ts +3 -0
  169. package/dist/sdk/improvement-ledger-validation.js +63 -0
  170. package/dist/sdk/improvement-ledger.d.ts +139 -0
  171. package/dist/sdk/improvement-ledger.js +261 -0
  172. package/dist/sdk/index.d.ts +11 -3
  173. package/dist/sdk/index.js +12 -4
  174. package/dist/sdk/lifecycle/plan.js +6 -3
  175. package/dist/sdk/merge/install.js +10 -2
  176. package/dist/sdk/package-migrations.d.ts +10 -0
  177. package/dist/sdk/package-migrations.js +21 -0
  178. package/dist/sdk/read-output-budget.js +24 -22
  179. package/dist/sdk/read-output-contracts.d.ts +10 -2
  180. package/dist/sdk/read-output-contracts.js +124 -65
  181. package/dist/sdk/read-output-rows.d.ts +29 -0
  182. package/dist/sdk/read-output-rows.js +100 -0
  183. package/dist/sdk/read-output-session.d.ts +69 -0
  184. package/dist/sdk/read-output-session.js +200 -0
  185. package/dist/sdk/runtime-input.d.ts +2 -0
  186. package/dist/sdk/runtime-input.js +14 -2
  187. package/dist/sdk/runtime-primitives.d.ts +1 -1
  188. package/dist/sdk/runtime-primitives.js +3 -3
  189. package/dist/sdk/runtime-stats-options.d.ts +9 -0
  190. package/dist/sdk/runtime-stats-options.js +38 -0
  191. package/dist/sdk/runtime.d.ts +3 -0
  192. package/dist/sdk/runtime.js +10 -27
  193. package/dist/sdk/stats.d.ts +40 -0
  194. package/dist/sdk/stats.js +112 -29
  195. package/docs/COMMANDS.md +9 -0
  196. package/docs/EXTENSIONS.md +2 -2
  197. package/docs/EXTENSION_LIFECYCLE.md +46 -0
  198. package/docs/IMPROVEMENT_ANALYTICS.md +103 -0
  199. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +5 -5
  200. package/docs/README.md +2 -0
  201. package/docs/READ_OUTPUT_CONTRACTS.md +60 -1
  202. package/docs/RELEASING.md +33 -20
  203. package/docs/SDK.md +31 -3
  204. package/marketplace.json +2 -2
  205. package/package.json +5 -5
  206. package/packages/pm-beads/package.json +1 -1
  207. package/packages/pm-calendar/package.json +1 -1
  208. package/packages/pm-command-kit/package.json +1 -1
  209. package/packages/pm-digital-twin/package.json +1 -1
  210. package/packages/pm-governance-audit/package.json +1 -1
  211. package/packages/pm-guide-shell/package.json +1 -1
  212. package/packages/pm-kanban/package.json +1 -1
  213. package/packages/pm-lifecycle-hooks/package.json +1 -1
  214. package/packages/pm-linked-test-adapters/package.json +1 -1
  215. package/packages/pm-search-advanced/package.json +1 -1
  216. package/packages/pm-templates/package.json +1 -1
  217. package/packages/pm-todos/package.json +1 -1
  218. package/packages/pm-vcs/package.json +1 -1
  219. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  220. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  221. package/sdk/public-surface.json +566 -815
  222. package/dist/cli-bundle/chunks/append-VXXGOXSG.js +0 -2
  223. package/dist/cli-bundle/chunks/chunk-6MSQJOTG.js +0 -13
  224. package/dist/cli-bundle/chunks/chunk-EGJ4JTUG.js +0 -55
  225. package/dist/cli-bundle/chunks/chunk-FPBQHMFT.js +0 -8
  226. package/dist/cli-bundle/chunks/chunk-GE4KCSZP.js +0 -164
  227. package/dist/cli-bundle/chunks/chunk-LN2WFEU4.js +0 -2
  228. package/dist/cli-bundle/chunks/chunk-OPVH7SKD.js +0 -8
  229. package/dist/cli-bundle/chunks/chunk-Q35VBGOQ.js +0 -5
  230. package/dist/cli-bundle/chunks/chunk-SSF4PIUR.js +0 -2
  231. package/dist/cli-bundle/chunks/chunk-WRL4KNDL.js +0 -20
  232. package/dist/cli-bundle/chunks/chunk-XCEZYMNI.js +0 -2
  233. package/dist/cli-bundle/chunks/chunk-YEWNL576.js +0 -2
  234. package/dist/cli-bundle/chunks/close-VZ3OQPN5.js +0 -2
  235. package/dist/cli-bundle/chunks/close-many-SB4TI27P.js +0 -2
  236. package/dist/cli-bundle/chunks/comments-BIF3Q4KY.js +0 -2
  237. package/dist/cli-bundle/chunks/copy-6AI5Z57X.js +0 -2
  238. package/dist/cli-bundle/chunks/delete-ZY2VHQTP.js +0 -2
  239. package/dist/cli-bundle/chunks/focus-DLBNWL7L.js +0 -2
  240. package/dist/cli-bundle/chunks/register-operations-ARRRKOVN.js +0 -2
  241. package/dist/cli-bundle/chunks/register-setup-O6AYP6NP.js +0 -2
  242. package/dist/cli-bundle/chunks/restore-ZVCVHTB5.js +0 -2
  243. package/dist/cli-bundle/chunks/update-YHV52CSS.js +0 -2
  244. package/dist/cli-bundle/chunks/update-many-M6YHVNXM.js +0 -2
  245. package/dist/cli-bundle/focused-chunks/chunk-BIMTMOS7.js +0 -4
  246. package/dist/cli-bundle/focused-chunks/chunk-GJ2TG2CW.js +0 -28
  247. package/dist/cli-bundle/focused-chunks/chunk-N5XU5UVK.js +0 -2
  248. package/dist/cli-bundle/focused-chunks/chunk-PG2RIZBX.js +0 -2
  249. package/dist/cli-bundle/focused-chunks/chunk-VLYOEYML.js +0 -2
  250. package/dist/cli-bundle/focused-chunks/chunk-W7BJEWHX.js +0 -2
  251. package/dist/cli-bundle/focused-chunks/chunk-Y4LDYLLT.js +0 -2
@@ -1,5 +1,5 @@
1
- import{a as ln,e as Re}from"./chunk-YSO3YFZ4.js";import{k as dn}from"./chunk-NE5VRDAI.js";import{d as an,e as sn,f as cn,g as Z}from"./chunk-L3AZOELJ.js";import{d as on}from"./chunk-NY4T3JWN.js";import{ga as rn,j as jt,k as Gt,l as Mt,m as Pt,n as Wt,p as Jt,s as Ht}from"./chunk-A62CYISG.js";import{a as xe}from"./chunk-A6KGKEWT.js";import{a as qt,d as Vt,f as x,g as zt,h as L,i as Bt,j as R,k as Yt}from"./chunk-42E7YPLG.js";import{k as Xt}from"./chunk-M72BKL5Q.js";import{A as s,Aa as M,Af as Zt,C as c,Da as lt,Ea as V,Ec as St,Fa as ut,Fc as kt,Ga as ft,Gc as Tt,H as nt,Ha as mt,Hf as Qt,Jf as en,La as pt,Lc as xt,Lf as X,Nc as Rt,Oa as yt,Oc as At,Of as tn,Pa as _t,Pc as It,Qf as nn,R as rt,Ra as gt,Uc as Ct,Ue as Te,V as k,Ze as $t,_e as Nt,ad as ke,b as Ze,d as Qe,ed as Kt,f as et,ga as ot,ha as $,hd as Ut,ia as at,id as Lt,ja as it,ka as st,kb as ht,lc as J,mf as Ft,pa as ct,qa as dt,qc as wt,ra as be,rc as Et,uc as Se,uf as H,v as tt,vc as bt,vf as Ot,za as ve,zc as vt,zd as Dt}from"./chunk-GE4KCSZP.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4198a3b2-2541-50eb-bec5-93ac58601f40")}catch{}})();function un(e){return[...e].sort().join("\0")}function lo(e,t,n){let r=e.successors.get(t);r?r.push(n):e.successors.set(t,[n]);let o=e.predecessors.get(n);o?o.push(t):e.predecessors.set(n,[t])}function fn(e,t,n,r,o){let a=t.resolve(o);if(a?.ordering!==!0)return;let i=cn(r),d=i===void 0?void 0:e.canonicalIds.get(i.toLowerCase());if(d===void 0)return;let l=(a.precedence??"source_before_target")==="source_before_target";lo(e,l?n:d,l?d:n)}function uo(e,t){let n={successors:new Map,predecessors:new Map,canonicalIds:new Map},r=e.filter(o=>typeof o?.id=="string"&&o.id.trim().length>0);for(let o of r){let a=o.id.trim();n.canonicalIds.set(a.toLowerCase(),a)}for(let o of r){let a=o.id.trim();fn(n,t,a,o.blocked_by,"blocked_by");for(let i of o.dependencies??[])typeof i!="object"||i===null||fn(n,t,a,i.id,typeof i.kind=="string"?i.kind:"related")}for(let o of[n.successors,n.predecessors])for(let a of o.values())a.sort();return n}function fo(e,t){let n=new Set([t]),r=[t];for(;r.length>0;){let o=r.pop();for(let a of[e.successors,e.predecessors])for(let i of a.get(o)??[])n.has(i)||(n.add(i),r.push(i))}return n}function mo(e,t){let n=new Map;for(let r of t){let o=(e.successors.get(r)??[]).filter(a=>t.has(a));o.length>0&&n.set(r,o)}return n}function mn(e,t,n){let r=uo(e,t),o=r.canonicalIds.get(n.trim().toLowerCase());if(o===void 0)return{cycles:[],successors:new Map,canonical:n};let a=mo(r,fo(r,o));return{cycles:dn(a).filter(i=>i.includes(o)),successors:a,canonical:o}}function po(e,t,n){let r=new Set(t),o=r.has(n)?n:t[0];if(e.get(o)?.includes(o))return[o,o];for(let a of e.get(o)??[]){if(!r.has(a))continue;let i=yo(e,r,o,a);if(i)return i}return[...t,t[0]]}function yo(e,t,n,r){let o=[[r]],a=new Set([n,r]);for(;o.length>0;){let i=o.shift(),d=i.at(-1);for(let l of e.get(d)??[]){if(l===n)return[n,...i,n];!t.has(l)||a.has(l)||(a.add(l),o.push([...i,l]))}}}function pn(e,t,n){let r=Z(),o=mn(e,r,n),a=mn(t,r,n),i=new Set(o.cycles.map(un));return a.cycles.filter(d=>!i.has(un(d))).map(d=>`ordering_cycle_created:${po(a.successors,d,a.canonical).join(" -> ")}:items_will_not_be_ready:run_pm_graph_audit`)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2b20ab37-ffbe-5c65-ac0f-800abf876e16")}catch{}})();var N=["command","cmd","path","scope","timeout","timeout_seconds","pm_context_mode","env_set","env_clear","shared_host_safe","assert_stdout_contains","assert_stdout_regex","assert_stderr_contains","assert_stderr_regex","assert_stdout_min_lines","assert_json_field_equals","assert_json_field_gte","note"],_o=new Set(N),go=N.map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),ho=new RegExp(`^(?:[-*+]\\s+)?(?:${go})\\s*[:=]`,"i");function yn(e){return e.startsWith("```")||e.includes(`
1
+ import{a as ln,e as Re}from"./chunk-CUGNQQKH.js";import{k as dn}from"./chunk-NE5VRDAI.js";import{d as an,e as sn,f as cn,g as Z}from"./chunk-TPKN3S7S.js";import{d as on}from"./chunk-YGPNCCXZ.js";import{ga as rn,j as jt,k as Gt,l as Mt,m as Pt,n as Wt,p as Jt,s as Ht}from"./chunk-NG6OXIBR.js";import{a as xe}from"./chunk-A6KGKEWT.js";import{a as qt,d as Vt,f as x,g as zt,h as L,i as Bt,j as R,k as Yt}from"./chunk-NYIGHWQY.js";import{k as Xt}from"./chunk-KZ4X3DGU.js";import{$f as tn,A as s,Aa as M,C as c,Da as lt,Ea as V,Ec as St,Fa as ut,Fc as kt,Ga as ft,Gc as Tt,H as nt,Ha as mt,Hf as H,If as Ot,La as pt,Lc as xt,Nc as Rt,Nf as Zt,Oa as yt,Oc as At,Pa as _t,Pc as It,R as rt,Ra as gt,Uc as Ct,Uf as Qt,V as k,Wf as en,Yf as X,ad as ke,b as Ze,bg as nn,d as Qe,ed as Kt,ef as Te,f as et,ga as ot,ha as $,hd as Ut,ia as at,id as Lt,ja as it,jf as $t,ka as st,kf as Nt,lb as ht,lc as J,pa as ct,qa as dt,qc as wt,ra as be,rc as Et,uc as Se,v as tt,vc as bt,yf as Ft,za as ve,zc as vt,zd as Dt}from"./chunk-D4FPS43D.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4198a3b2-2541-50eb-bec5-93ac58601f40")}catch{}})();function un(e){return[...e].sort().join("\0")}function lo(e,t,n){let r=e.successors.get(t);r?r.push(n):e.successors.set(t,[n]);let o=e.predecessors.get(n);o?o.push(t):e.predecessors.set(n,[t])}function fn(e,t,n,r,o){let a=t.resolve(o);if(a?.ordering!==!0)return;let i=cn(r),d=i===void 0?void 0:e.canonicalIds.get(i.toLowerCase());if(d===void 0)return;let l=(a.precedence??"source_before_target")==="source_before_target";lo(e,l?n:d,l?d:n)}function uo(e,t){let n={successors:new Map,predecessors:new Map,canonicalIds:new Map},r=e.filter(o=>typeof o?.id=="string"&&o.id.trim().length>0);for(let o of r){let a=o.id.trim();n.canonicalIds.set(a.toLowerCase(),a)}for(let o of r){let a=o.id.trim();fn(n,t,a,o.blocked_by,"blocked_by");for(let i of o.dependencies??[])typeof i!="object"||i===null||fn(n,t,a,i.id,typeof i.kind=="string"?i.kind:"related")}for(let o of[n.successors,n.predecessors])for(let a of o.values())a.sort();return n}function fo(e,t){let n=new Set([t]),r=[t];for(;r.length>0;){let o=r.pop();for(let a of[e.successors,e.predecessors])for(let i of a.get(o)??[])n.has(i)||(n.add(i),r.push(i))}return n}function mo(e,t){let n=new Map;for(let r of t){let o=(e.successors.get(r)??[]).filter(a=>t.has(a));o.length>0&&n.set(r,o)}return n}function mn(e,t,n){let r=uo(e,t),o=r.canonicalIds.get(n.trim().toLowerCase());if(o===void 0)return{cycles:[],successors:new Map,canonical:n};let a=mo(r,fo(r,o));return{cycles:dn(a).filter(i=>i.includes(o)),successors:a,canonical:o}}function po(e,t,n){let r=new Set(t),o=r.has(n)?n:t[0];if(e.get(o)?.includes(o))return[o,o];for(let a of e.get(o)??[]){if(!r.has(a))continue;let i=yo(e,r,o,a);if(i)return i}return[...t,t[0]]}function yo(e,t,n,r){let o=[[r]],a=new Set([n,r]);for(;o.length>0;){let i=o.shift(),d=i.at(-1);for(let l of e.get(d)??[]){if(l===n)return[n,...i,n];!t.has(l)||a.has(l)||(a.add(l),o.push([...i,l]))}}}function pn(e,t,n){let r=Z(),o=mn(e,r,n),a=mn(t,r,n),i=new Set(o.cycles.map(un));return a.cycles.filter(d=>!i.has(un(d))).map(d=>`ordering_cycle_created:${po(a.successors,d,a.canonical).join(" -> ")}:items_will_not_be_ready:run_pm_graph_audit`)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2b20ab37-ffbe-5c65-ac0f-800abf876e16")}catch{}})();var N=["command","cmd","path","scope","timeout","timeout_seconds","pm_context_mode","env_set","env_clear","shared_host_safe","assert_stdout_contains","assert_stdout_regex","assert_stderr_contains","assert_stderr_regex","assert_stdout_min_lines","assert_json_field_equals","assert_json_field_gte","note"],_o=new Set(N),go=N.map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),ho=new RegExp(`^(?:[-*+]\\s+)?(?:${go})\\s*[:=]`,"i");function yn(e){return e.startsWith("```")||e.includes(`
2
2
  `)?!0:ho.test(e)}function _n(e,t){let n={},r=[];for(let[o,a]of Object.entries(e)){let i=o.toLowerCase();if(!_o.has(i)){r.push(o);continue}if(Object.hasOwn(n,i))throw new c(`${t} provides key "${o}" more than once after case normalization`,s.USAGE);n[i]=a}if(r.length>0)throw new c(`${t} does not recognize key${r.length>1?"s":""} ${r.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${N.join(", ")}.`,s.USAGE);if(n.cmd!==void 0){if(n.command!==void 0&&n.command.trim()!==n.cmd.trim())throw new c(`${t} command and cmd must match when both are provided`,s.USAGE);let{cmd:o,...a}=n;return{...a,command:a.command??o}}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f592ba2b-fc8d-5930-a2a5-d02835c457a3")}catch{}})();var ne=new Set(["PM_PATH","PM_GLOBAL_PATH","PM_SOURCE_PM_PATH","PM_SOURCE_WORKSPACE_ROOT","FORCE_COLOR"]),re=/^[A-Za-z_][A-Za-z0-9_]*$/,Q=["schema","tracker","auto"];function hn(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new c(`${t} env_set must include at least one KEY=VALUE assignment`,s.USAGE);let r=Object.create(null);for(let o of n){let a=o.indexOf("=");if(a<=0)throw new c(`${t} env_set entries must use KEY=VALUE and be separated by semicolons. Example: env_set=PORT=0;PLAYWRIGHT_BASE_URL=http://127.0.0.1:4173`,s.USAGE);let i=o.slice(0,a).trim(),d=o.slice(a+1);if(!re.test(i))throw new c(`${t} env_set key "${i}" is invalid`,s.USAGE);if(ne.has(i.toUpperCase()))throw new c(`${t} env_set key "${i}" is reserved for sandbox safety`,s.USAGE);r[i]=d}return Object.keys(r).length>0?r:void 0}function wn(e,t){if(!e)return;let n=xe(e,{separators:/[;,\n]/});if(n.length===0)throw new c(`${t} env_clear must include at least one environment variable name`,s.USAGE);for(let r of n){if(!re.test(r))throw new c(`${t} env_clear key "${r}" is invalid`,s.USAGE);if(ne.has(r.toUpperCase()))throw new c(`${t} env_clear key "${r}" is reserved for sandbox safety`,s.USAGE)}return n}function En(e,t,n){if(!e)return;let r=e.trim().toLowerCase();if(r==="true"||r==="1"||r==="yes")return!0;if(r==="false"||r==="0"||r==="no")return!1;throw new c(`${t} ${n} must be one of true|false|1|0|yes|no`,s.USAGE)}function bn(e,t){if(!e)return;let n=e.trim().toLowerCase();if(Q.includes(n))return n;throw new c(`${t} pm_context_mode must be one of: ${Q.join(", ")}`,s.USAGE)}function oe(e){if(!e)return;let t=xe(e,{separators:/[;\n]/});return t.length>0?t:void 0}function Ae(e,t,n){let r=oe(e);if(!(!r||r.length===0)){for(let o of r)try{new RegExp(o,"m")}catch(a){throw new c(`${t} ${n} includes invalid regex "${o}": ${a instanceof Error?a.message:String(a)}`,s.USAGE)}return r}}function vn(e,t){if(!e)return;let n=R(e,"assert_stdout_min_lines");if(!Number.isInteger(n)||n<0)throw new c(`${t} assert_stdout_min_lines must be an integer >= 0`,s.USAGE);return n}function Sn(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new c(`${t} assert_json_field_equals must include at least one path=value assignment`,s.USAGE);let r=Object.create(null);for(let o of n){let a=o.indexOf("=");if(a<=0)throw new c(`${t} assert_json_field_equals entries must use path=value and be separated by semicolons`,s.USAGE);let i=o.slice(0,a).trim(),d=o.slice(a+1).trim();if(i.length===0||d.length===0)throw new c(`${t} assert_json_field_equals entries must include non-empty path and value`,s.USAGE);r[i]=d}return Object.keys(r).length>0?r:void 0}function kn(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new c(`${t} assert_json_field_gte must include at least one path=value assignment`,s.USAGE);let r=Object.create(null);for(let o of n){let a=o.indexOf("=");if(a<=0)throw new c(`${t} assert_json_field_gte entries must use path=value and be separated by semicolons`,s.USAGE);let i=o.slice(0,a).trim(),d=o.slice(a+1).trim();if(i.length===0||d.length===0)throw new c(`${t} assert_json_field_gte entries must include non-empty path and value`,s.USAGE);let l=Number(d);if(!Number.isFinite(l))throw new c(`${t} assert_json_field_gte value for "${i}" must be numeric`,s.USAGE);r[i]=l}return Object.keys(r).length>0?r:void 0}var wo=new Set(N);function ae(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Eo(e,t){let n={},r=[];for(let[o,a]of Object.entries(e)){let i=o.toLowerCase();if(!wo.has(i)){r.push(o);continue}if(Object.hasOwn(n,i))throw t(`provides key "${o}" more than once after case normalization`);n[i]=a}if(r.length>0)throw t(`does not recognize key${r.length>1?"s":""} ${r.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${N.join(", ")}.`);return n}function P(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r!==void 0){if(typeof r!="string")throw n(`field "${t}" must be a JSON string`);return r}}function ee(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r===void 0)return;let o=typeof r=="string"?[r]:r;if(!Array.isArray(o)||o.some(i=>typeof i!="string"))throw n(`field "${t}" must be a string or an array of strings`);let a=o.filter(i=>i.length>0);return a.length>0?a:void 0}function gn(e,t,n){let r=ee(e,t,n);if(r){for(let o of r)try{new RegExp(o,"m")}catch(a){throw n(`field "${t}" includes invalid regex "${o}": ${a instanceof Error?a.message:String(a)}`)}return r}}function te(e,t,n){let r=typeof e=="number"?e:typeof e=="string"&&e.trim().length>0?Number(e.trim()):Number.NaN;if(typeof e=="boolean"||!Number.isFinite(r))throw n(`field "${t}" must be a finite number (or numeric string)`);return r}function bo(e,t){let n=e.timeout_seconds,r=e.timeout;if(n===void 0&&r===void 0)return;let o=n===void 0?void 0:te(n,"timeout_seconds",t),a=r===void 0?void 0:te(r,"timeout",t);if(o!==void 0&&a!==void 0&&o!==a)throw t("timeout and timeout_seconds must match when both are provided");let i=o??a;if(!Number.isInteger(i)||i<=0)throw t("timeout_seconds must be a positive integer");return i}function vo(e,t){let n=P(e,"scope",t);if(n===void 0)return"project";if(!$.includes(n))throw t(`field "scope" must be one of: ${$.join(", ")}`);return n}function So(e,t){if(!Object.hasOwn(e,"env_set"))return;let n=e.env_set;if(n===void 0)return;if(!ae(n))throw t('field "env_set" must be a JSON object mapping environment names to string values');let r=Object.create(null);for(let[o,a]of Object.entries(n)){if(typeof a!="string")throw t(`field "env_set" value for "${o}" must be a string`);if(!re.test(o))throw t(`field "env_set" key "${o}" is invalid`);if(ne.has(o.toUpperCase()))throw t(`field "env_set" key "${o}" is reserved for sandbox safety`);r[o]=a}return Object.keys(r).length>0?r:void 0}function ko(e,t){let n=ee(e,"env_clear",t);if(n){for(let r of n){if(!re.test(r))throw t(`field "env_clear" key "${r}" is invalid`);if(ne.has(r.toUpperCase()))throw t(`field "env_clear" key "${r}" is reserved for sandbox safety`)}return n}}function To(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r!==void 0){if(typeof r!="boolean")throw n(`field "${t}" must be a JSON boolean (true or false)`);return r}}function xo(e,t){if(!Object.hasOwn(e,"assert_stdout_min_lines"))return;let n=e.assert_stdout_min_lines;if(n===void 0)return;let r=te(n,"assert_stdout_min_lines",t);if(!Number.isInteger(r)||r<0)throw t('field "assert_stdout_min_lines" must be an integer >= 0');return r}function Ro(e,t){if(!Object.hasOwn(e,"assert_json_field_equals"))return;let n=e.assert_json_field_equals;if(n===void 0)return;if(!ae(n))throw t('field "assert_json_field_equals" must be a JSON object mapping field paths to expected values');let r=Object.create(null);for(let[o,a]of Object.entries(n)){if(o.trim().length===0)throw t('field "assert_json_field_equals" keys must be non-empty field paths');if(typeof a!="string"&&typeof a!="number"&&typeof a!="boolean")throw t(`field "assert_json_field_equals" value for "${o}" must be a string, number, or boolean`);r[o]=String(a)}return Object.keys(r).length>0?r:void 0}function Ao(e,t){if(!Object.hasOwn(e,"assert_json_field_gte"))return;let n=e.assert_json_field_gte;if(n===void 0)return;if(!ae(n))throw t('field "assert_json_field_gte" must be a JSON object mapping field paths to numeric minimums');let r=Object.create(null);for(let[o,a]of Object.entries(n)){if(o.trim().length===0)throw t('field "assert_json_field_gte" keys must be non-empty field paths');r[o]=te(a,`assert_json_field_gte.${o}`,t)}return Object.keys(r).length>0?r:void 0}function Io(e,t,n){let r=p=>new c(`${n} ${t} ${p}`,s.USAGE);if(!ae(e))throw r(`must be a JSON object with linked-test fields. Allowed keys: ${N.join(", ")}.`);let o=Eo(e,r),a=P(o,"command",r),i=P(o,"cmd",r);if(a!==void 0&&i!==void 0&&a!==i)throw r("command and cmd must match when both are provided");let d=a??i;if(d===void 0||d.trim().length===0)throw r('requires a non-empty "command" string');let l=P(o,"path",r),u=P(o,"pm_context_mode",r);if(u!==void 0&&!Q.includes(u))throw r(`field "pm_context_mode" must be one of: ${Q.join(", ")}`);let f=P(o,"note",r);return{command:d,path:l!==void 0&&l.length>0?l:void 0,scope:vo(o,r),timeout_seconds:bo(o,r),pm_context_mode:u,env_set:So(o,r),env_clear:ko(o,r),shared_host_safe:To(o,"shared_host_safe",r),assert_stdout_contains:ee(o,"assert_stdout_contains",r),assert_stdout_regex:gn(o,"assert_stdout_regex",r),assert_stderr_contains:ee(o,"assert_stderr_contains",r),assert_stderr_regex:gn(o,"assert_stderr_regex",r),assert_stdout_min_lines:xo(o,r),assert_json_field_equals:Ro(o,r),assert_json_field_gte:Ao(o,r),note:f!==void 0&&f.trim().length>0?f.trim():void 0}}function ei(e,t){let n=e.trim();if(n.length===0)throw new c(`${t} requires a JSON object or array of objects describing linked-test entries`,s.USAGE);let r;try{r=JSON.parse(n)}catch(a){throw new c(`${t} value is not valid JSON: ${a instanceof Error?a.message:String(a)}. Provide a JSON object or array of objects, e.g. '{"command":"node scripts/check.js --flag value, with commas","timeout_seconds":120}'.`,s.USAGE)}let o=Array.isArray(r)?r:[r];if(o.length===0)throw new c(`${t} array must include at least one linked-test entry object`,s.USAGE);return o.map((a,i)=>Io(a,o.length>1?`entry ${i+1}`:"entry",t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dcbb6070-7457-5454-abf1-fa8153c8efd6")}catch{}})();function Tn(e){let t=e.trim();return t.toLowerCase()==="med"?"medium":t}function xn(e){let t=e.trim();return t.toLowerCase()==="med"?"medium":t}function Rn(e){let t=e.trim().toLowerCase();if(t==="med")return"medium";if(st.includes(t))return t;let n=R(e,"confidence");if(!Number.isInteger(n)||n<0||n>100)throw new c("Confidence must be an integer 0..100 or one of low|med|medium|high",s.USAGE);return n}function An(e){let t=e.trim().toLowerCase();if(t==="true"||t==="1")return!0;if(t==="false"||t==="0")return!1;throw new c("Regression must be one of true|false|1|0",s.USAGE)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="afc4f3d5-ba5e-5dd7-abc9-531b319cdb4e")}catch{}})();var Co=new Set(["none","null"]);function In(e={}){return[{optionKey:"dep",clearFlagKey:"clearDeps",valueFlag:"--dep",clearFlag:"--clear-deps",...e.depDisableFlagKey===void 0?{}:{disableFlagKey:e.depDisableFlagKey}},{optionKey:"comment",clearFlagKey:"clearComments",valueFlag:"--comment",clearFlag:"--clear-comments"},{optionKey:"note",clearFlagKey:"clearNotes",valueFlag:"--note",clearFlag:"--clear-notes"},{optionKey:"learning",clearFlagKey:"clearLearnings",valueFlag:"--learning",clearFlag:"--clear-learnings"},{optionKey:"file",clearFlagKey:"clearFiles",valueFlag:"--file",clearFlag:"--clear-files",...e.fileDisableFlagKey===void 0?{}:{disableFlagKey:e.fileDisableFlagKey}},{optionKey:"test",clearFlagKey:"clearTests",valueFlag:"--test",clearFlag:"--clear-tests",...e.testDisableFlagKey===void 0?{}:{disableFlagKey:e.testDisableFlagKey}},{optionKey:"doc",clearFlagKey:"clearDocs",valueFlag:"--doc",clearFlag:"--clear-docs",...e.docDisableFlagKey===void 0?{}:{disableFlagKey:e.docDisableFlagKey}},{optionKey:"reminder",clearFlagKey:"clearReminders",valueFlag:"--reminder",clearFlag:"--clear-reminders"},{optionKey:"event",clearFlagKey:"clearEvents",valueFlag:"--event",clearFlag:"--clear-events"},{optionKey:"typeOption",clearFlagKey:"clearTypeOptions",valueFlag:"--type-option",clearFlag:"--clear-type-options"}]}function C(e){return e===void 0?!1:Co.has(e.trim().toLowerCase())}function Cn(e,t,n){if(!C(e))return;let r=n?` ${n}`:"";throw new c(`${t} no longer accepts "none" or "null".${r}`.trim(),s.USAGE)}function K(e,t,n){if(!e||e.length===0||!e.some(a=>C(a)))return;let o=n?` ${n}`:"";throw new c(`${t} no longer accepts "none" or "null".${o}`.trim(),s.USAGE)}function Kn(e,t){for(let n of t){let r=e[n.optionKey];if(!Array.isArray(r)||r.length===0)continue;if(!r.every(d=>typeof d=="string"))throw new c(`${n.valueFlag} entries must be strings.`,s.USAGE);let o=r;if(!o.some(d=>C(d)))continue;if(o.filter(d=>!C(d)).length>0)throw new c(`Cannot mix legacy clear token "none"/"null" with concrete ${n.valueFlag} entries. Use ${n.clearFlag} to clear or provide explicit entries.`,s.USAGE);e[n.optionKey]=void 0,e[n.clearFlagKey]=!0,n.disableFlagKey&&(e[n.disableFlagKey]=!1)}return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e009d7f9-8d50-519a-9a43-632efd3bf443")}catch{}})();var Ko=new Set(["event","meeting","reminder","milestone","decision","adr"]);function Un(e,t,n,r){if(Ko.has(t.trim().toLowerCase())||n!==r.open_status)return;let o=At("in_progress",r);if(!(o===void 0||o===r.open_status))return{command:`pm start-task ${e}`,to_status:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0062e981-158a-5e6a-b028-6c7cef0f59ba")}catch{}})();var Uo=[{canonical:"tags",aliases:["tags"],optionKey:"tags",metadataKey:"tags"}],Lo=[{canonical:"deadline",aliases:["deadline"],optionKey:"deadline",metadataKey:"deadline"},{canonical:"estimate",aliases:["estimate","estimated_minutes","estimated-minutes"],optionKey:"estimatedMinutes",metadataKey:"estimated_minutes"},{canonical:"acceptance-criteria",aliases:["acceptance_criteria","acceptance-criteria","ac"],optionKey:"acceptanceCriteria",metadataKey:"acceptance_criteria"},{canonical:"definition-of-ready",aliases:["definition_of_ready","definition-of-ready"],optionKey:"definitionOfReady",metadataKey:"definition_of_ready"},{canonical:"order",aliases:["order","rank"],optionKey:"order",metadataKey:"order"},{canonical:"goal",aliases:["goal"],optionKey:"goal",metadataKey:"goal"},{canonical:"objective",aliases:["objective"],optionKey:"objective",metadataKey:"objective"},{canonical:"value",aliases:["value"],optionKey:"value",metadataKey:"value"},{canonical:"impact",aliases:["impact"],optionKey:"impact",metadataKey:"impact"},{canonical:"outcome",aliases:["outcome"],optionKey:"outcome",metadataKey:"outcome"},{canonical:"why-now",aliases:["why_now","why-now"],optionKey:"whyNow",metadataKey:"why_now"}],Ln=[...Uo,...Lo],Dn=[{canonical:"assignee",aliases:["assignee"],optionKey:"assignee",metadataKey:"assignee"},{canonical:"parent",aliases:["parent"],optionKey:"parent",metadataKey:"parent"},{canonical:"reviewer",aliases:["reviewer"],optionKey:"reviewer",metadataKey:"reviewer"},{canonical:"risk",aliases:["risk"],optionKey:"risk",metadataKey:"risk"},{canonical:"confidence",aliases:["confidence"],optionKey:"confidence",metadataKey:"confidence"},{canonical:"sprint",aliases:["sprint"],optionKey:"sprint",metadataKey:"sprint"},{canonical:"release",aliases:["release"],optionKey:"release",metadataKey:"release"},{canonical:"blocked-by",aliases:["blocked_by","blocked-by"],optionKey:"blockedBy",metadataKey:"blocked_by"},{canonical:"blocked-reason",aliases:["blocked_reason","blocked-reason"],optionKey:"blockedReason",metadataKey:"blocked_reason"},{canonical:"unblock-note",aliases:["unblock_note","unblock-note"],optionKey:"unblockNote",metadataKey:"unblock_note"},{canonical:"reporter",aliases:["reporter"],optionKey:"reporter",metadataKey:"reporter"},{canonical:"severity",aliases:["severity"],optionKey:"severity",metadataKey:"severity"},{canonical:"environment",aliases:["environment"],optionKey:"environment",metadataKey:"environment"},{canonical:"repro-steps",aliases:["repro_steps","repro-steps"],optionKey:"reproSteps",metadataKey:"repro_steps"},{canonical:"resolution",aliases:["resolution"],optionKey:"resolution",metadataKey:"resolution"},{canonical:"expected-result",aliases:["expected_result","expected-result"],optionKey:"expectedResult",metadataKey:"expected_result"},{canonical:"actual-result",aliases:["actual_result","actual-result"],optionKey:"actualResult",metadataKey:"actual_result"},{canonical:"affected-version",aliases:["affected_version","affected-version"],optionKey:"affectedVersion",metadataKey:"affected_version"},{canonical:"fixed-version",aliases:["fixed_version","fixed-version"],optionKey:"fixedVersion",metadataKey:"fixed_version"},{canonical:"component",aliases:["component"],optionKey:"component",metadataKey:"component"},{canonical:"regression",aliases:["regression"],optionKey:"regression",metadataKey:"regression"},{canonical:"customer-impact",aliases:["customer_impact","customer-impact"],optionKey:"customerImpact",metadataKey:"customer_impact"}];function $n(e){let t=new Set,n=new Set;if(!e.raw||e.raw.length===0)return{metadataKeys:t,optionKeys:n};for(let r of e.raw){let o=r.trim().toLowerCase();if(!o)throw new c("--unset values must not be empty",s.USAGE);if(C(o))throw new c('--unset no longer accepts "none" or "null". Specify concrete field names such as --unset deadline',s.USAGE);let a=e.resolveDefinition(o);if(!a)throw new c(`Unsupported --unset field "${r}". Supported fields: ${e.supportedFields}`,s.USAGE);t.add(a.metadataKey),n.add(a.optionKey)}return{metadataKeys:t,optionKeys:n}}function Ie(e,t,n){let r=e.trim().toLowerCase();if(!n)return;let o=n.command_to_fields?.get(t)??[];for(let a of o){if(a.allow_unset===!1)continue;let i=new Set;if(typeof a.key=="string"&&a.key.length>0&&i.add(a.key.toLowerCase()),typeof a.metadata_key=="string"&&a.metadata_key.length>0&&i.add(a.metadata_key.toLowerCase()),typeof a.cli_flag=="string"&&a.cli_flag.length>0&&(i.add(a.cli_flag.replaceAll("-","_").toLowerCase()),i.add(a.cli_flag.toLowerCase())),Array.isArray(a.cli_aliases))for(let d of a.cli_aliases)typeof d!="string"||d.length===0||(i.add(d.replaceAll("-","_").toLowerCase()),i.add(d.toLowerCase()));if(i.has(r))return{optionKey:a.key,metadataKey:a.metadata_key}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2fcfbe50-039b-5031-8b18-a208908a0d87")}catch{}})();function Fn(e,t){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1;throw new c(`${t} must be one of true|false|1|0|yes|no`,s.USAGE)}function Ce(e){return e?e.split("|").map(t=>t.trim()).filter(t=>t.length>0):[]}function U(e,t,n){if(!t.includes(e))throw new c(`Invalid ${n} value "${e}". Allowed: ${t.join(", ")}`,s.USAGE);return e}var On=["recur_freq","recur_interval","recur_count","recur_until","recur_by_weekday","recur_by_month_day","recur_exdates"];function Do(e,t){return t==="defined"?e!==void 0:!!e}function Nn(e,t,n){if(!Do(e,n))return;let r=R(e,`event ${t}`);if(!Number.isInteger(r)||r<1)throw new c(`--event ${t} must be an integer >= 1`,s.USAGE);return r}function $o(e,t,n){let r=e?k(e,n,"event.recur_until"):void 0;if(r&&r<t)throw new c("--event recur_until must be at or after start",s.USAGE);return r}function No(e){return Array.from(new Set(Ce(e).map(t=>U(t.toLowerCase(),dt,"event weekday")))).sort((t,n)=>be(t)-be(n))}function Fo(e){return Array.from(new Set(Ce(e).map(t=>{let n=R(t,"event recur_by_month_day");if(!Number.isInteger(n)||n<1||n>31)throw new c("--event recur_by_month_day values must be integers 1..31",s.USAGE);return n}))).sort((t,n)=>t-n)}function Oo(e,t){return Array.from(new Set(Ce(e).map(n=>k(n,t,"event.recur_exdates")))).sort((n,r)=>n.localeCompare(r))}function jn(e,t,n,r){let o=e.recur_freq?.trim(),a=e.recur_interval?.trim(),i=e.recur_count?.trim(),d=e.recur_until?.trim(),l=e.recur_by_weekday?.trim(),u=e.recur_by_month_day?.trim(),f=e.recur_exdates?.trim();if(![o,a,i,d,l,u,f].some(T=>T!==void 0))return;if(!o)throw new c("--event recurrence fields require recur_freq=<daily|weekly|monthly|yearly>",s.USAGE);let y=U(o.toLowerCase(),ct,"event recurrence frequency"),h=Nn(a,"recur_interval",r),E=Nn(i,"recur_count",r),b=$o(d,t,n),_=No(l),S=Fo(u),A=Oo(f,n);return{freq:y,interval:h,count:E,until:b,by_weekday:_.length>0?_:void 0,by_month_day:S.length>0?S:void 0,exdates:A.length>0?A:void 0}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1c1314f1-b54f-562c-b6f0-950fcac4c9cc")}catch{}})();function Gn(e,t){if(!t&&/[:,=]/.test(e))throw new c(`Invalid --dep value "${e}". Use a bare item id or id=<id>,kind=<kind>.`,s.USAGE)}function Mn(e,t,n=Z()){for(let r of t??[])try{ht(e,r.id,r.kind,n)}catch(o){throw new c(nt(o),s.USAGE,{code:"dependency_edge_not_allowed",why:`${e} -> ${r.id} (${r.kind}) violates the active relationship-kind policy`})}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8248687e-ba97-5e1b-afbf-a322a72eb1aa")}catch{}})();var Pn="--event end must be strictly after start. Equal start/end timestamps are treated as an instant event (end is dropped); an end earlier than start is rejected. Omit end for an instant event or set end later than start.",jo="--event end and duration are mutually exclusive; provide only one (use duration=<relative> like duration=2h, duration=30min, or duration=PT30M, or set an explicit end).",Go=/^([+-]?)(\d+)(min|mins|minute|minutes)$/i,Mo=/^([+-]?)[Pp][Tt](?:(\d+)[Hh])?(?:(\d+)[Mm])?(?:(\d+)[Ss])?$/,Vn=1e3,Ke=60*Vn,Po=60*Ke;function qn(e,t){let n=new Date(e);if(!Number.isFinite(n.getTime()))throw new c(`Invalid event.duration value "${t}". Duration is out of supported timestamp range.`,s.USAGE);return n.toISOString()}function qo(e,t){let n=new Date(e),r=t.trim(),o=Go.exec(r);if(o){let d=o[1]==="-"?-1:1,l=Number.parseInt(o[2],10)*d;return qn(n.getTime()+l*Ke,r)}let a=Mo.exec(r);if(a){let[,d,l,u,f]=a;if(l||u||f){let y=d==="-"?-1:1,h=Number.parseInt(l??"0",10),E=Number.parseInt(u??"0",10),b=Number.parseInt(f??"0",10),_=h*Po+E*Ke+b*Vn;return qn(n.getTime()+y*_,r)}}let i=r.startsWith("+")||r.startsWith("-")?r:`+${r}`;return k(i,n,"event.duration")}function zn(e,t,n,r){if(t&&n)throw new c(jo,s.USAGE);if(n){let a=qo(e,n);if(a<e)throw new c(Pn,s.USAGE);return a===e?void 0:a}if(!t)return;let o=k(t,r,"event.end");if(o<e)throw new c(Pn,s.USAGE);if(o!==e)return o}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fd41d2bf-7be0-55ee-9048-a9d5092a9a21")}catch{}})();var Vo=["at","date","text","title"],zo=["start","date","end","duration","title","description","location","timezone","all_day",...On],Bo=["key","value"];function Bn(e,t){return t==="trimmed"?e?.trim():e}function Yo(e,t){return t==="defined"?e!==void 0:!!e}function Yn(e,t,n){return e.map(r=>{let o=x(r,"--reminder");L(o,"--reminder",Vo);let a=Bn(o.at??o.date,n.valueMode),i=Bn(o.text??o.title,n.valueMode);if(!a||!i)throw new c("--reminder requires at=<iso|relative> or date=<iso|relative>, plus text=<value> or title=<value>",s.USAGE);let d=i.trim();if(!d)throw new c("--reminder text must not be empty",s.USAGE);return{at:k(a,t,"reminder.at"),text:d}})}function Wn(e,t,n){return e.map(r=>{let o=x(r,"--event");L(o,"--event",zo);let a=(o.start??o.date)?.trim();if(!a)throw new c("--event requires start=<iso|relative> or date=<iso|relative>",s.USAGE);let i=k(a,t,"event.start"),d=o.end?.trim(),l=o.duration?.trim(),u=zn(i,d,l,t),f=o.title,p=o.description,y=o.location,h=o.timezone,E=f?.trim(),b=p?.trim(),_=y?.trim(),S=h?.trim(),A=[["title",f,E],["description",p,b],["location",y,_],["timezone",h,S]];for(let[O,D,de]of A)if(D!==void 0&&!de)throw new c(`--event ${O} must not be empty`,s.USAGE);let T=o.all_day?.trim(),z=jn(o,i,t,n.recurrenceEmptyNumericGuard),q=Yo(T,n.allDayEmptyGuard)?Fn(T,"--event all_day"):void 0;return{start_at:i,end_at:u,title:E,description:b,location:_,all_day:q,timezone:S,recurrence:z}})}function Jn(e){let t={};for(let n of e){let r=n.trim();if(r.length===0)throw new c("--type-option values must not be empty",s.USAGE);let o,a;if(r.includes(",")||r.includes(`
3
3
  `)||r.startsWith("```")||/^(?:[-*+]\s+)?(?:key|value)\s*[:=]/i.test(r)){let d=x(r,"--type-option");L(d,"--type-option",Bo),o=d.key?.trim(),a=d.value?.trim()}else{let d=r.indexOf("="),l=r.indexOf(":"),u=d;if(d<=0&&l>0&&(u=l),u<=0||u===r.length-1)throw new c("--type-option requires key=value or key=<name>,value=<value> entries",s.USAGE);o=r.slice(0,u).trim(),a=r.slice(u+1).trim()}if(!o||!a)throw new c("--type-option requires key and value",s.USAGE);t[o]=a}return Object.fromEntries(Object.entries(t).sort((n,r)=>n[0].localeCompare(r[0])))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="93dc76a3-f205-5a44-85bd-5a6fad80c8d4")}catch{}})();var Wo=["strict","progressive"],Jo=["lightweight"],Zn=new Set(["Reminder","Meeting","Event"]),Ho=new Set(["author","created_at","text"]),$e=[...Ln,{canonical:"author",aliases:["author"],optionKey:"author",metadataKey:"author"},...Dn],Xo=(()=>{let e=new Map;for(let t of $e)for(let n of t.aliases)e.set(n,{optionKey:t.optionKey,metadataKey:t.metadataKey});return e})(),ie=new Map($e.map(e=>[e.optionKey,e.canonical])),Zo=$e.map(e=>e.canonical).sort((e,t)=>e.localeCompare(t)).join(", ");function Qo(e,t){let n=[...t].sort((o,a)=>o.localeCompare(a)),r=n.length===1?"key":"keys";return`${e} supports only author, created_at, and text seed fields. Found unsupported ${r}: ${n.join(", ")}. If text contains comma-separated key:value-like fragments, wrap text in quotes (for example text="first,scope:project"), use markdown-style key/value input, or pass ${e} - with piped stdin.`}function ea(e,t){let n=ke(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new c(`Invalid status value "${e}". Allowed: ${r.join(", ")}`,s.USAGE)}return n}function ta(e,t){let n=e.default_status;if(n!==void 0){let r=ke(n,t);if(r)return r}return t.open_status}function Le(e,t){if(!e||e.trim()===""||e.trim().toLowerCase()==="now")return t;let n=Date.parse(e);if(!Number.isFinite(n))throw new c(`Invalid created_at timestamp "${e}"`,s.USAGE);return new Date(n).toISOString()}var na=In();function Qn(e){let t={...e,unset:e.unset?[...e.unset]:void 0},n=o=>{let a=t.unset?[...t.unset]:[];a.includes(o)||a.push(o),t.unset=a};C(t.template)&&(t.template=void 0);let r=new Set([...ie.keys(),"rank"]);for(let o of r){let a=t[o];if(typeof a!="string"||!C(a))continue;let i=o==="rank"?"order":ie.get(o)??o;n(i),t[o]=void 0}return Kn(t,na)}function v(e){if(e!==void 0)return e}function er(e,t){return $n({raw:e,supportedFields:Zo,resolveDefinition:n=>Xo.get(n)??Ie(n,"create",t)})}var Hn=["id","kind","type","author","created_at","source_kind"],se=["path","scope","note"];function tr(e,t,n,r){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--dep","Use --clear-deps to clear dependencies."),{values:e.map(a=>{let i=a.trim(),d=ce(i,Hn);Gn(i,d);let l=d?x(a,"--dep"):{id:i,kind:"related"};d&&L(l,"--dep",Hn);let u=v(l.id),f=nr(v(l.kind??l.type));if(!u||!f)throw new c("--dep requires id and kind, or a bare item id to create a related dependency",s.USAGE);if(u.trim().toLowerCase()==="undefined")throw new c(`--dep id must not use placeholder token "${u}". Use --clear-deps to clear dependencies.`,s.USAGE);let p=an(v(l.source_kind)),y=v(l.author);return{id:sn(u,n,p),kind:U(f,ot,"dependency kind"),created_at:Le(l.created_at,t),author:y??r,source_kind:p??"cli:create:dep",author_source:y?"asserted":"detected"}}),explicitEmpty:!1})}var ra={"blocked-by":"blocked_by",depends_on:"blocked_by","depends-on":"blocked_by"};function nr(e){return typeof e!="string"?e:ra[e.toLowerCase()]??e}function ce(e,t){if(e.startsWith("```")||e.includes(`
4
4
  `))return!0;let n=t.map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|");return new RegExp(`^(?:[-*+]\\s+)?(?:${n})\\s*[:=]`,"i").test(e)?!0:zt(e)}function Ue(e,t,n,r){return!t||t.length===0?{values:void 0,explicitEmpty:!1}:(K(t,e,e==="--comment"?"Use --clear-comments to clear comments.":e==="--note"?"Use --clear-notes to clear notes.":"Use --clear-learnings to clear learnings."),{values:t.map(i=>{let d=i.trim(),l=()=>{if(d.length===0)throw new c(`${e} requires text=<value>`,s.USAGE);return{created_at:n,author:r,text:d}},u;try{u=x(i,e)}catch(y){if(e==="--comment"||e==="--note"||e==="--learning")return l();throw y}if(Object.keys(u).filter(y=>!Ho.has(y)).length>0)return{created_at:Le(u.created_at,n),author:v(u.author)??r,text:d};let p=u.text??"";if(p==="")throw new c(`${e} requires text=<value>`,s.USAGE);return{created_at:Le(u.created_at,n),author:v(u.author)??r,text:p}}),explicitEmpty:!1})}function oa(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--file","Use --clear-files to clear linked files."),{values:e.map(n=>{let r=n.trim(),o=ce(r,se),a=o?x(n,"--file"):{path:r};if(o&&L(a,"--file",se),!a.path)throw new c("--file requires path=<value> or a bare file path",s.USAGE);return{path:a.path,scope:U(a.scope??"project",$,"file scope"),note:v(a.note)}}),explicitEmpty:!1})}function aa(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--test","Use --clear-tests to clear linked tests."),{values:e.map(n=>{let r=n.trim(),o=yn(r)?_n(x(n,"--test"),"--test"):{command:r},a=v(o.command),i=v(o.path);if(!a)throw new c("--test requires command=<value> or a bare command (path=<value> is optional metadata)",s.USAGE);let d=v(o.timeout_seconds),l=v(o.timeout);if(d&&l&&d!==l)throw new c("--test timeout and timeout_seconds must match when both are provided",s.USAGE);let u=d??l;return{command:a,path:i,scope:U(o.scope??"project",$,"test scope"),timeout_seconds:u?R(u,"timeout_seconds"):void 0,pm_context_mode:bn(o.pm_context_mode,"--test"),env_set:hn(o.env_set,"--test"),env_clear:wn(o.env_clear,"--test"),shared_host_safe:En(o.shared_host_safe,"--test","shared_host_safe"),assert_stdout_contains:oe(o.assert_stdout_contains),assert_stdout_regex:Ae(o.assert_stdout_regex,"--test","assert_stdout_regex"),assert_stderr_contains:oe(o.assert_stderr_contains),assert_stderr_regex:Ae(o.assert_stderr_regex,"--test","assert_stderr_regex"),assert_stdout_min_lines:vn(o.assert_stdout_min_lines,"--test"),assert_json_field_equals:Sn(o.assert_json_field_equals,"--test"),assert_json_field_gte:kn(o.assert_json_field_gte,"--test"),note:v(o.note)}}),explicitEmpty:!1})}function ia(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--doc","Use --clear-docs to clear linked docs."),{values:e.map(n=>{let r=n.trim(),o=ce(r,se),a=o?x(n,"--doc"):{path:r};if(o&&L(a,"--doc",se),!a.path)throw new c("--doc requires path=<value> or a bare doc path",s.USAGE);return{path:a.path,scope:U(a.scope??"project",$,"doc scope"),note:v(a.note)}}),explicitEmpty:!1})}function sa(e,t){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--reminder","Use --clear-reminders to clear reminders."),{values:Yn(e,new Date(t),{valueMode:"raw"}),explicitEmpty:!1})}function ca(e,t){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--event","Use --clear-events to clear linked events."),{values:Wn(e,new Date(t),{allDayEmptyGuard:"defined",recurrenceEmptyNumericGuard:"defined"}),explicitEmpty:!1})}function da(e,t,n,r=[]){let o=[...tt.filter(a=>e[a]!==void 0),...r.filter(a=>e[a]!==void 0),...t.length>0?["body"]:[],...n.map(a=>`unset:${a}`)];return Array.from(new Set(o))}function rr(e,t){let n=e??"";if(t.length===0)return n;let r=`explicit_unset=${t.join(",")}`;return n?`${n} | ${r}`:r}function De(e,t,n){let r=ve("create",e);if(!r)throw new c(`Unsupported ${n} entry "${e}" for type "${t}"`,s.CONFLICT);return r}function la(e){return{scalarValues:{title:e.title,description:e.description,type:e.type,status:e.status,priority:e.priority,tags:e.tags,body:e.body,deadline:e.deadline,estimatedMinutes:e.estimatedMinutes,acceptanceCriteria:e.acceptanceCriteria,definitionOfReady:e.definitionOfReady,order:e.order??e.rank,goal:e.goal,objective:e.objective,value:e.value,impact:e.impact,outcome:e.outcome,whyNow:e.whyNow,author:e.author,message:e.message,assignee:e.assignee,parent:e.parent,reviewer:e.reviewer,risk:e.risk,confidence:e.confidence,sprint:e.sprint,release:e.release,blockedBy:e.blockedBy,blockedReason:e.blockedReason,unblockNote:e.unblockNote,reporter:e.reporter,severity:e.severity,environment:e.environment,reproSteps:e.reproSteps,resolution:e.resolution,expectedResult:e.expectedResult,actualResult:e.actualResult,affectedVersion:e.affectedVersion,fixedVersion:e.fixedVersion,component:e.component,regression:e.regression,customerImpact:e.customerImpact},repeatableValues:{dep:e.dep,comment:e.comment,note:e.note,learning:e.learning,file:e.file,test:e.test,doc:e.doc,reminder:e.reminder,event:e.event,typeOption:e.typeOption,field:e.field},addTags:e.addTags}}function Ne(e,t){if(t==="tags")return e.scalarValues.tags!==void 0||Array.isArray(e.addTags)&&e.addTags.length>0;if(Object.prototype.hasOwnProperty.call(e.scalarValues,t))return e.scalarValues[t]!==void 0;if(Object.prototype.hasOwnProperty.call(e.repeatableValues,t)){let n=e.repeatableValues[t];return Array.isArray(n)&&n.length>0}return!1}function ua(e,t){let n=new Set(["title","type"]);if(t!=="strict")return n;for(let r of e.required_create_fields)n.add(De(r,e.name,"required_create_fields"));for(let r of e.required_create_repeatables)n.add(De(r,e.name,"required_create_repeatables"));return n}function fa(e,t,n,r){for(let o of e)if(!(!Ne(t,o)&&!n.has(o)))throw new c(`Option ${M("create",o)} is disabled for type "${r}" by command_option_policies`,s.USAGE)}function ma(e,t,n){if(t!=="strict")return;let r=e.filter(a=>n.has(a));if(r.length===0)return;let o=[...new Set(r.map(a=>M("create",a)))].sort((a,i)=>a.localeCompare(i));throw new c(`Strict create mode requires concrete values for ${o.join(", ")}; --unset/--clear-* directives cannot satisfy required options`,s.USAGE)}function pa(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(K(e,"--type-option","Use --clear-type-options to clear existing type options."),{values:Jn(e),explicitEmpty:!1})}async function ya(e){let t=Bt();return{...e,body:await t.resolveValue(e.body,"--body"),dep:await t.resolveList(e.dep,"--dep"),comment:await t.resolveList(e.comment,"--comment"),note:await t.resolveList(e.note,"--note"),learning:await t.resolveList(e.learning,"--learning"),file:await t.resolveList(e.file,"--file"),test:await t.resolveList(e.test,"--test"),doc:await t.resolveList(e.doc,"--doc"),reminder:await t.resolveList(e.reminder,"--reminder"),event:await t.resolveList(e.event,"--event"),typeOption:await t.resolveList(e.typeOption,"--type-option"),field:await t.resolveList(e.field,"--field")}}function _a(e,t){if(e===void 0)return t;let n=e.trim().toLowerCase();if(n.length===0)return t;if(n==="strict"||n==="progressive")return n;throw new c(`Invalid --create-mode value "${e}". Allowed: ${Wo.join(", ")}`,s.USAGE)}function ga(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t.length===0)throw new c("--schedule-preset must not be empty",s.USAGE);if(t==="lightweight"||t==="lite"||t==="schedule-lite")return"lightweight";throw new c(`Invalid --schedule-preset value "${e}". Allowed: ${Jo.join(", ")}`,s.USAGE)}function ha(e,t,n){let r=_a(e,n);if(t===void 0)return r;if(typeof e=="string"&&e.trim().length>0&&r==="strict")throw new c("--schedule-preset lightweight cannot be combined with --create-mode strict. Use --create-mode progressive or omit --create-mode.",s.USAGE);return"progressive"}function wa(e,t,n,r){let o=e.name,a=la(t),i=ua(e,n),d=ft(e,"create",i);if(d.errors.length>0)throw new c(d.errors.join("; "),s.CONFLICT);fa(d.disabled,a,r,o),ma(d.required,n,r);let l=f=>f==="status"&&e.default_status!==void 0?!0:Ne(a,f),u=d.required.filter(f=>!l(f));return[...new Set(u.map(f=>M("create",f)))].sort((f,p)=>f.localeCompare(p))}var or=/^Missing required type option "([^"]+)" for type "([^"]+)"$/;function ar(e,t){let n=[];for(let r of e){let o=r.match(or);o&&o[2]===t&&n.push(o[1])}return[...new Set(n)].sort((r,o)=>r.localeCompare(o))}function ir(e,t){return e.filter(n=>{let r=n.match(or);return!r||r[2]!==t})}function Ea(e,t,n,r){let o=ir(e,t);if(o.length===0)return;let a=Fe(n,[],[],r.open_status);throw new c(o.join("; "),s.USAGE,{code:"invalid_argument_value",required:`Provide valid --type-option key/value pairs for type "${t}".`,examples:[a],nextSteps:[`Run "pm create --help --type ${t}" to review allowed type-option keys and values.`]})}function sr(e,t){let r=e.options.find(o=>o.key===t)?.values[0];return typeof r=="string"&&r.trim().length>0?r:"<value>"}function cr(e,t,n){switch(e){case"--title":return["--title",`"${t} example title"`];case"--description":return["--description",`"${t} example description"`];case"--type":return["--type",t];case"--status":return["--status",n];case"--priority":return["--priority","1"];case"--message":return["--message",`"Create ${t} item"`];case"--dep":return["--dep",'"id=pm-xxxx,kind=related,author=maintainer,created_at=now"'];case"--comment":return["--comment",'"author=maintainer,created_at=now,text=Implementation context"'];case"--note":return["--note",'"author=maintainer,created_at=now,text=Design note"'];case"--learning":return["--learning",'"author=maintainer,created_at=now,text=Durable lesson"'];case"--file":return["--file",'"path=src/example.ts,note=implementation file"'];case"--test":return["--test",'"command=node scripts/run-tests.mjs test,timeout_seconds=240"'];case"--doc":return["--doc",'"path=README.md,note=reference doc"'];default:return[e,'"<value>"']}}function Fe(e,t,n,r){let o=["pm","create","--title",`"${e.name} example title"`,"--description",`"${e.name} example description"`,"--type",e.name],a=["--status","--priority","--message"],i=[...new Set([...a,...t])],d=new Set(["--title","--description","--type"]);for(let l of i)d.has(l)||(o.push(...cr(l,e.name,r)),d.add(l));for(let l of n){let u=sr(e,l);o.push("--type-option",`${l}=${u}`)}return o.join(" ")}function dr(e,t){let n=e?.trim();if(!n)throw t==="--title"?e!==void 0?new c("Title cannot be empty or whitespace-only. Retry: pass a non-empty title with --title.",s.USAGE):new c('Missing required option --title. Why required: every item needs a human-readable title for lookup, search, and reporting. Retry: pass the title as the first positional argument (example: pm create "Fix login bug" --type Issue) or with --title.',s.USAGE):new c(`Missing required option ${t}`,s.USAGE);return n}function ba(e){return Wt(e)}function lr(e,t){let n={};for(let[r,o]of Object.entries(e))n[r]=Array.isArray(o)?[...o]:o;for(let[r,o]of Object.entries(t))o!==void 0&&(n[r]=Array.isArray(o)?[...o]:o);return n}function ur(e){return e.trim().toLowerCase().split(/\s+/).filter(t=>t.length>0).join(" ")}function fr(){let e=J();return e?e.commands.some(t=>t.action==="templates-show"||ur(t.command)==="templates show"):!1}function mr(e,t){if(typeof e!="object"||e===null||!("options"in e))throw new c(`Templates package returned invalid payload for template "${t}". Expected an options object.`,s.GENERIC_FAILURE);let n=e.options;if(typeof n!="object"||n===null||Array.isArray(n))throw new c(`Templates package returned invalid options for template "${t}".`,s.GENERIC_FAILURE);let r={};for(let[o,a]of Object.entries(n)){if(typeof a=="string"||typeof a=="number"||typeof a=="boolean"){r[o]=a;continue}if(Array.isArray(a)&&a.every(i=>typeof i=="string")){r[o]=[...a];continue}throw new c(`Templates package returned unsupported option value for "${o}" in template "${t}".`,s.GENERIC_FAILURE)}return r}async function pr(e,t,n){if(!fr())throw new c("--template requires the templates package. Install it first (for example: pm install templates --project).",s.USAGE);let r=await vt({command:"templates show",args:[e],options:{},global:t,pm_root:n});if(!r.handled){let o=r.warnings.length>0?` (${r.warnings.join(", ")})`:"";throw new c(`Unable to resolve template "${e}" via templates package. Run "pm templates show ${e}" for details.${o}`,s.USAGE)}return mr(r.result,e)}function va(e){return Ze(yt(e)).then(t=>{if(!t)throw new c(`Tracker is not initialized at ${e}. Run pm init first.`,s.NOT_FOUND)})}function g(e,t,n){return e.has(t)||n===void 0?void 0:v(n)}function F(e,t,n,r){return e.has(t)||n===void 0?void 0:r(n)}var Sa=new Set(["milestone","meeting","reminder","event"]);function yr(e,t,n,r){let o=t!==void 0,a=n!==void 0&&n.length>0,i=r!==void 0&&r.length>0;return Sa.has(e.toLowerCase())&&!o&&!a&&!i}function ka(e,t,n,r,o){let a=[];return e.toLowerCase()==="event"&&(o===void 0||o.length===0)&&a.push(`event_without_schedule:${t}:no_time_set`),yr(e,n,r,o)&&a.push(`calendar_item_without_schedule:${t}:no_deadline_or_reminder_or_event (hint: set --deadline <ISO> or --reminder "<when>", or link an Event via --event "start=<ISO>,end=<ISO>"; otherwise this item never appears on pm calendar)`),a}async function Ta(e,t,n,r){if(e!==void 0||n.has("parent")||t.parent!==void 0)return{parent:e,parentSource:void 0};let o=await rn(r);return o===void 0?{parent:e,parentSource:void 0}:{parent:o,parentSource:"focus"}}async function xa(e,t,n,r,o,a){let i=jt(o);if(Pt(r,i,t.id_prefix),await X(e,i,t.id_prefix,t.item_format,n.type_to_folder))return{parent:i,warnings:[]};let l=H(i,t.id_prefix);return{parent:i,warnings:Mt(l,a).warnings}}async function Ra(e){return e.parent===void 0?{parent:void 0,warnings:[]}:await xa(e.pmRoot,e.settings,e.typeRegistry,e.itemId,e.parent,e.policy)}async function Aa(e){if(e.explicitId===void 0)return Ot(e.pmRoot,e.settings.id_prefix,{tokenLength:e.settings.ids.token_length,typeToFolder:e.typeRegistry.type_to_folder,probeExisting:!1});if(typeof e.explicitId!="string")throw new c("--id must be a string",s.USAGE);let t=e.explicitId.trim();if(t.length===0||Gt(t))throw new c("--id must not be empty or use a placeholder token",s.USAGE);let n=H(t,e.settings.id_prefix);if(!/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/.test(n))throw new c("--id must contain only letters, numbers, and dashes after normalization",s.USAGE);return n}function Xn(e,t,n,r,o){let a=g(e,t,n);if(a===void 0)return{value:void 0,warnings:[]};let i=Jt(r,a,o);return{value:i.value,warnings:i.warnings}}async function Ia(e){let{pmRoot:t,settings:n,typeRegistry:r,statusRegistry:o,blockedBy:a,status:i,statusExplicit:d,nowValue:l,author:u}=e,f=e.dependencyValues;if(a===void 0)return{dependencyValues:f,status:i};let p=H(a,n.id_prefix),y=await X(t,p,n.id_prefix,n.item_format,r.type_to_folder);if(!y)return{dependencyValues:f,status:i};if((f??[]).some(b=>b.id===y.id&&b.kind==="blocked_by")||(f=[...f??[],{id:y.id,kind:"blocked_by",created_at:l,author:u,source_kind:"cli:create:blocked_by",author_source:"detected"}]),d)return{dependencyValues:f,status:i};let E=o.blocked_statuses.has("blocked")?"blocked":[...o.blocked_statuses].sort((b,_)=>b.localeCompare(_))[0]??o.open_status;return{dependencyValues:f,status:E}}function Ca(e,t,n){if(typeof e.createMode=="string"&&e.createMode.trim().toLowerCase()==="strict")return;let o=t.governance.create_default_type?.trim();if(o&&o.length>0&&V(o,n)){e.type=o;return}V("Task",n)&&(e.type="Task")}function Ka(e,t){return e.options.filter(n=>ve("create",n.key)===void 0).flatMap(n=>{let r=t[n.key];if(r===void 0)return[];if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return[n];throw new c(`Template custom type option "${n.key}" must be a string, number, or boolean value`,s.USAGE)})}async function Ua(e,t,n,r,o){let a=e;if(a.template!==void 0){let h=a.template.trim();if(h.length===0)throw new c("--template must not be empty. Omit --template to disable template usage.",s.USAGE);let E=await pr(h,t,n);a=Qn(lr(E,a))}if(a.type===void 0&&Ca(a,r,o),a.type===void 0)throw new c("Missing required option --type <value>",s.USAGE);let i=V(a.type,o);if(!i){let h=Ht(a.type),E=h?V(h,o):void 0;if(E)Te(`[pm] note: type '${a.type.trim()}' is not defined; using closest match '${E}'. Run 'pm schema add-type "${a.type.trim()}"' to track it as a distinct type.`),a.type=E,i=E;else throw new c(Xt(a.type,o.types,xt(n,r.schema)),s.USAGE)}let d=ut(i,o);if(!d)throw new c(`Invalid type value "${a.type}"`,s.USAGE);let l=d.name,u=Ka(d,a),f=u.map(h=>`${h.key}=${String(a[h.key])}`);if(f.length>0){a.typeOption=[...f,...a.typeOption??[]];for(let h of u)delete a[h.key]}let p=ga(a.schedulePreset);if(p!==void 0&&!Zn.has(l))throw new c(`--schedule-preset ${p} is only supported for Reminder, Meeting, or Event types`,s.USAGE);let y=ha(a.createMode,p,r.governance.create_mode_default);return{resolvedOptions:a,typeDefinition:d,type:l,schedulePreset:p,createMode:y}}function La(e,t){let n=new Set(t.metadataKeys),r=new Set(t.optionKeys),o=[{enabled:e.clearDeps,optionKey:"dep",clearFlag:"--clear-deps",valueFlag:"--dep",values:e.dep,metadataKey:"dependencies"},{enabled:e.clearComments,optionKey:"comment",clearFlag:"--clear-comments",valueFlag:"--comment",values:e.comment,metadataKey:"comments"},{enabled:e.clearNotes,optionKey:"note",clearFlag:"--clear-notes",valueFlag:"--note",values:e.note,metadataKey:"notes"},{enabled:e.clearLearnings,optionKey:"learning",clearFlag:"--clear-learnings",valueFlag:"--learning",values:e.learning,metadataKey:"learnings"},{enabled:e.clearFiles,optionKey:"file",clearFlag:"--clear-files",valueFlag:"--file",values:e.file,metadataKey:"files"},{enabled:e.clearTests,optionKey:"test",clearFlag:"--clear-tests",valueFlag:"--test",values:e.test,metadataKey:"tests"},{enabled:e.clearDocs,optionKey:"doc",clearFlag:"--clear-docs",valueFlag:"--doc",values:e.doc,metadataKey:"docs"},{enabled:e.clearReminders,optionKey:"reminder",clearFlag:"--clear-reminders",valueFlag:"--reminder",values:e.reminder,metadataKey:"reminders"},{enabled:e.clearEvents,optionKey:"event",clearFlag:"--clear-events",valueFlag:"--event",values:e.event,metadataKey:"events"},{enabled:e.clearTypeOptions,optionKey:"typeOption",clearFlag:"--clear-type-options",valueFlag:"--type-option",values:e.typeOption,metadataKey:"type_options"}];for(let a of o)if(a.enabled){if(a.values&&a.values.length>0)throw new c(`Cannot combine ${a.clearFlag} with ${a.valueFlag}`,s.USAGE);n.add(a.metadataKey),r.add(a.optionKey)}return{explicitUnsets:n,clearOptionKeys:r}}function Da(e,t){let n={tags:e.tags!==void 0,deadline:e.deadline!==void 0,estimatedMinutes:e.estimatedMinutes!==void 0,acceptanceCriteria:e.acceptanceCriteria!==void 0,definitionOfReady:e.definitionOfReady!==void 0,order:e.order!==void 0||e.rank!==void 0,goal:e.goal!==void 0,objective:e.objective!==void 0,value:e.value!==void 0,impact:e.impact!==void 0,outcome:e.outcome!==void 0,whyNow:e.whyNow!==void 0,author:e.author!==void 0,assignee:e.assignee!==void 0,parent:e.parent!==void 0,reviewer:e.reviewer!==void 0,risk:e.risk!==void 0,confidence:e.confidence!==void 0,sprint:e.sprint!==void 0,release:e.release!==void 0,blockedBy:e.blockedBy!==void 0,blockedReason:e.blockedReason!==void 0,unblockNote:e.unblockNote!==void 0,reporter:e.reporter!==void 0,severity:e.severity!==void 0,environment:e.environment!==void 0,reproSteps:e.reproSteps!==void 0,resolution:e.resolution!==void 0,expectedResult:e.expectedResult!==void 0,actualResult:e.actualResult!==void 0,affectedVersion:e.affectedVersion!==void 0,fixedVersion:e.fixedVersion!==void 0,component:e.component!==void 0,regression:e.regression!==void 0,customerImpact:e.customerImpact!==void 0};for(let[r,o]of Object.entries(n)){if(!o||!t.optionKeys.has(r))continue;let a=ie.get(r)??r;throw new c(`Cannot combine --unset ${a} with ${M("create",r)}`,s.USAGE)}}function $a(e){let t=(n,r)=>{let o=ie.get(r),a=o?`Use --unset ${o} to clear this field.`:void 0;Cn(n,M("create",r),a)};t(e.tags,"tags"),t(e.deadline,"deadline"),t(e.estimatedMinutes,"estimatedMinutes"),t(e.acceptanceCriteria,"acceptanceCriteria"),t(e.definitionOfReady,"definitionOfReady"),t(e.order??e.rank,"order"),t(e.goal,"goal"),t(e.objective,"objective"),t(e.value,"value"),t(e.impact,"impact"),t(e.outcome,"outcome"),t(e.whyNow,"whyNow"),t(e.author,"author"),t(e.assignee,"assignee"),t(e.parent,"parent"),t(e.reviewer,"reviewer"),t(e.risk,"risk"),t(e.confidence,"confidence"),t(e.sprint,"sprint"),t(e.release,"release"),t(e.blockedBy,"blockedBy"),t(e.blockedReason,"blockedReason"),t(e.unblockNote,"unblockNote"),t(e.reporter,"reporter"),t(e.severity,"severity"),t(e.environment,"environment"),t(e.reproSteps,"reproSteps"),t(e.resolution,"resolution"),t(e.expectedResult,"expectedResult"),t(e.actualResult,"actualResult"),t(e.affectedVersion,"affectedVersion"),t(e.fixedVersion,"fixedVersion"),t(e.component,"component"),t(e.regression,"regression"),t(e.customerImpact,"customerImpact")}function Na(e,t,n){for(let r of Object.keys(e))if(n.metadataKeys.has(r))throw new c(`Cannot combine --unset ${r.replaceAll("_","-")} with --field ${r}=...`,s.USAGE);for(let r of Object.keys(t.values??{}))if(n.metadataKeys.has(r))throw new c(`Cannot combine --unset ${r.replaceAll("_","-")} with its value flag`,s.USAGE)}function Fa(e){let{combinedMissingFlags:t,typeDefinition:n,missingRequiredCreateFlags:r,missingRequiredTypeOptionKeys:o,openStatus:a,type:i,createMode:d}=e;if(t.length===0)return;let l=Fe(n,r,o,a),u=[`Run "pm create --help --type ${i}" for type-aware required option guidance.`];t.includes("--title")&&u.push('Title can also be passed as the first positional argument (example: pm create "Your title" --type '+i+")."),d==="strict"&&(u.push('For staged onboarding, retry with "--create-mode progressive".'),Zn.has(i)&&u.push('For minimal scheduling inputs, try "--schedule-preset lightweight".'));let f=t.length===1?`Missing required option ${t[0]} for type "${i}"`:`Missing required options ${t.join(", ")} for type "${i}"`;throw new c(f,s.USAGE,{code:"missing_required_option",required:`Provide all required create options and type options for type "${i}" in one invocation.`,examples:[l],nextSteps:u,recovery:d==="strict"?{recovery_mode:"compact",missing_required_fields:t,suggested_flags:["--create-mode progressive",...t]}:void 0})}function Oa(e,t){if(e.has("tags")&&Array.isArray(t.addTags)&&t.addTags.length>0)throw new c("Cannot combine --unset tags with --add-tags",s.USAGE);let n=e.has("tags")?[]:t.tags!==void 0?qt(t.tags):[];return Vt(n,t.addTags)}function ja(e,t){if(t.order!==void 0&&t.rank!==void 0&&t.order!==t.rank)throw new c("--order and --rank must match when both are provided",s.USAGE);let n=t.order??t.rank,r=F(e,"order",n,o=>R(o,"order"));if(r!==void 0&&!Number.isInteger(r))throw new c("Order must be an integer",s.USAGE);return r}function Ga(e,t,n,r,o,a){if(r.completedAt!==void 0&&e!==t.close_status)throw new c("--completed-at requires a terminal create status.",s.USAGE);let i=e!==t.close_status?void 0:r.completedAt===void 0?a:k(r.completedAt,new Date(a),"completed-at");if(e!==t.close_status)return{closeReason:void 0,completedAt:i,warnings:[]};let d=n.governance.require_close_reason?{explicit:r.closeReason??r.message,resolution:o}:{explicit:r.closeReason};return{closeReason:on(d,n.governance.require_close_reason,{operation:"create",status:e}).closeReason,completedAt:i,warnings:[]}}async function Ma(e){let{pmRoot:t,type:n,id:r,settings:o,typeRegistry:a,author:i,extensionFieldNames:d,afterDocument:l,beforeDocument:u,historyMessage:f,changedFields:p,nowValue:y,similarityCandidate:h,allowDuplicate:E}=e,b=_t(t,n,r,o.item_format,a.type_to_folder),_=gt(t,r),S=await Ft(t,r,o.locks.ttl_seconds,i,!1,o.governance.force_required_for_stale_lock,o.locks.wait_ms),A=[];try{let T=l.metadata.dependencies&&l.metadata.dependencies.length>0?await tn(t,o.item_format,a.type_to_folder,void 0,o.schema):void 0;if(await X(t,r,o.id_prefix,o.item_format,a.type_to_folder))throw new c(`Item "${r}" already exists`,s.CONFLICT);await bt({pm_root:t,operation:"create",before:null,after:l,changed_fields:p,sdk:nn({pmRoot:t,settings:o,typeToFolder:a.type_to_folder})});let q=await Qt(t,i,{required:o.governance.duplicate_detection_mode==="strict"&&E!==!0}),O=[];try{o.governance.duplicate_detection_mode==="strict"&&E!==!0&&await Re(h,{pmRoot:t,mode:"strict",threshold:o.governance.duplicate_detection_threshold,limit:o.governance.duplicate_detection_limit,allowDuplicate:!1}),await Qe(b,Ut(l,{format:o.item_format,schema:o.schema,extensionFieldNames:d}));try{let D=$t({nowIso:y,author:i,op:"create",before:u,after:l,message:f});await Nt(_,D)}catch(D){throw await et(b),D}O=await en({pmRoot:t,preferredFormat:o.item_format,typeToFolder:a.type_to_folder,schema:o.schema,itemPath:b,document:l})}finally{await q()}A=[...T?pn(T,[...T,l.metadata],r):[],...O,...await Se({path:b,scope:"project",op:"create",item_id:l.metadata.id,item_type:l.metadata.type,before:u,after:l,changed_fields:p}),...await Se({path:_,scope:"project",op:"create:history",item_id:l.metadata.id,item_type:l.metadata.type,before:u,after:l,changed_fields:p})],wt({id:l.metadata.id,op:"create",item_type:l.metadata.type,status:l.metadata.status,current:Et(l.metadata,p),changed_fields:p})}finally{await S()}return A}async function qi(e,t){let n=Qn(await ya(e)),r=pt(process.cwd(),t.path);await va(r);let o=await Zt(r),a=Rt(o.schema),i=It(o.schema),d=lt(o,J()),l=await Ua(n,t,r,o,d);n=l.resolvedOptions;let{typeDefinition:u,type:f,createMode:p}=l,y=er(n.unset,i),{explicitUnsets:h,clearOptionKeys:E}=La(n,y);Da(n,y),$a(n);let b=wa(u,n,p,E),_=rt(),S=Dt(v(n.author),o.author_default),A=tr(n.dep,_,o.id_prefix,S),T=Ue("--comment",n.comment,_,S),z=Ue("--note",n.note,_,S),q=Ue("--learning",n.learning,_,S),O=oa(n.file),D=aa(n.test),de=ia(n.doc),le=sa(n.reminder,_),ue=ca(n.event,_),_r=pa(n.typeOption),fe=mt(f,_r.values,d),me=J(),Oe=St(me),pe=kt(n.field,me),B=Ct(n,i,f);Na(pe,B,y);let je=ar(fe.errors,f),gr=je.map(w=>`--type-option ${w}=<value>`),hr=[...new Set([...b,...gr,...B.missing_required_flags])].sort((w,Ee)=>w.localeCompare(Ee));Fa({combinedMissingFlags:hr,typeDefinition:u,missingRequiredCreateFlags:b,missingRequiredTypeOptionKeys:je,openStatus:a.open_status,type:f,createMode:p}),Ea(fe.errors,f,u,a);let I=await Aa({pmRoot:r,settings:o,typeRegistry:d,explicitId:n.id}),j=n.status!==void 0?ea(n.status,a):ta(u,a),wr=n.priority!==void 0?ba(n.priority):2,m=y.metadataKeys,Er=Oa(m,n),ye=F(m,"deadline",n.deadline,w=>k(w,new Date(_),"deadline")),br=F(m,"estimated_minutes",n.estimatedMinutes,w=>Yt(w,"estimated-minutes")),vr=g(m,"acceptance_criteria",n.acceptanceCriteria),Sr=g(m,"definition_of_ready",n.definitionOfReady),kr=ja(m,n),Tr=g(m,"goal",n.goal),xr=g(m,"objective",n.objective),Rr=g(m,"value",n.value),Ar=g(m,"impact",n.impact),Ir=g(m,"outcome",n.outcome),Cr=g(m,"why_now",n.whyNow),Kr=g(m,"assignee",n.assignee),Ur=m.has("author")?void 0:v(n.author)??S,Lr=g(m,"parent",n.parent),Ge=await Ta(Lr,n,m,r),_e=Ge.parent,Dr=Ge.parentSource,$r=g(m,"reviewer",n.reviewer),Nr=F(m,"risk",n.risk,w=>U(Tn(w),at,"risk")),Fr=F(m,"confidence",n.confidence,w=>Rn(w)),Or=n.allowMissingParent===!0&&o.validation.parent_reference==="strict_error"?"warn":o.validation.parent_reference,Me=o.validation.sprint_release_format,G=ka(f,I,ye,le.values,ue.values),Pe=await Ra({itemId:I,parent:_e,pmRoot:r,settings:o,typeRegistry:d,policy:Or});_e=Pe.parent,G.push(...Pe.warnings);let qe=Xn(m,"sprint",n.sprint,"sprint",Me),jr=qe.value;G.push(...qe.warnings);let Ve=Xn(m,"release",n.release,"release",Me),Gr=Ve.value;G.push(...Ve.warnings);let ze=g(m,"blocked_by",n.blockedBy),Be=await Ia({pmRoot:r,settings:o,typeRegistry:d,statusRegistry:a,blockedBy:ze,dependencyValues:A.values,status:j,statusExplicit:n.status!==void 0,nowValue:_,author:S}),Ye=Be.dependencyValues;Mn(I,Ye),j=Be.status;let Mr=g(m,"blocked_reason",n.blockedReason),Pr=g(m,"unblock_note",n.unblockNote),qr=g(m,"reporter",n.reporter),Vr=F(m,"severity",n.severity,w=>U(xn(w),it,"severity")),zr=g(m,"environment",n.environment),Br=g(m,"repro_steps",n.reproSteps),We=g(m,"resolution",n.resolution),Yr=g(m,"expected_result",n.expectedResult),Wr=g(m,"actual_result",n.actualResult),Jr=g(m,"affected_version",n.affectedVersion),Hr=g(m,"fixed_version",n.fixedVersion),Xr=g(m,"component",n.component),Zr=F(m,"regression",n.regression,w=>An(w)),Qr=g(m,"customer_impact",n.customerImpact),ge=dr(n.title,"--title"),he=n.description??"",Y=n.body??"",Je=await Re({title:ge,description:he,body:Y},{pmRoot:r,mode:o.governance.duplicate_detection_mode,threshold:o.governance.duplicate_detection_threshold,limit:o.governance.duplicate_detection_limit,allowDuplicate:n.allowDuplicate});G.push(...ln(Je));let we=Ga(j,a,o,n,We,_),eo=we.closeReason,to=j===a.close_status?_:void 0,no=we.completedAt;G.push(...we.warnings);let W=Kt({id:I,title:ge,description:he,type:f,type_options:fe.normalized,status:j,closed_at:to,completed_at:no,close_reason:eo,priority:wr,tags:Er,created_at:_,updated_at:_,deadline:ye,assignee:Kr,author:Ur,estimated_minutes:br,acceptance_criteria:vr,definition_of_ready:Sr,order:kr,goal:Tr,objective:xr,value:Rr,impact:Ar,outcome:Ir,why_now:Cr,parent:_e,reviewer:$r,risk:Nr,confidence:Fr,sprint:jr,release:Gr,blocked_by:ze,blocked_reason:Mr,unblock_note:Pr,reporter:qr,severity:Vr,environment:zr,repro_steps:Br,resolution:We,expected_result:Yr,actual_result:Wr,affected_version:Jr,fixed_version:Hr,component:Xr,regression:Zr,customer_impact:Qr,dependencies:Ye,comments:T.values,notes:z.values,learnings:q.values,files:O.values,tests:D.values,docs:de.values,reminders:le.values,events:ue.values,...pe,...B.values});try{Tt(W,me)}catch(w){throw new c(w instanceof Error?w.message:"Invalid extension item field values",s.USAGE)}let ro=Lt({metadata:W,body:Y},{schema:o.schema,extensionFieldNames:Oe}),oo={metadata:{},body:""},He=[...h].sort((w,Ee)=>w.localeCompare(Ee)),ao=rr(n.message,He),Xe=da(W,Y,He,[...Object.keys(pe),...Object.keys(B.values??{})]),io=await Ma({pmRoot:r,type:f,id:I,settings:o,typeRegistry:d,author:S,extensionFieldNames:Oe,afterDocument:ro,beforeDocument:oo,historyMessage:ao,changedFields:Xe,nowValue:_,similarityCandidate:{title:ge,description:he,body:Y},allowDuplicate:n.allowDuplicate}),so=structuredClone(W),co=Un(I,f,j,a);return yr(f,ye,le.values,ue.values)&&Te(`[pm] warning: ${f} '${I}' has no deadline/reminder/event \u2014 it will not appear on the calendar. Add one via 'pm update ${I} --deadline <ISO>' or 'pm update ${I} --event "start=<ISO>,end=<ISO>"'.`),{item:so,changed_fields:Xe,warnings:[...G,...io],...Object.fromEntries([["parent_source",Dr],["next_transition",co],["similarity_advisory",Je]].filter(w=>w[1]!==void 0))}}var Vi={buildHistoryMessage:rr,buildInvalidLogSeedKeysMessage:Qo,buildTypeSpecificCreateExample:Fe,collectMissingRequiredTypeOptionKeys:ar,createExampleTokensForFlag:cr,filterNonMissingTypeOptionErrors:ir,hasTemplatesShowHandler:fr,hasCreateOptionValue:Ne,loadCreateTemplateOptionsFromRuntime:pr,looksLikeStructuredEntry:ce,mergeCreateOptionsWithTemplate:lr,normalizeCreatePolicyOptionKey:De,normalizeDependencyKindInput:nr,parseDependencies:tr,normalizeExtensionCommandPath:ur,parseCreateUnsetTargets:er,requireStringOption:dr,readTemplateOptionsFromRuntimeResult:mr,resolveRuntimeCreateUnsetDefinition:(e,t)=>Ie(e,"create",t),typeOptionExampleValue:sr};export{Tn as a,xn as b,Rn as c,An as d,In as e,C as f,Cn as g,K as h,Kn as i,U as j,Yn as k,Wn as l,Jn as m,Gn as n,Mn as o,pn as p,yn as q,_n as r,ne as s,re as t,Q as u,hn as v,wn as w,En as x,bn as y,oe as z,Ae as A,vn as B,Sn as C,kn as D,ei as E,Uo as F,Lo as G,Dn as H,$n as I,Ie as J,Ue as K,oa as L,aa as M,ia as N,dr as O,qi as P,Vi as Q};
5
- //# sourceMappingURL=chunk-HWRRMBJO.js.map
5
+ //# sourceMappingURL=chunk-7MXHZHSQ.js.map
@@ -1,2 +1,2 @@
1
- import{a as Z}from"./chunk-VN5VITU3.js";import{a as X}from"./chunk-HNFD72UK.js";import{a as m}from"./chunk-FB7G2HY2.js";import{u as y}from"./chunk-RKAVWO3O.js";import{a as R,b as A,c as S,d as T,n as q,r as Y}from"./chunk-A62CYISG.js";import{a as L,b as j,c as z,d as B,e as G,k as $}from"./chunk-42E7YPLG.js";import{k as H}from"./chunk-M72BKL5Q.js";import{A as d,Af as W,C as l,Cb as N,Da as U,Ea as E,H as k,La as M,Lc as K,Nc as O,Oa as C,Pc as D,R as v,V as I,Vc as F,ad as V,b as w,lc as P,zd as x}from"./chunk-GE4KCSZP.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="61fe3a97-39e6-53de-8663-8e70d931a2d4")}catch{}})();var Q=1,g="update-many",fe=new Set(["author","message","force","ownershipMetadataBypass","ownershipDependencyBypass"]),me=["--status","--priority","--type","--tags","--description","--body","--deadline","--estimate","--assignee","--dep","--dep-remove","--comment","--note","--learning","--file","--test","--doc","--replace-deps","--replace-tests","--replace-files","--replace-docs","--unset","--clear-*"].join(", "),ye={title:"title",description:"description",body:"body",status:"status",closeReason:"close_reason",priority:"priority",type:"type",deadline:"deadline",estimatedMinutes:"estimated_minutes",acceptanceCriteria:"acceptance_criteria",definitionOfReady:"definition_of_ready",order:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",whyNow:"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blockedBy:"blocked_by",blockedReason:"blocked_reason",unblockNote:"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",reproSteps:"repro_steps",resolution:"resolution",expectedResult:"expected_result",actualResult:"actual_result",affectedVersion:"affected_version",fixedVersion:"fixed_version",component:"component",regression:"regression",customerImpact:"customer_impact"},_e=[{field:"dependencies",addKey:"dep",removeKey:"depRemove",clearKey:"clearDeps",replaceKey:"replaceDeps"},{field:"comments",addKey:"comment",clearKey:"clearComments"},{field:"notes",addKey:"note",clearKey:"clearNotes"},{field:"learnings",addKey:"learning",clearKey:"clearLearnings"},{field:"files",addKey:"file",clearKey:"clearFiles",replaceKey:"replaceFiles"},{field:"tests",addKey:"test",clearKey:"clearTests",replaceKey:"replaceTests"},{field:"docs",addKey:"doc",clearKey:"clearDocs",replaceKey:"replaceDocs"},{field:"reminders",addKey:"reminder",clearKey:"clearReminders"},{field:"events",addKey:"event",clearKey:"clearEvents"},{field:"type_options",addKey:"typeOption",clearKey:"clearTypeOptions"}],ge={close_reason:"close_reason","close-reason":"close_reason",deadline:"deadline",estimate:"estimated_minutes",estimated_minutes:"estimated_minutes","estimated-minutes":"estimated_minutes",acceptance_criteria:"acceptance_criteria","acceptance-criteria":"acceptance_criteria",ac:"acceptance_criteria",definition_of_ready:"definition_of_ready","definition-of-ready":"definition_of_ready",order:"order",rank:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",why_now:"why_now","why-now":"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blocked_by:"blocked_by","blocked-by":"blocked_by",blocked_reason:"blocked_reason","blocked-reason":"blocked_reason",unblock_note:"unblock_note","unblock-note":"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",repro_steps:"repro_steps","repro-steps":"repro_steps",resolution:"resolution",expected_result:"expected_result","expected-result":"expected_result",actual_result:"actual_result","actual-result":"actual_result",affected_version:"affected_version","affected-version":"affected_version",fixed_version:"fixed_version","fixed-version":"fixed_version",component:"component",regression:"regression",customer_impact:"customer_impact","customer-impact":"customer_impact",type_options:"type_options","type-options":"type_options",tags:"tags"},h=e=>{let t={};for(let[n,i]of Object.entries(e))fe.has(n)||i!==void 0&&(t[n]=i);return t},ee=e=>Object.keys(h(e)).length>0,te=e=>typeof e=="string"?e.trim():e,he=e=>{let t=String(e).trim(),n=Number(t);return Number.isInteger(n)?n:t},_=e=>{let t=String(e).trim(),n=Number(t);return Number.isFinite(n)?n:t},be=e=>{let t=String(e).trim().toLowerCase();return new Map([["true",!0],["1",!0],["false",!1],["0",!1]]).get(t)??te(e)},we={priority:he,estimatedMinutes:_,order:_,rank:_,regression:be},ne=(e,t)=>{if(t!==void 0)return(we[e]??te)(t)},oe=e=>{let t=e.trim().toLowerCase().replaceAll("-","_");return ge[t]??t},f=(e,t)=>N(e,t),ie=(e,t)=>t!==void 0?t:e==="type_options"?{}:[],se=(e,t)=>Array.isArray(t)?t.length:e==="type_options"&&t&&typeof t=="object"?Object.keys(t).length:0,ke=e=>e.replace?"replace":e.clear?"clear_or_reset":e.removeCount>0?"merge_remove":"append",J=(e,t)=>t===void 0?void 0:e[t],p=e=>Array.isArray(e)?e.length:0,ve=(e,t,n)=>{let i=n[e.addKey],o=J(n,e.removeKey),r=p(i),s=p(o),a=n[e.clearKey]===!0,c=J(n,e.replaceKey)===!0;if(![a,c,r>0,s>0].includes(!0))return;let u=ie(e.field,t[e.field]);return{field:e.field,before:u,after:{operation:ke({replace:c,clear:a,removeCount:s}),clear:a,replace:c,add_count:r,remove_count:s,before_count:se(e.field,u)}}},re=(e,t)=>{let n=[];for(let i of _e){let o=ve(i,e,t);o!==void 0&&n.push(o)}return n},ae=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):[],ce=(e,t)=>{if(![t.tags!==void 0,p(t.addTags)>0,p(t.removeTags)>0].includes(!0))return;let n=ae(e.tags),i=t.tags===void 0?n:L(t.tags),o=B(i,t.addTags),r=G(o,t.removeTags).slice().sort((a,c)=>a.localeCompare(c)),s=n.slice().sort((a,c)=>a.localeCompare(c));if(!f(s,r))return{field:"tags",before:n,after:r}},Ie=(e,t)=>{let n=e.acceptance_criteria,i=t.acceptanceCriteria===void 0?n:String(t.acceptanceCriteria).trim(),o=z(j(i),t.addAc,t.removeAc),r=o.unmatchedRemovals.map(a=>`remove_ac_unmatched:${a}`),s=o.criteria.join("; ");return f(n,s)||n===void 0&&s===""?{warnings:r}:{change:{field:"acceptance_criteria",before:n,after:s},warnings:r}},Re=(e,t,n)=>{for(let[i,o]of Object.entries(ye)){let r=n[i];if(r===void 0)continue;let s=t[o],a=ne(i,r);f(s,a)||e.push({field:o,before:s,after:a})}},Ae=(e,t,n,i)=>{let o=F(n,i,["update_many"]);for(let[r,s]of Object.entries(o)){let a=t[r];f(a,s)||e.push({field:r,before:a,after:s})}},Se=(e,t,n)=>{for(let i of n??[]){let o=oe(i),r=t[o];r!==void 0&&e.push({field:o,before:r,after:null})}},de=(e,t,n={})=>{let i=e,o=[],r=[],s=ce(i,n);if(s&&o.push(s),Re(o,i,n),p(n.addAc)>0||p(n.removeAc)>0){let a=Ie(i,n),c=o.filter(u=>u.field!=="acceptance_criteria");o.splice(0,o.length,...c),a.change!==void 0&&o.push(a.change),r.push(...a.warnings)}return o.push(...re(i,n)),Ae(o,i,n,t),Se(o,i,n.unset),{id:e.id,changes:o,...r.length>0?{warnings:r}:{}}},le=(e,t)=>Y(e,t,{strict:!0,flagLabel:"--filter-status"}),ue=e=>{if(e?.ids!=null&&String(e.ids).trim().length===0)throw new l("--ids requires at least one non-empty item ID",d.USAGE)},Te=[({update:e})=>{e.priority!==void 0&&q(e.priority)},({update:e,settings:t,pmRoot:n})=>{if(e.type===void 0)return;let i=U(t,P());if(!E(e.type,i))throw new l(H(e.type,i.types,K(n,t.schema)),d.USAGE)},({update:e,statusRegistry:t})=>{if(e.status!==void 0&&!V(e.status,t)){let n=t.definitions.map(i=>i.id);throw new l(`Invalid --status value "${e.status}". Allowed: ${n.join(", ")}`,d.USAGE)}},({update:e})=>{e.deadline!==void 0&&I(e.deadline,new Date,"deadline")},({update:e})=>{e.estimatedMinutes!==void 0&&$(e.estimatedMinutes,"estimated-minutes")}],pe=(e,t,n,i)=>{let o={update:e,settings:t,statusRegistry:n,pmRoot:i};for(let r of Te)r(o)},Ue=async e=>{let t=await S(e.pmRoot,g,e.rollbackId,Q),n=e.options.update?.message??`Rollback update-many checkpoint ${t.id}`,i=await T(t.items,(o,r)=>X(o,r,{author:e.options.update?.author,message:n,force:e.options.update?.force??!0},e.global));return{mode:"rollback",matched_count:t.items.length,dry_run:!1,rollback_checkpoint_id:t.id,checkpoint:{id:t.id,created_at:t.created_at,path:t.path,rollback_command:`pm update-many --rollback ${t.id}`},restored_count:i.restored_ids.length,failed_count:i.failed_count,rows:i.rows,ids:i.restored_ids}},Ee=async e=>{let t={schema_version:Q,id:e.checkpointId,created_at:e.nowValue,author:x(e.options.update?.author,"unknown"),status_filter:e.statusFilter??null,list_filters:e.filters,update_options:e.updateSummary,items:e.checkpointItems},n=await A(e.pmRoot,g,e.checkpointId,t);return{id:e.checkpointId,created_at:e.nowValue,path:n,rollback_command:`pm update-many --rollback ${e.checkpointId}`}},Me=(e,t)=>{if(e==null)return;let n=[...new Set(String(e).split(",").map(o=>o.trim()).filter(o=>o.length>0))],i=new Set(t.map(o=>o.id));return n.filter(o=>!i.has(o))},b=e=>e.unmatchedIds===void 0?{}:{unmatched_ids:e.unmatchedIds,unmatched_count:e.unmatchedIds.length},Ce=async e=>{let t=M(process.cwd(),e.path);if(!await w(C(t)))throw new l(`Tracker is not initialized at ${t}. Run pm init first.`,d.NOT_FOUND);let n=await W(t);return{pmRoot:t,settings:n,statusRegistry:O(n.schema),runtimeFieldRegistry:D(n.schema)}},Ne=e=>{if(e.options.dryRun===!0)throw new l("--dry-run cannot be combined with --rollback",d.USAGE);if(m(e.options.list,e.options.status))throw new l("Rollback mode does not accept filter options",d.USAGE);if(Object.keys(e.updateSummary).length>0)throw new l("Rollback mode does not accept update mutation flags",d.USAGE);return Ue({pmRoot:e.runtime.pmRoot,rollbackId:e.rollbackId,options:e.options,global:e.global})},Pe=async e=>{le(e.options.status,e.runtime.statusRegistry);let t=await y(void 0,{...e.options.list,status:e.options.status,compact:void 0,brief:void 0,fields:void 0,includeBody:!0,full:!0},e.global),n=t.items.map(o=>de(o,e.runtime.runtimeFieldRegistry,e.options.update)),i=e.options.list?.ids==null?[]:(await y(void 0,{ids:e.options.list.ids,noTruncate:!0,full:!0},e.global)).items;return{listed:t,planned:n,actionable:n.filter(o=>o.changes.length>0),updateSummary:e.updateSummary,unmatchedIds:Me(e.options.list?.ids,i)}},Ke=e=>({mode:"dry_run",matched_count:e.listed.items.length,dry_run:!0,filters:e.listed.filters,planned_update_options:e.updateSummary,item_plans:e.planned,ids:[],...b(e)}),Oe=e=>({mode:"apply",matched_count:e.listed.items.length,dry_run:!1,filters:e.listed.filters,planned_update_options:e.updateSummary,updated_count:0,skipped_count:e.listed.items.length,failed_count:0,rows:e.planned.map(t=>({id:t.id,status:"skipped",...t.warnings?{warnings:t.warnings}:{}})),ids:[],...b(e)}),De=async e=>{let t=[],n=[],i=e.options.update.message??`update-many apply ${e.checkpointId}`,o=new Map(e.plans.map(s=>[s.id,s])),r=new Set(e.plans.filter(s=>s.changes.length>0).map(s=>s.id));for(let s of e.items){if(!r.has(s.id)){let a=o.get(s.id)?.warnings;t.push({id:s.id,status:"skipped",...a?{warnings:a}:{}});continue}try{let a=await Z(s.id,{...e.options.update,message:i,runtimeFieldCommands:["update_many"]},e.global);t.push({id:s.id,status:"updated",changed_fields:a.changed_fields,warnings:a.warnings}),n.push(s.id)}catch(a){t.push({id:s.id,status:"failed",error:k(a)})}}return{rows:t,updatedIds:n}},Fe=async e=>{if(e.plan.actionable.length===0)return Oe(e.plan);let t=v(),n=R(g,t),i=new Set(e.plan.actionable.map(c=>c.id)),o=e.plan.listed.items.filter(c=>i.has(c.id)).map(c=>({id:c.id,target_updated_at:c.updated_at})),r=e.options.checkpoint===!1?void 0:await Ee({pmRoot:e.runtime.pmRoot,checkpointId:n,nowValue:t,options:e.options,statusFilter:e.options.status,filters:e.plan.listed.filters,updateSummary:e.plan.updateSummary,checkpointItems:o}),s=await De({items:e.plan.listed.items,plans:e.plan.planned,options:e.options,global:e.global,checkpointId:n}),a=c=>s.rows.filter(u=>u.status===c).length;return{mode:"apply",matched_count:e.plan.listed.items.length,dry_run:!1,filters:e.plan.listed.filters,planned_update_options:e.plan.updateSummary,...r?{checkpoint:r}:{},updated_count:a("updated"),skipped_count:a("skipped"),failed_count:a("failed"),rows:s.rows,ids:s.updatedIds,...b(e.plan)}},$e=async(e,t)=>{let n=await Ce(t),i=typeof e.rollback=="string"?e.rollback:void 0,o=h(e.update);if(ue(e.list),i!==void 0)return Ne({runtime:n,rollbackId:i,options:e,global:t,updateSummary:o});if(!ee(e.update))throw new l(`No update-many mutation flags provided. Add at least one mutation flag (for example: ${me}).`,d.USAGE);pe(e.update,n.settings,n.statusRegistry,n.pmRoot);let r=await Pe({options:e,global:t,runtime:n,updateSummary:o});return e.dryRun===!0?Ke(r):Fe({runtime:n,options:e,global:t,plan:r})},qe={assertPlannedUpdateValuesValid:pe,buildCollectionMutationPlans:re,buildPlannedItemDiff:de,buildTagMutationPlan:ce,collectionValueCount:se,hasAnyUpdateMutationInput:ee,hasListFilters:m,normalizeStatusFilter:le,normalizeCollectionBeforeValue:ie,normalizeExistingTags:ae,normalizeUnsetField:oe,rejectBlankIdsFilter:ue,sanitizeUpdateOptionsForSummary:h,toComparablePreviewValue:ne};export{$e as a,qe as b};
2
- //# sourceMappingURL=chunk-3FTILRJ2.js.map
1
+ import{a as Z}from"./chunk-ME2JJ4LA.js";import{a as X}from"./chunk-K44PYFXH.js";import{a as m}from"./chunk-FB7G2HY2.js";import{u as y}from"./chunk-NZ75GNSA.js";import{a as R,b as A,c as S,d as T,n as q,r as Y}from"./chunk-NG6OXIBR.js";import{a as L,b as j,c as z,d as B,e as G,k as $}from"./chunk-NYIGHWQY.js";import{k as H}from"./chunk-KZ4X3DGU.js";import{A as d,C as l,Cb as N,Da as U,Ea as E,H as k,La as M,Lc as K,Nc as O,Nf as W,Oa as C,Pc as D,R as v,V as I,Vc as F,ad as V,b as w,lc as P,zd as x}from"./chunk-D4FPS43D.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="61fe3a97-39e6-53de-8663-8e70d931a2d4")}catch{}})();var Q=1,g="update-many",fe=new Set(["author","message","force","ownershipMetadataBypass","ownershipDependencyBypass"]),me=["--status","--priority","--type","--tags","--description","--body","--deadline","--estimate","--assignee","--dep","--dep-remove","--comment","--note","--learning","--file","--test","--doc","--replace-deps","--replace-tests","--replace-files","--replace-docs","--unset","--clear-*"].join(", "),ye={title:"title",description:"description",body:"body",status:"status",closeReason:"close_reason",priority:"priority",type:"type",deadline:"deadline",estimatedMinutes:"estimated_minutes",acceptanceCriteria:"acceptance_criteria",definitionOfReady:"definition_of_ready",order:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",whyNow:"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blockedBy:"blocked_by",blockedReason:"blocked_reason",unblockNote:"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",reproSteps:"repro_steps",resolution:"resolution",expectedResult:"expected_result",actualResult:"actual_result",affectedVersion:"affected_version",fixedVersion:"fixed_version",component:"component",regression:"regression",customerImpact:"customer_impact"},_e=[{field:"dependencies",addKey:"dep",removeKey:"depRemove",clearKey:"clearDeps",replaceKey:"replaceDeps"},{field:"comments",addKey:"comment",clearKey:"clearComments"},{field:"notes",addKey:"note",clearKey:"clearNotes"},{field:"learnings",addKey:"learning",clearKey:"clearLearnings"},{field:"files",addKey:"file",clearKey:"clearFiles",replaceKey:"replaceFiles"},{field:"tests",addKey:"test",clearKey:"clearTests",replaceKey:"replaceTests"},{field:"docs",addKey:"doc",clearKey:"clearDocs",replaceKey:"replaceDocs"},{field:"reminders",addKey:"reminder",clearKey:"clearReminders"},{field:"events",addKey:"event",clearKey:"clearEvents"},{field:"type_options",addKey:"typeOption",clearKey:"clearTypeOptions"}],ge={close_reason:"close_reason","close-reason":"close_reason",deadline:"deadline",estimate:"estimated_minutes",estimated_minutes:"estimated_minutes","estimated-minutes":"estimated_minutes",acceptance_criteria:"acceptance_criteria","acceptance-criteria":"acceptance_criteria",ac:"acceptance_criteria",definition_of_ready:"definition_of_ready","definition-of-ready":"definition_of_ready",order:"order",rank:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",why_now:"why_now","why-now":"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blocked_by:"blocked_by","blocked-by":"blocked_by",blocked_reason:"blocked_reason","blocked-reason":"blocked_reason",unblock_note:"unblock_note","unblock-note":"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",repro_steps:"repro_steps","repro-steps":"repro_steps",resolution:"resolution",expected_result:"expected_result","expected-result":"expected_result",actual_result:"actual_result","actual-result":"actual_result",affected_version:"affected_version","affected-version":"affected_version",fixed_version:"fixed_version","fixed-version":"fixed_version",component:"component",regression:"regression",customer_impact:"customer_impact","customer-impact":"customer_impact",type_options:"type_options","type-options":"type_options",tags:"tags"},h=e=>{let t={};for(let[n,i]of Object.entries(e))fe.has(n)||i!==void 0&&(t[n]=i);return t},ee=e=>Object.keys(h(e)).length>0,te=e=>typeof e=="string"?e.trim():e,he=e=>{let t=String(e).trim(),n=Number(t);return Number.isInteger(n)?n:t},_=e=>{let t=String(e).trim(),n=Number(t);return Number.isFinite(n)?n:t},be=e=>{let t=String(e).trim().toLowerCase();return new Map([["true",!0],["1",!0],["false",!1],["0",!1]]).get(t)??te(e)},we={priority:he,estimatedMinutes:_,order:_,rank:_,regression:be},ne=(e,t)=>{if(t!==void 0)return(we[e]??te)(t)},oe=e=>{let t=e.trim().toLowerCase().replaceAll("-","_");return ge[t]??t},f=(e,t)=>N(e,t),ie=(e,t)=>t!==void 0?t:e==="type_options"?{}:[],se=(e,t)=>Array.isArray(t)?t.length:e==="type_options"&&t&&typeof t=="object"?Object.keys(t).length:0,ke=e=>e.replace?"replace":e.clear?"clear_or_reset":e.removeCount>0?"merge_remove":"append",J=(e,t)=>t===void 0?void 0:e[t],p=e=>Array.isArray(e)?e.length:0,ve=(e,t,n)=>{let i=n[e.addKey],o=J(n,e.removeKey),r=p(i),s=p(o),a=n[e.clearKey]===!0,c=J(n,e.replaceKey)===!0;if(![a,c,r>0,s>0].includes(!0))return;let u=ie(e.field,t[e.field]);return{field:e.field,before:u,after:{operation:ke({replace:c,clear:a,removeCount:s}),clear:a,replace:c,add_count:r,remove_count:s,before_count:se(e.field,u)}}},re=(e,t)=>{let n=[];for(let i of _e){let o=ve(i,e,t);o!==void 0&&n.push(o)}return n},ae=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):[],ce=(e,t)=>{if(![t.tags!==void 0,p(t.addTags)>0,p(t.removeTags)>0].includes(!0))return;let n=ae(e.tags),i=t.tags===void 0?n:L(t.tags),o=B(i,t.addTags),r=G(o,t.removeTags).slice().sort((a,c)=>a.localeCompare(c)),s=n.slice().sort((a,c)=>a.localeCompare(c));if(!f(s,r))return{field:"tags",before:n,after:r}},Ie=(e,t)=>{let n=e.acceptance_criteria,i=t.acceptanceCriteria===void 0?n:String(t.acceptanceCriteria).trim(),o=z(j(i),t.addAc,t.removeAc),r=o.unmatchedRemovals.map(a=>`remove_ac_unmatched:${a}`),s=o.criteria.join("; ");return f(n,s)||n===void 0&&s===""?{warnings:r}:{change:{field:"acceptance_criteria",before:n,after:s},warnings:r}},Re=(e,t,n)=>{for(let[i,o]of Object.entries(ye)){let r=n[i];if(r===void 0)continue;let s=t[o],a=ne(i,r);f(s,a)||e.push({field:o,before:s,after:a})}},Ae=(e,t,n,i)=>{let o=F(n,i,["update_many"]);for(let[r,s]of Object.entries(o)){let a=t[r];f(a,s)||e.push({field:r,before:a,after:s})}},Se=(e,t,n)=>{for(let i of n??[]){let o=oe(i),r=t[o];r!==void 0&&e.push({field:o,before:r,after:null})}},de=(e,t,n={})=>{let i=e,o=[],r=[],s=ce(i,n);if(s&&o.push(s),Re(o,i,n),p(n.addAc)>0||p(n.removeAc)>0){let a=Ie(i,n),c=o.filter(u=>u.field!=="acceptance_criteria");o.splice(0,o.length,...c),a.change!==void 0&&o.push(a.change),r.push(...a.warnings)}return o.push(...re(i,n)),Ae(o,i,n,t),Se(o,i,n.unset),{id:e.id,changes:o,...r.length>0?{warnings:r}:{}}},le=(e,t)=>Y(e,t,{strict:!0,flagLabel:"--filter-status"}),ue=e=>{if(e?.ids!=null&&String(e.ids).trim().length===0)throw new l("--ids requires at least one non-empty item ID",d.USAGE)},Te=[({update:e})=>{e.priority!==void 0&&q(e.priority)},({update:e,settings:t,pmRoot:n})=>{if(e.type===void 0)return;let i=U(t,P());if(!E(e.type,i))throw new l(H(e.type,i.types,K(n,t.schema)),d.USAGE)},({update:e,statusRegistry:t})=>{if(e.status!==void 0&&!V(e.status,t)){let n=t.definitions.map(i=>i.id);throw new l(`Invalid --status value "${e.status}". Allowed: ${n.join(", ")}`,d.USAGE)}},({update:e})=>{e.deadline!==void 0&&I(e.deadline,new Date,"deadline")},({update:e})=>{e.estimatedMinutes!==void 0&&$(e.estimatedMinutes,"estimated-minutes")}],pe=(e,t,n,i)=>{let o={update:e,settings:t,statusRegistry:n,pmRoot:i};for(let r of Te)r(o)},Ue=async e=>{let t=await S(e.pmRoot,g,e.rollbackId,Q),n=e.options.update?.message??`Rollback update-many checkpoint ${t.id}`,i=await T(t.items,(o,r)=>X(o,r,{author:e.options.update?.author,message:n,force:e.options.update?.force??!0},e.global));return{mode:"rollback",matched_count:t.items.length,dry_run:!1,rollback_checkpoint_id:t.id,checkpoint:{id:t.id,created_at:t.created_at,path:t.path,rollback_command:`pm update-many --rollback ${t.id}`},restored_count:i.restored_ids.length,failed_count:i.failed_count,rows:i.rows,ids:i.restored_ids}},Ee=async e=>{let t={schema_version:Q,id:e.checkpointId,created_at:e.nowValue,author:x(e.options.update?.author,"unknown"),status_filter:e.statusFilter??null,list_filters:e.filters,update_options:e.updateSummary,items:e.checkpointItems},n=await A(e.pmRoot,g,e.checkpointId,t);return{id:e.checkpointId,created_at:e.nowValue,path:n,rollback_command:`pm update-many --rollback ${e.checkpointId}`}},Me=(e,t)=>{if(e==null)return;let n=[...new Set(String(e).split(",").map(o=>o.trim()).filter(o=>o.length>0))],i=new Set(t.map(o=>o.id));return n.filter(o=>!i.has(o))},b=e=>e.unmatchedIds===void 0?{}:{unmatched_ids:e.unmatchedIds,unmatched_count:e.unmatchedIds.length},Ce=async e=>{let t=M(process.cwd(),e.path);if(!await w(C(t)))throw new l(`Tracker is not initialized at ${t}. Run pm init first.`,d.NOT_FOUND);let n=await W(t);return{pmRoot:t,settings:n,statusRegistry:O(n.schema),runtimeFieldRegistry:D(n.schema)}},Ne=e=>{if(e.options.dryRun===!0)throw new l("--dry-run cannot be combined with --rollback",d.USAGE);if(m(e.options.list,e.options.status))throw new l("Rollback mode does not accept filter options",d.USAGE);if(Object.keys(e.updateSummary).length>0)throw new l("Rollback mode does not accept update mutation flags",d.USAGE);return Ue({pmRoot:e.runtime.pmRoot,rollbackId:e.rollbackId,options:e.options,global:e.global})},Pe=async e=>{le(e.options.status,e.runtime.statusRegistry);let t=await y(void 0,{...e.options.list,status:e.options.status,compact:void 0,brief:void 0,fields:void 0,includeBody:!0,full:!0},e.global),n=t.items.map(o=>de(o,e.runtime.runtimeFieldRegistry,e.options.update)),i=e.options.list?.ids==null?[]:(await y(void 0,{ids:e.options.list.ids,noTruncate:!0,full:!0},e.global)).items;return{listed:t,planned:n,actionable:n.filter(o=>o.changes.length>0),updateSummary:e.updateSummary,unmatchedIds:Me(e.options.list?.ids,i)}},Ke=e=>({mode:"dry_run",matched_count:e.listed.items.length,dry_run:!0,filters:e.listed.filters,planned_update_options:e.updateSummary,item_plans:e.planned,ids:[],...b(e)}),Oe=e=>({mode:"apply",matched_count:e.listed.items.length,dry_run:!1,filters:e.listed.filters,planned_update_options:e.updateSummary,updated_count:0,skipped_count:e.listed.items.length,failed_count:0,rows:e.planned.map(t=>({id:t.id,status:"skipped",...t.warnings?{warnings:t.warnings}:{}})),ids:[],...b(e)}),De=async e=>{let t=[],n=[],i=e.options.update.message??`update-many apply ${e.checkpointId}`,o=new Map(e.plans.map(s=>[s.id,s])),r=new Set(e.plans.filter(s=>s.changes.length>0).map(s=>s.id));for(let s of e.items){if(!r.has(s.id)){let a=o.get(s.id)?.warnings;t.push({id:s.id,status:"skipped",...a?{warnings:a}:{}});continue}try{let a=await Z(s.id,{...e.options.update,message:i,runtimeFieldCommands:["update_many"]},e.global);t.push({id:s.id,status:"updated",changed_fields:a.changed_fields,warnings:a.warnings}),n.push(s.id)}catch(a){t.push({id:s.id,status:"failed",error:k(a)})}}return{rows:t,updatedIds:n}},Fe=async e=>{if(e.plan.actionable.length===0)return Oe(e.plan);let t=v(),n=R(g,t),i=new Set(e.plan.actionable.map(c=>c.id)),o=e.plan.listed.items.filter(c=>i.has(c.id)).map(c=>({id:c.id,target_updated_at:c.updated_at})),r=e.options.checkpoint===!1?void 0:await Ee({pmRoot:e.runtime.pmRoot,checkpointId:n,nowValue:t,options:e.options,statusFilter:e.options.status,filters:e.plan.listed.filters,updateSummary:e.plan.updateSummary,checkpointItems:o}),s=await De({items:e.plan.listed.items,plans:e.plan.planned,options:e.options,global:e.global,checkpointId:n}),a=c=>s.rows.filter(u=>u.status===c).length;return{mode:"apply",matched_count:e.plan.listed.items.length,dry_run:!1,filters:e.plan.listed.filters,planned_update_options:e.plan.updateSummary,...r?{checkpoint:r}:{},updated_count:a("updated"),skipped_count:a("skipped"),failed_count:a("failed"),rows:s.rows,ids:s.updatedIds,...b(e.plan)}},$e=async(e,t)=>{let n=await Ce(t),i=typeof e.rollback=="string"?e.rollback:void 0,o=h(e.update);if(ue(e.list),i!==void 0)return Ne({runtime:n,rollbackId:i,options:e,global:t,updateSummary:o});if(!ee(e.update))throw new l(`No update-many mutation flags provided. Add at least one mutation flag (for example: ${me}).`,d.USAGE);pe(e.update,n.settings,n.statusRegistry,n.pmRoot);let r=await Pe({options:e,global:t,runtime:n,updateSummary:o});return e.dryRun===!0?Ke(r):Fe({runtime:n,options:e,global:t,plan:r})},qe={assertPlannedUpdateValuesValid:pe,buildCollectionMutationPlans:re,buildPlannedItemDiff:de,buildTagMutationPlan:ce,collectionValueCount:se,hasAnyUpdateMutationInput:ee,hasListFilters:m,normalizeStatusFilter:le,normalizeCollectionBeforeValue:ie,normalizeExistingTags:ae,normalizeUnsetField:oe,rejectBlankIdsFilter:ue,sanitizeUpdateOptionsForSummary:h,toComparablePreviewValue:ne};export{$e as a,qe as b};
2
+ //# sourceMappingURL=chunk-7ZPMJW4U.js.map
@@ -1,2 +1,2 @@
1
- import{a as V}from"./chunk-UP7DTVMD.js";import{c as N,f as W,g as q,h as z}from"./chunk-ZYHOB3SN.js";import{A as l,Ad as U,Af as x,C as d,Da as v,La as H,Mf as M,Nc as L,Oa as T,Of as G,R,Ze as A,af as I,b as k,bf as g,c as O,cf as C,ef as P,hf as S,jf as j,lc as B,uc as $,wc as D,zd as F}from"./chunk-GE4KCSZP.js";import X from"node:fs/promises";import Y from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7e0f84f6-9528-55c5-8976-6f85cd920486")}catch{}})();function oe(e,t,n){let r=new Set,o=[];for(let s of e){let i=s.trim();if(i.length===0||r.has(i))continue;r.add(i);let c=t.get(i);if(c===void 0){o.push({id:i,entries:0,selected:!1,skip_reason:"no_stream"});continue}if(c.entries<=n){o.push({id:i,entries:c.entries,selected:!1,skip_reason:"already_compact"});continue}o.push({id:i,entries:c.entries,selected:!0,skip_reason:null})}return o}function re(e,t){let n=[...e].sort((o,s)=>s.entries-o.entries||o.id.localeCompare(s.id)),r=[];for(let o of n){if(t.scope==="closed"&&o.bucket!=="closed"){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"scope_mismatch"});continue}if(o.entries<=t.minEntries){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"already_compact"});continue}if(t.allOver!==void 0&&o.entries<=t.allOver){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"below_threshold"});continue}r.push({id:o.id,entries:o.entries,selected:!0,skip_reason:null})}return r}function K(e,t){if(t.ids!==void 0&&t.ids.length>0){let n=new Map(e.map(r=>[r.id,r]));return oe(t.ids,n,t.minEntries)}return re(e,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c6609492-75a9-5111-b9b3-1b81908f3084")}catch{}})();function ne(e,t){if(e===void 0)return{kind:"default",raw:null,compactCount:t.length,retainedCount:0};let n=e.trim();if(n.length===0)throw new d("history-compact --before requires a non-empty value.",l.USAGE);if(/^\d+$/.test(n)){let s=Number.parseInt(n,10);if(!Number.isSafeInteger(s)||s<1||s>t.length+1)throw new d(`history-compact --before version must be between 1 and ${t.length+1}.`,l.USAGE);let i=Math.max(0,Math.min(t.length,s-1));return{kind:"version",raw:n,compactCount:i,retainedCount:t.length-i}}let r=Date.parse(n);if(!Number.isFinite(r))throw new d(`Invalid history-compact --before value "${e}". Use a version number or ISO timestamp.`,l.USAGE);let o=0;for(let[s,i]of t.entries()){let c=Date.parse(i.ts);if(!Number.isFinite(c))throw new d(`History for this item contains invalid timestamp at entry ${s+1}.`,l.GENERIC_FAILURE);if(c>=r)break;o+=1}return{kind:"timestamp",raw:n,compactCount:o,retainedCount:t.length-o}}function ie(e,t){let n=I(),r=I();for(let o=0;o<e.length;o+=1){let s=e[o];if(g(n)!==s.before_hash)throw new d(`history-compact detected before-hash drift at entry ${o+1}; run pm history-repair first.`,l.CONFLICT);if(n=N(n,s.patch,o+1,s.op),g(n)!==s.after_hash)throw new d(`history-compact detected after-hash drift at entry ${o+1}; run pm history-repair first.`,l.CONFLICT);o+1===t&&(r=structuredClone(n))}return{checkpoint:r,finalReplay:n}}function se(e,t,n){let r=structuredClone(t),o=[];for(let[s,i]of e.entries()){let c=g(r);r=N(r,i.patch,n+s+1,i.op),o.push({...i,before_hash:c,after_hash:g(r)})}return{entries:o,finalReplay:r}}async function ce(e,t,n){let r=e.located?await M(e.located,{schema:t.schema}):null;return r?{loadedItem:r,currentItemRawBeforeLock:r.raw,matchedChainBefore:g(P(r.document))===n[n.length-1]?.after_hash}:{loadedItem:null,currentItemRawBeforeLock:null,matchedChainBefore:null}}function ae(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:t.raw===null?`history-compact compacted full stream (${t.compactCount} entr${t.compactCount===1?"y":"ies"}).`:`history-compact compacted ${t.compactCount} entr${t.compactCount===1?"y":"ies"} before ${t.raw}.`}function le(e){return e.raw===null?`history-compact baseline snapshot after compacting ${e.compactCount} entr${e.compactCount===1?"y":"ies"}.`:`history-compact baseline snapshot before ${e.raw}.`}function de(e){if(!e.changed)return{rewrittenEntries:e.historyEntries,baselineEntryAdded:!1,auditEntryAdded:!1};let{checkpoint:t,finalReplay:n}=ie(e.historyEntries,e.boundary.compactCount),r=e.historyEntries.slice(e.boundary.compactCount),o=se(r,t,e.boundary.compactCount),i=[A({nowIso:R(),author:e.author,op:"history_compact_baseline",before:C(I()),after:C(t),message:le(e.boundary)}),...o.entries];return e.dryRun||i.push(A({nowIso:R(),author:e.author,op:"history_compact",before:C(n),after:C(n),message:ae(e.options,e.boundary)})),{rewrittenEntries:i,baselineEntryAdded:!0,auditEntryAdded:!e.dryRun}}async function ue(e){return q({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:"history-compact",author:e.author,force:e.force,itemDocument:e.loadedItem?.document??null,applyRewrite:async({historyRawUnderLock:t})=>W({historyPath:e.historyPath,nextHistoryRaw:j(e.rewrittenEntries),historyRawUnderLock:t}),applyPostRewrite:async()=>$({path:e.historyPath,scope:"project",op:"history_compact:history"})})}async function fe(e,t,n){let r=H(process.cwd(),n.path);if(!await k(T(r)))throw new d(`Tracker is not initialized at ${r}. Run pm init first.`,l.NOT_FOUND);let o=await x(r),s=v(o,B()),i=await z(r,e,o,s.type_to_folder),c=i.historyPath,y=await O(c);if(y===null)throw new d(`No history stream exists for ${i.id}.`,l.NOT_FOUND);let a=await U(c,i.id);if(a.length===0)throw new d(`No history entries exist for ${i.id}; nothing to compact.`,l.USAGE);let h=S(a);if(!h.ok)throw new d(`history-compact requires a valid history chain (${h.errors.join(", ")}). Run pm history-repair ${i.id} first.`,l.CONFLICT);let u=ne(t.before,a),f=u.compactCount>0,w=!!t.dryRun,b=F(t.author,o.author_default),m=[];f||m.push("history_compact_noop_before_boundary");let _=await ce(i,o,a);_.matchedChainBefore===!1&&m.push("history_compact_item_chain_mismatch");let{rewrittenEntries:p,baselineEntryAdded:J,auditEntryAdded:Q}=de({historyEntries:a,boundary:u,changed:f,dryRun:w,author:b,options:t}),E=S(p);if(!E.ok)throw new d(`history-compact produced an invalid rewritten chain (${E.errors.join(", ")}).`,l.GENERIC_FAILURE);f&&!w&&m.push(...await ue({pmRoot:r,subject:i,settings:o,typeRegistry:s,historyRawBeforeLock:y,currentItemRawBeforeLock:_.currentItemRawBeforeLock,author:b,force:t.force,loadedItem:_.loadedItem,historyPath:c,rewrittenEntries:p}));let Z=u.retainedCount>0?u.compactCount+1:null;return{id:i.id,dry_run:w,changed:f,compact_boundary:{kind:u.kind,before:u.raw,entries_compacted:u.compactCount,entries_retained:u.retainedCount,first_retained_entry:Z},history:{path:c,entries_scanned:a.length,entries_after:p.length,baseline_entry_added:J,audit_entry_added:Q,verify_ok:E.ok,verify_errors:E.errors},item:{exists:i.located!==null,path:i.located?.itemPath??null,matched_chain_before:_.matchedChainBefore},warnings:[...new Set(m)].sort((ee,te)=>ee.localeCompare(te)),generated_at:R()}}var he=3;function Pe(e,t){let n=t.ids!==void 0&&t.ids.length>0,r=t.allOver!==void 0||t.scope!==void 0;if((e!==void 0?1:0)+(n?1:0)+(r?1:0)===0)throw new d("history-compact: provide an item <id>, or a bulk selector (--ids, --all-over <N>, --closed, or --all-streams).",l.USAGE);if(e!==void 0&&(n||r))throw new d("history-compact: <id> and bulk selectors (--ids/--all-over/--closed/--all-streams) are mutually exclusive; pass one item id, or use bulk mode without a positional id.",l.USAGE);if(n&&r)throw new d("history-compact: --ids is mutually exclusive with --all-over/--closed/--all-streams; pass an explicit id list or a scan selector, not both.",l.USAGE)}function me(e){let t=0;for(let n of e.split(/\r?\n/))n.trim().length>0&&(t+=1);return t}async function pe(e){let t=L(e.settings.schema),n=V(t),r=await G(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),o=new Map(r.map(a=>[a.id,n.classify(a.status)])),s=Y.join(e.pmRoot,"history"),i=[],c=[];if(!await k(s))return{candidates:i,preselectionErrors:c};let y=(await X.readdir(s)).filter(a=>a.endsWith(".jsonl")).sort((a,h)=>a.localeCompare(h));for(let a of y){let h=Y.join(s,a),u=a.slice(0,-6);try{let f=await X.readFile(h,"utf8");await D({path:h,scope:"project"}),i.push({id:u,entries:me(f),bucket:o.get(u)??null})}catch(f){c.push({id:u,outcome:"errored",entries_before:0,entries_after:null,skip_reason:null,changed:!1,error:f instanceof Error?f.message:String(f)})}}return{candidates:i,preselectionErrors:c}}async function ye(e){if(!e.row.selected)return{selected:!1,compacted:!1,errored:!1,result:{id:e.row.id,outcome:"skipped",entries_before:e.row.entries,entries_after:null,skip_reason:e.row.skip_reason,changed:!1,error:null}};try{let t=await fe(e.row.id,{dryRun:e.dryRun,author:e.options.author,message:e.options.message,force:e.options.force},e.global);return{selected:!0,compacted:!0,errored:!1,result:{id:e.row.id,outcome:"compacted",entries_before:e.row.entries,entries_after:t.history.entries_after,skip_reason:null,changed:t.changed,error:null}}}catch(t){return{selected:!0,compacted:!1,errored:!0,result:{id:e.row.id,outcome:"errored",entries_before:e.row.entries,entries_after:null,skip_reason:null,changed:!1,error:t instanceof Error?t.message:String(t)}}}}async function je(e,t){let n=H(process.cwd(),t.path);if(!await k(T(n)))throw new d(`Tracker is not initialized at ${n}. Run pm init first.`,l.NOT_FOUND);let r=await x(n),o=v(r,B()),{candidates:s,preselectionErrors:i}=await pe({pmRoot:n,settings:r,typeToFolder:o.type_to_folder}),c=e.ids!==void 0&&e.ids.length>0?"ids":"scan",y=e.minEntries??he,a=r.history.compact_policy,h=c==="scan"&&e.allOver===void 0&&a.enabled,u=e.allOver??(h?a.max_entries:void 0),f=K(s,{ids:e.ids,scope:e.scope,minEntries:y,allOver:u}),w=!!e.dryRun,b=[...i],m={streams_considered:s.length+i.length,selected:0,items_compacted:0,items_skipped:0,items_errored:i.length};for(let _ of f){let p=await ye({row:_,options:e,dryRun:w,global:t});if(b.push(p.result),!p.selected){m.items_skipped+=1;continue}m.selected+=1,p.compacted&&(m.items_compacted+=1),p.errored&&(m.items_errored+=1)}return{bulk:!0,dry_run:w,mode:c,scope:e.scope??null,criteria:{min_entries:y,all_over:u??null,policy_threshold_applied:h},totals:m,results:b,generated_at:R()}}export{fe as a,he as b,Pe as c,je as d};
2
- //# sourceMappingURL=chunk-2WFXWAYX.js.map
1
+ import{a as V}from"./chunk-H7KGWPDF.js";import{c as N,f as W,g as q,h as z}from"./chunk-PD3225AM.js";import{$f as G,A as l,Ad as U,C as d,Da as v,La as H,Nc as L,Nf as x,Oa as T,R,Zf as M,b as k,c as O,jf as A,lc as B,mf as I,nf as g,of as C,qf as P,tf as S,uc as $,vf as j,wc as D,zd as F}from"./chunk-D4FPS43D.js";import X from"node:fs/promises";import Y from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7e0f84f6-9528-55c5-8976-6f85cd920486")}catch{}})();function oe(e,t,n){let r=new Set,o=[];for(let s of e){let i=s.trim();if(i.length===0||r.has(i))continue;r.add(i);let c=t.get(i);if(c===void 0){o.push({id:i,entries:0,selected:!1,skip_reason:"no_stream"});continue}if(c.entries<=n){o.push({id:i,entries:c.entries,selected:!1,skip_reason:"already_compact"});continue}o.push({id:i,entries:c.entries,selected:!0,skip_reason:null})}return o}function re(e,t){let n=[...e].sort((o,s)=>s.entries-o.entries||o.id.localeCompare(s.id)),r=[];for(let o of n){if(t.scope==="closed"&&o.bucket!=="closed"){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"scope_mismatch"});continue}if(o.entries<=t.minEntries){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"already_compact"});continue}if(t.allOver!==void 0&&o.entries<=t.allOver){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"below_threshold"});continue}r.push({id:o.id,entries:o.entries,selected:!0,skip_reason:null})}return r}function K(e,t){if(t.ids!==void 0&&t.ids.length>0){let n=new Map(e.map(r=>[r.id,r]));return oe(t.ids,n,t.minEntries)}return re(e,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c6609492-75a9-5111-b9b3-1b81908f3084")}catch{}})();function ne(e,t){if(e===void 0)return{kind:"default",raw:null,compactCount:t.length,retainedCount:0};let n=e.trim();if(n.length===0)throw new d("history-compact --before requires a non-empty value.",l.USAGE);if(/^\d+$/.test(n)){let s=Number.parseInt(n,10);if(!Number.isSafeInteger(s)||s<1||s>t.length+1)throw new d(`history-compact --before version must be between 1 and ${t.length+1}.`,l.USAGE);let i=Math.max(0,Math.min(t.length,s-1));return{kind:"version",raw:n,compactCount:i,retainedCount:t.length-i}}let r=Date.parse(n);if(!Number.isFinite(r))throw new d(`Invalid history-compact --before value "${e}". Use a version number or ISO timestamp.`,l.USAGE);let o=0;for(let[s,i]of t.entries()){let c=Date.parse(i.ts);if(!Number.isFinite(c))throw new d(`History for this item contains invalid timestamp at entry ${s+1}.`,l.GENERIC_FAILURE);if(c>=r)break;o+=1}return{kind:"timestamp",raw:n,compactCount:o,retainedCount:t.length-o}}function ie(e,t){let n=I(),r=I();for(let o=0;o<e.length;o+=1){let s=e[o];if(g(n)!==s.before_hash)throw new d(`history-compact detected before-hash drift at entry ${o+1}; run pm history-repair first.`,l.CONFLICT);if(n=N(n,s.patch,o+1,s.op),g(n)!==s.after_hash)throw new d(`history-compact detected after-hash drift at entry ${o+1}; run pm history-repair first.`,l.CONFLICT);o+1===t&&(r=structuredClone(n))}return{checkpoint:r,finalReplay:n}}function se(e,t,n){let r=structuredClone(t),o=[];for(let[s,i]of e.entries()){let c=g(r);r=N(r,i.patch,n+s+1,i.op),o.push({...i,before_hash:c,after_hash:g(r)})}return{entries:o,finalReplay:r}}async function ce(e,t,n){let r=e.located?await M(e.located,{schema:t.schema}):null;return r?{loadedItem:r,currentItemRawBeforeLock:r.raw,matchedChainBefore:g(P(r.document))===n[n.length-1]?.after_hash}:{loadedItem:null,currentItemRawBeforeLock:null,matchedChainBefore:null}}function ae(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:t.raw===null?`history-compact compacted full stream (${t.compactCount} entr${t.compactCount===1?"y":"ies"}).`:`history-compact compacted ${t.compactCount} entr${t.compactCount===1?"y":"ies"} before ${t.raw}.`}function le(e){return e.raw===null?`history-compact baseline snapshot after compacting ${e.compactCount} entr${e.compactCount===1?"y":"ies"}.`:`history-compact baseline snapshot before ${e.raw}.`}function de(e){if(!e.changed)return{rewrittenEntries:e.historyEntries,baselineEntryAdded:!1,auditEntryAdded:!1};let{checkpoint:t,finalReplay:n}=ie(e.historyEntries,e.boundary.compactCount),r=e.historyEntries.slice(e.boundary.compactCount),o=se(r,t,e.boundary.compactCount),i=[A({nowIso:R(),author:e.author,op:"history_compact_baseline",before:C(I()),after:C(t),message:le(e.boundary)}),...o.entries];return e.dryRun||i.push(A({nowIso:R(),author:e.author,op:"history_compact",before:C(n),after:C(n),message:ae(e.options,e.boundary)})),{rewrittenEntries:i,baselineEntryAdded:!0,auditEntryAdded:!e.dryRun}}async function ue(e){return q({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:"history-compact",author:e.author,force:e.force,itemDocument:e.loadedItem?.document??null,applyRewrite:async({historyRawUnderLock:t})=>W({historyPath:e.historyPath,nextHistoryRaw:j(e.rewrittenEntries),historyRawUnderLock:t}),applyPostRewrite:async()=>$({path:e.historyPath,scope:"project",op:"history_compact:history"})})}async function fe(e,t,n){let r=H(process.cwd(),n.path);if(!await k(T(r)))throw new d(`Tracker is not initialized at ${r}. Run pm init first.`,l.NOT_FOUND);let o=await x(r),s=v(o,B()),i=await z(r,e,o,s.type_to_folder),c=i.historyPath,y=await O(c);if(y===null)throw new d(`No history stream exists for ${i.id}.`,l.NOT_FOUND);let a=await U(c,i.id);if(a.length===0)throw new d(`No history entries exist for ${i.id}; nothing to compact.`,l.USAGE);let h=S(a);if(!h.ok)throw new d(`history-compact requires a valid history chain (${h.errors.join(", ")}). Run pm history-repair ${i.id} first.`,l.CONFLICT);let u=ne(t.before,a),f=u.compactCount>0,w=!!t.dryRun,b=F(t.author,o.author_default),m=[];f||m.push("history_compact_noop_before_boundary");let _=await ce(i,o,a);_.matchedChainBefore===!1&&m.push("history_compact_item_chain_mismatch");let{rewrittenEntries:p,baselineEntryAdded:J,auditEntryAdded:Q}=de({historyEntries:a,boundary:u,changed:f,dryRun:w,author:b,options:t}),E=S(p);if(!E.ok)throw new d(`history-compact produced an invalid rewritten chain (${E.errors.join(", ")}).`,l.GENERIC_FAILURE);f&&!w&&m.push(...await ue({pmRoot:r,subject:i,settings:o,typeRegistry:s,historyRawBeforeLock:y,currentItemRawBeforeLock:_.currentItemRawBeforeLock,author:b,force:t.force,loadedItem:_.loadedItem,historyPath:c,rewrittenEntries:p}));let Z=u.retainedCount>0?u.compactCount+1:null;return{id:i.id,dry_run:w,changed:f,compact_boundary:{kind:u.kind,before:u.raw,entries_compacted:u.compactCount,entries_retained:u.retainedCount,first_retained_entry:Z},history:{path:c,entries_scanned:a.length,entries_after:p.length,baseline_entry_added:J,audit_entry_added:Q,verify_ok:E.ok,verify_errors:E.errors},item:{exists:i.located!==null,path:i.located?.itemPath??null,matched_chain_before:_.matchedChainBefore},warnings:[...new Set(m)].sort((ee,te)=>ee.localeCompare(te)),generated_at:R()}}var he=3;function Pe(e,t){let n=t.ids!==void 0&&t.ids.length>0,r=t.allOver!==void 0||t.scope!==void 0;if((e!==void 0?1:0)+(n?1:0)+(r?1:0)===0)throw new d("history-compact: provide an item <id>, or a bulk selector (--ids, --all-over <N>, --closed, or --all-streams).",l.USAGE);if(e!==void 0&&(n||r))throw new d("history-compact: <id> and bulk selectors (--ids/--all-over/--closed/--all-streams) are mutually exclusive; pass one item id, or use bulk mode without a positional id.",l.USAGE);if(n&&r)throw new d("history-compact: --ids is mutually exclusive with --all-over/--closed/--all-streams; pass an explicit id list or a scan selector, not both.",l.USAGE)}function me(e){let t=0;for(let n of e.split(/\r?\n/))n.trim().length>0&&(t+=1);return t}async function pe(e){let t=L(e.settings.schema),n=V(t),r=await G(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),o=new Map(r.map(a=>[a.id,n.classify(a.status)])),s=Y.join(e.pmRoot,"history"),i=[],c=[];if(!await k(s))return{candidates:i,preselectionErrors:c};let y=(await X.readdir(s)).filter(a=>a.endsWith(".jsonl")).sort((a,h)=>a.localeCompare(h));for(let a of y){let h=Y.join(s,a),u=a.slice(0,-6);try{let f=await X.readFile(h,"utf8");await D({path:h,scope:"project"}),i.push({id:u,entries:me(f),bucket:o.get(u)??null})}catch(f){c.push({id:u,outcome:"errored",entries_before:0,entries_after:null,skip_reason:null,changed:!1,error:f instanceof Error?f.message:String(f)})}}return{candidates:i,preselectionErrors:c}}async function ye(e){if(!e.row.selected)return{selected:!1,compacted:!1,errored:!1,result:{id:e.row.id,outcome:"skipped",entries_before:e.row.entries,entries_after:null,skip_reason:e.row.skip_reason,changed:!1,error:null}};try{let t=await fe(e.row.id,{dryRun:e.dryRun,author:e.options.author,message:e.options.message,force:e.options.force},e.global);return{selected:!0,compacted:!0,errored:!1,result:{id:e.row.id,outcome:"compacted",entries_before:e.row.entries,entries_after:t.history.entries_after,skip_reason:null,changed:t.changed,error:null}}}catch(t){return{selected:!0,compacted:!1,errored:!0,result:{id:e.row.id,outcome:"errored",entries_before:e.row.entries,entries_after:null,skip_reason:null,changed:!1,error:t instanceof Error?t.message:String(t)}}}}async function je(e,t){let n=H(process.cwd(),t.path);if(!await k(T(n)))throw new d(`Tracker is not initialized at ${n}. Run pm init first.`,l.NOT_FOUND);let r=await x(n),o=v(r,B()),{candidates:s,preselectionErrors:i}=await pe({pmRoot:n,settings:r,typeToFolder:o.type_to_folder}),c=e.ids!==void 0&&e.ids.length>0?"ids":"scan",y=e.minEntries??he,a=r.history.compact_policy,h=c==="scan"&&e.allOver===void 0&&a.enabled,u=e.allOver??(h?a.max_entries:void 0),f=K(s,{ids:e.ids,scope:e.scope,minEntries:y,allOver:u}),w=!!e.dryRun,b=[...i],m={streams_considered:s.length+i.length,selected:0,items_compacted:0,items_skipped:0,items_errored:i.length};for(let _ of f){let p=await ye({row:_,options:e,dryRun:w,global:t});if(b.push(p.result),!p.selected){m.items_skipped+=1;continue}m.selected+=1,p.compacted&&(m.items_compacted+=1),p.errored&&(m.items_errored+=1)}return{bulk:!0,dry_run:w,mode:c,scope:e.scope??null,criteria:{min_entries:y,all_over:u??null,policy_threshold_applied:h},totals:m,results:b,generated_at:R()}}export{fe as a,he as b,Pe as c,je as d};
2
+ //# sourceMappingURL=chunk-AGYNSNCI.js.map
@@ -0,0 +1,5 @@
1
+ import{C as kn,P as An,T as In,b as ln,d as un,f as fn,g as mn,qa as Nn}from"./chunk-LD77HJMQ.js";import{a as Gn,c as Un,i as me,j as zn,k as Hn,l as Wn}from"./chunk-TPXAXTCO.js";import{a as le,b as Mn,c as Fn,d as Tn,e as Dn,f as Pn,g as Ue,h as Ln,i as ue,j as qn,l as ze,m as jn,n as fe,o as On}from"./chunk-NE5VRDAI.js";import{g as Cn,k as Rn}from"./chunk-TPKN3S7S.js";import{b as pn}from"./chunk-FB7G2HY2.js";import{a as dn,e as V,f as hn,g as gn,h as bn,i as En,k as vn,l as Sn,r as xn,s as Ne,t as Ge,u as de}from"./chunk-NZ75GNSA.js";import{a as an,b as cn}from"./chunk-B4KLBBMN.js";import{a as yn,b as _n,c as wn}from"./chunk-H7KGWPDF.js";import{Ea as sn}from"./chunk-WOD3WWUN.js";import{C as Zt,D as ce,E as en,F as Le,G as qe,H as je,I as tn,M as nn,N as Oe,W as rn,e as Mt,f as Ft,r as re,v as Kt,w as Vt,x as Qt}from"./chunk-NG6OXIBR.js";import{a as De,b as zt}from"./chunk-VT3Z5G7D.js";import{a as ie}from"./chunk-K4KGEEBT.js";import{a as on}from"./chunk-A6KGKEWT.js";import{$f as ae,A as p,Ad as K,Af as $t,C as h,D as B,Da as P,E as Ie,Ec as Rt,Hf as Bt,I as ee,J as xt,Kd as Lt,Ke as Te,La as x,Md as qt,Na as It,Nc as L,Nf as M,Oa as R,Pa as Me,Pc as z,R as N,Ra as te,Rd as jt,Sd as ne,T as kt,Td as Ot,U as At,V as Ce,Vd as Nt,Xd as Gt,Xf as Yt,Y as Re,Yf as oe,Zf as se,_f as Xt,ad as Tt,b as A,c as $,cd as G,cg as Jt,d as Ae,f as Et,gd as Dt,jb as Ct,lc as I,rf as Ut,t as vt,v as St,wc as Fe,wf as Ht,yf as Wt,zd as Pt,zf as Pe}from"./chunk-D4FPS43D.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3a33af50-3d2c-57bb-884a-4d5394599ba2")}catch{}})();function Wi(e,t,n,r,i,o){if(e.seen.has(t))return"skip";if(e.cursorFound&&e.affected.length>=o)return"truncate";e.seen.add(t),e.parents.set(t,n.id);let s=n.depth+1;return e.queue.push({id:t,depth:s}),e.cursorFound?(e.affected.push({id:t,distance:s,path:Ji(r,t,e.parents)}),"continue"):(e.cursorFound=t===i,"skip")}function $i(e,t,n,r){let i=ne("graph impact",{root:e,direction:n,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(r)?r:"unbounded"});return{fingerprint:i,after:t.after===void 0?void 0:Nt(t.after,i)}}function Q(e,t,n){e.get(t).add(n)}function he(e){return new Map(e.map(t=>[t,new Set]))}function Bn(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function pe(e){if(Array.isArray(e))return e.map(n=>pe(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?pe(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,pe(r)]))}function $n(e){return JSON.stringify(pe(e))}function Bi(e,t,n,r){let i=[{id:e,expanded:!1}];for(;i.length>0;){let o=i.pop();if(o.expanded){r.push(o.id);continue}if(n.has(o.id))continue;n.add(o.id),i.push({id:o.id,expanded:!0});let s=[...t.get(o.id)].sort().reverse();for(let a of s)n.has(a)||i.push({id:a,expanded:!1})}}function Ki(e,t){let n=new Set,r=[];for(let i of e)n.has(i)||Bi(i,t,n,r);return r}function Vi(e,t){let n=new Set,r=[];for(let i of[...e].reverse()){if(n.has(i))continue;let o=[],s=[i];for(n.add(i);s.length>0;){let a=s.pop();o.push(a);for(let c of t.get(a))n.has(c)||(n.add(c),s.push(c))}r.push(o)}return Bn(r)}function Kn(e,t){let n=he(e);for(let[r,i]of t)for(let o of i)Q(n,o,r);return Vi(Ki(e,t),n)}function Qi(e,t){let n=he(e.nodes());for(let r of e.edges()){let i=t.require(r.kind);if(!i.ordering)continue;let o=(i.precedence??"source_before_target")==="source_before_target";Q(n,o?r.source:r.target,o?r.target:r.source)}return n}function Yi(e,t){let n=new Map(e.map(o=>[o,0]));for(let o of t.values())for(let s of o)n.set(s,n.get(s)+1);let r=e.filter(o=>n.get(o)===0).sort(),i=[];for(;r.length>0;){i.push(r);let o=[];for(let s of r)for(let a of t.get(s)){let c=n.get(a)-1;n.set(a,c),c===0&&o.push(a)}r=o.sort()}return i}function Xi(e,t){let n=new Map(e.map(s=>[s,0])),r=new Map;for(let s of e)for(let a of t.get(s)){if(!n.has(a))continue;let c=n.get(s)+1,d=r.get(a);(c>n.get(a)||c===n.get(a)&&(d===void 0||s.localeCompare(d)<0))&&(n.set(a,c),r.set(a,s))}let i=[...e].sort((s,a)=>n.get(a)-n.get(s)||s.localeCompare(a))[0],o=i===void 0?[]:[i];for(;o[0]!==void 0&&r.has(o[0]);)o.unshift(r.get(o[0]));return{depth:Object.fromEntries(n),path:o}}function Ji(e,t,n){let r=[t],i=t;for(;i!==e;)i=n.get(i),r.push(i);return r.reverse()}function ge(e,t={}){let n=t.registry??Ct(),r=[...e.nodes()],i=Qi(e,n),o=Yi(r,i),s=o.flat(),a=s.length===r.length,c=a?[]:Kn(r,i).filter(l=>l.length>1||i.get(l[0]).has(l[0])),d=Xi(s,i);return{exact:!0,acyclic:a,order:s,layers:o,frontier:o[0]??[],depth:d.depth,criticalPath:d.path,criticalPathLength:Math.max(0,d.path.length-1),cycles:c,provenance:{algorithm:"kahn-longest-path",edgeFamily:"ordering"}}}function Vn(e,t,n={}){let r=n.direction??"outgoing",i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=$i(t,n,r,i),c={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},d=0,l=0,u=!1,f=!1;e:for(let m=0;m<c.queue.length;m+=1){n.signal?.throwIfAborted();let g=c.queue[m];d+=1;let y=e.adjacency(g.id,{direction:r,kinds:n.kinds,signal:n.signal});if(l+=y.meta.inspectedEdges,g.depth>=i){y.value.some(w=>!c.seen.has(w))&&(u=!0);continue}for(let w of y.value)if(Wi(c,w,g,t,a,o)==="truncate"){u=!0,f=!0;break e}}if(!c.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:c.affected,exact:!0,truncated:u,...f?{nextCursor:Ot(s,c.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:d,inspectedEdges:l}}}function Qn(e){let t=[...e.nodes()],n=he(t),r=he(t);for(let c of e.edges())Q(n,c.source,c.target),Q(n,c.target,c.source),Q(r,c.source,c.target);let i=[],o=new Set;for(let c of t){if(o.has(c))continue;let d=[],l=[c];for(o.add(c);l.length>0;){let u=l.pop();d.push(u);for(let f of n.get(u))o.has(f)||(o.add(f),l.push(f))}i.push(d)}let s=t.map(c=>({id:c,degree:n.get(c).size})),a=Math.max(0,...s.map(({degree:c})=>c));return{components:Bn(i),stronglyConnected:Kn(t,r),orphans:s.filter(({degree:c})=>c===0).map(({id:c})=>c),hubs:s.filter(({degree:c})=>c>0&&c===a),exact:!0,provenance:{algorithm:"component-degree",edgeFamily:"all"}}}function $a(e,t){let n=new Map(e.edges.map(i=>[$n(i),i])),r=new Map(t.edges.map(i=>[$n(i),i]));return{fromVersion:e.version,toVersion:t.version,added:[...r].filter(([i])=>!n.has(i)).map(([,i])=>i),removed:[...n].filter(([i])=>!r.has(i)).map(([,i])=>i),unchangedCount:[...n.keys()].filter(i=>r.has(i)).length,exact:!0}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="56486369-9164-58d3-ac34-46d57859f96d")}catch{}})();var Yn=["parent","type","priority","status","assignee","tags","sprint","release"];function Jn(e,t){let n=re(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function Zn(e,t=["estimate","estimated_minutes","priority"]){let n=e.sum?.trim(),r=e.avg?.trim(),i=n&&n.length>0?n:void 0,o=r&&r.length>0?r:void 0;if(!i&&!o)return null;if(i&&o&&i!==o)throw new h("Aggregate --sum and --avg must target the same numeric field",p.USAGE);let s=i??o;if(!t.includes(s))throw new h(`Aggregate numeric field "${s}" is not registered. Allowed: ${t.join(", ")}`,p.USAGE);return{field:s,sum:i!==void 0,avg:o!==void 0}}function er(e){let t=e?.trim()??"status";if(t.length===0)throw new h("--group-by requires at least one field name",p.USAGE);let n=on(t);if(n.length===0)throw new h("--group-by requires a comma-separated list of fields",p.USAGE);for(let r of n)if(!Yn.includes(r))throw new h(`Aggregate group fields must be one of ${Yn.join("|")}; received "${r}"`,p.USAGE);return n}function tr(e){let t=[...new Set(e.map(n=>n.trim().toLowerCase()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length===0?null:t.join(",")}function nr(e,t){switch(e){case"parent":return t.parent??null;case"type":return t.type;case"priority":return t.priority;case"status":return t.status;case"assignee":return t.assignee??null;case"tags":return tr(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function rr(e,t){let n=e??null,r=t??null;return n===r?0:n===null?1:r===null?-1:typeof n=="number"&&typeof r=="number"?n-r:String(n).localeCompare(String(r))}function ir(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var Zi={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function Xn(e,t){return t==null||t===""?Zi[e]:String(t)}function eo(e,t){return e.length===1?Xn(e[0],t[e[0]]):e.map(n=>`${n}=${Xn(n,t[n])}`).join(" | ")}function or(e,t,n){for(let r of n){let i=rr(e.group[r],t.group[r]);if(i!==0)return i}return 0}function sr(e,t){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){let i=r.trim();if(i.length===0)return null;let o=Number(i);if(Number.isFinite(o))return o}return null}function ar(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function He(e,t,n){let r=Tt(String(t),n)??t;if(r===n.open_status){e.open_count+=1;return}if(r==="in_progress"||n.active_statuses.has(r)&&r!==n.open_status){e.in_progress_count+=1;return}if(n.terminal_done_statuses.has(r)||r===n.close_status){e.closed_count+=1;return}e.other_count+=1}function to(e,t){return{row:{group:e,count:1},numeric_count:t===null?0:1,numeric_sum:t??0,null_count:t===null?1:0,open_count:0,in_progress_count:0,closed_count:0,other_count:0}}function no(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function ro(e){e.accumulator.row.count+=1,e.includeCompletion&&He(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&no(e.accumulator,e.numericValue)}function io(e,t){let n={};for(let r of e)n[r]=nr(r,t);return n}function oo(e,t,n,r){let i={...e.row,group_label:eo(t,e.row.group)};return n&&(i.open=e.open_count,i.in_progress=e.in_progress_count,i.closed=e.closed_count,i.other=e.other_count,i.completion_pct=ar(e.closed_count,e.row.count)),r!==null&&(i.null_count=e.null_count,r.sum&&(i.sum=e.numeric_sum),r.avg&&(i.avg=e.numeric_count===0?null:e.numeric_sum/e.numeric_count)),i}function so(e){return{group_by:e.groupBy,count:!0,completion:e.includeCompletion,include_unparented:e.includeUnparented,status:e.status?.[0]??null,status_values:e.status,type:e.options.type??null,tag:e.options.tag??null,priority:e.options.priority??null,deadline_before:e.options.deadlineBefore??null,deadline_after:e.options.deadlineAfter??null,assignee:e.options.assignee??null,assignee_filter:e.options.assigneeFilter??null,parent:e.options.parent??null,sprint:e.options.sprint??null,release:e.options.release??null,...e.numericAggregation!==null?{sum:e.options.sum??null,avg:e.options.avg??null,numeric_field:e.numericAggregation.field}:{}}}async function Ya(e,t){if(e.count===!1)throw new h("Aggregate grouped counts are always enabled; omit count=false.",p.USAGE);let n=x(process.cwd(),t.path),r=await M(n),i=L(r.schema),o=["estimate","estimated_minutes","priority",...z(r.schema).definitions.filter(_=>_.type==="number").map(_=>_.metadata_key)],s=er(e.groupBy),a=Jn(e.status,i),c=Zn(e,[...new Set(o)].sort((_,b)=>_.localeCompare(b))),d=e.completion===!0,l=e.includeUnparented===!0,u=await de(void 0,{...pn(e),status:e.status},t),f=new Map,m=0,g=0;for(let _ of u.items){let b=_,k=io(s,b);if(s.includes("parent")&&k.parent===null&&!l){m+=1;continue}let v=ir(s,k),S=f.get(v),E=c===null?null:sr(b,c.field);if(S)ro({accumulator:S,item:b,statusRegistry:i,includeCompletion:d,numericAggregation:c,numericValue:E});else{let T=to(k,E);d&&He(T,b.status,i),f.set(v,T)}g+=1}let y=[...f.values()].map(_=>oo(_,s,d,c)).sort((_,b)=>or(_,b,s)),w=u.warnings&&u.warnings.length>0?u.warnings:void 0;return{groups:y,count:y.length,totals:{items_considered:u.items.length,items_grouped:g,items_skipped_unparented:m},filters:so({groupBy:s,includeCompletion:d,includeUnparented:l,status:a,options:e,numericAggregation:c}),now:N(),...w?{warnings:w}:{}}}var Xa={buildGroupKey:ir,compareAggregateRows:or,compareNullableGroupValue:rr,completionPct:ar,normalizeTagGroupValue:tr,parseGroupBy:er,parseNumericAggregation:Zn,parseStatus:Jn,readNumericAggregateValue:sr,resolveGroupValue:nr,updateCompletionCounts:He};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1638ef81-7558-5d51-8561-99c958de2d03")}catch{}})();function ao(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function co(e,t){return e.map((n,r)=>{let i=new Set,o=Ut(n.patch);for(let s of o)i.add(De(s.path)),s.from&&i.add(De(s.from));return{index:t+r+1,ts:n.ts,op:n.op,author:n.author,patch_ops:o.length,changed_fields:[...i].sort((s,a)=>s.localeCompare(a))}})}async function lo(e,t){let n=x(process.cwd(),t.path);if(!await A(R(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,p.NOT_FOUND);let r=await M(n),i=P(r,I()),o=e.trim()===Pe,s=o?Pe:Bt(e,r.id_prefix),a=await oe(n,s,r.id_prefix,r.item_format,i.type_to_folder),c=a?.id??s,d=o?$t(n):te(n,c);if(!a&&!await A(d))throw new h(`Item ${e} not found`,p.NOT_FOUND);return a&&await Ht({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:d,located:a,resolvedId:c,settings:r}}async function oc(e,t,n){let r=ie(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await lo(e,n),c=await K(i,s),d=a.agent_identity.identity_vocabulary,l=ln(a.agent_identity.harness_signals),u=fn({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},d,l),f=c.map((E,T)=>({entry:E,version:T+1})).filter(({entry:E})=>u(E)),m=ao(f,r),g=m.map(({entry:E})=>E),y=t.compact===!0,w=y?co(g,Math.max(0,c.length-g.length)):void 0,_=t.provenance===!0?m.map(({entry:E,version:T})=>un(E,d,{itemId:s,version:T})):void 0,b=t.provenance===!0?"provenance":y?"compact":"full",k={compact:{compact_history:w},provenance:{provenance_history:_},full:{history:g}}[b],S={id:s,...k,compact:y,projection:{mode:b,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[b]},omission_receipt:qt("history",b),count:g.length,limit:r??null,...t.provenanceSummary===!0?{provenance_summary:mn(f.map(({entry:E})=>E),d,l)}:{}};if((t.diff||t.field!==void 0)&&(S.diff=zt(c,{windowStartIndex:Math.max(0,c.length-g.length),field:t.field})),t.verify){let E=o?(await se(o,{schema:a.schema})).document:void 0;S.verification=an(c,E)}return S}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2e14b978-95c9-5922-b8cb-c49d24e6f8c4")}catch{}})();var cr=1e6,dr=20;function lr(e,t,n,r=dr){if(!Number.isSafeInteger(r)||r<0)throw new h("Child projection sample limit must be a non-negative integer.",p.USAGE);let i=e.trim().toLowerCase(),o={},s=[],a=0,c=0;for(let f of t){if(c+=1,c>cr)throw new h(`Child projection exceeded the ${cr.toLocaleString("en-US")} item safety bound.`,p.GENERIC_FAILURE,{code:"child_projection_item_bound_exceeded",required:"Use an indexed or parent-filtered metadata source.",why:"Unbounded graph scans can exhaust memory in universal project stores.",nextSteps:["Build the derived item index, then retry the parent read."]});if(f.parent?.trim().toLowerCase()!==i)continue;s.push(f);let m=f.status.trim().toLowerCase();o[m]=(o[m]??0)+1,G(m,n)||(a+=1)}s.sort((f,m)=>f.id.localeCompare(m.id));let d=s.slice(0,r).map(f=>({id:f.id,title:f.title,type:f.type,status:f.status,priority:f.priority})),l=s.length>d.length,u=r===0?dr:r;return{count:s.length,active:a,by_status:Object.fromEntries(Object.entries(o).sort(([f],[m])=>f.localeCompare(m))),sample:d,sample_limit:r,truncated:l,next_offset:l?d.length:null,continuation:l?`pm list --status all --parent ${e} --offset ${d.length} --limit ${u}`:null,scanned:c}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="80981c24-3442-57a2-8c35-e0e00d5425d6")}catch{}})();var uo=new Set(["event","meeting","reminder"]);function fo(e){return uo.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function ur(e){if(!fo(e))return;let t=[...e.events??[]].sort((r,i)=>r.start_at.localeCompare(i.start_at)),n=t[0];return{deadline:e.deadline??null,start_at:n?.start_at??null,end_at:n?.end_at??null,location:n?.location??null,reminders:[...e.reminders??[]],events:t}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5536c6eb-5d51-5b67-879d-c1d0bfa5b692")}catch{}})();var po=["brief","standard","deep"],ho=new Set(["epic","feature","milestone","plan"]),go=new Set(Object.keys(vt).map(e=>e.toLowerCase()));function mr(e){let t=e.trim().toLowerCase();return t.length>0&&(ho.has(t)||!go.has(t))}function fr(e){return{ts:e.ts,author:e.author,message:e.message??null}}function yo(e,t){let n=e?.trim(),r=n&&n.length>0?n:null,i=[...t].reverse().find(s=>s.op==="claim"),o=[...t].reverse().find(s=>s.op==="release");return{claimed:r!==null,assignee:r,last_claim:i?fr(i):null,last_release:o?fr(o):null}}function _o(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(po.includes(t))return t;throw new h("Get --depth must be one of brief|standard|deep|full",p.USAGE)}function wo(e,t){if(t==="deep")return e;let{comments:n,notes:r,learnings:i,files:o,tests:s,docs:a,reminders:c,events:d,...l}=e;return{...l,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0}}function bo(e){if(e===void 0)return null;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new h("Get --fields requires a comma-separated list of field names",p.USAGE);return t}function _e(e){return e.startsWith("item.")?e.slice(5):e}function Eo(e,t){if(e===null)return;let n=new Set([...St,...t,"notes_count","tests_count"]),r=new Set(["body","linked","claim_state","children","schedule"]),i=new Set(["linked.files","linked.tests","linked.docs"]),o=new Set(["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"]),s=new Set(["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"]),a=e.filter(c=>{let d=_e(c);return!n.has(d)&&!r.has(d)&&!i.has(d)&&!o.has(d)&&!s.has(d)});if(a.length>0)throw new h(`Unknown get --fields value(s): ${a.join(", ")}`,p.USAGE,{code:"unknown_field_projection",examples:["pm get <id> --fields id,title,status,type,updated_at","pm get <id> --fields id,title,claim_state","pm get <id> --fields id,title,body,linked.files"]})}function vo(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0},i={};for(let o of t){let s=_e(o);s==="body"||s==="linked"||s.startsWith("linked.")||s==="claim_state"||s.startsWith("claim_state.")||s==="children"||s.startsWith("children.")||s==="schedule"||s.startsWith("schedule.")||(i[s]=Object.hasOwn(r,s)?r[s]:n[s])}return i}function Y(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function ye(e,t){return e.some(n=>{let r=_e(n);return r===t||r.startsWith(`${t}.`)})}function So(e){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new h("Get projection options are mutually exclusive; remove the extra projection flag and retry.",p.USAGE);if(e.tree!==!0&&e.treeDepth!==void 0)throw new h("Get --tree-depth requires --tree",p.USAGE);if(e.at!==void 0&&e.tree===!0)throw new h("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",p.USAGE);return{depth:e.full?"deep":_o(e.depth),treeDepth:e.tree===!0?dn(e.treeDepth,"--tree-depth"):void 0,fields:bo(e.fields),fieldProjection:e.fields!==void 0}}async function xo(e,t,n){let r=x(process.cwd(),t.path);if(!await A(R(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,p.NOT_FOUND);let i=await M(r),o=P(i,I());if(n!==void 0){let c=await cn(e,n,{pmRoot:t.path});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:c.document.metadata.id,metadata:c.document.metadata,body:c.document.body,historical:c}}let s=await oe(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await Jt(r,e,i.id_prefix,o.type_to_folder);let a=await se(s,{schema:i.schema});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:s.id,metadata:a.document.metadata,body:a.document.body}}function ko(e,t,n){let r=z(t.schema).definitions.map(i=>i.metadata_key);if(Eo(e,r),n&&ye(e??[],"children"))throw new h("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",p.USAGE)}function We(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?Y(r,i):ye(r,i):n!=="brief"}async function Ao(e,t){if(!t)return;let n=te(e.pmRoot,e.locatedId),r=await K(n,e.locatedId);return yo(e.metadata.assignee,e.historical?r.slice(0,e.historical.as_of_version):r)}function Io(e,t,n,r){let i=r||Y(n,"linked.files"),o=r||Y(n,"linked.tests"),s=r||Y(n,"linked.docs");!r&&!i&&!o&&!s||(e.linked={files:i?t.metadata.files??[]:[],tests:o?t.metadata.tests??[]:[],docs:s?t.metadata.docs??[]:[]})}async function Co(e,t,n,r){if(!t)return;let i=L(e.settings.schema),o=await ae(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=lr(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function Ro(e,t,n,r){if(!r)return;let i=ur(t.metadata);if(i){if(n===null||Y(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>_e(s)===`schedule.${o}`)))}}async function Mo(e,t,n,r){if(t.tree!==!0)return;let i=await de(void 0,{parent:e.locatedId,tree:!0,treeDepth:n===void 0?void 0:String(n),full:!0},r);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:n??null,count:i.count,items:i.items.map(o=>o)}}async function Ec(e,t,n={}){let r=So(n),i=await xo(e,t,n.at);ko(r.fields,i.settings,i.historical!==void 0);let o=We({...r,field:"body"}),s=We({...r,field:"linked"}),a=We({...r,field:"claim_state"}),c=i.historical===void 0&&(r.fieldProjection?ye(r.fields,"children"):r.depth!=="brief"&&mr(i.metadata.type)),d=r.fieldProjection?ye(r.fields,"schedule"):r.depth!=="brief",l=await Ao(i,a),u={item:r.fieldProjection?vo(i.metadata,r.fields):wo(i.metadata,r.depth)};o&&(u.item.body=i.body),Io(u,i,r.fields,s),l&&(u.claim_state=l),Ro(u,i,r.fields,d);let f=await Co(i,c,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(u.children=f);let m=await Mo(i,n,r.treeDepth,t);if(m!==void 0&&(u.tree=m),i.historical&&(u.reconstructed=!0,u.as_of_version=i.historical.as_of_version,u.as_of_timestamp=i.historical.as_of_timestamp),i.historical===void 0)try{await kn({pmRoot:i.pmRoot,author:Pt(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return u}var vc={shouldAutoIncludeGetChildren:mr};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="70e06a73-6602-5384-a25b-fd3df5f6438e")}catch{}})();var hr=10,q="https://schema.unbrained.dev/pm/eval-query-set/v1",Fo={schema:q,accepted_top_level:["array","object"],required_query_fields:["query","relevant_ids"],optional_fields:["mode","description"],modes:["keyword","semantic","hybrid"]},we={schema:q,queries:[{query:"offline search",relevant_ids:["pm-75k9"],mode:"keyword"}]},C=class extends Error{constructor(t){super(t),this.name="EvalQuerySetError"}},To=new Set(["keyword","semantic","hybrid"]);function pr(e,t){let n=0,r=Math.min(t,e.length);for(let i=0;i<r;i+=1)n+=e[i]/Math.log2(i+2);return n}function Do(e,t,n){if(t.size===0)return 0;let r=e.map(a=>t.has(a)?1:0),i=pr(r,n),o=Array.from({length:t.size},()=>1),s=pr(o,n);return s===0?0:i/s}function Po(e,t,n){let r=Math.min(n,e.length);for(let i=0;i<r;i+=1)if(t.has(e[i]))return 1/(i+1);return 0}function $e(e,t,n){let r=Math.min(n,e.length),i=0;for(let o=0;o<r;o+=1)t.has(e[o])&&(i+=1);return i}function Lo(e,t,n){return n<=0?0:$e(e,t,n)/n}function qo(e,t,n){return t.size===0?0:$e(e,t,n)/t.size}function gr(e,t,n){return{ndcg:Do(e,t,n),mrr:Po(e,t,n),precision:Lo(e,t,n),recall:qo(e,t,n),relevant_total:t.size,retrieved_relevant:$e(e,t,n)}}function yr(e){let t=e.length;if(t===0)return{ndcg:0,mrr:0,precision:0,recall:0,query_count:0};let n=e.reduce((r,i)=>({ndcg:r.ndcg+i.ndcg,mrr:r.mrr+i.mrr,precision:r.precision+i.precision,recall:r.recall+i.recall}),{ndcg:0,mrr:0,precision:0,recall:0});return{ndcg:n.ndcg/t,mrr:n.mrr/t,precision:n.precision/t,recall:n.recall/t,query_count:t}}function jo(e,t){if(typeof e!="object"||e===null)throw new C(`Eval query at index ${t} must be an object`);let n=e,r=typeof n.query=="string"?n.query.trim():"";if(r.length===0)throw new C(`Eval query at index ${t} must have a non-empty "query" string`);if(!Array.isArray(n.relevant_ids))throw new C(`Eval query at index ${t} must have a "relevant_ids" array`);if(n.relevant_ids.some(o=>typeof o!="string"))throw new C(`Eval query at index ${t} must have a "relevant_ids" array of strings`);let i=[...new Set(n.relevant_ids.map(o=>o.trim()).filter(o=>o.length>0))];if(i.length===0)throw new C(`Eval query at index ${t} must list at least one relevant id`);if(n.mode!==void 0&&(typeof n.mode!="string"||!To.has(n.mode)))throw new C(`Eval query at index ${t} has an invalid mode (expected keyword|semantic|hybrid)`);return{query:r,relevant_ids:i,...n.mode!==void 0?{mode:n.mode}:{},...typeof n.description=="string"&&n.description.trim().length>0?{description:n.description.trim()}:{}}}function Be(e){let t=typeof e=="object"&&e!==null&&!Array.isArray(e)?e.schema:void 0;if(t!==void 0&&t!==q)throw new C(`Unsupported eval query set schema; expected "${q}"`);let n=Array.isArray(e)?e:typeof e=="object"&&e!==null?e.queries:void 0;if(!Array.isArray(n))throw new C('Eval query set must be an array of queries or an object with a "queries" array');if(n.length===0)throw new C("Eval query set must contain at least one query");return{schema:q,queries:n.map((r,i)=>jo(r,i))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b0abcc02-bd6e-536a-b876-e13cfc8ea741")}catch{}})();function _r(e){if(typeof e!="string")return!1;let t=e.split(",").map(n=>n.trim().toLowerCase()).filter(Boolean);return t.length===1&&t[0]==="all"}var Oo=[{optionKey:"status",summaryKey:"status",normalize:e=>_r(e)?"all":e},{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"parent",summaryKey:"parent"}];function X(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:c,runtimeFieldFilters:d}=e,l={};return xn(l,r,Oo),Object.assign(l,Ge(r)),Object.assign(l,Ne(r)),n!==void 0&&n!=="or"&&(l.match_mode=n),i&&(l.include_linked=!0),o&&(l.title_exact=!0),s&&(l.phrase_exact=!0),a>0&&(l.score_threshold=a),t==="hybrid"&&r.semanticWeight!==void 0&&(l.hybrid_semantic_weight=c),r.limit!==void 0&&(l.limit=r.limit),d&&Object.keys(d).length>0&&(l.runtime_filters=d),l}function J(e){let{effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:c,queryExpansion:d,rerank:l,runtimeFieldFilters:u}=e,f=m=>m??null;return{mode:t,match_mode:n,status:r.status===void 0||_r(r.status)?"all":r.status,type:f(r.type),tag:f(r.tag),priority:f(r.priority),deadline_before:f(r.deadlineBefore),deadline_after:f(r.deadlineAfter),updated_after:f(r.updatedAfter),updated_before:f(r.updatedBefore),created_after:f(r.createdAfter),created_before:f(r.createdBefore),assignee:f(r.assignee),sprint:f(r.sprint),release:f(r.release),parent:f(r.parent),...Ge(r),...Ne(r),include_linked:i,title_exact:o,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?c:null,query_expansion_enabled:d.enabled,query_expansion_provider:d.provider,rerank_enabled:l.enabled,rerank_model:l.model,rerank_top_k:l.top_k,limit:f(r.limit),runtime_filters:u}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1")}catch{}})();function No(e){return ne("search",{query:e.query.trim(),mode:e.mode,options:jt(e.searchOptions,sn)})}function wr(e){let t=Gt(e.sorted,{cursor:e.searchOptions.after,fingerprint:No(e),limit:e.limit,readId:n=>n.item.id});return{limited:t.rows,pageExtras:{applied_limit:e.limit,...t.has_more?{has_more:!0,truncated:!0}:{},...t.next_cursor?{next_cursor:t.next_cursor}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47576eb5-4ddf-5e04-9e1d-c961da39b754")}catch{}})();var Go=["id","title","status","type","priority","updated_at","score","matched_fields"],Uo=new Set(["score","matched_fields","highlights"]),zo=new Set(["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"]);function br(e){if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(t!=="keyword"&&t!=="semantic"&&t!=="hybrid")throw new h("Search mode must be one of keyword|semantic|hybrid",p.USAGE);return t}function be(e){return e===!0}function Er(e){return xt(e,0,1)??void 0}function vr(e){if(e===void 0)return"or";let t=e.trim().toLowerCase();if(t!=="and"&&t!=="or"&&t!=="exact")throw new h("Search --match-mode must be one of and|or|exact",p.USAGE);return t}function Sr(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(String(e).trim());if(!Number.isFinite(t)||t<0)throw new h("Search --min-score must be a finite number >= 0",p.USAGE);return t}function H(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return Ce(n,new Date,t)}function D(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Ke(e,t){if(e!==void 0)return Ce(e,new Date,t)}function Ho(e){if(e===void 0)return;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new h("Search --fields requires a comma-separated list of field names",p.USAGE);return[...new Set(t)]}function Ve(e){let t=e.compact===!0,n=e.full===!0,r=Ho(e.fields);if(Number(t)+Number(n)+ +(r!==void 0)>1)throw new h("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",p.USAGE);return t?{mode:"compact",fields:[...Go]}:n?{mode:"full",fields:[]}:r?{mode:"fields",fields:r}:{mode:"full",fields:[]}}function Qe(e,t){if(e.mode!=="fields")return;let n=new Set(t.definitions.flatMap(i=>[i.key,i.metadata_key])),r=e.fields.filter(i=>{let o=i.trim(),s=o.startsWith("item.")?o.slice(5):o;return!Uo.has(o)&&!zo.has(s)&&!n.has(s)});if(r.length>0)throw new h(`Unknown search --fields value(s): ${r.join(", ")}`,p.USAGE,{examples:["pm search <query> --fields id,title,status,score","pm search <query> --fields id,title,item.description,matched_fields"],nextSteps:["Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples."]})}function Ye(e){let t=D(e);if(!t)throw new h("Search query must not be empty",p.USAGE);return t.split(/\s+/u).filter(Boolean)}function Xe(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function Je(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function Ze(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function et(e){let t={title_exact_bonus:10,title_weight:48,description_weight:5,tags_weight:6,status_weight:2,body_weight:1,comments_weight:1,notes_weight:1,learnings_weight:1,reminders_weight:2,events_weight:2,dependencies_weight:3,linked_content_weight:1},n=e.search?.tuning;if(!n)return t;let r=(i,o)=>typeof i=="number"&&Number.isFinite(i)&&i>=0?i:o;return{title_exact_bonus:r(n.title_exact_bonus,t.title_exact_bonus),title_weight:r(n.title_weight,t.title_weight),description_weight:r(n.description_weight,t.description_weight),tags_weight:r(n.tags_weight,t.tags_weight),status_weight:r(n.status_weight,t.status_weight),body_weight:r(n.body_weight,t.body_weight),comments_weight:r(n.comments_weight,t.comments_weight),notes_weight:r(n.notes_weight,t.notes_weight),learnings_weight:r(n.learnings_weight,t.learnings_weight),reminders_weight:r(n.reminders_weight,t.reminders_weight),events_weight:r(n.events_weight,t.events_weight),dependencies_weight:r(n.dependencies_weight,t.dependencies_weight),linked_content_weight:r(n.linked_content_weight,t.linked_content_weight)}}import ve from"node:fs/promises";import st from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7288620a-5aa7-50f9-a271-45b2722a4887")}catch{}})();function Wo(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function W(e){return Wo(e).split(/[^a-z0-9]+/).filter(t=>t.length>0)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="42fde1a1-ee4b-5564-93b2-78d5a0fc7555")}catch{}})();var tt=4,$o=20,Bo=200,Ko=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function nt(e,t){let n=[],r=new Set;for(let i of e){let o=i.trim().replaceAll(/\s+/g," ");if(o.length===0)continue;let s=o.toLowerCase();if(!r.has(s)&&(r.add(s),n.push(o),n.length>=t))break}return n}function Vo(e){let t=e.toLowerCase();return t.length>4&&t.endsWith("ies")?`${t.slice(0,-3)}y`:t.length>4&&(t.endsWith("ches")||t.endsWith("shes")||t.endsWith("xes")||t.endsWith("zes")||t.endsWith("sses"))?t.slice(0,-2):t.length>3&&t.endsWith("s")&&!t.endsWith("ss")&&!t.endsWith("us")&&!t.endsWith("is")&&!t.endsWith("as")?t.slice(0,-1):t}function Qo(e){let t=e.toLowerCase();return t.length>2&&(!t.endsWith("s")||t.endsWith("ss"))?t.endsWith("y")&&!/[aeiou]y$/u.test(t)?`${t.slice(0,-1)}ies`:t.endsWith("ch")||t.endsWith("sh")||t.endsWith("x")||t.endsWith("z")||t.endsWith("ss")?`${t}es`:`${t}s`:t}function xr(e,t=tt){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=W(n);if(r.length===0)return[n];let i=r.filter(a=>!Ko.has(a.toLowerCase())),o=r.map(a=>Vo(a)),s=i.map(a=>Qo(a));return nt([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function kr(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?nt(t.filter(n=>typeof n=="string"),tt):[]}function Ar(e,t,n){return nt([...e,...t],Math.max(1,n))}function Ir(e,t){let r=e.search?.query_expansion,i=B(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:tt}}function Cr(e,t){let r=e.search?.rerank,i=B(r?.model),s=ee(r?.top_k)??$o;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(Bo,s)}}function Rr(e){let t=Array.isArray(e)?e:e?.hits;if(!Array.isArray(t))return[];let n=new Map;for(let i of t){if(typeof i!="object"||i===null)continue;let o=B(i.id),s=i.score;if(!o||typeof s!="number"||!Number.isFinite(s))continue;let a=n.get(o);(a===void 0||s>a)&&n.set(o,s)}let r=[...n.entries()].map(([i,o])=>({id:i,score:o}));return r.sort((i,o)=>i.score!==o.score?o.score-i.score:i.id.localeCompare(o.id)),r}function Yo(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function Mr(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function Xo(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=Yo(e,t),i=Mr(t),o=n*i;return!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(i)||!Number.isFinite(o)||o===0?0:Math.max(-1,Math.min(1,r/o))}async function Fr(e,t,n,r,i){if(r.length===0)return new Map;let o=B(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],c=await ce(s,a,i?{timeout_ms:i}:{}),d=c[0];if(!d)return new Map;let l=Mr(d),u=new Map;for(let f=0;f<r.length;f+=1){let m=r[f],g=c[f+1];if(!g)continue;let y=Xo(d,g,l);u.set(m.id,Math.max(0,Math.min(1,(y+1)/2)))}return u}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3fd6ed70-6633-5886-90a6-3d4cc16b3ef0")}catch{}})();var Jo=1.2,Zo=.75;function rt(e){return W(e)}function es(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function Dr(e){let t=[],n=new Map,r=0;for(let o of e){let s=rt(o.text),a=es(s);r+=s.length;for(let c of a.keys())n.set(c,(n.get(c)??0)+1);t.push({id:o.id,termFrequencies:a,length:s.length})}let i=t.length;return{documents:t,documentFrequency:n,documentCount:i,averageDocumentLength:i>0?r/i:0}}function ts(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function Pr(e,t,n){let r=new Map;if(e.documentCount===0||e.averageDocumentLength===0)return r;let i=[...new Set(t.filter(s=>s.length>0))];if(i.length===0)return r;let o=new Map;for(let s of i){let a=e.documentFrequency.get(s);a!==void 0&&o.set(s,ts(e.documentCount,a))}if(o.size===0)return r;for(let s of e.documents){let a=0;for(let[c,d]of o){let l=s.termFrequencies.get(c);if(l===void 0)continue;let u=1-n.b+n.b*s.length/e.averageDocumentLength,f=l+n.k1*u;a+=d*(l*(n.k1+1)/f)}a>0&&r.set(s.id,a)}return r}function Tr(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function Lr(e){let t=n=>typeof n=="string"?[n]:typeof n=="number"?[String(n)]:Array.isArray(n)?n.flatMap(t):typeof n=="object"&&n!==null?Object.values(n).flatMap(t):[];return t(Object.values(e)).join(" ")}function qr(e){let t=e?.search?.bm25;return{k1:Tr(t?.k1,Jo,0,1e3),b:Tr(t?.b,Zo,0,1)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1750b332-dd40-5497-b410-26c8c7436329")}catch{}})();var ns=2,rs=120,is=6,os=40,ss=1e3,as=900,cs="\xAB",ds="\xBB",jr=60,Gr=["tag","status","type","priority"];function Ur(e){let t=[],n=e;for(let r=0;r<5&&n&&typeof n=="object";r+=1){let i=n.code;typeof i=="string"&&t.push(i.toLowerCase()),n=n.cause}return t.join(" ")}function zr(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=Ur(e),r=`${t} ${n}`;return r.includes("timed out")||r.includes("timeout")||r.includes("etimedout")?"timeout":r.includes("econnrefused")||r.includes("connection refused")||r.includes("connect ")||r.includes("enotfound")||r.includes("eai_again")||r.includes("econnreset")||r.includes("fetch failed")?"connection":"error"}function Hr(e,t){let n=zr(t);return`search_${e}_fallback:${n}:using_keyword_mode`}async function Wr(e,t,n){try{let r=await rn(e);r.warnings.length>0&&n.push(...r.warnings);let i=Nn(t.map(o=>({id:o.metadata.id,updated_at:o.metadata.updated_at})),r.entries);if(i.length===0)return;n.push(`vector_index_stale:${i.length}`),process.stderr.write(`[pm] warning: ${i.length} item${i.length===1?" is":"s are"} new or modified since the last reindex and ${i.length===1?"is":"are"} NOT in the semantic index yet \u2014 they will be missing from semantic/hybrid results until you run 'pm reindex --mode hybrid'. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
2
+ `)}catch{}}var Cd={applyFilters:Yr,applyExactQueryFilters:Qr,applyInlineQueryFilters:Br,buildHitHighlights:ri,buildVerboseSearchFilters:J,buildExplicitSemanticFallbackWarning:Hr,buildCompactSearchFilterSummary:X,buildHybridLexicalScore:si,buildRerankCorpus:hi,buildSemanticHits:ui,classifyImplicitSemanticFallbackReason:zr,collectErrorCauseCodes:Ur,collectExactPhraseFields:Kr,collectLinkedPaths:Xr,combineHybridHits:lt,computeBuiltInBm25Hits:mi,computeSemanticOrHybridHits:gi,resolveBuiltInBm25Mode:fi,countOccurrences:ct,dependencyEntries:at,documentContainsExactPhrase:Vr,emptySearchResult:ai,highlightFieldSnippet:ni,loadDocuments:yi,markTokenRuns:ti,parseInlineQueryFilters:$r,maybeEmitVectorIndexStaleWarning:Wr,loadLinkedCorpus:Zr,mergeVectorHitsById:pi,normalizeExtensionProviderHits:li,normalizeScoreMap:it,parseProjectionConfig:Ve,parseTimestampWindow:H,parseTokens:Ye,projectSearchHits:wi,readSearchFieldValue:_i,requireSemanticDependencies:dt,resolveExtensionSearchProvider:ci,resolveExtensionSearchProviderByName:ke,resolveExtensionVectorAdapter:di,resolveLinkedCorpusRoots:Jr,scoreDocument:ii,sortHits:oi,stringArray:xe,textEntries:U,validateSearchProjectionFields:Qe};function $r(e){let t={},n=[];for(let r of e.split(/\s+/).filter(i=>i.length>0)){let i=r.indexOf(":"),o=i>0?r.slice(0,i).toLowerCase():"",s=i>0?r.slice(i+1):"",a=Gr.includes(o)?o:void 0;if(a&&s.length>0&&t[a]===void 0){t[a]=s;continue}n.push(r)}return{residualQuery:n.join(" "),inlineFilters:t}}function Br(e,t,n){let r={...e};for(let i of Gr){let o=t[i];if(o!==void 0){if(Ie(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function xe(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function U(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function at(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function Kr(e){let t=e.metadata;return[t.title,t.description,t.status,xe(t.tags).join(" "),e.body,U(t.comments).map(n=>n.text).join(" "),U(t.notes).map(n=>n.text).join(" "),U(t.learnings).map(n=>n.text).join(" "),Le(t).join(" "),qe(t).join(" "),at(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),je(t)]}function Vr(e,t){return Kr(e).some(n=>D(n).includes(t))}function Qr(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&D(r.metadata.title)!==t||n.phraseExact&&!Vr(r,t)))}function ls(e){if(e&&[...e].some(t=>t.toLowerCase()==="none"||t.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null".',p.USAGE)}function us(e,t,n){let r=V(e.assignee,{label:"--assignee"});ls(r);let i=vn(e),o=Sn(e);return{typeFilter:hn(e.type,t),tagFilter:V(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:gn(e.priority),deadlineBefore:Ke(e.deadlineBefore,"deadline-before"),deadlineAfter:Ke(e.deadlineAfter,"deadline-after"),updatedAfter:H(e.updatedAfter,"updated-after"),updatedBefore:H(e.updatedBefore,"updated-before"),createdAfter:H(e.createdAfter,"created-after"),createdBefore:H(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:V(e.sprint,{label:"--sprint"}),releaseFilter:V(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:_n(i),contentFieldFilters:o,contentFiltersActive:bn(o)}}function fs(e,t){return ms(e,t)&&ps(e,t)&&hs(e,t)}function ms(e,t){if(t.statusSet&&!t.statusSet.has(e.status)||t.typeFilter&&!t.typeFilter.has(e.type))return!1;let n=t.tagFilter;return!(n&&!xe(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function ps(e,t){return At(e,t)}function hs(e,t){return!(t.assigneeFilter!==void 0&&(e.assignee===void 0||!t.assigneeFilter.has(e.assignee))||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))||t.releaseFilter!==void 0&&(e.release===void 0||!t.releaseFilter.has(e.release))||t.parentFilter!==void 0&&e.parent!==t.parentFilter)}function gs(e,t,n,r){let i=e.metadata;return!(!fs(i,t)||!Vt(i,n)||t.missingMetadataActive&&!wn(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!En(i,t.contentFieldFilters))}function Yr(e,t,n,r,i,o){let s=us(t,n,i);return e.filter(a=>gs(a,s,r,o))}function ct(e,t){let n=0,r=0;for(;;){let i=e.indexOf(t,r);if(i<0)return n;n+=1,r=i+t.length}}function ys(e){return W(e)}function Xr(e){let t=(e.files??[]).map(s=>({scope:s.scope,path:s.path.trim()})),n=(e.docs??[]).map(s=>({scope:s.scope,path:s.path.trim()})),r=(e.tests??[]).filter(s=>typeof s.path=="string"&&s.path.trim().length>0).map(s=>({scope:s.scope,path:s.path.trim()})),i=[...t,...n,...r].filter(s=>s.path.length>0).sort((s,a)=>s.scope.localeCompare(a.scope)||s.path.localeCompare(a.path)),o=new Map;for(let s of i)o.set(`${s.scope}:${s.path}`,s);return[...o.values()]}async function Or(e){let t=st.resolve(e);try{let n=await ve.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function Jr(e,t){let[n,r]=await Promise.all([Or(e),Or(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function Zr(e,t){let n=Xr(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=st.resolve(o.resolved,i.path);if(!Re(o.resolved,s))continue;let a;try{a=await ve.realpath(s)}catch{continue}if(Re(o.realpath,a))try{await Fe({path:s,scope:i.scope}),r.push(await ve.readFile(s,"utf8"))}catch{}}return r.join(`
3
+ `)}var ei=[{name:"title",weightKey:"title_weight",value:e=>e.metadata.title},{name:"description",weightKey:"description_weight",value:e=>e.metadata.description},{name:"tags",weightKey:"tags_weight",value:e=>xe(e.metadata.tags).join(" ")},{name:"status",weightKey:"status_weight",value:e=>typeof e.metadata.status=="string"?e.metadata.status:""},{name:"body",weightKey:"body_weight",value:e=>e.body},{name:"comments",weightKey:"comments_weight",value:e=>U(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>U(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>U(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>Le(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>qe(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>at(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>je(e.metadata)}],_s=new Map(ei.map(e=>[e.name,e]));function ws(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ti(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map(ws);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${cs}${i}${ds}`)}function ni(e,t){if(e.length===0)return null;let n=e.toLowerCase(),r=-1,i=0;for(let l of t){if(l.length===0)continue;let u=n.indexOf(l);u>=0&&(r<0||u<r)&&(r=u,i=l.length)}if(r<0)return null;let o=Math.max(0,r-jr),s=Math.min(e.length,r+i+jr),a=ti(e.slice(o,s),t),c=o>0?"\u2026":"",d=s<e.length?"\u2026":"";return`${c}${a}${d}`}function ri(e,t,n){let r=[];for(let i of t){let o=_s.get(i);if(o===void 0)continue;let s=ni(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function bs(e,t,n){return[...ei.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function Es(e,t,n){let r=D(e.id),i=typeof n=="string"?n.trim().toLowerCase():"",o=D(i),s=o.length>0&&r.startsWith(o)?r.slice(o.length).trim():r;return t!==r&&t!==s?null:{item:e,score:t===r?ss:as,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function vs(e,t,n,r,i){for(let o of e){let s=t.get(o)??0;s>0&&(i.score+=s*r.title_exact_bonus,i.matched.add("title"),i.matchedTokens.add(o));for(let a of n){let c=ct(a.value.toLowerCase(),o);c>0&&(i.score+=c*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function Ss(e,t,n,r){D(e.title)===t&&(r.score+=rs,r.matched.add("title"));for(let o of n){let s=ct(D(o.value),t);s>0&&(r.score+=s*o.weight*is,r.matched.add(o.name))}}function ii(e,t,n,r,i,o,s=!1){let a=e.metadata,c=Es(a,n,o);if(c)return c;let d=new Map;for(let y of ys(a.title))d.set(y,(d.get(y)??0)+1);let l=bs(e,r,i),u={score:0,matched:new Set,matchedTokens:new Set};vs(t,d,l,i,u);let f=new Set(t),m=f.size>0&&u.matchedTokens.size===f.size;return s&&f.size>1&&m&&(u.score+=os),t.length>=ns&&n.includes(" ")&&Ss(a,n,l,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((y,w)=>y.localeCompare(w)),matched_all_terms:m}}function oi(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=G(n.item.status,t),s=G(r.item.status,t);if(o!==s)return o?1:-1;let a=n.item.priority-r.item.priority;if(a!==0)return a;let c=kt(r.item.updated_at,n.item.updated_at);return c!==0?c:n.item.id.localeCompare(r.item.id)})}function si(e,t,n,r,i,o,s,a=!1){return ii(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function it(e){if(e.size===0)return new Map;let t=[...e.values()],n=Math.min(...t),r=Math.max(...t);if(r===n)return new Map([...e.keys()].map(o=>[o,1]));let i=new Map;for(let[o,s]of e)i.set(o,(s-n)/(r-n));return i}function ai(e,t,n,r,i,o,s,a,c,d,l,u,f=!1){let m=f?{total:0,count_only:!0}:{};if(d.mode==="compact"&&r.compact===!0){let w=X({mode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,runtimeFieldFilters:u});return{query:e.trim(),mode:t,items:[],count:0,...m,filters:w,...l.length>0?{warnings:l}:{}}}let y=d.mode==="full"?null:[...d.fields];return{query:e.trim(),mode:t,items:[],count:0,...m,filters:J({effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,queryExpansion:a,rerank:c,runtimeFieldFilters:u??{}}),projection:{mode:d.mode,fields:y},now:N(),...l.length>0?{warnings:l}:{}}}function dt(e,t,n,r){if(!t.active)throw new h(`Search mode '${e}' requires a configured embedding provider in settings.providers.openai or settings.providers.ollama`,p.USAGE);if(!n.active&&!r)throw new h(`Search mode '${e}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`,p.USAGE);return{provider:t.active,vectorStore:n.active??null}}var F=Ie;function ke(e){let t=I(),n=Mt(t,e);if(!n)return null;let r=n.runtime_definition??n.definition,i=r.query,o=r.queryExpansion??r.query_expansion,s=r.rerank,a=F(r.name)??F(n.definition.name)??e;if(!a)return null;let c={providerName:a,...typeof i=="function"?{query:i}:{},...typeof o=="function"?{queryExpansion:o}:{},...typeof s=="function"?{rerank:s}:{}};return!c.query&&!c.queryExpansion&&!c.rerank?null:c}function ci(e){let t=F(e.search?.provider),n=ke(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function di(e){let t=I(),n=F(e.vector_store?.adapter),r=Ft(t,n);if(!r)return null;let i=r.runtime_definition??r.definition,o=i.query;if(typeof o!="function")return null;let s=i.upsert;return{adapterName:F(i.name)??F(r.definition.name)??n??"extension",query:o,...typeof s=="function"?{upsert:s}:{}}}function li(e,t,n){let r=Array.isArray(t)?t:t?.hits;if(!Array.isArray(r))throw new h(`Extension search provider "${e}" must return an array of hits or { hits: [...] }`,p.GENERIC_FAILURE);let i=new Set,o=[];for(let s of r){if(typeof s!="object"||s===null)continue;let a=F(s.id),c=s.score;if(!a||typeof c!="number"||!Number.isFinite(c)||i.has(a))continue;let d=n.get(a);if(!d)continue;let l=s.matched_fields,u=Array.isArray(l)&&l.every(f=>typeof f=="string")?[...new Set(l.map(f=>f.trim()).filter(f=>f.length>0))].sort((f,m)=>f.localeCompare(m)):[`provider:${e}`];i.add(a),o.push({item:d.metadata,score:c,matched_fields:u})}return o}function ui(e,t){let n=[],r=new Map;for(let i of e){if(r.has(i.id))continue;let o=t.get(i.id);o&&(r.set(i.id,i.score),n.push({item:o.metadata,score:i.score,matched_fields:["semantic"]}))}return{semanticHits:n,semanticScores:r}}function Se(e,t){let n=t.filter(d=>d.exact_id_match===!0);if(n.length===0)return e;let r=new Set(n.map(d=>d.item.id)),i=e.filter(d=>!r.has(d.item.id)),o=i.reduce((d,l)=>Math.max(d,l.score),0),s=n.sort((d,l)=>l.score-d.score),a=o+s.length+1;return[...s.map((d,l)=>({...d,score:a-l,matched_fields:["id"]})),...i]}function lt(e,t,n,r,i="semantic"){let o=new Map(n.map(u=>[u.item.id,u.score])),s=new Map(n.map(u=>[u.item.id,u.matched_fields])),a=it(t),c=it(o),d=new Set([...t.keys(),...o.keys()]),l=1-r;return[...d].map(u=>{let f=e.get(u),m=a.get(u)??0,g=c.get(u)??0,y=m*r+g*l;if(y<=0)return null;let w=new Set;t.has(u)&&w.add(i);for(let _ of s.get(u)??[])w.add(_);return{item:f.metadata,score:y,matched_fields:[...w].sort((_,b)=>_.localeCompare(b))}}).filter(u=>u!==null)}function fi(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function mi(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:Lr(tn(s,{fields:e.corpusFields}))})),n=Dr(t),r=Pr(n,rt(e.query),e.bm25Params),i=new Map(e.filteredDocuments.map(s=>[s.metadata.id,s]));if(e.requestedMode==="semantic"){let s=[...r].map(([a,c])=>({item:i.get(a).metadata,score:c,matched_fields:["bm25"]}));return Se(s,e.keywordHits)}let o=lt(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return Se(o,e.keywordHits)}function pi(e){let t=new Map;for(let r of e)for(let i of r){let o=t.get(i.id);(!o||i.score>o.score)&&t.set(i.id,i)}let n=[...t.values()];return n.sort((r,i)=>r.score!==i.score?i.score-r.score:r.id.localeCompare(i.id)),n}function hi(e){let t=e.metadata,n=Array.isArray(t?.tags)?t.tags.join(" "):"";return[t?.title,t?.description,t?.type,t?.status,n,e.body].map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0).join(`
4
+ `)}async function xs(e,t){let n=e.queryExpansion.enabled?xr(t,e.queryExpansion.max_queries):[t],r=n.length>0?n:[t];if(!e.queryExpansion.enabled)return r;if(e.queryExpansionExtension?.expand)try{let i=await Promise.resolve(e.queryExpansionExtension.expand({query:t,mode:e.requestedMode,settings:e.settings}));return Ar(r,kr(i),e.queryExpansion.max_queries)}catch{return e.warnings.push(`search_query_expansion_provider_failed:${e.queryExpansionExtension.providerName}:using_builtin`),r}return e.queryExpansion.provider&&e.queryExpansion.provider!=="openai"&&e.queryExpansion.provider!=="ollama"&&e.warnings.push(`search_query_expansion_provider_unavailable:${e.queryExpansion.provider}:using_builtin`),r}async function ks(e,t,n,r){if(e.extensionVectorAdapter?.query)try{return await Promise.resolve(e.extensionVectorAdapter.query({vector:t,limit:n,settings:e.settings}))}catch(i){if(!e.vectorStore)throw new h(`Extension vector adapter query failed and no built-in fallback store is configured (${i instanceof Error?i.message:String(i)})`,p.GENERIC_FAILURE);return e.warnings.push(`search_vector_adapter_failed:${e.extensionVectorAdapter.adapterName}:using_builtin`),await Oe(e.vectorStore,t,n,r)}if(e.vectorStore)return await Oe(e.vectorStore,t,n,r);throw new h("Semantic search requires either a configured vector store or an extension vector adapter query handler",p.USAGE)}function As(e,t,n){return[...e].sort((i,o)=>i.score!==o.score?o.score-i.score:i.item.id.localeCompare(o.item.id)).slice(0,n).map(i=>{let o=t.get(i.item.id);return o?{hit:i,text:hi(o)}:null}).filter(i=>i!==null)}async function Is(e,t,n){if(!e.rerankExtension?.rerank)return null;try{let r=await Promise.resolve(e.rerankExtension.rerank({query:t,mode:"hybrid",model:e.rerank.model,top_k:e.rerank.top_k,settings:e.settings,candidates:n.map(o=>({id:o.hit.item.id,text:o.text,score:o.hit.score}))})),i=Rr(r);return i.length>0?new Map(i.map(o=>[o.id,o.score])):(e.warnings.push(`search_rerank_provider_invalid_response:${e.rerankExtension.providerName}:using_builtin`),null)}catch{return e.warnings.push(`search_rerank_provider_failed:${e.rerankExtension.providerName}:using_builtin`),null}}async function Cs(e,t,n){let r=await Is(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await Fr(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function Rs(e,t){let n=new Set(t.keys()),r=e.map(i=>{let o=t.get(i.item.id);if(o===void 0)return i;let s=new Set(i.matched_fields);return s.add("rerank"),{...i,score:o,matched_fields:[...s].sort((a,c)=>a.localeCompare(c))}});return r.sort((i,o)=>{let s=n.has(i.item.id),a=n.has(o.item.id);return s!==a?s?-1:1:i.score!==o.score?o.score-i.score:i.item.id.localeCompare(o.item.id)}),r}async function Ms(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=As(n,r,e.rerank.top_k),o=await Cs(e,t,i);return o&&o.size>0?Rs(n,o):n}async function gi(e){let t=Math.max(e.limit??e.maxResults,e.maxResults),n=e.embeddingTimeoutMs!==void 0?{timeout_ms:e.embeddingTimeoutMs}:{},r=e.vectorQueryTimeoutMs!==void 0?{timeout_ms:e.vectorQueryTimeoutMs}:{},i=e.query.trim(),o=await xs(e,i),s=await ce(e.provider,o,n),a=await Promise.all(s.map(async g=>await ks(e,g,t,r))),c=pi(a),d=new Map(e.filteredDocuments.map(g=>[g.metadata.id,g])),{semanticHits:l,semanticScores:u}=ui(c,d),f=u.size;if(e.requestedMode==="semantic")return{hits:Se(l,e.keywordHits),vectorMatchCount:f};let m=await Ms(e,i,lt(d,u,e.keywordHits,e.hybridSemanticWeight),d);return{hits:Se(m,e.keywordHits),vectorMatchCount:f}}async function yi(e,t,n,r){let i=Rt(I()),o=async(d,l,u)=>{let f=async(m,g)=>{await Fe({path:m,scope:"project"});let y=await ve.readFile(m,"utf8");return Dt(y,{format:g,schema:r,extensionFieldNames:i,onWarning:_=>s.push(_)}).body};try{return await f(l,u)}catch{let m=u==="toon"?"json_markdown":"toon",g=Me(e,d.type,d.id,m,n);try{return await f(g,m)}catch{return s.push(`item_list_item_read_failed:${st.relative(e,g)}`),""}}},s=[],a=await Yt(e,t,n,s,r),c=[];if(a.length===0){let d=await Xt(e,t,n,s,r);for(let l of d){let u=Me(e,l.type,l.id,t,n),f=await o(l,u,t);c.push({metadata:l,body:f})}return{documents:c,warnings:[...new Set(s)].sort((l,u)=>l.localeCompare(u))}}for(let d of a){if(typeof d.body=="string"){c.push({metadata:d.metadata,body:d.body});continue}let l=await o(d.metadata,d.item_path,d.item_format);c.push({metadata:d.metadata,body:l})}return{documents:c,warnings:[...new Set(s)].sort((d,l)=>d.localeCompare(l))}}function _i(e,t){let n=t.trim();if(n.length===0)return null;if(n==="score")return e.score;if(n==="matched_fields")return e.matched_fields;if(n.startsWith("item.")){let o=n.slice(5);return o.length===0?null:e.item[o]??null}let r=e,i=e.item;return Object.prototype.hasOwnProperty.call(i,n)?i[n]??null:Object.prototype.hasOwnProperty.call(r,n)?r[n]??null:null}function wi(e,t){return t.mode==="full"?e.map(({matched_all_terms:n,exact_id_match:r,...i})=>i):e.map(n=>{let r={};for(let i of t.fields)r[i]=_i(n,i);return r})}function Fs(e){let t=ke(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function Ts(e){let t=ke(F(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function Ds(e,t){let n=[],r=$r(e),i=Object.keys(r.inlineFilters).length>0;if(i&&r.residualQuery.trim().length===0)throw new h("Inline field:value tokens consumed the entire query, leaving no search terms.",p.USAGE,{examples:["pm search auth tag:area:search","pm list --tag area:search --status open"],nextSteps:["Add keyword terms alongside the inline filters, or use pm list for pure tag/status/type/priority filtering."]});let o=i?r.residualQuery:e,s=Br(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:be(s.includeLinked),titleExact:be(s.titleExact),phraseExact:be(s.phraseExact),matchMode:vr(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:Sr(s.minScore),countOnly:s.count===!0,tokens:Ye(o),normalizedQuery:D(o),limit:ie(s.limit),projection:Ve(s),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function Ps(e,t){let n=x(process.cwd(),t.path);if(!await A(R(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,p.NOT_FOUND);let r=await M(n),i=Qt(r).settings,o=L(i.schema),s=z(i.schema);Qe(e.projection,s);let a=Kt(e.options,s,"search"),c=P(i,I()),d=Zt(i),l=nn(i,n),u=ci(i),f=di(i),m=Er(e.options.semanticWeight),g=Ir(i,d.active?.name??null),y=Cr(i,d.active?.model??F(i.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:i,statusRegistry:o,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:c,maxResults:Xe(i),scoreThreshold:e.minScoreOverride??Je(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:m,hybridSemanticWeight:m??Ze(i),tuning:et(i),providerResolution:d,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:f,bm25Mode:fi({configuredProvider:F(i.search?.provider),hasEmbeddingProvider:d.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:g,queryExpansionExtension:Fs(g),rerank:y,rerankExtension:Ts(i),effectiveMode:br(e.options.mode)}}async function Ls(e,t){let n=await yi(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=re(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),i=yn(t.statusRegistry),o=Yr(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:Qr(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function qs(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await Jr(i,It(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await Zr(a,o)]));for(let[a,c]of s)r.set(a,c);return r}async function js(e,t,n){let r=await qs(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>si(o,e.tokens,e.normalizedQuery,e.includeLinked,r,t.tuning,t.settings.id_prefix,i)).filter(o=>o!==null).filter(o=>e.matchMode!=="and"||o.matched_all_terms===!0)}function Nr(e,t){return ai(e.query,e.effectiveMode,e.matchMode,e.options,e.includeLinked,e.scoreThreshold,e.hybridSemanticWeight,e.queryExpansion,e.rerank,e.projection,e.warnings,e.runtimeFieldFilters,t)}async function Os(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=mi({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:en(t.settings),bm25Params:qr(t.settings),hybridSemanticWeight:t.hybridSemanticWeight});return t.bm25Mode==="auto-fallback"&&i.push(`search_${t.effectiveMode}_offline_bm25:no_embedding_provider:using_lexical_bm25`),o}async function Ns(e,t,n,r){if(!t.extensionSearchProvider)return null;let i=t.providerResolution.active!==null&&(t.vectorResolution.active!==null||t.extensionVectorAdapter!==null);try{let o=await Promise.resolve(t.extensionSearchProvider.query({query:e.query,mode:t.effectiveMode,tokens:e.tokens,options:e.options,settings:t.settings,documents:n}));return li(t.extensionSearchProvider.providerName,o,r)}catch(o){if(!i)throw new h(`Extension search provider "${t.extensionSearchProvider.providerName}" failed: ${o instanceof Error?o.message:String(o)}`,p.GENERIC_FAILURE);return null}}function Gs(e,t,n,r){return t.vectorMatchCount>0?t.hits:(r.push(`search_${e}_degraded:no_vector_matches:results_are_lexical`),e==="semantic"?n:t.hits)}async function Us(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await Wr(e.pmRoot,n,r),e.extensionSearchProvider||dt(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function zs(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,c=await Os(t,n,r,i,o),d=n.effectiveMode;if(c!==null||d==="keyword")return{effectiveMode:n.effectiveMode,hits:c??a};try{if(await Us(n,d,r,o,s),r.length===0||t.limit===0)return{effectiveMode:n.effectiveMode,hits:[]};let l=new Map(r.map(u=>[u.metadata.id,u]));if(a=await Ns(t,n,r,l)??a,a===i){let{provider:u,vectorStore:f}=dt(d,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),m=await gi({requestedMode:d,query:t.query,filteredDocuments:r,keywordHits:i,hybridSemanticWeight:n.hybridSemanticWeight,limit:t.limit,maxResults:n.maxResults,provider:u,vectorStore:f,extensionVectorAdapter:n.extensionVectorAdapter,queryExpansion:n.queryExpansion,queryExpansionExtension:n.queryExpansionExtension,rerank:n.rerank,rerankExtension:n.rerankExtension,warnings:o,settings:n.settings});a=Gs(d,m,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(l){return o.push(Hr(n.effectiveMode,l)),{effectiveMode:"keyword",hits:i}}}function Hs(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return ot({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:X({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let n=e.projection.mode==="full"?null:[...e.projection.fields];return ot({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:J({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:e.projection.mode,fields:n},now:N()},e.warnings)}function ot(e,t){return t.length===0?e:{...e,warnings:t}}function Ee(e,t){return t?{...e,workspace_memory:t}:e}function Ws(e,t,n){if(!e.highlight)return{hits:n,projection:e.projection};let r=new Map(t.map(o=>[o.metadata.id,o])),i=n.map(o=>({...o,highlights:ri(r.get(o.item.id),o.matched_fields,e.tokens)}));return e.projection.mode==="full"||e.projection.fields.includes("highlights")?{hits:i,projection:e.projection}:{hits:i,projection:{mode:e.projection.mode,fields:[...e.projection.fields,"highlights"]}}}function $s(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return ot({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:X({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let a=i.mode==="full"?null:[...i.fields];return{query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:J({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:i.mode,fields:a},now:N(),...e.warnings.length>0?{warnings:e.warnings}:{}}}function Bs(e){if(e.after!==void 0&&e.count===!0)throw new h("Search --after cannot be combined with --count.",p.USAGE)}async function bi(e,t,n){Bs(t);let r=Ds(e,t),i=await Ps(r,n),o=await Ls(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await An(o.allDocuments.map(v=>v.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:N()});s.push(...a.warnings);let c=In(a,r.query);i.effectiveMode==="hybrid"&&i.semanticWeightProvided&&i.semanticWeightOverride===void 0&&s.push("search_hybrid_semantic_weight_override_invalid:using_settings_default");let d={query:r.query,matchMode:r.matchMode,options:r.options,includeLinked:r.includeLinked,titleExact:r.titleExact,phraseExact:r.phraseExact,scoreThreshold:i.scoreThreshold,hybridSemanticWeight:i.hybridSemanticWeight,queryExpansion:i.queryExpansion,rerank:i.rerank,projection:r.projection,warnings:s,runtimeFieldFilters:i.runtimeFieldFilters};if(i.effectiveMode==="keyword"&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return Ee(Nr({...d,effectiveMode:i.effectiveMode},r.countOnly),c);let l=await js(r,i,o.filteredDocuments),u=await zs({prepared:r,runtime:i,filteredDocuments:o.filteredDocuments,keywordHits:l,warnings:s,modeWasExplicit:r.modeWasExplicit});if(u.effectiveMode!=="keyword"&&u.hits.length===0&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return Ee(Nr({...d,effectiveMode:u.effectiveMode},r.countOnly),c);let f=u.hits.filter(v=>v.exact_id_match===!0||v.score>=i.scoreThreshold),m=oi(f,i.statusRegistry),g=m.length,y=wr({sorted:m,query:r.query,mode:u.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),w={...d,effectiveMode:u.effectiveMode};if(r.countOnly)return Ee(Hs(w,g),c);let{hits:_,projection:b}=Ws(r,o.filteredDocuments,y.limited),k=wi(_,b);return Ee($s(w,k,g,y.limited.length,b,y.pageExtras),c)}import Ks from"node:fs/promises";import ut from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b90a064c-f423-5bf7-9fbf-1fb273c7b5af")}catch{}})();var Vs=ut.join("search","eval-queries.json"),ft={schema:q,examples:[JSON.stringify(we)],nextSteps:["Create a git-tracked golden-query JSON file that follows the schema, then re-run pm eval."]},Qs=new Set(["keyword","semantic","hybrid"]),Ys=e=>{if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(!Qs.has(t))throw new h("Eval --mode must be one of keyword|semantic|hybrid",p.USAGE);return t},Xs=e=>{if(e===void 0||e==="")return hr;let t=ee(e);if(t===null)throw new h("Eval --k must be a positive integer",p.USAGE);return t},Js=e=>{if(e===void 0||e==="")return;let t=String(e).trim(),n=Number(t);if([t.length===0,!Number.isFinite(n),n<0,n>1].includes(!0))throw new h("Eval --fail-under must be a number in the range [0, 1]",p.USAGE);return n},j=e=>Math.round(e*1e4)/1e4,Zs=async e=>{try{return await Ks.readFile(e,"utf8")}catch{throw new h(`Eval query set not found at ${e}`,p.NOT_FOUND,{...ft,examples:[`echo '${JSON.stringify(we)}' > ${e}`,"pm eval --queries ./my-eval.json"]})}},ea=(e,t)=>{try{return JSON.parse(e)}catch(n){throw new h(`Eval query set at ${t} is not valid JSON: ${n instanceof Error?n.message:String(n)}`,p.USAGE,ft)}},ta=e=>{try{return Be(e)}catch(t){throw new h(t instanceof Error?t.message:String(t),p.USAGE,ft)}},na=async e=>ta(ea(await Zs(e),e)),ra=(e,t)=>t?ut.resolve(process.cwd(),t):ut.join(e,Vs),ia=async(e,t,n,r)=>{let i=e.mode??t,s=(await bi(e.query,{mode:i,limit:String(n),fields:"id"},r)).items.map(c=>c.id).filter(c=>typeof c=="string"),a=gr(s,new Set(e.relevant_ids),n);return{metrics:a,report:{query:e.query,mode:i,relevant_total:a.relevant_total,retrieved_relevant:a.retrieved_relevant,ndcg:j(a.ndcg),mrr:j(a.mrr),precision:j(a.precision),recall:j(a.recall)}}},oa=(e,t,n,r)=>{let i=yr(n);return{k:e,query_count:t.length,aggregate:{ndcg:j(i.ndcg),mrr:j(i.mrr),precision:j(i.precision),recall:j(i.recall)},queries:t,...r!==void 0?{fail_under:r}:{},passed:r===void 0||i.ndcg>=r}},Gd=async(e,t)=>{let n=x(process.cwd(),t.path);if(!await A(R(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,p.NOT_FOUND);let r=Xs(e.k),i=Ys(e.mode),o=Js(e.failUnder),s=ra(n,e.queries),a=await na(s),c=[],d=[];for(let l of a.queries){let{report:u,metrics:f}=await ia(l,i,r,t);d.push(f),c.push(u)}return oa(r,c,d,o)};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="348c9246-2fb9-529e-b627-f60c901a6cf2")}catch{}})();function Ei(e){return Math.round(e*1e6)/1e6}function vi(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function Si(e,t){let n=new Map(e.nodes().map(i=>[i,new Set]));Ue(e,t,i=>{n.get(i.source).add(i.target),n.get(i.target).add(i.source)});let r=new Map;for(let[i,o]of n)r.set(i,[...o].sort());return r}function sa(e,t){let n=new Map,r=new Map;return Ue(e,t,(i,o)=>{if(!o.ordering)return;let{predecessor:s,successor:a}=le(i,o);vi(r,s,a),vi(n,a,s)}),{incoming:n,outgoing:r}}function aa(e,t,n){let r=new Map([[e,0]]),i=new Map([[e,1]]),o=new Map,s=[],a=[e],c=0,d=0;for(let l=0;l<a.length;l+=1){let u=a[l];n.visitedNodes+=1,s.push(u);let f=r.get(u);u!==e&&(c+=1,d+=f);for(let m of t.get(u))if(n.inspectedEdges+=1,r.has(m)||(r.set(m,f+1),a.push(m)),r.get(m)===f+1){i.set(m,(i.get(m)??0)+i.get(u));let g=o.get(m);g===void 0?o.set(m,[u]):g.push(u)}}return{stack:s,sigma:i,predecessors:o,reachableCount:c,distanceSum:d}}function ca(e,t,n){let r=new Map;for(let i=e.stack.length-1;i>=0;i-=1){let o=e.stack[i],s=(1+(r.get(o)??0))/e.sigma.get(o);for(let a of e.predecessors.get(o)??[])r.set(a,(r.get(a)??0)+e.sigma.get(a)*s);o!==t&&n.set(o,(n.get(o)??0)+(r.get(o)??0))}}function da(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function la(e,t,n,r,i){return{id:e,degree:t.get(e).length,inDegree:n.incoming.get(e)?.size??0,outDegree:n.outgoing.get(e)?.size??0,betweenness:Ei((r.get(e)??0)/2),closeness:Ei(i.get(e))}}function xi(e,t={}){let n=Si(e,t.kinds),r=sa(e,t.kinds),i=e.nodes(),o=new Map,s=new Map,a={visitedNodes:0,inspectedEdges:0};for(let l of i){t.signal?.throwIfAborted();let u=aa(l,n,a);s.set(l,da(u,i.length)),ca(u,l,o)}let c=0;for(let l of n.values())c+=l.length;let d=i.map(l=>la(l,n,r,o,s)).sort((l,u)=>u.betweenness-l.betweenness||u.degree-l.degree||l.id.localeCompare(u.id));return{value:{nodeCount:i.length,edgeCount:c/2,rows:d},meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:!1}}}function ua(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function fa(e,t,n){let i=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,n.inspectedEdges+=1,i!==e.parent){if(n.discovery.has(i)){n.low.set(e.node,Math.min(n.low.get(e.node),n.discovery.get(i)));return}return e.children+=1,n.discovery.set(i,n.timer),n.low.set(i,n.timer),n.timer+=1,{node:i,parent:e.node,neighborIndex:0,children:0}}}function ma(e,t,n){if(e.parent===null){e.children>1&&n.articulation.add(e.node);return}let r=e.parent,i=n.low.get(e.node);n.low.set(r,Math.min(n.low.get(r),i)),r!==t&&i>=n.discovery.get(r)&&n.articulation.add(r),i>n.discovery.get(r)&&n.bridges.push(ua(r,e.node))}function pa(e,t,n,r){n.discovery.set(e,n.timer),n.low.set(e,n.timer),n.timer+=1;let i=[{node:e,parent:null,neighborIndex:0,children:0}];for(;i.length>0;){r?.throwIfAborted();let o=i.at(-1);if(o.neighborIndex<t.get(o.node).length){let s=fa(o,t,n);s!==void 0&&i.push(s)}else ma(o,e,n),i.pop()}}function ki(e,t={}){let n=Si(e,t.kinds),r={discovery:new Map,low:new Map,timer:0,articulation:new Set,bridges:[],inspectedEdges:0};for(let i of e.nodes())r.discovery.has(i)||pa(i,n,r,t.signal);return{value:{articulationPoints:[...r.articulation].sort(),bridges:r.bridges.sort((i,o)=>i.source.localeCompare(o.source)||i.target.localeCompare(o.target))},meta:{visitedNodes:r.discovery.size,inspectedEdges:r.inspectedEdges,truncated:!1}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f155ac72-64eb-5316-b016-954abd48c0e7")}catch{}})();function ha(e){let t=e.registry(),n=new Map,r=new Set;for(let i of e.edges()){let o=t.require(i.kind);if(!o.ordering)continue;let{predecessor:s,successor:a}=le(i,o);if(r.add(s),r.add(a),s===a)continue;let c=n.get(s);c===void 0?n.set(s,new Set([a])):c.add(a)}return{forward:n,participants:r}}function ga(e,t,n,r){if(e===void 0)return r;let i=r;for(let o of e)t.has(o)&&(i=Math.min(i,n.get(o)));return i}function ya(e,t,n){let r=n-t;return{id:e,earliestStart:t,earliestFinish:t+1,latestStart:n,latestFinish:n+1,slack:r,critical:r===0}}function _a(e,t,n,r,i){let o=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=ga(t.forward.get(a),r,o,i);o.set(a,c-1)}return e.map(s=>ya(s,n[s],o.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function Ai(e,t={}){t.signal?.throwIfAborted();let n=ge(e,{registry:e.registry()}),r=ha(e),i=new Set(n.order),o=n.order.filter(d=>r.participants.has(d)),s=o.reduce((d,l)=>Math.max(d,n.depth[l]+1),0),a=_a(o,r,n.depth,i,s),c=a.length>0;return{exact:!0,acyclic:n.acyclic,makespan:s,scheduledCount:a.length,criticalPath:c?n.criticalPath:[],criticalPathLength:c?n.criticalPathLength:0,cycles:n.cycles,rows:a,provenance:{algorithm:"critical-path-method",edgeFamily:"ordering",weighting:"unit"}}}import Ci from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ee260dcf-f4df-5997-a8d7-691c19c66a41")}catch{}})();var Ri=1,mt=500,wa=64,ba="graph-durable-cache";function Mi(e){return Wt(e,ba,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function Z(e){return Ci.join(e,"runtime","graph-cache.json")}function Fi(e){return Ci.join(e,"runtime","graph-audit-baseline.json")}function pt(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==Ri||typeof t.fingerprint!="string"||typeof t.saved_at!="string"||typeof t.results!="object"||t.results===null||Array.isArray(t.results)?void 0:t}catch{return}}async function ht(e,t){let n=await $(Z(e)),r=pt(n),i=r?.fingerprint===t;return{exists:n!==null,fresh:i,results:i?r.results:{}}}async function gt(e,t,n,r,i){let o=await Mi(e);try{let s=pt(await $(Z(e))),a=s?.fingerprint===t?s.results:{};delete a[r],a[r]=i;let c=Object.keys(a);for(let d of c.slice(0,Math.max(0,c.length-wa)))delete a[d];await Ae(Z(e),JSON.stringify({version:Ri,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await o()}}async function yt(e){let t=await Mi(e);try{await Et(Z(e))}finally{await t()}}async function Ti(e,t){let n=Z(e),r=await $(n),i=pt(r);return i===void 0?{exists:r!==null,fresh:!1,entry_count:0}:{exists:!0,fresh:i.fingerprint===t,entry_count:Object.keys(i.results).length,fingerprint:i.fingerprint.slice(0,12),saved_at:i.saved_at,bytes:Buffer.byteLength(r,"utf8")}}function _t(e,t){return t||e>=mt}function Ii(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.values(e).every(t=>Number.isInteger(t)&&t>=0)}function Ea(e){return typeof e!="object"||e===null||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&[t.active,t.isolated,t.degree_leq_one].every(n=>Number.isInteger(n)&&n>=0))}function va(e){if(e!==null)try{let t=JSON.parse(e);if(typeof t!="object"||t===null)return;let n=t,r=n.profile;return typeof n.saved_at!="string"||typeof n.fingerprint!="string"||!Ii(n.affected_subjects_by_code)||typeof r!="object"||r===null||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(i=>Number.isInteger(i)&&i>=0)||!Ii(r.edges_by_kind)||r.coverage_by_type!==void 0&&!Ea(r.coverage_by_type)?void 0:{...n,profile:{...r,coverage_by_type:r.coverage_by_type??{}}}}catch{return}}async function Di(e){return va(await $(Fi(e)))}async function Pi(e,t){await Ae(Fi(e),JSON.stringify(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9b8e22ad-6268-515d-994e-6b98a062ba93")}catch{}})();var Sa={missing_reference_active:{op:"investigate",confidence:"medium",rationale:"Restore or re-create the referenced item, or remove/retype the reference on the active holder; the correct fix depends on why the target is absent."},missing_reference_terminal:{op:"waive",confidence:"high",rationale:"Terminal-holder reference to an absent item is historical debt; waive it or clean it up only in a dedicated changelog-safe closed-item batch."},legacy_no_blocker_sentinel:{op:"remove",confidence:"high",rationale:"The pre-structured-dependency no-active-blocker sentinel is retired and carries no information; blocker state derives from blocked_by edges."},ordering_cycle:{op:"investigate",confidence:"low",rationale:"Every cycle member is unschedulable until one ordering edge is removed or retyped; the planner never chooses which edge to cut."},legacy_ordering_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only ordering cycles have no scheduling effect; repairing them would mutate closed history (changelog drag)."},duplicate_edge:{op:"remove",confidence:"high",rationale:"Parallel same-family spellings state one relationship twice; remove all but one stored spelling, keeping the holder's canonical direction."},legacy_duplicate_edge:{op:"waive",confidence:"high",rationale:"Duplicated spellings between terminal items are historical noise; waive or batch changelog-safe cleanup."},duplicate_dependency_row:{op:"remove",confidence:"high",rationale:"The identical dependency row is stored more than once on the holder; drop the repeats so the row exists exactly once \u2014 graph semantics are unchanged."},legacy_duplicate_dependency_row:{op:"waive",confidence:"high",rationale:"Repeated identical rows on terminal holders are storage noise; waive or clean up only in a changelog-safe closed-item batch."},stale_lifecycle_block:{op:"investigate",confidence:"medium",rationale:`Add a local ordering edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status; only the holder's owner knows which is true.`},isolated_active_node:{op:"investigate",confidence:"medium",rationale:"Link the item to its parent, prerequisite, or origin \u2014 or register it as an explicitly exempt isolate; the audit never fabricates an edge."},sparse_active_node:{op:"investigate",confidence:"low",rationale:"Investigate for an honest second edge (story-to-task, defect family, cross-epic complement); sparse is not automatically defective."}};function Li(e){return`${e.source} -${e.kind}-> ${e.target}`}function xa(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:Li(r),rationale:"This stored spelling restates the kept canonical edge of the same semantic family; removing it leaves the relationship stated exactly once.",evidence:[`keep: ${Li(t)}`,`group: ${ze(e)}`],confidence:"high"}))}function ka(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>xa(t.get(r)));let n=Sa[e.code];return e.sample.map(r=>({op:n.op,code:e.code,subject:r,rationale:n.rationale,evidence:[e.policy],confidence:n.confidence}))}function qi(e,t={}){let{redundancyLimit:n,...r}=t,i=fe(e,r),o=new Map(jn(e).map(d=>[ze(d),d])),s=i.findings.flatMap(d=>ka(d,o)),a=i.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=ue(e.graph,{limit:n??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)s.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:s,report:i,truncated:a,cost:{visitedNodes:c.meta.visitedNodes,inspectedEdges:c.meta.inspectedEdges}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0fbc54bf-3321-5c73-a351-5db01aab5544")}catch{}})();var Gi=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),O=10;function ji(e,t,n){return{...e,projection:{mode:t?"summary":"full",declared_field_groups:n===void 0?[]:[{name:n,restore_with:"--full"}],included_field_groups:n===void 0||t?[]:[n]}}}function Oi(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function Aa(e,t,n){let r=e.trim().toLowerCase();if(!Te.includes(r))throw new h(`Invalid graph subcommand "${e}". Use one of: ${Te.join(", ")}.`,p.USAGE);let i=r;if(Gi.has(i)&&!t?.trim())throw new h(`graph ${i} requires an item id.`,p.USAGE);if(i==="paths"&&!n?.trim())throw new h("graph paths requires a source and a target item id.",p.USAGE);return i}function wt(e){throw e instanceof TypeError?new h(e.message,p.USAGE):e}function bt(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function Ni(e,t){let n=t.trim().toLowerCase();for(let r of e.details)if(r.id.trim().toLowerCase()===n&&!e.missingIdSet.has(r.id.toLowerCase()))return r.id;throw new h(`Item ${t} not found`,p.NOT_FOUND)}function Ia(e,t,n){let r={ancestors:Mn,descendants:Fn,predecessors:Tn,successors:Dn}[e],i;try{i=r(n.assembly.graph,t,{...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.limit===void 0?{}:{limit:n.limit},...n.after===void 0?{}:{after:n.after}})}catch(s){wt(s)}let o=bt(i.meta);return{subcommand:e,root:t,count:i.value.length,...o,...i.meta.nextCursor===void 0?{}:{next_cursor:i.meta.nextCursor},...n.summary?{}:{ids:i.value}}}function Ca(e,t,n){let r=Pn(n.assembly.graph,e,t,{direction:n.direction,...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.maxPaths===void 0?{}:{maxPaths:n.maxPaths}});return{subcommand:"paths",root:e,target:t,direction:n.direction,count:r.value.length,...bt(r.meta),...n.summary?{}:{paths:r.value.map(i=>({nodes:i.nodes,kinds:i.edges.map(o=>o.kind),length:i.length}))}}}function Ra(e,t){let n;try{n=Vn(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth},...t.unbounded?{}:{limit:t.limit??O},...t.after===void 0?{}:{after:t.after}})}catch(r){wt(r)}return{subcommand:"impact",root:e,direction:t.direction,count:n.affected.length,truncated:n.truncated,...n.nextCursor===void 0?{}:{next_cursor:n.nextCursor},cost:{visited_nodes:n.cost.visitedNodes,inspected_edges:n.cost.inspectedEdges},...t.summary?{}:{affected:n.affected}}}function Ma(e){let t=e.assembly.graph,n=e.limit??O,r=ge(t,{registry:t.registry()}),i=Qn(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:{acyclic:r.acyclic,ordered_node_count:r.order.length,layer_count:r.layers.length,frontier_count:r.frontier.length,critical_path_length:r.criticalPathLength,cycle_count:r.cycles.length,...e.summary?{}:{frontier:r.frontier.slice(0,n),critical_path:r.criticalPath.slice(0,n),cycles:r.cycles.slice(0,n)}},knowledge:{component_count:i.components.length,largest_component_size:i.components[0]?.length??0,orphan_count:i.orphans.length,...e.summary?{}:{orphans:i.orphans.slice(0,n),hubs:i.hubs.slice(0,n)}}}}function Fa(e,t){let n=fe(e.assembly,{isTerminal:t,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),r={},i={},o={},s={};for(let a of n.findings)r[a.severity]=(r[a.severity]??0)+1,i[a.code]=(i[a.code]??0)+1,o[a.severity]=(o[a.severity]??0)+a.count,s[a.code]=(s[a.code]??0)+a.count;return{subcommand:"audit",finding_count:n.findings.length,findings_by_severity:r,findings_by_code:i,affected_subjects_by_severity:o,affected_subjects_by_code:s,profile:n.profile,...e.summary?{}:{findings:n.findings}}}function Ta(e){let t=e.limit??O,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=Ln(e.assembly.graph,n),i=r.value;return{subcommand:"communities",community_count:i.communities.length,largest_community_size:i.communities[0]?.size??0,iterations:i.iterations,converged:i.converged,truncated:!i.converged||i.communities.length>t,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...e.summary?{}:{communities:i.communities.slice(0,t).map(o=>({representative:o.representative,size:o.size,members:o.members.slice(0,t)}))}}}function Da(e){let t;try{t=ue(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(n){wt(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...bt(t.meta),...e.summary?{}:{redundant:t.value.map(n=>({source:n.edge.source,target:n.edge.target,kind:n.edge.kind,witness:n.witness}))}}}function Pa(e,t){let n=t.limit??O,r=qn(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth}}),i=r.value.rows.filter(o=>o.dominatedCount>0);return{subcommand:"dominators",root:e,direction:t.direction,reachable_count:r.value.reachableCount,bottleneck_count:i.length,truncated:r.meta.truncated||i.length>n,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...t.summary?{}:{bottlenecks:i.slice(0,n).map(o=>({id:o.id,idom:o.idom,dominated_count:o.dominatedCount}))}}}function La(e){let t=e.limit??O,n=Ai(e.assembly.graph),r=n.rows.filter(i=>i.critical).length;return{subcommand:"slack",acyclic:n.acyclic,makespan:n.makespan,scheduled_count:n.scheduledCount,critical_count:r,critical_path_length:n.criticalPathLength,cycle_count:n.cycles.length,truncated:n.rows.length>t,...e.summary?{}:{critical_path:n.criticalPath,rows:n.rows.slice(0,t).map(i=>({id:i.id,earliest_start:i.earliestStart,latest_start:i.latestStart,slack:i.slack,critical:i.critical}))}}}function qa(e){let t=e.limit??O,n=xi(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),r=n.value;return{subcommand:"centrality",node_count:r.nodeCount,edge_count:r.edgeCount,edge_basis:"simple_undirected",truncated:r.rows.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{rows:r.rows.slice(0,t).map(i=>({id:i.id,degree:i.degree,in_degree:i.inDegree,out_degree:i.outDegree,betweenness:i.betweenness,closeness:i.closeness}))}}}function ja(e){let t=e.limit??O,n=ki(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),{articulationPoints:r,bridges:i}=n.value;return{subcommand:"articulation",articulation_count:r.length,bridge_count:i.length,truncated:r.length>t||i.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{articulation_points:r.slice(0,t),bridges:i.slice(0,t)}}}function Oa(e,t){let n=e.limit??O,r=qi(e.assembly,{isTerminal:t,redundancyLimit:n,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),i={},o={};for(let s of r.steps)i[s.op]=(i[s.op]??0)+1,o[s.code]=(o[s.code]??0)+1;return{subcommand:"plan",step_count:r.steps.length,steps_by_op:i,steps_by_code:o,finding_count:r.report.findings.length,truncated:r.truncated||r.steps.length>n,cost:{visited_nodes:r.cost.visitedNodes,inspected_edges:r.cost.inspectedEdges},...e.summary?{}:{steps:r.steps.slice(0,n)}}}function Ui(e,t,n,r){return JSON.stringify({subcommand:e,root:t??null,target:n??null,kinds:r.kinds??null,maxDepth:r.maxDepth??null,limit:r.limit??null,after:r.after??null,direction:r.direction,maxPaths:r.maxPaths??null,sample:r.sample??null,exemptIsolates:[...new Set(r.exemptIsolates.map(i=>i.toLowerCase()))].sort(),exemptIsolateTypes:[...new Set(r.exemptIsolateTypes.map(i=>i.toLowerCase()))].sort(),summary:r.summary,unbounded:r.unbounded})}function zi(e,t,n,r,i){return e==="analyze"?Ma(r):e==="audit"?Fa(r,i):e==="plan"?Oa(r,i):e==="communities"?Ta(r):e==="redundancy"?Da(r):e==="dominators"?Pa(t,r):e==="slack"?La(r):e==="centrality"?qa(r):e==="articulation"?ja(r):e==="paths"?Ca(t,n,r):e==="impact"?Ra(t,r):Ia(e,t,r)}function Na(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new h("--rebuild and --clear apply only to graph index.",p.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new h("--save-baseline applies only to graph audit.",p.USAGE);if(e==="slack"&&t.kind!==void 0)throw new h("graph slack analyzes every ordering kind; --kind is not supported.",p.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new h("graph index accepts either --rebuild or --clear, not both.",p.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new h("graph impact accepts either --full or --limit, not both.",p.USAGE)}async function Ga(e,t,n,r,i,o){let s="status";if(o.clear===!0&&(await yt(e),s="cleared"),o.rebuild===!0){await yt(e);let c=await ht(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let l of["analyze","audit"])await gt(e,t,c,Ui(l,void 0,void 0,d),zi(l,void 0,void 0,d,i));s="rebuilt"}let a=await Ti(e,t);return{subcommand:"index",action:s,state:a.exists?a.fresh?"fresh":"stale":"absent",entry_count:a.entry_count,item_count:r,min_items_threshold:mt,persist_enabled:_t(r,a.exists),current_fingerprint:t.slice(0,12),...a.saved_at===void 0?{}:{saved_at:a.saved_at},...a.bytes===void 0?{}:{bytes:a.bytes}}}async function Ua(e,t,n,r){let i={saved_at:new Date().toISOString(),fingerprint:t,affected_subjects_by_code:n.affected_subjects_by_code,profile:n.profile},o=await Di(e);return r&&await Pi(e,i),o===void 0?n:{...n,baseline:On(o,i)}}async function za(e,t,n,r,i){try{await gt(e,t,n,r,i)}catch{}}async function kl(e,t,n,r,i){let o=Aa(e,t,n);Lt(r.summary===!0,r.full===!0,"--summary");let s=x(process.cwd(),i.path);if(!await A(R(s)))throw new h(`Tracker is not initialized at ${s}. Run pm init first.`,p.NOT_FOUND);let a=await M(s),c=P(a,I()),d=await ae(s,a.item_format,c.type_to_folder,void 0,a.schema),l=L(a.schema),u=Hi=>G(Hi,l);Na(o,r);let f=Cn(),m=Wn(r.kind,f),g=Un().lookup(s,Gn(d,u,f),()=>Rn(d,u,f)),y={assembly:g.assembly,...m===void 0?{}:{kinds:m},maxDepth:zn(r.maxDepth),limit:me(r.limit,"limit"),after:r.after?.trim()||void 0,direction:Hn(r.direction),maxPaths:me(r.maxPaths,"max-paths"),sample:me(r.sample,"sample"),exemptIsolates:Oi(r.exemptIsolate),exemptIsolateTypes:Oi(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(o==="index")return ji(await Ga(s,g.fingerprint,y,d.length,u,r),!1);let w=Gi.has(o)?Ni(y.assembly,t):void 0,_=o==="paths"?Ni(y.assembly,n):void 0,b=Ui(o,w,_,y),k=await ht(s,g.fingerprint),v=k.results[b],S=g.memoize(b,()=>v!==void 0?structuredClone(v):zi(o,w,_,y,u)),E=_t(d.length,k.exists);!S.reused&&v===void 0&&E&&await za(s,g.fingerprint,k,b,S.value);let T=S.value.subcommand==="audit"?await Ua(s,g.fingerprint,S.value,y.saveBaseline):S.value;return T.cache={fingerprint:g.fingerprint.slice(0,12),assembly:g.assemblyReused?"hit":"miss",result:S.reused?"hit":"miss",durable:v!==void 0?"hit":E?"miss":"off"},ji(T,y.summary,"result_rows")}export{ge as a,Vn as b,Qn as c,$a as d,Ya as e,Xa as f,oc as g,cr as h,dr as i,lr as j,fo as k,ur as l,Ec as m,vc as n,q as o,Fo as p,we as q,Be as r,X as s,J as t,No as u,wr as v,Xe as w,Je as x,Ze as y,et as z,Ur as A,zr as B,Cd as C,bi as D,Vs as E,Gd as F,xi as G,ki as H,Ai as I,Ri as J,mt as K,Z as L,Fi as M,ht as N,gt as O,yt as P,Ti as Q,_t as R,Di as S,Pi as T,qi as U,Aa as V,kl as W};
5
+ //# sourceMappingURL=chunk-B4H7FEFH.js.map