@unbrained/pm-cli 2026.10.28 → 2026.10.31

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 (278) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +50 -0
  3. package/dist/cli/commander-usage.js +2 -2
  4. package/dist/cli/commands/lifecycle/append.d.ts +4 -0
  5. package/dist/cli/commands/lifecycle/append.js +1 -1
  6. package/dist/cli/commands/lifecycle/create.d.ts +4 -0
  7. package/dist/cli/commands/lifecycle/create.js +1 -1
  8. package/dist/cli/commands/lifecycle/plan.d.ts +3 -0
  9. package/dist/cli/commands/lifecycle/plan.js +1 -1
  10. package/dist/cli/commands/lifecycle/update-many.d.ts +4 -0
  11. package/dist/cli/commands/lifecycle/update-many.js +1 -1
  12. package/dist/cli/commands/lifecycle/update.d.ts +4 -0
  13. package/dist/cli/commands/lifecycle/update.js +1 -1
  14. package/dist/cli/error-guidance.d.ts +45 -5
  15. package/dist/cli/error-guidance.js +5 -3
  16. package/dist/cli/extension-command-help.d.ts +1 -0
  17. package/dist/cli/extension-command-help.js +2 -2
  18. package/dist/cli/help-content.js +2 -2
  19. package/dist/cli/main.d.ts +1 -5
  20. package/dist/cli/main.js +5 -5
  21. package/dist/cli/migration-gates.d.ts +1 -1
  22. package/dist/cli/migration-gates.js +1 -1
  23. package/dist/cli/preflight-warnings.d.ts +11 -0
  24. package/dist/cli/preflight-warnings.js +4 -0
  25. package/dist/cli/register-list-query.js +3 -3
  26. package/dist/cli/register-mutation.js +2 -2
  27. package/dist/cli-bundle/bundle-manifest.json +1 -1
  28. package/dist/cli-bundle/chunks/chunk-24J6TNYE.js +8 -0
  29. package/dist/cli-bundle/chunks/{chunk-YYD5MNAV.js → chunk-2AHSPMKJ.js} +2 -2
  30. package/dist/cli-bundle/chunks/chunk-35Q2B2GJ.js +2 -0
  31. package/dist/cli-bundle/chunks/chunk-43R7UTWV.js +2 -0
  32. package/dist/cli-bundle/chunks/chunk-6PSDQ7T7.js +8 -0
  33. package/dist/cli-bundle/chunks/{chunk-YUBUNECD.js → chunk-BS2KXT24.js} +84 -84
  34. package/dist/cli-bundle/chunks/{chunk-D3AIQZXF.js → chunk-GMBDZID5.js} +3 -3
  35. package/dist/cli-bundle/chunks/chunk-HSBTITO4.js +3 -0
  36. package/dist/cli-bundle/chunks/{chunk-LWW4F4G2.js → chunk-MRUA2Z43.js} +2 -2
  37. package/dist/cli-bundle/chunks/chunk-P3LNMWL2.js +2 -0
  38. package/dist/cli-bundle/chunks/chunk-PT7TS6E7.js +2 -0
  39. package/dist/cli-bundle/chunks/{chunk-TH5KPAN4.js → chunk-SBVX5CMV.js} +2 -2
  40. package/dist/cli-bundle/chunks/{chunk-D6P6IBPN.js → chunk-TL3O5GZA.js} +45 -45
  41. package/dist/cli-bundle/chunks/chunk-U7JXZMU5.js +6 -0
  42. package/dist/cli-bundle/chunks/{chunk-DM3PICGU.js → chunk-V6EWBTNH.js} +2 -2
  43. package/dist/cli-bundle/chunks/chunk-VC7TA67O.js +20 -0
  44. package/dist/cli-bundle/chunks/chunk-WNF6FOL7.js +31 -0
  45. package/dist/cli-bundle/chunks/chunk-WRXQAW7Q.js +114 -0
  46. package/dist/cli-bundle/chunks/{chunk-RZQNFHXO.js → chunk-WX25MU4N.js} +3 -3
  47. package/dist/cli-bundle/chunks/chunk-XDDPSWIW.js +2 -0
  48. package/dist/cli-bundle/chunks/chunk-YT5D5HNG.js +2 -0
  49. package/dist/cli-bundle/chunks/chunk-ZTJVOBDU.js +128 -0
  50. package/dist/cli-bundle/chunks/{indexed-receipt-blobs-LHLE7PSG.js → indexed-receipt-blobs-KGMJVFH2.js} +2 -2
  51. package/dist/cli-bundle/chunks/item-transaction-UWV6UNSV.js +2 -0
  52. package/dist/cli-bundle/chunks/{mutation-admission-GKDKHRTZ.js → mutation-admission-I4RHIT3Q.js} +2 -2
  53. package/dist/cli-bundle/chunks/{register-list-query-MHJJUM6M.js → register-list-query-MVDL5EXG.js} +6 -6
  54. package/dist/cli-bundle/chunks/register-mutation-GAF7LXRB.js +20 -0
  55. package/dist/cli-bundle/chunks/register-operations-JLFRL36Q.js +2 -0
  56. package/dist/cli-bundle/chunks/{register-setup-WUZ2ZSMY.js → register-setup-MZN6ONB3.js} +2 -2
  57. package/dist/cli-bundle/chunks/{settlement-hook-MN3Y7LVX.js → settlement-hook-YWSWFOZY.js} +2 -2
  58. package/dist/cli-bundle/chunks/{stage-2FYJGGG3.js → stage-2ZORTOF6.js} +2 -2
  59. package/dist/cli-bundle/focused-chunks/{chunk-4GN2ZPT5.js → chunk-2J7T2UCH.js} +2 -2
  60. package/dist/cli-bundle/focused-chunks/{chunk-YLVHHWHN.js → chunk-4PW5XWVI.js} +2 -2
  61. package/dist/cli-bundle/focused-chunks/chunk-4QPGJO2G.js +26 -0
  62. package/dist/cli-bundle/focused-chunks/{chunk-IQKLJFJE.js → chunk-57HPXGOQ.js} +18 -18
  63. package/dist/cli-bundle/focused-chunks/chunk-5MCGYBOQ.js +91 -0
  64. package/dist/cli-bundle/focused-chunks/chunk-6F6APBCX.js +3 -0
  65. package/dist/cli-bundle/focused-chunks/chunk-AFVN2KCP.js +44 -0
  66. package/dist/cli-bundle/focused-chunks/{chunk-ON5WFDCG.js → chunk-DFUTCKUF.js} +2 -2
  67. package/dist/cli-bundle/focused-chunks/chunk-EA65HVBO.js +12 -0
  68. package/dist/cli-bundle/focused-chunks/chunk-GP2WU43K.js +26 -0
  69. package/dist/cli-bundle/focused-chunks/{chunk-C2GLO7HU.js → chunk-HPWT3RBG.js} +54 -54
  70. package/dist/cli-bundle/focused-chunks/chunk-HSAEEWSI.js +2 -0
  71. package/dist/cli-bundle/focused-chunks/{chunk-7SZPZOIC.js → chunk-JLXGRDTG.js} +3 -3
  72. package/dist/cli-bundle/focused-chunks/chunk-JNKRUCVZ.js +2 -0
  73. package/dist/cli-bundle/focused-chunks/{chunk-JTCGDODH.js → chunk-KH5QJXY7.js} +2 -2
  74. package/dist/cli-bundle/focused-chunks/chunk-KKRIFBSL.js +2 -0
  75. package/dist/cli-bundle/focused-chunks/{chunk-TUN4M757.js → chunk-MW77Q3AQ.js} +2 -2
  76. package/dist/cli-bundle/focused-chunks/chunk-NOKG4RFN.js +22 -0
  77. package/dist/cli-bundle/focused-chunks/{chunk-DRN4W3YJ.js → chunk-NRBUMDLF.js} +2 -2
  78. package/dist/cli-bundle/focused-chunks/{chunk-ML5JIUM6.js → chunk-PC3R5CJV.js} +2 -2
  79. package/dist/cli-bundle/focused-chunks/chunk-PFBQOZPK.js +2 -0
  80. package/dist/cli-bundle/focused-chunks/{chunk-R3EA3SDW.js → chunk-QFMJGQGO.js} +3 -3
  81. package/dist/cli-bundle/focused-chunks/{chunk-I4X6AKOO.js → chunk-SFQKCA5K.js} +2 -2
  82. package/dist/cli-bundle/focused-chunks/chunk-WHIE2C6Q.js +2 -0
  83. package/dist/cli-bundle/focused-chunks/chunk-Y6UYRMVG.js +6 -0
  84. package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-5H6RMRTK.js → indexed-receipt-blobs-KHWT44EK.js} +2 -2
  85. package/dist/cli-bundle/focused-chunks/item-transaction-LU75EG7D.js +2 -0
  86. package/dist/cli-bundle/focused-chunks/{mutation-admission-TM3SVU2O.js → mutation-admission-KDJ7SCPA.js} +2 -2
  87. package/dist/cli-bundle/focused-chunks/{settlement-hook-LBVWWSCF.js → settlement-hook-SJV52ZTV.js} +2 -2
  88. package/dist/cli-bundle/focused-chunks/{stage-7ZBRX2Q2.js → stage-R4KEBO37.js} +2 -2
  89. package/dist/cli-bundle/main.js +26 -22
  90. package/dist/cli-bundle/sdk-authoring.js +1 -1
  91. package/dist/cli-bundle/sdk-contracts.js +4 -4
  92. package/dist/cli-bundle/sdk-core.js +1 -43
  93. package/dist/cli-bundle/sdk-governance.js +1 -1
  94. package/dist/cli-bundle/sdk-graph.js +1 -1
  95. package/dist/cli-bundle/sdk-merge.js +61 -61
  96. package/dist/cli-bundle/sdk-query.js +1 -1
  97. package/dist/cli-bundle/sdk-runtime.js +1 -1
  98. package/dist/cli-bundle/sdk-testing.js +1 -1
  99. package/dist/cli-bundle/sdk.js +11 -11
  100. package/dist/core/config/nested-settings.js +1 -1
  101. package/dist/core/extensions/extension-hook-runtime.js +1 -1
  102. package/dist/core/extensions/extension-types.d.ts +4 -0
  103. package/dist/core/extensions/extension-types.js +1 -1
  104. package/dist/core/extensions/loader.js +1 -1
  105. package/dist/core/history/operation-contract.d.ts +2 -2
  106. package/dist/core/history/operation-contract.js +1 -1
  107. package/dist/core/item/literal-mutation-input.d.ts +12 -0
  108. package/dist/core/item/literal-mutation-input.js +2 -0
  109. package/dist/core/item/parse.d.ts +2 -0
  110. package/dist/core/item/parse.js +2 -2
  111. package/dist/core/lock/lock.js +4 -4
  112. package/dist/core/output/output.js +3 -3
  113. package/dist/core/schema/fields-file.js +1 -1
  114. package/dist/core/sentry/helpers.d.ts +6 -0
  115. package/dist/core/sentry/helpers.js +1 -1
  116. package/dist/core/sentry/instrument.d.ts +1 -1
  117. package/dist/core/sentry/instrument.js +1 -1
  118. package/dist/core/shared/constants.js +1 -1
  119. package/dist/core/shared/errors.d.ts +6 -0
  120. package/dist/core/shared/errors.js +1 -1
  121. package/dist/core/shared/output-unicode.d.ts +10 -0
  122. package/dist/core/shared/output-unicode.js +2 -0
  123. package/dist/core/store/item-store.js +1 -1
  124. package/dist/core/store/settings-validator.d.ts +1 -0
  125. package/dist/core/store/settings-validator.js +1 -1
  126. package/dist/core/store/settings.js +1 -1
  127. package/dist/core/telemetry/policy.d.ts +8 -0
  128. package/dist/core/telemetry/policy.js +1 -1
  129. package/dist/core/telemetry/runtime.js +3 -3
  130. package/dist/sdk/agent/command-recovery.d.ts +15 -0
  131. package/dist/sdk/agent/command-recovery.js +1 -1
  132. package/dist/sdk/cli-bootstrap.js +1 -1
  133. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +28 -0
  134. package/dist/sdk/cli-contracts/agent-output-contracts.js +2 -2
  135. package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1
  136. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  137. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  138. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
  139. package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
  140. package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
  141. package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
  142. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  143. package/dist/sdk/cli-contracts.d.ts +1 -1
  144. package/dist/sdk/cli-contracts.js +1 -1
  145. package/dist/sdk/completion/fish.js +4 -4
  146. package/dist/sdk/completion/zsh.js +3 -3
  147. package/dist/sdk/config.d.ts +1 -0
  148. package/dist/sdk/config.js +1 -1
  149. package/dist/sdk/core.d.ts +1 -0
  150. package/dist/sdk/core.js +1 -1
  151. package/dist/sdk/error-runtime.d.ts +9 -0
  152. package/dist/sdk/error-runtime.js +1 -1
  153. package/dist/sdk/errors.js +1 -1
  154. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  155. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  156. package/dist/sdk/index.d.ts +2 -2
  157. package/dist/sdk/index.js +1 -1
  158. package/dist/sdk/item-transaction.d.ts +33 -2
  159. package/dist/sdk/item-transaction.js +1 -1
  160. package/dist/sdk/lifecycle/append.js +1 -1
  161. package/dist/sdk/lifecycle/claim.js +1 -1
  162. package/dist/sdk/lifecycle/cli-input.d.ts +4 -0
  163. package/dist/sdk/lifecycle/cli-input.js +2 -0
  164. package/dist/sdk/lifecycle/close.js +1 -1
  165. package/dist/sdk/lifecycle/create.js +1 -1
  166. package/dist/sdk/lifecycle/legacy-none-tokens.js +1 -1
  167. package/dist/sdk/lifecycle/plan.d.ts +2 -3
  168. package/dist/sdk/lifecycle/plan.js +1 -1
  169. package/dist/sdk/lifecycle/reopen.js +1 -1
  170. package/dist/sdk/lifecycle/repeated-terminal-state.d.ts +45 -0
  171. package/dist/sdk/lifecycle/repeated-terminal-state.js +2 -0
  172. package/dist/sdk/lifecycle/shared-unset-fields.d.ts +9 -0
  173. package/dist/sdk/lifecycle/shared-unset-fields.js +1 -1
  174. package/dist/sdk/lifecycle/update-many.d.ts +0 -1
  175. package/dist/sdk/lifecycle/update-many.js +1 -1
  176. package/dist/sdk/lifecycle/update.d.ts +29 -1
  177. package/dist/sdk/lifecycle/update.js +2 -2
  178. package/dist/sdk/output/table-rows.d.ts +15 -1
  179. package/dist/sdk/output/table-rows.js +1 -1
  180. package/dist/sdk/output.d.ts +1 -0
  181. package/dist/sdk/output.js +2 -2
  182. package/dist/sdk/ownership-source.d.ts +18 -0
  183. package/dist/sdk/ownership-source.js +1 -1
  184. package/dist/sdk/public-surface.json +1 -1
  185. package/dist/sdk/query/get.d.ts +1 -1
  186. package/dist/sdk/query/get.js +1 -1
  187. package/dist/sdk/query/history.d.ts +2 -0
  188. package/dist/sdk/query/history.js +1 -1
  189. package/dist/sdk/query/next-ranking-policy.d.ts +35 -0
  190. package/dist/sdk/query/next-ranking-policy.js +2 -0
  191. package/dist/sdk/query/next.d.ts +12 -2
  192. package/dist/sdk/query/next.js +2 -2
  193. package/dist/sdk/query/projection-contracts.d.ts +4 -0
  194. package/dist/sdk/query/projection-contracts.js +1 -1
  195. package/dist/sdk/read-output/surfaces.d.ts +27 -0
  196. package/dist/sdk/read-output/surfaces.js +2 -0
  197. package/dist/sdk/read-output-contracts.js +1 -1
  198. package/dist/sdk/runtime/mutation-value-validation.d.ts +16 -0
  199. package/dist/sdk/runtime/mutation-value-validation.js +2 -0
  200. package/dist/sdk/runtime-input.js +1 -1
  201. package/dist/sdk/runtime-primitives.d.ts +2 -0
  202. package/dist/sdk/runtime-primitives.js +1 -1
  203. package/dist/sdk/runtime.d.ts +14 -0
  204. package/dist/sdk/runtime.js +1 -1
  205. package/dist/sdk/structured-mutations.js +1 -1
  206. package/dist/sdk/test/execution-receipts.d.ts +25 -0
  207. package/dist/sdk/test/execution-receipts.js +2 -2
  208. package/dist/sdk/test/execution.d.ts +5 -0
  209. package/dist/sdk/test/execution.js +2 -2
  210. package/dist/sdk/workspace-transaction-gc.js +1 -1
  211. package/dist/sdk/workspace-transaction.d.ts +54 -0
  212. package/dist/sdk/workspace-transaction.js +2 -2
  213. package/dist/types.d.ts +2 -0
  214. package/dist/types.js +1 -1
  215. package/docs/AGENT_GUIDE.md +1 -1
  216. package/docs/AGENT_OUTPUT_ENCODINGS.md +12 -0
  217. package/docs/AGENT_UX_CONTRACTS.md +2 -1
  218. package/docs/COMMANDS.md +73 -15
  219. package/docs/CONFIGURATION.md +48 -1
  220. package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +26 -0
  221. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +24 -2
  222. package/docs/PACKED_FIRST_RUN.md +2 -1
  223. package/docs/READ_OUTPUT_CONTRACTS.md +24 -6
  224. package/docs/SDK.md +207 -11
  225. package/docs/TESTING.md +46 -2
  226. package/docs/agent-task-token-baseline.json +1 -1
  227. package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
  228. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +6 -3
  229. package/marketplace.json +1 -1
  230. package/package.json +1 -1
  231. package/packages/pm-beads/package.json +1 -1
  232. package/packages/pm-calendar/extensions/calendar/index.ts +1 -0
  233. package/packages/pm-calendar/package.json +1 -1
  234. package/packages/pm-command-kit/package.json +1 -1
  235. package/packages/pm-digital-twin/package.json +1 -1
  236. package/packages/pm-governance-audit/package.json +1 -1
  237. package/packages/pm-guide-shell/package.json +1 -1
  238. package/packages/pm-kanban/package.json +1 -1
  239. package/packages/pm-lifecycle-hooks/package.json +1 -1
  240. package/packages/pm-linked-test-adapters/package.json +1 -1
  241. package/packages/pm-search-advanced/package.json +1 -1
  242. package/packages/pm-templates/package.json +1 -1
  243. package/packages/pm-todos/package.json +1 -1
  244. package/packages/pm-vcs/package.json +1 -1
  245. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  246. package/plugins/pm-claude/package.json +1 -1
  247. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  248. package/plugins/pm-codex/package.json +1 -1
  249. package/plugins/pm-codex/plugin.json +1 -1
  250. package/runtime-dependencies.json +1 -1
  251. package/dist/cli-bundle/chunks/chunk-2J7I54MQ.js +0 -2
  252. package/dist/cli-bundle/chunks/chunk-3KMYHYJV.js +0 -2
  253. package/dist/cli-bundle/chunks/chunk-4D25HF3V.js +0 -2
  254. package/dist/cli-bundle/chunks/chunk-7V37RC2L.js +0 -114
  255. package/dist/cli-bundle/chunks/chunk-AHVN4GHF.js +0 -31
  256. package/dist/cli-bundle/chunks/chunk-CS7QDSUX.js +0 -128
  257. package/dist/cli-bundle/chunks/chunk-CXUQEZDX.js +0 -8
  258. package/dist/cli-bundle/chunks/chunk-DKLEDWVW.js +0 -3
  259. package/dist/cli-bundle/chunks/chunk-E5QBZ4HI.js +0 -8
  260. package/dist/cli-bundle/chunks/chunk-JESLOJD7.js +0 -2
  261. package/dist/cli-bundle/chunks/chunk-PQLRKFPZ.js +0 -20
  262. package/dist/cli-bundle/chunks/chunk-SGFQQXFD.js +0 -2
  263. package/dist/cli-bundle/chunks/chunk-XHONSCLJ.js +0 -6
  264. package/dist/cli-bundle/chunks/chunk-ZX3XMTZG.js +0 -2
  265. package/dist/cli-bundle/chunks/register-mutation-SN425O3R.js +0 -20
  266. package/dist/cli-bundle/chunks/register-operations-EYUIUGPW.js +0 -2
  267. package/dist/cli-bundle/focused-chunks/chunk-3EHVI673.js +0 -2
  268. package/dist/cli-bundle/focused-chunks/chunk-46WLWK73.js +0 -2
  269. package/dist/cli-bundle/focused-chunks/chunk-6L4KKRK7.js +0 -26
  270. package/dist/cli-bundle/focused-chunks/chunk-6VDRAJYX.js +0 -2
  271. package/dist/cli-bundle/focused-chunks/chunk-B4ZQJEMT.js +0 -6
  272. package/dist/cli-bundle/focused-chunks/chunk-BZSACRVX.js +0 -91
  273. package/dist/cli-bundle/focused-chunks/chunk-F6UQJJYB.js +0 -2
  274. package/dist/cli-bundle/focused-chunks/chunk-L5GX2FGZ.js +0 -2
  275. package/dist/cli-bundle/focused-chunks/chunk-LPWZERVD.js +0 -12
  276. package/dist/cli-bundle/focused-chunks/chunk-OASYSUOH.js +0 -22
  277. package/dist/cli-bundle/focused-chunks/chunk-QUPGBO2L.js +0 -26
  278. package/dist/cli-bundle/focused-chunks/chunk-Z26ZPQH6.js +0 -3
@@ -0,0 +1,22 @@
1
+ import{F as rt,G as ot,f as he}from"./chunk-5MCGYBOQ.js";import{$a as te,Fa as Zt,Ua as en,Va as nt,Wa as tn,_a as ge,ab as ye,da as tt,g as Qe,h as Jt,r as Ze,x as _e,y as et,ya as Qt}from"./chunk-57HPXGOQ.js";import{b as Gt}from"./chunk-MW77Q3AQ.js";import{$ as E,Aa as Ke,Ba as Yt,Ec as fe,Ga as Xe,Ja as Wt,Nc as Xt,Od as D,a as Be,ae as pe,ba as Z,ca as K,da as b,fa as Bt,jc as Kt,qa as We,sc as Je,wc as me,ya as ee,za as Ge}from"./chunk-GP2WU43K.js";import{A as m,C as W,E as G,F as T,I as v,K as ue,t as Ye,z as l}from"./chunk-JLXGRDTG.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]="cef883fa-81be-5092-a07b-7a5ca961fbc7")}catch{}})();var Ee=new WeakSet,it=new WeakMap,nn=new WeakSet;function rn(e){return nn.add(e),e}function st(e){return nn.has(e)}function ne(e){Ee.add(e);for(let[t,n]of Object.entries(e)){if(!Array.isArray(n))continue;let r=[...n];Reflect.set(e,t,r),Ee.add(r)}return e}function Pr(e,t){return Ee.has(e)||t!==void 0&&it.get(e)?.has(t)===!0}function $r(e,t){let n=new Set(t);it.set(e,n);for(let r of n){let o=Reflect.get(e,r);if(!Array.isArray(o))continue;let i=[...o];Reflect.set(e,r,i),Ee.add(i)}return e}function on(e,t){if(st(e)&&rn(t),Pr(e))return ne(t);let n=it.get(e);return n?$r(t,n):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]="b2ae2a38-678e-5f49-9f86-6e1ea4210b34")}catch{}})();var O="-",an=new Set(["actual_result","body","cmd","command","customer_impact","description","environment","expected_result","impact","location","message","note","outcome","repro_steps","resolution","text","title","unblock_note","value","why_now"]);function cn(e,t){if(e.startsWith("```")||e.includes(`
2
+ `))return!0;let n=t.map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|");return new RegExp(`^(?:[-*+]\\s+)?(?:${n})\\s*[:=]`,"i").test(e)}function dn(e){let t=e.trim();if(t==="")return[];let n=(jr(t)??t.split(",")).map(r=>r.trim()).filter(Boolean).map(r=>r.toLowerCase());return Array.from(new Set(n)).sort((r,o)=>r.localeCompare(o))}function ln(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let n of e)if(typeof n=="string")for(let r of dn(n))t.push(r);return Array.from(new Set(t)).sort((n,r)=>n.localeCompare(r))}function un(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()).filter(Boolean):[]}function zr(e){return typeof e!="string"?[]:e.split(";").map(t=>t.trim()).filter(Boolean)}function Fr(e,t,n){let r=e.map(s=>s.trim()).filter(Boolean);for(let s of t??[]){let a=s.trim();if(a.includes(";"))throw new m('Acceptance criteria added with --add-ac cannot contain ";" because semicolons delimit stored criteria',l.USAGE,{code:"acceptance_criteria_semicolon_forbidden",required:"Pass one semicolon-free criterion per --add-ac value",why:"A semicolon inside one criterion would be re-read as multiple criteria",nextSteps:["Split the text into repeated --add-ac values, or replace the semicolon with punctuation that is not the storage delimiter"]});a.length>0&&!r.includes(a)&&r.push(a)}let o=[],i=r;for(let s of n??[]){let a=s.trim();if(a.length!==0){if(!i.includes(a)){o.push(a);continue}i=i.filter(c=>c!==a)}}return{criteria:i,unmatchedRemovals:o}}function Ur(e,t){let n=un(e);if(!t||t.length===0)return Array.from(new Set(n)).sort((o,i)=>o.localeCompare(i));let r=new Set(n);for(let o of ln(t))r.add(o);return Array.from(r).sort((o,i)=>o.localeCompare(i))}function Vr(e,t){let n=Array.from(new Set(un(e))).sort((o,i)=>o.localeCompare(i));if(!t||t.length===0)return n;let r=new Set(ln(t));return r.size===0?n:n.filter(o=>!r.has(o))}function jr(e){if(!e.startsWith("["))return null;let t;try{t=JSON.parse(e)}catch{return null}return t.map(n=>typeof n=="string"||typeof n=="number"||typeof n=="boolean"?String(n):"").filter(n=>n.length>0)}function at(e){return e.replace(/\r\n/g,`
3
+ `)}function mn(e){let t=at(e).trim();if(!t.startsWith("```"))return e;let n=t.split(`
4
+ `);return n.length<2||n.at(-1)?.trim()!=="```"?e:n.slice(1,-1).join(`
5
+ `)}function qr(e){let t=[],n="",r=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(i==="\\"&&e[o+1]===","){n+=",",o+=1;continue}if(i==="\\"&&e[o+1]!==void 0){n+=`${i}${e[o+1]}`,o+=1;continue}if(i==='"'){r=!r,n+=i;continue}if(i===","&&!r){t.push(n),n="";continue}n+=i}return n.trim()&&t.push(n),t}function fn(e){let t=e.trim();if(t.startsWith('"')&&t.endsWith('"')){try{let n=JSON.parse(t);if(typeof n=="string")return n}catch{}return t.slice(1,-1).replace(/\\"/g,'"')}return e}function Hr(e){let t=e.indexOf("="),n=e.indexOf(":"),r=t>=0,o=n>=0;return r&&o?Math.min(t,n):r?t:o?n:-1}function Br(e,t){if((t==="--add"||t==="--add-glob")&&(/[./\\]/.test(e)||/\.[a-z]{1,6}$/i.test(e.trim())))return"For file/doc paths use: path=<file-path>[,scope=project|global]. The scope field is optional and defaults to project (example: path=src/api.ts or path=README.md,scope=project). ";if(t!=="--event")return"";let n=e.toLowerCase(),r=n.includes("recur_")||n.includes("recurrence")?' Recurrence list values must stay in one field and use "|" delimiters (for example recur_by_weekday=mon|wed or recur_by_month_day=1|15).':"",o=n.includes("recur_byweekday")?" Use recur_by_weekday (with underscores) for weekday recurrence filters.":"";return`${r}${o}`}function sn(e,t){let n=e.replaceAll(/\s+/g," ").trim(),r=n.length>160?`${n.slice(0,157)}...`:n,o=Br(e,t);return`Invalid ${t} value "${r}". Expected key=value entries separated by commas. `+o+`Also accepts markdown-style key/value lines (for example "- path: README.md"). Use ${t} ${O} to read piped stdin input.`}function Yr(e){let t=mn(e).trim();if(t.length===0||!t.includes(`
6
+ `)&&!t.startsWith("-")&&!t.startsWith("*")&&!t.startsWith("+"))return null;let n={},r,o=at(t).split(`
7
+ `).map(i=>i.trim()).filter(i=>i.length>0);for(let i of o){let s=i.match(/^(?:[-*+]\s+)?([a-zA-Z0-9_.-]+)\s*(=|:)\s*(.*)$/);if(s){let a=s[1].trim();n[a]=fn(s[3].trim()),r=a;continue}if(r&&an.has(r.toLowerCase())){n[r]=`${n[r]}
8
+ ${i}`;continue}return null}return n}function pn(e,t){let n=mn(e).trim();if(!n)throw new m(`${t} cannot be empty`,l.USAGE);let r=Yr(n);if(r)return r;let o={},i,s=qr(n);for(let a of s){let c=Hr(a);if(c>=0){let d=a.slice(0,c).trim();if(!d)throw new m(sn(e,t),l.USAGE);let u=fn(a.slice(c+1).trim());o[d]=u,i=d;continue}if(i&&an.has(i.toLowerCase())){o[i]=`${o[i]},${a}`;continue}throw new m(sn(e,t),l.USAGE)}return o}var Wr=/^[A-Za-z]:[\\/]/,Gr=/^(?:[-*+]\s+)?[A-Za-z_][A-Za-z0-9_.-]*\s*=/;function Kr(e){let t=e.trim();return Wr.test(t)?!1:Gr.test(t)}function sc(e,t,n,r){if(!(r||!e.includes(",")))throw new m(`${t} received an ambiguous comma-bearing bare ${n}. Repeat ${t} for multiple values, or quote or escape literal commas in a structured key=<value> entry.`,l.USAGE,{code:"bare_comma_entry_ambiguous",required:`Use one ${t} per bare ${n}, or quote or escape literal commas in a structured key=<value> entry.`})}function Xr(e,t,n){let r=new Set(n.map(i=>i.toLowerCase())),o=Object.keys(e).filter(i=>!r.has(i.toLowerCase()));if(o.length>0)throw new m(`${t} does not recognize key${o.length>1?"s":""} ${o.map(i=>`"${i}"`).join(", ")}. Allowed keys: ${n.join(", ")}.`,l.USAGE);for(let i of Object.keys(e)){let s=i.toLowerCase();if(s!==i){if(Object.hasOwn(e,s))throw new m(`${t} provides key "${i}" more than once after case normalization.`,l.USAGE);e[s]=e[i],delete e[i]}}}async function Jr(e){if(process.stdin.isTTY===!0)throw new m(`${e} value "${O}" requires piped stdin input. Pipe content into the command, or end manual stdin with Ctrl+D (Unix/macOS) or Ctrl+Z then Enter (Windows).`,l.USAGE);return process.stdin.setEncoding("utf8"),await new Promise((t,n)=>{let r="";process.stdin.on("data",o=>{r+=o}),process.stdin.on("end",()=>{t(at(r))}),process.stdin.on("error",o=>{n(o)})})}var P=Symbol("all-mutation-stdin-fields"),I=new WeakMap;function ac(e){return st(e)?e:ne(re({...e}))}function re(e){return I.set(e,P),e}function Qr(e,t){let n=I.get(e);return n===P||I.set(e,new Set([...n??[],...t])),e}function be(e,t){on(e,t);let n=I.get(e);return n===void 0||I.set(t,n===P?n:new Set(n)),t}function cc(e,t){let n=I.get(e),r=I.get(t);return n===void 0||r===P?t:n===P?(I.set(t,n),t):(I.set(t,new Set([...r??[],...n])),t)}function Zr(e){return I.get(e)!==P}function we(e,t){let n=I.get(e);return n!==P&&!n?.has(t)}function eo(e){let t;for(let n of e){if(n.resolveToken===!1||n.value===void 0)continue;let r=(Array.isArray(n.value)?n.value:[n.value]).filter(o=>o.trim()===O).length;if(r>1)throw new m(`${n.optionName} accepts "${O}" stdin token at most once per command invocation`,l.USAGE);if(r!==0){if(t!==void 0&&t!==n.optionName)throw new m(`Only one option may use "${O}" stdin token per command invocation. Already used by ${t}.`,l.USAGE);t=n.optionName}}}async function dc(e,t,n){let r=e,o=[...t,...n];eo(o.map(([a,c])=>({value:r[a],optionName:c,resolveToken:we(e,a)})));let i=Se(),s={...r};for(let[a,c]of t)s[a]=await i.resolveValue(r[a],c,we(e,a));for(let[a,c]of n)s[a]=await i.resolveList(r[a],c,we(e,a));return re(be(e,s))}function Se(){let e,t,n=async r=>{if(t&&t!==r)throw new m(`Only one option may use "${O}" stdin token per command invocation. Already used by ${t}.`,l.USAGE);return t=r,e||(e=Jr(r)),await e};return{resolveValue:async(r,o,i=!0)=>{if(!i)return r;if(r!==void 0)return r.trim()!==O?r:await n(o)},resolveList:async(r,o,i=!0)=>{if(!i)return r;if(!r)return;let s=r.map((d,u)=>d.trim()===O?u:-1).filter(d=>d>=0);if(s.length===0)return r;if(s.length>1)throw new m(`${o} accepts "${O}" stdin token at most once per command invocation`,l.USAGE);let a=await n(o),c=[...r];return c[s[0]]=a,c}}}function to(e,t){let n=Number(e);if(!Number.isFinite(n))throw new m(`Invalid ${t} value "${e}"`,l.USAGE);return n}function no(e,t){let n=e.trim(),r=Number(n);if(n===""||!Number.isInteger(r)||r<0)throw new m(`Invalid ${t} value "${e}". Expected a non-negative integer.`,l.USAGE);return r}(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]="b84fee06-5bbd-57f9-9643-f283d6c87afa")}catch{}})();function ro(e,t="--limit"){if(e===void 0)return;let n=Number(e);if(!Number.isFinite(n)||n<0)throw new m(`${t} must be a non-negative number`,l.USAGE);return Math.floor(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]="9b58b44d-819c-5115-b011-f9dfa8e2ab41")}catch{}})();var oo=3e4,oe=class extends Error{status;constructor(t,n){super(t),this.name="SearchHttpError",this.status=n}};function $(e,t,n=oo){let r=e??n;if(!Number.isFinite(r)||r<=0)throw new Error(`${t} timeout must be a positive finite number`);return Math.floor(r)}function z(e,t){if(e)return e;if(typeof globalThis.fetch=="function")return globalThis.fetch.bind(globalThis);throw new Error(`${t} execution requires a fetch implementation`)}async function io(e){try{return(await e.text()).replaceAll(/\s+/g," ").trim()}catch(t){return`(failed to read response body: ${b(t)})`}}async function Te(e){let t=new AbortController,n=setTimeout(()=>{t.abort()},e.timeoutMs);try{let r;try{r=await e.fetcher(e.endpoint,{method:e.method,headers:e.headers,body:JSON.stringify(e.body),signal:t.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?new Error(`${e.requestLabel} timed out after ${e.timeoutMs}ms`):new Error(`${e.requestLabel} execution failed: ${b(o)}`)}if(!r.ok){let o=await io(r),i=o.length>0?`: ${o}`:"";throw new oe(`${e.requestLabel} failed with status ${r.status} ${r.statusText}${i}`,r.status)}try{return await r.json()}catch(o){throw new Error(`${e.responseLabel} JSON parse failed: ${b(o)}`)}}finally{clearTimeout(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]="8e3bb919-c8f9-50b5-8e41-b6719d17bd21")}catch{}})();function yc(e,t){let n=E(e);if(!n)return"unconfigured";let r=E(t);return r&&r.toLowerCase()===n.toLowerCase()?"configured":"auto-detected"}function so(e){let t=Z(e),n=t.toLowerCase();return n.endsWith("/embeddings")?t:n.endsWith("/v1")?`${t}/embeddings`:`${t}/v1/embeddings`}function hn(e){let t=e.search?.embedding_model;return E(t)||null}function ao(e){let t=E(e.providers?.openai?.base_url),n=E(e.providers?.openai?.model);if(!t||!n)return null;let r=hn(e),o=E(e.providers?.openai?.api_key);return{name:"openai",base_url:t,model:r??n,...o?{api_key:o}:{}}}function co(e){let t=E(e.providers?.ollama?.base_url),n=E(e.providers?.ollama?.model);if(!t||!n)return null;let r=hn(e);return{name:"ollama",base_url:t,model:r??n}}function gn(e){let t=(Array.isArray(e)?e:[e]).map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new Error("Embedding input must include at least one non-empty string");return t}function lo(e){let t=[],n=[],r=new Map;for(let o of e){let i=r.get(o);if(i===void 0){let s=t.length;t.push(o),r.set(o,s),n.push(s);continue}n.push(i)}return{uniqueInputs:t,originalToUniqueIndex:n}}function uo(e){let t=e.map((n,r)=>({embedding:n.embedding,index:n.index,position:r}));if(t.some(n=>n.index!==void 0)){for(let n of t)if(!Number.isInteger(n.index))throw new TypeError(`OpenAI embedding response entry at position ${n.position} is missing a valid integer index`);return[...t].sort((n,r)=>{let o=n.index-r.index;return o!==0?o:n.position-r.position})}return t}function ct(e){let t=ao(e),n=co(e),r=[t,n].filter(s=>s!==null),o=E(e.search?.provider),i=o?o.toLowerCase():null;return{active:(i?r.find(s=>s.name===i):void 0)??r[0]??null,available:r}}function _n(e){let t=Z(e.base_url);return e.name==="openai"?{provider:"openai",endpoint:so(t),model:e.model}:{provider:"ollama",endpoint:`${t}/api/embed`,model:e.model}}function mo(e,t){let n=gn(t);return e.name==="openai"?{target:_n(e),method:"POST",headers:{"content-type":"application/json",...e.api_key?{authorization:`Bearer ${e.api_key}`}:{}},body:{model:e.model,input:n.length===1?n[0]:n}}:{target:_n(e),method:"POST",headers:{"content-type":"application/json"},body:{model:e.model,input:n}}}function fo(e,t){if(e.name==="openai"){let o=t.data;if(!Array.isArray(o)||o.length===0)throw new Error("OpenAI embedding response must include a non-empty data array");return uo(o).map((i,s)=>{let a=i.embedding;if(!K(a))throw new Error(`OpenAI embedding response entry at index ${s} is missing a numeric embedding vector`);return[...a]})}let n=t.embedding;if(K(n))return[[...n]];let r=t.embeddings;if(Array.isArray(r)&&r.length>0)return r.map((o,i)=>{if(!K(o))throw new Error(`Ollama embedding response entry at index ${i} is missing a numeric embedding vector`);return[...o]});throw new Error("Ollama embedding response must include embedding or embeddings vectors")}async function yn(e,t,n={}){let r=$(n.timeout_ms,"Embedding request"),o=z(n.fetcher,"Embedding request"),i=gn(t),s=lo(i),a=mo(e,s.uniqueInputs),c=await Te({endpoint:a.target.endpoint,method:a.method,headers:a.headers,body:a.body,timeoutMs:r,fetcher:o,requestLabel:"Embedding request",responseLabel:"Embedding response"}),d=fo(e,c);if(d.length!==s.uniqueInputs.length)throw new Error(`Embedding response cardinality mismatch: expected ${s.uniqueInputs.length} vector(s), received ${d.length}`);return s.originalToUniqueIndex.map(u=>[...d[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]="5c86afdf-6d8d-5851-82c1-ae5bcc9f0196")}catch{}})();var ve=["title","description","tags","status","type","priority","assignee","parent","goal","value","why_now","risk","confidence","estimated_minutes","acceptance_criteria","resolution","expected_result","actual_result","body","comments","notes","learnings","reminders","events","dependencies","plan"];function dt(e){let t=e?.search?.corpus_fields;if(!Array.isArray(t))return[...ve];let n=new Set(ve),r=Array.from(new Set(t.filter(o=>typeof o=="string").map(o=>o.trim()).filter(o=>o.length>0&&n.has(o))));return r.length>0?r:[...ve]}var po=8e3,_o=3200,F="...[semantic corpus truncated]",ho="search_embedding_corpus_max_characters_invalid:using_provider_default";function x(e){return e.map(t=>t==null?"":String(t).trim()).filter(t=>t.length>0).join(" ")}function go(e){return(e.reminders??[]).map(t=>x([t.at,t.text]))}function yo(e){return(e.events??[]).map(t=>x([t.start_at,t.end_at,t.title,t.description,t.location,t.all_day===!0?"all day":void 0,t.timezone,t.recurrence?.freq,t.recurrence?.interval,t.recurrence?.count,t.recurrence?.until,t.recurrence?.by_weekday?.join(" "),t.recurrence?.by_month_day?.join(" "),t.recurrence?.exdates?.join(" ")]))}function Eo(e,t){e.push(t.title,t.body,t.status,t.owner,t.evidence,t.blocked_reason,t.superseded_by);for(let n of t.linked_items??[])e.push(`${n.kind} ${n.id}`,n.note);for(let n of t.files??[])e.push(n.path,n.note);for(let n of t.tests??[])e.push(n.command,n.path,n.note);for(let n of t.docs??[])e.push(n.path,n.note)}function wo(e,t){for(let n of t.plan_decisions??[])e.push(n.decision,n.rationale,n.evidence);for(let n of t.plan_discoveries??[])e.push(n.text);for(let n of t.plan_validation??[])e.push(n.text,n.command,n.expected)}function bc(e){let t=[];t.push(e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context);for(let n of e.plan_steps??[])Eo(t,n);return wo(t,e),t.filter(n=>typeof n=="string"&&n.length>0).join(" ")}function bo(e){let t=(e.plan_steps??[]).map(i=>x([i.order,i.id,i.title,i.body,i.status,i.owner,i.evidence,i.blocked_reason,i.superseded_by,(i.linked_items??[]).map(s=>x([s.kind,s.id,s.note])).join(" "),(i.files??[]).map(s=>x([s.path,s.note])).join(" "),(i.tests??[]).map(s=>x([s.command,s.path,s.note])).join(" "),(i.docs??[]).map(s=>x([s.path,s.note])).join(" ")])),n=(e.plan_decisions??[]).map(i=>x([i.decision,i.rationale,i.evidence,i.step_id])),r=(e.plan_discoveries??[]).map(i=>x([i.text,i.step_id])),o=(e.plan_validation??[]).map(i=>x([i.text,i.command,i.expected]));if([e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context,...t,...n,...r,...o].some(i=>i!==void 0))return{mode:e.plan_mode,scope:e.plan_scope,harness:e.plan_harness,resume_context:e.plan_resume_context,steps:t,decisions:n,discoveries:r,validation:o}}function C(e){return typeof e=="string"&&e.trim().length>0}var So={title:e=>e.metadata.title,description:e=>e.metadata.description,tags:e=>e.metadata.tags,status:e=>e.metadata.status,type:e=>e.metadata.type,priority:e=>typeof e.metadata.priority=="number"?e.metadata.priority:void 0,assignee:e=>C(e.metadata.assignee)?e.metadata.assignee:void 0,parent:e=>C(e.metadata.parent)?e.metadata.parent:void 0,goal:e=>C(e.metadata.goal)?e.metadata.goal:void 0,value:e=>C(e.metadata.value)?e.metadata.value:void 0,why_now:e=>C(e.metadata.why_now)?e.metadata.why_now:void 0,risk:e=>C(e.metadata.risk)?e.metadata.risk:void 0,confidence:e=>e.metadata.confidence!==void 0&&e.metadata.confidence!==null?e.metadata.confidence:void 0,estimated_minutes:e=>typeof e.metadata.estimated_minutes=="number"?e.metadata.estimated_minutes:void 0,acceptance_criteria:e=>C(e.metadata.acceptance_criteria)?e.metadata.acceptance_criteria:void 0,resolution:e=>C(e.metadata.resolution)?e.metadata.resolution:void 0,expected_result:e=>C(e.metadata.expected_result)?e.metadata.expected_result:void 0,actual_result:e=>C(e.metadata.actual_result)?e.metadata.actual_result:void 0,body:e=>e.body,comments:e=>(e.metadata.comments??[]).map(t=>t.text),notes:e=>(e.metadata.notes??[]).map(t=>t.text),learnings:e=>(e.metadata.learnings??[]).map(t=>t.text),reminders:e=>go(e.metadata),events:e=>yo(e.metadata),dependencies:e=>(e.metadata.dependencies??[]).map(t=>({id:t.id,kind:t.kind})),plan:e=>bo(e.metadata)};function En(e,t={}){let n=t.fields??ve,r={};for(let o of n){let i=So[o];if(!i)continue;let s=i(e);s!==void 0&&(r[o]=s)}return r}function To(e){return e?.trim().toLowerCase()==="ollama"?_o:po}function X(e,t){let n=To(e),r=Bt(t);return r!==null?{maxCharacters:r,warning:null}:{maxCharacters:n,warning:t==null?null:ho}}function lt(e,t={}){let n=JSON.stringify(En(e,{fields:t.fields})),r=X(t.providerName,t.maxCharacters).maxCharacters;if(n.length<=r)return n;if(r<=F.length)return F.slice(0,r);let o=Math.max(0,r-F.length);return`${n.slice(0,o)}${F}`}(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]="67bae1a1-19d1-50ea-816f-4b68e6bb69d9")}catch{}})();function vo(e,t,n){let r=e.search.embedding_batch_size,o=e.search.embedding_timeout_ms,i=e.search.scanner_max_batch_retries,s=Number.isFinite(r)&&r>0?Math.max(1,Math.floor(r)):1,a=Number.isFinite(o)&&o>0?Math.max(1,Math.floor(o)):3e4,c=Number.isFinite(i)&&i>=0?Math.floor(i):0;return{batchSize:s,timeoutMs:a,maxRetries:c,maxRequestBytes:n,maxInputCharacters:t}}function Io(e,t,n,r){let o=[],i=[],s=Buffer.byteLength(JSON.stringify({model:e.model,input:[]})),a=s;for(let c of t){let d=Buffer.byteLength(JSON.stringify(c.trim()));if(s+d>r)throw new RangeError(`Embedding input exceeds request byte ceiling ${r}; lower search.embedding_corpus_max_characters or raise maxRequestBytes`);let u=i.length>0?1:0;(i.length>=n||a+u+d>r)&&(o.push(i),i=[],a=s),a+=d+(i.length>0?1:0),i.push(c)}return o.push(i),o}function Ao(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return e;let n=Math.max(0,t-F.length);return`${e.slice(0,n)}${F}`.slice(0,t)}function wn(e){let t=b(e).toLowerCase();return t.includes("timed out")||t.includes("timeout")}function Co(e,t,n,r,o,i){let s=`Embedding batch ${t} failed after ${o} attempt(s): ${b(i)}`,a=`provider=${e.name} model=${e.model} batch_size=${n} timeout_ms=${r}`;return wn(i)?`${s} (${a}; guidance=check provider availability or lower search.embedding_batch_size, raise search.embedding_timeout_ms, or run keyword search while semantic indexing catches up)`:`${s} (${a})`}function xo(e){return e instanceof oe?e.status===413?"payload_too_large":null:wn(e)?"timeout":null}async function ut(e,t,n,r,o,i,s){let a=null;for(let c=0;c<=o;c+=1)try{s.requests+=1;let d=await yn(e,t,{timeout_ms:r});return c>0&&i.push(`search_embedding_batch_retry_succeeded:batch=${n}:attempt=${c+1}:size=${t.length}`),s.successful_batches+=1,s.batch_size_histogram[t.length]=(s.batch_size_histogram[t.length]??0)+1,d}catch(d){a=d;let u=xo(d);if(u!==null&&t.length>1){s.split_batches+=1;let p=Math.ceil(t.length/2),_=t.slice(0,p),f=t.slice(p);return i.push(`search_embedding_batch_split_after_${u}:batch=${n}:size=${t.length}:parts=${_.length}|${f.length}`),[...await ut(e,_,`${n}.1`,r,o,i,s),...await ut(e,f,`${n}.2`,r,o,i,s)]}if(c<o){s.retries+=1;let p=Math.min(1e3*2**c,8e3);await new Promise(_=>setTimeout(_,p))}}throw new Error(Co(e,n,t.length,r,o+1,a))}async function mt(e,t,n,r={}){if(n.length===0)return{vectors:[],warnings:[]};let o=performance.now(),i=r.maxRequestBytes??262144;if(!Number.isSafeInteger(i)||i<=0)throw new RangeError("maxRequestBytes must be a positive safe integer");let s={provider:e.name,model:e.model,max_request_bytes:i,limit_source:r.maxRequestBytes===void 0?"default":"caller",planned_batches:0,requests:0,successful_batches:0,split_batches:0,retries:0,batch_size_histogram:{},elapsed_ms:0,inputs_per_second:0},a=[],c=X(e.name,t.search.embedding_corpus_max_characters);c.warning&&a.push(c.warning);let d=vo(t,c.maxCharacters,i),u=0,p=n.map(h=>{if(h.trim().length===0)throw new TypeError("Embedding inputs must be non-empty strings");let y=Ao(h,d.maxInputCharacters);return y.length<h.length&&(u+=1),y});u>0&&a.push(`search_embedding_input_truncated:count=${u}:max_characters=${d.maxInputCharacters}`);let _=Io(e,p,d.batchSize,d.maxRequestBytes);s.planned_batches=_.length;let f=[],g=0;for(let h=0;h<_.length;h+=1){let y=_[h];r.onProgress?.({batch_index:h+1,batch_total:_.length,batch_size:y.length,completed_inputs:g,total_inputs:p.length,phase:"start"}),f.push(...await ut(e,y,String(h+1),d.timeoutMs,d.maxRetries,a,s)),g+=y.length,r.onProgress?.({batch_index:h+1,batch_total:_.length,batch_size:y.length,completed_inputs:g,total_inputs:p.length,phase:"complete"})}return s.elapsed_ms=Math.max(1,performance.now()-o),s.inputs_per_second=n.length*1e3/s.elapsed_ms,{vectors:f,warnings:a,receipt: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]="88eb8555-e098-5279-801e-3b76d0dd0eae")}catch{}})();var U=`[^\\s/\\\\<>"'\\x60()\\[\\]{},;?=:#*]+`,S="[/\\\\]+",ko="[\\p{L}\\p{N}._@-]+",V=ko+"(?:"+S+U+")*",Ie="(?:(?:home|users)"+S+V+"|root"+S+V+")",Ro="[/\\\\]"+Ie,Lo="[/\\\\]{2,}"+Ie,Oo="/?[a-z]:"+S+"users"+S+V,Mo=U+"(?: +"+U+")*",ft="(?:"+Mo+S+")?users"+S+V,Do="[/\\\\]{2,}"+U+S+ft,No="(?:[a-z]:|volume\\{[a-f0-9-]+\\}|"+U+")",Sn="[/\\\\]{2}[?.]"+S+"(?:unc"+S+U+S+ft+"|"+No+S+"users"+S+V+")",Po="file:(?:"+Sn+"|(?:[/\\\\](?![/\\\\])|[/\\\\]{3,}|[/\\\\]{2}localhost"+S+")(?:"+Ie+"|[a-z]:"+S+"users"+S+V+")|[/\\\\]{2}(?:[a-z]:"+S+"users"+S+V+"|"+U+S+"(?:"+Ie+"|"+ft+")))",$o=new RegExp("(?:^|[^\\p{L}\\p{N}_./\\\\~])(?:"+Ro+"|"+Oo+"|"+Po+")|(?:^|[^\\p{L}\\p{N}_:./\\\\~])(?:"+Lo+"|"+Do+"|"+Sn+")","giu"),bn=4,zo=/%[a-f0-9]{2}|\\(?:u[a-f0-9]{4}|x[a-f0-9]{2}|\/)/iu,Fo=new TextDecoder("utf-8");function Uo(e){return e.replace(/(?:%[a-f0-9]{2})+/giu,t=>Fo.decode(Uint8Array.from(t.matchAll(/%([a-f0-9]{2})/giu),n=>Number.parseInt(n[1],16)))).replace(/%(?![a-f0-9]{2})[a-z0-9]{0,2}/giu,"\uFFFD")}function Vo(e){return e.replace(/\\+(?:u([a-f0-9]{4})|x([a-f0-9]{2})|(\/))?/giu,(t,n,r,o)=>{let i=n??r;return i===void 0?o??t:String.fromCharCode(Number.parseInt(i,16))})}function jo(e){return e.normalize("NFKC").replace(/[\p{Bidi_Control}\u200b-\u200f\u2060-\u206f\ufeff]/gu,"").replace(/[\u2215\u2044]/gu,"/").replace(/[\u043e\u041e]/gu,"o").replace(/[\u0455\u0405]/gu,"s")}function qo(e,t){for(let[n,r]of[["percent_decode",Uo],["json_unescape",Vo],["unicode_fold",jo]]){let o=r(e);o!==e&&!t.includes(n)&&t.push(n),e=o}return e}function*Ho(e,t,n){let r=e,o=[];for(let i=0;i<bn;i+=1){let s=r;if(r=qo(r,o),!n){t.lastIndex=0;for(let a of r.matchAll(t))n=!0,yield{index:0,normalizations:[...o]}}if(r===s)break;i===bn-1&&zo.test(r)&&(yield{index:0,normalizations:[...o],normalization_incomplete:!0})}}function*Bo(e,t){let n=0;for(let r of e.split(`
9
+ `)){t.lastIndex=0;let o=!1;for(let i of r.matchAll(t))o=!0,yield{index:n+i.index};for(let i of Ho(r,t,o))yield{...i,index:n};n+=r.length+1}}var Tn=[{name:"private-key",mutationRule:"private_key",regex:/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/g},{name:"github-token",mutationRule:"github_token",regex:/\b(?:gh[opsru]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,})\b/g},{name:"npm-token",mutationRule:"npm_token",regex:/\bnpm_[A-Za-z0-9]{20,}\b/g},{name:"aws-access-key",mutationRule:"aws_access_key",regex:/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g},{name:"google-api-key",mutationRule:"google_api_key",regex:/\bAIza[0-9A-Za-z_-]{35}\b/g},{name:"slack-token",mutationRule:"slack_token",regex:/\bxox[baprs]-[A-Za-z0-9-]{10,}\b/g},{name:"anthropic-api-key",mutationRule:"anthropic_api_key",regex:/\bsk-ant-[A-Za-z0-9_-]{20,}\b/g},{name:"openai-api-key",mutationRule:"openai_api_key",regex:/\bsk-(?!ant-)[A-Za-z0-9_-]{20,}\b/g},{name:"gitlab-token",mutationRule:"gitlab_token",regex:/\bglpat-[A-Za-z0-9_.-]{20,}\b/g},{name:"jwt-like-token",mutationRule:"jwt_like_token",regex:/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g},{name:"npm-auth-token-assignment",mutationRule:"npm_auth_token_assignment",regex:/_authToken\s*=\s*\S+/g},{name:"sentry-user-token",mutationRule:"sentry_user_token",regex:/\bsntryu_[A-Za-z0-9]{20,}\b/g},{name:"sentry-org-token",mutationRule:"sentry_org_token",regex:/\bsntrys_[A-Za-z0-9_-]{20,}\b/g},{name:"private-ip",mutationRule:"private_ip",regex:/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"private-ssh-target",mutationRule:"private_ssh_target",regex:/\b(?:ssh|scp|rsync)\s+[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"sshpass-inline-password",mutationRule:"sshpass_inline_password",regex:/\bsshpass\s+-p\s+["'][^"']{6,}["']/g},{name:"password-assignment",mutationRule:"password_assignment",regex:/\b(?:password|passphrase)\s*[:=]\s*(?:(?!<|\$\{|\$\(|config\.auth\.password\s*(?:\|\|\s*(?:''|"")|\?\s*unescape\(encodeURIComponent\(config\.auth\.password\)\)\s*:\s*(?:''|""))(?=[ \t]*(?:\/\*(?:[^*]|\*(?!\/))*\*\/[ \t]*)*(?:;|$|\/\/[^\r\n\u2028\u2029]*(?:\r\n)?$)))[A-Za-z0-9!@#$%^&*._+\-=]{8,}|"(?!<|\$\{|\$\()[^"]{8,}"|'(?!<|\$\{|\$\()[^']{8,}')/gi},{name:"absolute-home-path",mutationRule:"absolute_home_path",regex:$o,excludeFiles:/^(?:tests\/|examples\/)/},{name:"user-at-private-host",mutationRule:"user_at_private_host",regex:/\b[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g,excludeFiles:/^(?:tests\/|examples\/)/},{name:"high-entropy-assignment",mutationRule:"high_entropy_assignment",regex:/\b(?:token|secret|password|passwd|api[_-]?key)\s*[:=]\s*["']?([A-Za-z0-9+/=_-]{24,})/gi,mutationOnlyReason:"Generic assignments in source code are not credentials; preserve the existing mutation heuristic without treating source identifiers as secrets.",minimumEntropy:3.5}];function*vn(e,t){if(e.mutationRule==="absolute_home_path"){yield*Bo(t,e.regex);return}e.regex.lastIndex=0;for(let n of t.matchAll(e.regex))Yo(e,n)&&(yield{index:n.index})}function Yo(e,t){if(e.minimumEntropy===void 0)return!0;let n=t[1],r=new Map;for(let i of n)r.set(i,(r.get(i)??0)+1);let o=0;for(let i of r.values()){let s=i/n.length;o-=s*Math.log2(s)}return o>=e.minimumEntropy}(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]="d6059407-bf03-5ae8-8b01-e3e7c5b28030")}catch{}})();var Wo=[{action:"append",history_scope:"item"},{action:"claim",history_scope:"item"},{action:"close",history_scope:"item"},{action:"close-many",history_scope:"item"},{action:"close-task",history_scope:"item"},{action:"comments",history_scope:"conditional"},{action:"config",history_scope:"conditional"},{action:"copy",history_scope:"item"},{action:"create",history_scope:"item"},{action:"delete",history_scope:"item"},{action:"deps",history_scope:"conditional"},{action:"discover",history_scope:"item"},{action:"docs",history_scope:"conditional"},{action:"files",history_scope:"conditional"},{action:"focus",history_scope:"conditional"},{action:"gc",history_scope:"conditional"},{action:"history-compact",history_scope:"history"},{action:"history-author-acknowledge",history_scope:"workspace"},{action:"history-redact",history_scope:"history"},{action:"history-repair",history_scope:"history"},{action:"init",history_scope:"workspace"},{action:"install",history_scope:"conditional"},{action:"learnings",history_scope:"conditional"},{action:"notes",history_scope:"conditional"},{action:"package",history_scope:"conditional"},{action:"pause-task",history_scope:"item"},{action:"plan",history_scope:"conditional"},{action:"profile",history_scope:"conditional"},{action:"release",history_scope:"item"},{action:"restore",history_scope:"item"},{action:"schema",history_scope:"conditional"},{action:"start-task",history_scope:"item"},{action:"templates",history_scope:"conditional"},{action:"test",history_scope:"conditional"},{action:"test-all",history_scope:"conditional"},{action:"update",history_scope:"item"},{action:"update-many",history_scope:"item"},{action:"upgrade",history_scope:"conditional"}],_t=new Map(Wo.map(e=>[e.action,e]));function pt(e,t="$",n=new WeakSet){return typeof e=="string"?[{path:t,value:e}]:typeof e!="object"||e===null?[]:n.has(e)?[]:(n.add(e),Array.isArray(e)?e.flatMap((r,o)=>pt(r,`${t}[${o}]`,n)):Object.entries(e).flatMap(([r,o])=>pt(o,`${t}.${r}`,n)))}function Go(e,t){let n=vn(e,t),r=n.next().value;if(!r||e.mutationRule!=="absolute_home_path"||r.normalization_incomplete)return r;for(let o of n)if(o.normalization_incomplete)return{...r,normalizations:[...new Set([r.normalizations,o.normalizations].flatMap(i=>i??[]))],normalization_incomplete:!0};return r}function In(e){let t=[];for(let n of pt(e))for(let r of Tn){let o=Go(r,n.value);if(o){let i={rule:r.mutationRule,path:n.path};o.normalizations&&(i.normalizations=o.normalizations),o.normalization_incomplete&&(i.normalization_incomplete=!0),t.push(i)}}return t.filter((n,r,o)=>o.findIndex(i=>i.rule===n.rule&&i.path===n.path)===r)}function Ko(e){let t=e.author.trim()||"unknown";if(e.settings.require_attributed_author&&t.toLowerCase()==="unknown")throw new m("Mutation author is required by workspace policy.",l.USAGE,{code:"mutation_author_required",required:"Pass --author <id>, set PM_AUTHOR, or configure author_default.",nextSteps:["Retry with --author <stable-agent-id>.","Set PM_AUTHOR for this agent session."]});if(e.settings.secret_guard==="off")return{author:t,findings:[],warnings:[],override_applied:!1};let n;try{n=In(e.payload)}catch{return{author:t,findings:[],warnings:["secret_guard_scan_failed_open"],override_applied:!1}}if(n.length===0)return{author:t,findings:n,warnings:[],override_applied:!1};let r=[...new Set(n.map(o=>o.rule))].sort().join(",");if(e.settings.secret_guard==="block"&&e.force!==!0)throw new m(`Mutation blocked by secret guard (${r}). No detected value was logged.`,l.CONFLICT,{code:"mutation_secret_guard_blocked",required:"Remove the credential-shaped content or retry with --force after explicit review.",nextSteps:["Replace the value with a secret-manager reference.","Use pm history-redact if equivalent content already entered history."],recovery:{recovery_mode:"compact",attempted_command:"pm <mutation> [REDACTED]",normalized_args:["[REDACTED]"],suggested_retry:"Remove credential-shaped content, then retry the mutation."}});return{author:t,findings:n,warnings:[`secret_guard_detected:${n.length}:rules=${r}`,...e.settings.secret_guard==="block"&&e.force===!0?["secret_guard_force_override"]:[]],override_applied:e.settings.secret_guard==="block"&&e.force===!0}}function Xo(e){return _t.has(e.trim().toLowerCase())}function Jo(){return[..._t.keys()].sort((e,t)=>e.localeCompare(t))}function Oc(e){return _t.get(e.trim().toLowerCase())}(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]="5767332d-8094-55cd-96e9-47c5d20cd7df")}catch{}})();var Qo=/\b([a-z][a-z0-9]*)-(\d+)(?:-[a-z0-9]+)*\b/giu,Zo=/^(?:utf|iso|sha|tls|http|covid|match)$/iu;function ht(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function Cn(e){return[...new Set(ht(e).match(/[\p{L}\p{N}]+/gu)??[])]}function An(e){let t=ht(e);return{normalized:t,tokens:Cn(t),issueCodes:[...new Set([...e.matchAll(Qo)].filter(n=>{let r=n[1],o=n.index,i=e.slice(o+n[0].length);return!Zo.test(r)&&(r===r.toUpperCase()||r.length<=2||o===0&&/^\s*(?::|—|–|\])/u.test(i))}).map(n=>n[0].toLowerCase()))]}}function ei(e,t){return ti(An(e),An(t))}function ti(e,t){if(e.normalized===t.normalized)return{score:1,reason:"exact_title"};let n=new Set(e.issueCodes);return t.issueCodes.some(r=>n.has(r))?{score:.99,reason:"issue_code"}:{score:fe(e.tokens,t.tokens),reason:"title_token_jaccard"}}import ni 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]="a7cd1d62-16fe-5e5b-b382-64335fc5e403")}catch{}})();function Ae(e){return(e??"in_progress").trim().toLowerCase().replaceAll("-","_")}function ri(e,t){return[e.updated_at,t].map(n=>({value:n,time:Date.parse(n??"")})).filter(n=>typeof n.value=="string"&&Number.isFinite(n.time)).sort((n,r)=>r.time-n.time)[0]?.value??e.updated_at}function xn(e,t){let n=Math.max(1,Math.trunc(t.threshold_hours)),r=(t.now??new Date).getTime(),o=Ae(t.in_progress_status),i=[];for(let s of e){if(Ae(String(s.status))!==o||(s.assignee?.trim().length??0)>0)continue;let a=ri(s,t.last_history_activity?.(s)),c=Date.parse(a);if(!Number.isFinite(c))continue;let d=Math.max(0,Math.floor((r-c)/36e5));d>=n&&i.push({id:s.id,last_activity_at:a,age_hours:d})}return i.sort((s,a)=>a.age_hours-s.age_hours||s.id.localeCompare(a.id)),{threshold_hours:n,count:i.length,items:i,remediation:"Claim active work with `pm claim <id>` or return abandoned work to open with `pm update <id> --status open`."}}async function oi(e,t,n){let r=new Map;return await Promise.all(t.filter(o=>Ae(String(o.status))===Ae(n.in_progress_status)&&(o.assignee?.trim().length??0)===0).map(async o=>{let i;try{i=await tt(ni.join(e,"history",`${o.id}.jsonl`),o.id)}catch{return}let s=i.map(a=>a.ts).filter(a=>Number.isFinite(Date.parse(a))).sort((a,c)=>Date.parse(c)-Date.parse(a))[0];s&&r.set(o.id,s)})),xn(t,{...n,last_history_activity:o=>r.get(o.id)})}(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]="42b217a3-31c0-561a-b7cb-b1a584b2edd5")}catch{}})();var ii=new Set(["rename-type","rename-field","remap-status",...Wt]);function si(e,t){if(t&&!ii.has(e))throw new m(`schema ${e} does not support --dry-run. Preview is supported for rename-type, rename-field, remap-status and workflow-policy actions. Remove --dry-run only when you intend to apply changes.`,l.USAGE,{code:"invalid_argument_value",examples:["pm schema rename-type Spike --to Experiment --dry-run"]})}(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]="8d14cb04-d740-5fb7-ad97-f9a39490eb87")}catch{}})();function Gc(e){try{return e()}catch(t){throw!(t instanceof m)||t.exitCode!==l.USAGE?t:new m(`${t.message} No changes were made.`,l.USAGE,{...t.context,code:t.code==="linked_test_command_not_executable"?t.code:"invalid_argument_value",reason:"test_option_invalid",changed:!1,required:t.context.required??t.message})}}function ai(e,t){if(e[t]==="'"){let n=e.indexOf("'",t+1);return n<0?void 0:n+1}for(let n=t+1;n<e.length;n+=1){if(e[n]==='"')return n+1;if(e[n]==="\\"){n+=1;continue}if(e[n]==="`"||e.startsWith("$(",n))return}}function ci(e,t){let n=t;for(;n<e.length;){let r=e[n];if(/\s/u.test(r)||";&|".includes(r))return n;if(r==="\\"){n+=2;continue}if(r==="'"||r==='"'){let o=ai(e,n);if(o===void 0)return;n=o;continue}if("<>()`".includes(r))return;n+=1}return n===e.length?n:void 0}function gt(e,t){let n=t;for(;n<e.length;){if(/\s/u.test(e[n])){n+=1;continue}if(e[n]!=="#")return n;let r=e.indexOf(`
10
+ `,n);if(r<0)return e.length;n=r+1}return n}function di(e,t){let n=gt(e,t),r=e[n];return r===void 0||!";&|".includes(r)?n:(n+=1,r!==";"&&e[n]===r&&(n+=1),gt(e,n))}function li(e){let t=e.trim(),n=gt(t,0);if(t.length===0)return!1;for(;n<t.length;){if(!/[A-Za-z_]/u.test(t[n]))return!1;let r=n+1;for(;r<t.length&&/[A-Za-z0-9_]/u.test(t[r]);)r+=1;if(t[r]!=="=")return!1;let o=ci(t,r+1);if(o===void 0)return!1;n=di(t,o)}return!0}function kn(e){if(!(e===void 0||!li(e)))throw new m("Linked-test command contains only variable assignments or comments and has no executable command.",l.USAGE,{code:"linked_test_command_not_executable",required:'Supply an actual test command with --add "command=<actual command>" or --add-json. Environment assignments may precede that command.',examples:['pm test <id> --add "command=node --version"'],nextSteps:["Remove any already-stored assignment-only entry with --remove-index, then register the actual test command."]})}function Kc(e){if(kn(e.command),!(e.pm_context_mode!=="none"||e.workspace_context_mode==="isolated"||e.workspace_context_mode==="snapshot"))throw new m("pm_context_mode=none requires workspace_context_mode=isolated or snapshot so implicit tracker discovery cannot reach the source workspace.",l.USAGE,{code:"linked_test_context_invalid",required:"Set workspace_context_mode to isolated or snapshot when pm_context_mode is none.",examples:[Xt(["test","<id>","--add-json",JSON.stringify({command:e.command,pm_context_mode:"none",workspace_context_mode:"isolated"})])]})}var Ce=["command","cmd","path","scope","timeout","timeout_seconds","pm_context_mode","workspace_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"],ui=new Set(Ce);function Xc(e){return cn(e,Ce)}function mi(e,t){let n={},r=[];for(let[o,i]of Object.entries(e)){let s=o.toLowerCase();if(!ui.has(s)){r.push(o);continue}if(Object.hasOwn(n,s))throw new m(`${t} provides key "${o}" more than once after case normalization`,l.USAGE);n[s]=i}if(r.length>0)throw new m(`${t} does not recognize key${r.length>1?"s":""} ${r.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${Ce.join(", ")}.`,l.USAGE);if(n.cmd!==void 0){if(n.command!==void 0&&n.command.trim()!==n.cmd.trim())throw new m(`${t} command and cmd must match when both are provided`,l.USAGE);let{cmd:o,...i}=n;return{...i,command:i.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]="b58016fa-9817-5421-a4a3-78d1b1d22937")}catch{}})();import{readFile as fi}from"node:fs/promises";import Rn 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]="7cc00705-c03e-5a18-9bec-af2585939ed8")}catch{}})();function _d(e){if(e!==void 0){if(typeof e!="string")throw new m("--rollback requires a non-empty checkpoint ID string",l.USAGE);return Ln(e)}}function Ln(e){let t=e.trim();if(!t)throw new m("--rollback requires a non-empty checkpoint ID",l.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new m("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",l.USAGE);return t}function pi(e,t){let n=t.replace(/[-:.TZ]/g,"").slice(0,14),r=Math.random().toString(36).slice(2,8);return`${e}-${n}-${r}`}function _i(e,t){return Rn.join(e,"checkpoints",t)}function On(e,t,n){return Rn.join(_i(e,t),`${n}.json`)}async function hi(e,t,n,r){let o=On(e,t,n),i=`${JSON.stringify(r,null,2)}
11
+ `;if(!await Gt(o,i)&&await T(o)!==i)throw new m(`Checkpoint ${n} already exists with different contents; use a new checkpoint ID.`,l.CONFLICT);return o}function gi(e,t){if(!Array.isArray(e.items))throw new m(`Checkpoint ${t} is missing items`,l.GENERIC_FAILURE);return e.items.map(n=>{if(!n||typeof n!="object")throw new m(`Checkpoint ${t} contains an invalid item entry`,l.GENERIC_FAILURE);let r=n;if(typeof r.id!="string"||r.id.trim().length===0)throw new m(`Checkpoint ${t} contains an item entry without ID`,l.GENERIC_FAILURE);if(typeof r.target_updated_at!="string"||r.target_updated_at.trim().length===0)throw new m(`Checkpoint ${t} contains an item entry without target_updated_at`,l.GENERIC_FAILURE);return{id:r.id.trim(),target_updated_at:r.target_updated_at.trim()}})}async function yi(e,t,n,r){let o=Ln(n),i=On(e,t,o);if(!await W(i))throw new m(`Checkpoint ${o} not found`,l.NOT_FOUND);let s=await fi(i,"utf8"),a;try{a=JSON.parse(s)}catch(u){throw new m(`Checkpoint ${o} contains invalid JSON: ${b(u)}`,l.GENERIC_FAILURE)}if(!a||typeof a!="object")throw new m(`Checkpoint ${o} is invalid`,l.GENERIC_FAILURE);let c=a;if(c.schema_version!==r)throw new m(`Checkpoint ${o} has unsupported schema version. Inspect pm history and use an explicit pm restore only after reviewing later edits.`,l.GENERIC_FAILURE);let d=gi(c,o);return{record:c,items:d,path:i,id:typeof c.id=="string"?c.id:o,created_at:typeof c.created_at=="string"?c.created_at:D(),author:typeof c.author=="string"?c.author:"unknown"}}async function Ei(e,t){let n=[],r=[];for(let o of e)try{let i=await t(o.id,o.target_updated_at);n.push({id:o.id,status:i.skipped?"skipped":"restored",changed_fields:i.changed_fields,warnings:i.warnings}),i.skipped||r.push(o.id)}catch(i){n.push({id:o.id,status:"failed",error:b(i)})}return{rows:n,restored_ids:r,failed_count:n.filter(o=>o.status==="failed").length}}(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]="cb883ffc-c431-5bf9-a973-931a8a0a940c")}catch{}})();function N(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function gd(e,t){let n=N(t);return!e||!n?null:[...e.assurance_providers??[]].reverse().find(r=>N(r.definition.id)===n)??null}function wi(e,t){let n=N(t);return!e||!n?null:[...e.search_providers].reverse().find(r=>(N(r.runtime_definition?.name)??N(r.definition?.name))===n)??null}function bi(e,t){let n=N(t);return!e||!n?null:[...e.vector_store_adapters].reverse().find(r=>(N(r.runtime_definition?.name)??N(r.definition?.name))===n)??null}(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]="4441095d-0acd-5780-8758-7df94396cb8e")}catch{}})();function yt(e){return[...new Set(e.split(/[,\r\n]+/).map(t=>t.trim()).filter(t=>t.length>0))]}function Si(e){let t=[];for(let r of e)if(typeof r=="string")t.push(r);else if(typeof r=="number"&&Number.isFinite(r))t.push(String(r));else return"";let n=yt(t.join(`
12
+ `));return n.length>0?n.join(","):""}function Ti(e){if(e===void 0)return;if(typeof e=="number")return Number.isFinite(e)?String(e):"";if(Array.isArray(e))return Si(e);if(typeof e!="string")return"";let t=yt(e);return t.length>0?t.join(","):""}(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]="1dcf0d72-10da-51b6-b9f6-ab47bebcbf64")}catch{}})();function Mn(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function Et(e){if(e==="/body"||e.startsWith("/body/"))return"body";if(e==="/metadata"||e.startsWith("/metadata/")||e==="/front_matter"||e.startsWith("/front_matter/")){let n=e.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];return n?Mn(n):"metadata"}let t=e.replace(/^\//,"").split("/")[0];return t?Mn(t):"root"}function xe(e,t){return t==="body"?e.body:t==="metadata"?e.metadata:t==="root"?e:e.metadata[t]}function vi(e,t){let n=t?.windowStartIndex??0,r=t?.field;if(e.length===0||n>=e.length)return[];let o=Qt(),i=[];for(let s=0;s<e.length;s+=1){let a=e[s],c=o,d=Zt(o,a.patch),u;d.ok?(u=d.document,o=u):u=c;let p=new Set;for(let f of a.patch)p.add(Et(f.path)),f.from!==void 0&&p.add(Et(f.from));let _=[...p].sort((f,g)=>f.localeCompare(g));if(s>=n)if(r!==void 0){if(!p.has(r))continue;let f={field:r,before:xe(c,r),after:xe(u,r)};i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:[r],changes:[f]})}else{let f=_.map(g=>({field:g,before:xe(c,g),after:xe(u,g)}));i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:_,changes:f})}}return 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]="80805c6b-9b9a-5dad-b94b-d7dbd365fe5e")}catch{}})();(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]="2fd342e6-06cc-56d4-aa0e-2af269234b59")}catch{}})();var Ii=new Set(["none","null","undefined"]);function Od(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new m("Config set parent-reference-policy requires --policy with one of: warn, strict_error (alias: strict)",l.USAGE)}function Ai(e){if(typeof e!="string")throw new m("--parent must be a string. Use --unset parent to clear this field.",l.USAGE);let t=e.trim();if(t.length===0)throw new m("--parent must not be empty. Use --parent none to unset.",l.USAGE);if(Dn(t))throw new m(`--parent must not use placeholder token "${t}". Use --unset parent to clear this field.`,l.USAGE);return t}function Dn(e){return Ii.has(e.trim().toLowerCase())}function Ci(e,t){if(t==="strict_error")throw new m(`Parent item "${e}" was not found. Create it first or use --parent none.`,l.USAGE);return{warnings:[`validation_warning:parent_reference_missing:${e}`]}}function xi(e,t,n){let r=he(e,n),o=he(t,n);if(r!==o)return;let i=t!==o||e!==r?` (normalized from parent "${t}" and item "${e}")`:"";throw new m(`Parent item "${o}" cannot be the same as item "${r}"${i}. Use --unset parent to clear this field.`,l.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]="a59d5b7f-9764-53c5-a014-1119868be8ea")}catch{}})();var wt={critical:0,high:1,medium:2,low:3,minimal:4},Nn=Object.keys(wt),ki=`numbers 0..4 (0=critical, 1=high, 2=medium, 3=low, 4=minimal) or names (${Nn.join(", ")}), case-insensitive`;function ke(e){return new m(`Invalid priority "${e}". Accepted values: ${ki}.`,l.USAGE,{code:"invalid_argument_value",field:"priority",value:e,allowed:["0","1","2","3","4",...Nn]})}function Ri(e){if(typeof e=="number"){if(Number.isInteger(e)&&e>=0&&e<=4)return e;throw ke(String(e))}if(typeof e!="string")throw ke(String(e));let t=e.trim();if(t.length===0)throw ke(e);let n=t.toLowerCase();if(Object.prototype.hasOwnProperty.call(wt,n))return wt[n];if(/^[0-4]$/.test(t))return Number(t);throw ke(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]="e363ee89-b438-5c8e-bb06-f4d05cc814cc")}catch{}})();function Li(e){return ne(re(be(e,{...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]="b6206b0e-0cd8-5827-acbd-6ac064dbcad7")}catch{}})();var Oi=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,Mi=64;function jd(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new m("Config set sprint-release-format-policy requires --policy with one of: warn, strict_error (alias: strict)",l.USAGE)}function Di(e,t,n){let r=t.trim();if(r.length===0)throw new m(`--${e} must not be empty. Use --${e} none to unset.`,l.USAGE);if(r.length<=Mi&&Oi.test(r))return{value:r,warnings:[]};let o="Expected 1-64 characters matching [A-Za-z0-9][A-Za-z0-9._/-]* (no spaces).";if(n==="strict_error")throw new m(`Invalid --${e} value "${r}". ${o}`,l.USAGE);return{value:r,warnings:[`validation_warning:${e}_format:${r}`]}}(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]="14e6c7b4-3161-5f82-b797-f06a879d1370")}catch{}})();var Pn={open:"open_status",closed:"close_status",canceled:"canceled_status",cancelled:"canceled_status"},$n="all";function Gd(e){if(typeof e!="string")return!1;let t=e.split(",").map(n=>n.trim().toLowerCase()).filter(n=>n.length>0);return t.length===1&&t[0]===$n}function Ni(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Pn[n];return r?t[r]:Ze(e,t)}function Pi(e){let t=new Set(Object.keys(Pn));for(let n of e.definitions){t.add(n.id);for(let r of n.aliases)t.add(r)}return[...t]}function $i(e,t){let n=e.trim().toLowerCase(),r,o=Number.POSITIVE_INFINITY;for(let i of Pi(t)){let s=Be(n,i.toLowerCase(),2);s!==null&&s<o&&(r=i,o=s)}return r}function zi(e,t,n){if(typeof e!="string")return;let r=n?.strict===!0,o=n?.flagLabel??"--status",i=e.split(",").map(a=>a.trim()).filter(a=>a.length>0);if(i.length===0)return;if(i.filter(a=>a.trim().toLowerCase()===$n).length>0){if(i.length===1)return;throw new m(`Invalid ${o} value "all". Use it by itself, or omit ${o} to search every status.`,l.USAGE)}let s=[];for(let a of i){let c=Ni(a,t);if(c===void 0){if(r){let d=$i(a,t);throw new m(`Invalid ${o} value "${a}". Use open|closed|canceled or a configured status id${d?`. Did you mean "${d}"?`:"."}`,l.USAGE)}s.push(a);continue}s.push(c)}return[...new Set(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]="50f77f3f-b2b0-5ae2-b669-6ed50bbdd530")}catch{}})();var Fi={bug:"Issue",bugfix:"Issue",defect:"Issue",incident:"Issue",enhancement:"Feature",story:"Feature",userstory:"Feature","user-story":"Feature","user story":"Feature",change:"Chore",ticket:"Task",todo:"Task"};function Ui(e){if(e!==void 0)return Fi[e.trim().toLowerCase()]}(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]="c628dcf9-d98f-566e-9f93-cc81e737691c")}catch{}})();(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]="4b79bd02-51ae-5c46-be4c-2f41dd8c9486")}catch{}})();function zn(e,t){return Xe(e,t)}function Vi(e,t,n){let r={};for(let o of t.command_to_fields.get(n)??[]){let i=Qe(e,o);i!==void 0&&(r[o.metadata_key]=Jt(o,i))}return r}function ji(e,t){for(let[n,r]of Object.entries(t)){let o=e[n];if(Array.isArray(r)){if(Array.isArray(o)){let i=o.map(s=>String(s));if(!r.map(s=>String(s)).every(s=>i.includes(s)))return!1;continue}if(!zn(o,r[r.length-1]))return!1;continue}if(!zn(o,r))return!1}return!0}import{spawnSync as Un}from"node:child_process";(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]="7889f11f-36f9-5384-8429-58d951c342da")}catch{}})();var qi="PM_DISABLE_OLLAMA_AUTO_DEFAULTS",Hi="PM_OLLAMA_MODEL",Bi="http://localhost:11434",Yi="qwen3-embedding:0.6b",Wi=".agents/pm/search/lancedb/",Gi=1500,Ki=2500,Xi=/qwen.*(?:embed|embedding)|(?:embed|embedding).*qwen/i,Ji=/embed|embedding/i,k=E;function Qi(){let e=k(process.env[qi]);if(!e)return!1;let t=e.toLowerCase();return t==="1"||t==="true"||t==="yes"}function Fn(e){return e.some(t=>k(t)!==null)}function Zi(e){let t=k(e);return!!(t&&t.toLowerCase()!=="ollama")}function es(e){let t=k(e);return!!(t&&t.toLowerCase()!=="lancedb")}function ts(e){return Zi(e.search?.provider)||es(e.vector_store?.adapter)||Fn([e.providers?.openai?.base_url,e.providers?.openai?.model,e.providers?.openai?.api_key])?!0:Fn([e.vector_store?.qdrant?.url,e.vector_store?.qdrant?.api_key])}function ns(){let e=Un("ollama",["--version"],{encoding:"utf8",timeout:Gi});return e.error?!1:e.status===0}function rs(e){let t=e.split(/\r?\n/).map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)return null;let n=t.map(r=>r.split(/\s+/)[0]?.trim()).filter(r=>!!(r&&r.length>0)).filter(r=>r.toUpperCase()!=="NAME");return n.length===0?null:n.find(r=>Xi.test(r))||(n.find(r=>Ji.test(r))??null)}function os(e){let t=k(e.providers?.ollama?.model);if(t)return t;let n=k(process.env[Hi]);if(n)return n;let r=Un("ollama",["list"],{encoding:"utf8",timeout:Ki});if(!r.error&&r.status===0){let o=rs(typeof r.stdout=="string"?r.stdout:"");if(o)return o}return null}function is(e){return{baseUrl:k(e.providers?.ollama?.base_url)===null,model:k(e.providers?.ollama?.model)===null,lancedbPath:k(e.vector_store?.lancedb?.path)===null,embeddingModel:k(e.search?.embedding_model)===null}}function ss(e){return e.baseUrl||e.model||e.lancedbPath||e.embeddingModel}function as(e,t,n){if(!t.baseUrl&&!t.model)return;let r=e.providers??={},o=r.ollama??={};t.baseUrl&&(o.base_url=Bi),t.model&&(o.model=n)}function cs(e,t){if(!t.lancedbPath)return;let n=e.vector_store??={},r=n.lancedb??={};r.path=Wi}function ds(e,t,n){if(!t.embeddingModel)return;let r=e.search??={};r.embedding_model=n}function Re(e){let t={settings:e,auto_ollama_defaults_applied:!1};if(Qi()||ts(e))return t;let n=is(e);if(!ss(n)||n.model&&!ns())return t;let r=structuredClone(e),o=os(r);return o?(as(r,n,o),cs(r,n),ds(r,n,o),{settings:r,auto_ollama_defaults_applied:!0}):{...t,auto_ollama_defaults_skipped_reason:"no_installed_embedding_model",auto_ollama_defaults_remediation:`Run ollama pull ${Yi} or configure providers.ollama.model explicitly (and search.embedding_model if you need an override).`}}(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]="9ecff496-8afa-5cfc-9178-2be8bd403978")}catch{}})();var us="reindex";import Kn from"node:path";import{mkdir as ms,readFile as fs,stat as Tt,unlink as ps}from"node:fs/promises";import{basename as jn,dirname as bt,isAbsolute as _s,join as hs,resolve as vt}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]="b5f2e49a-fb72-554b-b0a8-dca0adee71f4")}catch{}})();var It="pm_items",gs=/[^a-zA-Z0-9_-]/g,ys=128,Es=".pm-cli-local-vectors",St=1,j=new Map;function se(e){return(E(e.collection_name)??It).replaceAll(gs,"_").slice(0,ys)}function Le(e){if(!K(e)||e.length===0)throw new Error("Vector values must be a non-empty numeric array");return[...e]}function Hn(e){if(!Number.isFinite(e)||e<=0)throw new Error("Vector query limit must be a positive number");return Math.floor(e)}function ws(e){let t=e.result;if(!Array.isArray(t))throw new TypeError("Qdrant query response must include a result array");let n=t.map((r,o)=>{let i=r.id,s=typeof i=="number"?String(i):i,a=E(s);if(!a)throw new Error(`Qdrant query response entry at index ${o} is missing a non-empty id`);let c=r.score;if(typeof c!="number"||!Number.isFinite(c))throw new TypeError(`Qdrant query response entry at index ${o} is missing a finite numeric score`);let d=r.payload;if(d!==void 0&&(typeof d!="object"||d===null||Array.isArray(d)))throw new Error(`Qdrant query response entry at index ${o} must provide payload as an object when set`);return{id:a,score:c,...d?{payload:d}:{}}});return n.sort((r,o)=>r.score!==o.score?o.score-r.score:r.id.localeCompare(o.id)),n}function At(e){let t=E(e.result?.status);if(t)return{status:t};let n=E(e.status);if(n)return{status:n};throw new Error("Qdrant upsert response must include status metadata")}async function ie(e,t,n,r,o){return await Te({endpoint:e,method:t.method,headers:t.headers,body:t.body,timeoutMs:n,fetcher:r,requestLabel:`Vector ${o} request`,responseLabel:`Vector ${o} response`})}function bs(e){let t=E(e.vector_store?.qdrant?.url);if(!t)return null;let n=E(e.vector_store?.collection_name),r=E(e.vector_store?.qdrant?.api_key);return{name:"qdrant",url:t,...n&&n!==It?{collection_name:n}:{},...r?{api_key:r}:{}}}function Ss(e){let t=vt(e),n=bt(t);return jn(t)==="pm"&&jn(n)===".agents"?bt(n):t}function Ts(e,t){return!t||_s(e)?e:vt(Ss(t),e)}function vs(e,t){let n=E(e.vector_store?.lancedb?.path);if(!n)return null;let r=E(e.vector_store?.collection_name);return{name:"lancedb",path:Ts(n,t),...r&&r!==It?{collection_name:r}:{}}}function Is(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector upsert records must include at least one entry");return e.map((t,n)=>{let r=E(t.id);if(!r)throw new Error(`Vector upsert record at index ${n} is missing a non-empty id`);let o=Le(t.vector),i=t.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`Vector upsert record at index ${n} must provide payload as an object when set`);return{id:r,vector:o,...i?{payload:i}:{}}})}function As(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector delete ids must include at least one entry");let t=e.map((r,o)=>{let i=E(r);if(!i)throw new Error(`Vector delete id at index ${o} is missing a non-empty value`);return i}).sort((r,o)=>r.localeCompare(o)),n=[];for(let r of t)n.at(-1)!==r&&n.push(r);return n}function Cs(e){return e.replace(/\/points\?wait=true$/,"/points/delete?wait=true")}function xs(e){return e.replace(/\/points\?wait=true$/,"")}function Oe(e){return{"content-type":"application/json",...e.api_key?{"api-key":e.api_key}:{}}}function Me(e,t){return J(e,t)}function J(e,t){return hs(vt(e),Es,`${t}.json`)}function ks(e,t,n){let r=E(e.id);if(!r)throw new Error(`LanceDB local snapshot '${n}' record at index ${t} is missing a non-empty id`);let o=Le(e.vector),i=e.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`LanceDB local snapshot '${n}' record '${r}' must provide payload as an object when set`);return{id:r,vector:o,...i?{payload:i}:{}}}function Rs(e,t,n){let r;try{r=JSON.parse(n)}catch(a){throw new Error(`LanceDB local snapshot at '${e}' is not valid JSON: ${b(a)}`)}if(typeof r!="object"||r===null||Array.isArray(r))throw new Error(`LanceDB local snapshot at '${e}' must be a JSON object`);if(r.version!==St)throw new Error(`LanceDB local snapshot at '${e}' must include version=${St}`);let o=E(r.table);if(!o)throw new Error(`LanceDB local snapshot at '${e}' must include a non-empty table value`);if(o!==t)throw new Error(`LanceDB local snapshot at '${e}' table mismatch: expected '${t}', received '${o}'`);let i=r.records;if(!Array.isArray(i))throw new TypeError(`LanceDB local snapshot at '${e}' must include a records array`);let s=new Map;for(let a=0;a<i.length;a+=1){let c=ks(i[a],a,e);s.set(c.id,c)}return s}async function Ls(e){try{let t=await Tt(e);return{mtimeMs:t.mtimeMs,size:t.size}}catch(t){if(!G(t))throw t;return null}}function Os(e,t){if(!t)return null;if(t.mtimeMs===null&&t.size===null&&t.records.size===0)return t.records;let n=new Map;return j.set(e,{records:n,mtimeMs:null,size:null}),n}function Ms(e,t){return e!==void 0&&t!==null&&e.mtimeMs===t.mtimeMs&&e.size===t.size}async function Ct(e,t){let n=Me(e,t),r=J(e,t),o=await Ls(r),i=j.get(n);if(!o){let a=Os(n,i);if(a)return a}if(Ms(i,o))return i.records;let s=new Map;try{let a=await fs(r,"utf8");s=Rs(r,t,a)}catch(a){if(!G(a))throw a}return j.set(n,{records:s,mtimeMs:o?.mtimeMs??null,size:o?.size??null}),s}function Ds(e){let t=[...e.values()];return t.sort((n,r)=>n.id.localeCompare(r.id)),t.map(n=>({id:n.id,vector:[...n.vector],...n.payload?{payload:n.payload}:{}}))}async function Bn(e){try{await ps(e)}catch(t){if(!G(t))throw new Error(`LanceDB local snapshot delete failed at '${e}': ${b(t)}`)}}async function Yn(e,t,n){let r=J(e,t);if(n.size===0){await Bn(r);return}let o=bt(r);try{await ms(o,{recursive:!0})}catch(s){throw new Error(`LanceDB local snapshot directory create failed at '${o}': ${b(s)}`)}let i=`${JSON.stringify({version:St,table:t,records:Ds(n)})}
13
+ `;try{await v(r,i)}catch(s){throw new Error(`LanceDB local snapshot write failed at '${r}': ${b(s)}`)}}async function Ns(e,t){let n=Me(e,t),r=J(e,t);await Bn(r),j.delete(n)}function qn(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function Ps(e,t){let n=0;for(let i=0;i<e.length;i+=1)n+=e[i]*t[i];let r=qn(e),o=qn(t);return r===0||o===0?0:n/(r*o)}function xt(e,t){let n=bs(e),r=vs(e,t),o=[n,r].filter(a=>a!==null),i=E(e.vector_store?.adapter),s=i?i.toLowerCase():null;return{active:(s?o.find(a=>a.name===s):void 0)??o[0]??null,available:o}}function De(e){let t=se(e);if(e.name==="qdrant"){let o=Z(e.url),i=encodeURIComponent(t);return{store:"qdrant",query_target:`${o}/collections/${i}/points/search`,upsert_target:`${o}/collections/${i}/points?wait=true`}}let n=encodeURIComponent(e.path),r=encodeURIComponent(t);return{store:"lancedb",query_target:`lancedb://${n}#${r}`,upsert_target:`lancedb://${n}#${r}`}}function $s(e,t,n){let r=De(e),o=Le(t),i=Hn(n);return e.name==="qdrant"?{target:r,method:"POST",headers:Oe(e),body:{vector:o,limit:i,with_payload:!0}}:{target:r,method:"LOCAL",headers:{},body:{table:se(e),vector:o,limit:i}}}function zs(e,t){let n=De(e),r=Is(t);return e.name==="qdrant"?{target:n,method:"POST",headers:Oe(e),body:{points:r}}:{target:n,method:"LOCAL",headers:{},body:{table:se(e),records:r}}}function Fs(e,t){let n=De(e),r=As(t);return e.name==="qdrant"?{target:n,method:"POST",headers:Oe(e),body:{points:r}}:{target:n,method:"LOCAL",headers:{},body:{table:se(e),ids:r}}}async function gl(e,t,n,r={}){let o=$s(e,t,n);if(o.method==="LOCAL"){let c=e,d=o.body,u=await Ct(c.path,d.table);if(u.size===0)return[];let p=Le(d.vector),_=Hn(d.limit),f=[],g=0;for(let h of u.values()){if(h.vector.length!==p.length){g++;continue}f.push({id:h.id,score:Ps(p,h.vector),...h.payload?{payload:h.payload}:{}})}return g>0&&r.warnings&&r.warnings.push(`vector_dimension_mismatch:${g} records skipped (expected ${p.length} dimensions)`),f.sort((h,y)=>h.score!==y.score?y.score-h.score:h.id.localeCompare(y.id)),f.slice(0,_)}let i=$(r.timeout_ms,"Vector request"),s=z(r.fetcher,"Vector request"),a=await ie(o.target.query_target,{method:"POST",headers:o.headers,body:o.body},i,s,"query");return ws(a)}async function kt(e,t,n={}){let r=zs(e,t);if(r.method==="LOCAL"){let a=e,c=r.body,d=Me(a.path,c.table),u=await Ct(a.path,c.table);for(let f of c.records)u.set(f.id,f);await Yn(a.path,c.table,u);let p=J(a.path,c.table),_=await Tt(p);return j.set(d,{records:u,mtimeMs:_.mtimeMs,size:_.size}),{status:"ok"}}let o=$(n.timeout_ms,"Vector request"),i=z(n.fetcher,"Vector request"),s=await ie(r.target.upsert_target,{method:"POST",headers:r.headers,body:r.body},o,i,"upsert");return At(s)}async function Ne(e,t,n={}){let r=Fs(e,t);if(r.method==="LOCAL"){let a=e,c=r.body,d=Me(a.path,c.table),u=await Ct(a.path,c.table);if(u.size===0)return{status:"ok"};for(let p of c.ids)u.delete(p);if(await Yn(a.path,c.table,u),u.size===0)j.delete(d);else{let p=J(a.path,c.table),_=await Tt(p);j.set(d,{records:u,mtimeMs:_.mtimeMs,size:_.size})}return{status:"ok"}}let o=$(n.timeout_ms,"Vector request"),i=z(n.fetcher,"Vector request"),s=await ie(Cs(r.target.upsert_target),{method:"POST",headers:r.headers,body:r.body},o,i,"delete");return At(s)}async function Wn(e,t=[],n={},r){if(e.name==="lancedb")return await Ns(e.path,se(e)),{status:"ok"};if(r!==void 0){if(!Number.isInteger(r)||r<=0)throw new Error("Vector reset dimension must be a positive integer when provided");let i=De(e),s=xs(i.upsert_target),a=$(n.timeout_ms,"Vector request"),c=z(n.fetcher,"Vector request"),d=Oe(e);try{await ie(s,{method:"DELETE",headers:d,body:{}},a,c,"delete")}catch(p){if(!b(p).includes("failed with status 404"))throw p}let u=await ie(s,{method:"PUT",headers:d,body:{vectors:{size:r,distance:"Cosine"}}},a,c,"upsert");return At(u)}let o=t.map(i=>i.trim()).filter(i=>i.length>0);return o.length===0?{status:"ok"}:await Ne(e,o,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]="f8acaac5-64f7-5e22-987e-4eb12a1aa1cf")}catch{}})();function Pe(e,t){let n=E(e),r=E(t);return!n||!r?null:{provider:n,model:r}}function Gn(e){if(e==null)return null;if(typeof e!="object"||Array.isArray(e))throw new Error("Vectorization embedding metadata must be an object when set");let t=Pe(e.provider,e.model),n=e.vector_dimension;if(!t||typeof n!="number"||!Number.isInteger(n)||n<=0)throw new Error("Vectorization embedding metadata must include provider, model, and positive vector_dimension");return{...t,vector_dimension:n}}function Rt(e,t){if(!Number.isInteger(t)||t<=0)throw new Error("Vectorization embedding metadata requires a positive vector dimension");return{provider:e.provider,model:e.model,vector_dimension:t}}function Lt(e,t){return!e||e.provider!==t.provider||e.model!==t.model}function Ot(e,t){return!!(e&&e.vector_dimension!==t)}function Mt(e,t){if(e.length===0)throw new Error(`${t} returned no vectors`);let n=e[0].length;if(!Number.isInteger(n)||n<=0)throw new Error(`${t} returned an empty vector`);for(let r=1;r<e.length;r+=1)if(e[r]?.length!==n)throw new Error(`${t} returned mixed vector dimensions`);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]="7113dff5-c8e0-5ba6-b0ae-2ff849ed94df")}catch{}})();var Xn="search/vectorization-status.json";function ce(e){return[...new Set([...e].map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Jn(e){return typeof e=="string"&&e.trim().length>0&&Number.isFinite(Date.parse(e))}function Qn(e){let t=new Map;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!Jn(r)||t.set(o,r)}return Object.fromEntries([...t.entries()].sort((n,r)=>n[0].localeCompare(r[0])))}async function Zn(e){let t=Kn.join(e,Xn),n=await T(t);if(n===null||n.trim().length===0)return{entries:{},embedding:null,warnings:[]};let r;try{r=JSON.parse(n)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}if(typeof r!="object"||r===null||r.version!==1||!Array.isArray(r.items))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let o=new Map;for(let s of r.items){if(typeof s!="object"||s===null)return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let a=s.id,c=s.updated_at;if(typeof a!="string"||a.trim().length===0||!Jn(c))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};o.set(a.trim(),c)}let i=null;try{i=Gn(r.embedding)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}return{entries:Object.fromEntries([...o.entries()].sort((s,a)=>s[0].localeCompare(a[0]))),embedding:i,warnings:[]}}async function er(e,t,n){let r=Qn(t),o=Kn.join(e,Xn),i=`${JSON.stringify({version:1,generated_at:D(),...n?{embedding:n}:{},items:Object.entries(r).map(([s,a])=>({id:s,updated_at:a}))},null,2)}
14
+ `;await v(o,i)}function Us(e){return{id:e.id,type:e.type,status:e.status,priority:e.priority,updated_at:e.updated_at}}function Vs(e){let t=Pe(e.name,e.model);if(!t)throw new Error("Embedding provider must include a provider name and model");return t}function ae(e,t){return{refreshed:[],skipped:e,warnings:[t]}}async function js(e,t,n){if(!n.settings&&!await W(Ge(e)))return ae(t,"search_semantic_refresh_skipped:settings_not_initialized");let r;try{if(n.settings)r=n.settings;else{let a=await ge(e),c=a.warnings.find(d=>d.startsWith("settings_read_"));if(c)return ae(t,`search_semantic_refresh_skipped:settings_read_failed:${c}`);r=a.settings}}catch(a){return ae(t,`search_semantic_refresh_skipped:settings_read_failed:${b(a)}`)}let o=n.apply_runtime_defaults?Re(r).settings:r,i=ct(o).active;if(!i)return ae(t,"search_semantic_refresh_skipped:provider_unconfigured");let s=xt(o,e).active;return s?{settings:o,provider:i,vectorStore:s}:ae(t,"search_semantic_refresh_skipped:vector_store_unconfigured")}async function qs(e,t,n,r,o,i){let s=[],a=new Set,c=new Set,d=[];for(let u of r){let p=await rt(e,u,t,n,o);if(!p){c.add(u);continue}try{let _=await ot(p,{schema:i});d.push({id:_.document.metadata.id,document:_.document})}catch(_){a.add(p.id),s.push(`search_semantic_refresh_item_read_failed:${p.id}:${b(_)}`)}}return d.sort((u,p)=>u.id.localeCompare(p.id)),{documents:d,missingIds:ce(c),skippedIds:ce(a),warnings:s}}async function Hs(e,t,n){let r=X(t.name,e.search.embedding_corpus_max_characters).maxCharacters,o=dt(e),i=n.map(a=>lt(a.document,{providerName:t.name,maxCharacters:r,fields:o})),s=await mt(t,e,i);return{vectors:s.vectors,vector_dimension:Mt(s.vectors,"Semantic refresh embedding"),warnings:s.warnings}}async function Bs(e,t,n){return await kt(e,t.map((r,o)=>({id:r.id,vector:n[o],payload:Us(r.document.metadata)}))),{refreshed:t.map(r=>r.id),skipped:[],warnings:[]}}async function Ys(e,t){if(t.length===0)return{refreshed:[],skipped:[],warnings:[]};try{return await Ne(e,t),{refreshed:[],skipped:[],warnings:[]}}catch(n){return{refreshed:[],skipped:t,warnings:[`search_semantic_refresh_delete_failed:${b(n)}`]}}}async function zl(e,t,n={}){let r=ce(t);if(r.length===0)return{refreshed:[],skipped:[],warnings:[]};let o=await js(e,r,n);if(!("settings"in o))return o;let i=We(o.settings,Je()),s=await qs(e,o.settings.id_prefix,o.settings.item_format,r,i.type_to_folder,o.settings.schema),a=s.documents.length>0||s.missingIds.length>0?await Zn(e):{entries:{},embedding:null,warnings:[]},c=Vs(o.provider),d=a.entries,u={refreshed:[],skipped:[],warnings:[]},p=a.embedding;if(s.documents.length>0)if(a.embedding&&Lt(a.embedding,c))u={refreshed:[],skipped:s.documents.map(y=>y.id),warnings:["search_semantic_refresh_requires_reindex:embedding_identity_changed"]};else try{let y=await Hs(o.settings,o.provider,s.documents);if(Ot(a.embedding,y.vector_dimension))u={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[...y.warnings,"search_semantic_refresh_requires_reindex:vector_dimension_changed"]};else{p=Rt(c,y.vector_dimension);let w=await Bs(o.vectorStore,s.documents,y.vectors);u={refreshed:w.refreshed,skipped:w.skipped,warnings:[...y.warnings,...w.warnings]}}}catch(y){u={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[`search_semantic_refresh_failed:${b(y)}`]}}let _=await Ys(o.vectorStore,s.missingIds),f=new Set(u.refreshed),g=Object.fromEntries(s.documents.filter(y=>f.has(y.id)).map(y=>[y.id,y.document.metadata.updated_at])),h=[];if(Object.keys(g).length>0||s.missingIds.length>0){let y={...d,...Qn(g)};for(let w of s.missingIds)delete y[w];try{await er(e,y,p)}catch(w){h.push(`search_vectorization_status_ledger_write_failed:${b(w)}`)}h.push(...a.warnings)}return{refreshed:ce([...u.refreshed,..._.refreshed]),skipped:ce([...s.skippedIds,...u.skipped,..._.skipped]),warnings:[...s.warnings,...u.warnings,..._.warnings,...h]}}import{createRequire as Js}from"node:module";(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]="ac3b0f55-7faf-5fa6-b01d-304e87acb9a2")}catch{}})();var Ws=new Set(["1","true","yes","on"]),Dt=["user","automation","test","dogfood"],Gs=new Set(Dt);function tr(e=process.env){return typeof e.VITEST=="string"||typeof e.VITEST_WORKER_ID=="string"||typeof e.NODE_TEST_CONTEXT=="string"||(e.NODE_ENV??"").trim().toLowerCase()==="test"}function $e(e,t){return Ws.has((t[e]??"").trim().toLowerCase())}function de(e=process.env){let t=$e("DO_NOT_TRACK",e),n=(e.PM_TELEMETRY_SOURCE_CONTEXT??"").trim().toLowerCase(),r=tr(e)&&!Gs.has(n)&&!$e("PM_TELEMETRY_SEND_TEST_EVENTS",e);return{telemetry_disabled:t||r||$e("PM_TELEMETRY_DISABLED",e)||$e("PM_NO_TELEMETRY",e),do_not_track:t,test_suppressed:r}}(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]="64589e00-25ef-5d74-a94a-7d40455e1929")}catch{}})();var rr=/(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|credentials|bearer|dsn)/i,Vl=new RegExp(`(?:\\b|(?<=_))(${rr.source})\\s*[:=]\\s*([^\\s,;]+)`,"giu");var nr="(?:\\s|\\\\+u(?:0009|000a|000d|0020))*",jl=new RegExp("^"+nr+"(?::|=|\\\\+u(?:003a|003d))"+nr,"iu");(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]="16379104-dc20-5034-95ab-ebeb63f54952")}catch{}})();var Xl=Js(import.meta.url);(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]="9e8ad404-2f8d-5d9b-9046-60178a70e5b2")}catch{}})();var ze=class extends m{constructor(t,n,r){super(t,l.GENERIC_FAILURE,n),this.name="ExtensionCommandError",Object.defineProperty(this,"cause",{value:r,configurable:!0,writable:!0})}};function eu(e,t){let n=t.warnings[0]??"extension_command_handler_failed",r=t.errorMessage?.trim();return new ze(`Command "${e}" failed in extension handler (${n}).${r?` ${r}`:""}`,{code:t.errorCode??"command_failed",nextSteps:t.remediation?[t.remediation]:void 0},t.cause)}(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]="bd65294f-dfa5-53d2-9691-c630884f2a5f")}catch{}})();var ru=new Map([[l.USAGE,"invalid_command_usage"],[l.NOT_FOUND,"item_not_found"],[l.CONFLICT,"lock_conflict"],[l.DEPENDENCY_FAILED,"dependency_failed"]]);(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]="fc213d81-bf8a-50a2-b1a8-1b2a69721855")}catch{}})();(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]="ab644545-f072-53c0-9ebf-72a62c237a2f")}catch{}})();var fu=Object.freeze({"&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&amp;":"&"});(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]="e7deff0d-d9c9-5250-b172-ab752ddd64a4")}catch{}})();(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]="bc9e1b59-21cb-5dda-91c0-36e123734cd3")}catch{}})();(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]="4b566486-120f-5aed-8d92-9e62ed996210")}catch{}})();function Zs(e,t){if(e==null)return[];let n=t?.separators??/,/,r=e.split(n).map(i=>i.trim()).filter(i=>i.length>0),o=t?.unique!==!1?Array.from(new Set(r)):r;return t?.sort===!0?[...o].sort():o}import Nt from"node:fs/promises";import Fe 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]="12ee7de1-dff4-53f1-8d0d-d8b1c1ebea42")}catch{}})();function ea(e){return"json_markdown"}function sr(e,t){return Fe.relative(e,t).replaceAll("\\","/")}function ta(e){return String(e).replaceAll(/[^a-zA-Z0-9._-]+/g,"_").slice(0,120)}async function na(e,t,n){e!==t&&_e(await Nt.readFile(t,"utf8"),{format:"json_markdown",requireSupportedFormat:!0,schema:n})}async function ra(e,t,n="item_format:migrate",r=Ye,o){if(t!=="toon")throw new Error("Only toon item-format migration targets are supported. Markdown item files are legacy read-only input.");let i=new Set,s=new Set,a=[],c=0,d=ea(t),u=Object.entries(r);for(let[p,_]of u){let f=Fe.join(e,_),g=[];try{g=await Nt.readdir(f)}catch{continue}let h=new Map;for(let w of g){let M=Fe.join(f,w),L=Yt(M);if(!L)continue;let B=Fe.extname(w),Q=w.slice(0,w.length-B.length).trim();if(Q.length===0)continue;let Y=h.get(Q)??{};Y[L]=M,h.set(Q,Y)}let y=[...h.keys()].sort((w,M)=>w.localeCompare(M));for(let w of y){let M=h.get(w);c+=1;let L=M[d];if(!L)continue;let B=M[t]??L,Q=B===M[t]?t:d;try{let Y=await Nt.readFile(B,"utf8"),Dr=_e(Y,{format:Q,requireSupportedFormat:!0,schema:o,onWarning:Nr=>a.push(`item_format_migration_parse_warning:${w}:${Nr}`)});await na(B,L,o);let He=Ke(e,p,w,t,r),Ht=et(Dr,{format:t,schema:o});await T(He)!==Ht&&(await v(He,Ht),a.push(...await me({path:He,scope:"project",op:n})),i.add(w)),await ue(L),s.add(sr(e,L)),a.push(...await me({path:L,scope:"project",op:`${n}:remove`})),i.add(w)}catch(Y){a.push(`item_format_migration_skipped:${sr(e,B)}:${ta(Y)}`)}}}return{target_format:t,scanned:c,migrated:[...i].sort((p,_)=>p.localeCompare(_)),removed:[...s].sort((p,_)=>p.localeCompare(_)),warnings:a}}(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]="12c59406-7e00-5fe1-bd93-c1f9d8537f01")}catch{}})();var oa=new Set(["completed","superseded"]);function ia(e){return e!==void 0&&oa.has(e)}function sa(e){if(e.type.trim().toLowerCase()!=="plan")return!1;let t=e.plan_steps??[];return t.length>0&&t.every(n=>n.status==="completed")}import xu from"node:readline/promises";(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]="7c005413-4db4-58ce-a8ec-96ebc91a54f9")}catch{}})();import Ft from"node:crypto";import{mkdirSync as Bu,rmSync as da,statSync as Yu}from"node:fs";import{mkdir as Pt,readdir as la,rm as Ut,stat as fr}from"node:fs/promises";import{request as ua}from"node:http";import{request as ma}from"node:https";import A 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]="4f455b67-536a-59be-8f25-1dc9c9c0b917")}catch{}})();(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]="4b15f41e-4b2a-511a-b2a1-c1c3e3d909c5")}catch{}})();var fa=A.join("runtime","telemetry","events.jsonl"),pa=A.join("runtime","telemetry","state.json"),_a=A.join("runtime","telemetry","otel-spans.jsonl"),ha=8,ar=500,ga=1;var ya=100,Ea=36e5,wa=3e4,cr=2e4,ba=1e3,Sa=25e3;var Ta=864e5,pr=65536;var _r=15;var hr=[25,50,100,200],va=3600*1e3,Ia=6e4;var q="PM_TELEMETRY_FLUSH_CHILD",Aa="PM_TELEMETRY_HTTP_TIMEOUT_MS",Ca=globalThis.fetch;var um=Promise.resolve(),dr=Promise.resolve();var xa=new Set(["1","true","yes","on"]);var mm=Ft.randomUUID();var gr="(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|session|credentials|bearer|literals?|regex(?:es)?|replacements?)",ka=new RegExp(`\\b(${gr})\\s*([:=])\\s*([^\\s,;]+)`,"giu"),Ra=new RegExp(`(--${gr})(=|\\s+)([^\\s,;]+)`,"giu"),La=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g,Oa=/bearer\s+[a-z0-9._=-]+/giu,Ma=/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g;function Ue(e){return A.join(e,fa)}function Ve(e){return A.join(e,_a)}function Da(e){return A.dirname(Ue(e))}function yr(e){return A.join(e,pa)}function Er(e){return A.join(e,"runtime","telemetry","flush.lock")}function Na(e){return A.join(e,"runtime","telemetry","flush.spawn.lock")}async function Pa(e){let t=await T(yr(e));if(!t||t.trim().length===0)return{};try{let n=JSON.parse(t);return typeof n!="object"||n===null||Array.isArray(n)?{}:n}catch{return{}}}async function R(e,t){try{await le(async()=>{let n={...await Pa(e),...t},r=Object.fromEntries(Object.entries(n).filter(([,o])=>o!==void 0).sort((o,i)=>o[0].localeCompare(i[0])));await v(yr(e),`${JSON.stringify(r,null,2)}
15
+ `,{createParentDirectories:!H(process.env[q])})},e)}catch{}}function wr(e){return e.replaceAll(ka,(t,n,r)=>`${n}${r}[redacted]`).replaceAll(Ra,(t,n,r)=>`${n}${r}[redacted]`)}function br(e){return e.replaceAll(La,(t,n)=>`${n}[redacted_path]`)}function Sr(e){let t=e>=65&&e<=90,n=e>=97&&e<=122,r=e>=48&&e<=57;return t||n||r}function Tr(e){if(!e)return!1;let t=e.charCodeAt(0);return Sr(t)?!0:e==="."||e==="_"||e==="%"||e==="+"||e==="-"}function vr(e){if(!e)return!1;let t=e.charCodeAt(0);return Sr(t)?!0:e==="."||e==="-"}function $a(e){let t=e.indexOf("@");if(t<=0||t!==e.lastIndexOf("@")||t===e.length-1)return!1;let n=e.slice(0,t),r=e.slice(t+1),o=r.lastIndexOf(".");if(o<=0||o===r.length-1||r.length-(o+1)<2)return!1;for(let i of n)if(!Tr(i))return!1;for(let i of r)if(!vr(i))return!1;return!0}function za(e){let t="",n=0;for(;n<e.length;){let r=e.indexOf("@",n);if(r<0){t+=e.slice(n);break}let o=r-1;for(;o>=n&&Tr(e[o]);)o-=1;o+=1;let i=r+1;for(;i<e.length&&vr(e[i]);)i+=1;let s=e.slice(o,i);if($a(s)){t+=e.slice(n,o),t+="[redacted_email]",n=i;continue}t+=e.slice(n,r+1),n=r+1}return t}function Ir(e){return za(e).replaceAll(Oa,"bearer [redacted_token]").replaceAll(Ma,"[redacted_ip]")}function Fa(e){let t=Ir(e),n=wr(t),r=br(n),o=r.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":r.length>512?`${r.slice(0,509)}...`:r}function Ua(e){let t=Ir(e),n=wr(t),r=br(n),o=r.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":r.length>2048?`${r.slice(0,2045)}...`:r}function zt(e,t="redacted"){return t==="max"?Ua(e):Fa(e)}function Va(e){let t=e?.trim().toLowerCase();return t==="minimal"||t==="redacted"||t==="max"?t:"redacted"}function H(e){return xa.has((e??"").trim().toLowerCase())}function lr(){let e=process.env[Aa]?.trim();if(!e)return cr;let t=Number(e);return Number.isFinite(t)?Math.min(Sa,Math.max(ba,Math.trunc(t))):cr}async function Ar(e,t,n){let r=new URL(e);if(globalThis.fetch!==Ca){let i=new AbortController,s,a=new Promise((c,d)=>{s=setTimeout(()=>{i.abort(),d(new Error("telemetry_http_timeout"))},lr())});try{return(await Promise.race([globalThis.fetch(e,{method:"POST",headers:t,body:n,signal:i.signal}),a])).status}finally{clearTimeout(s)}}let o=r.protocol==="https:"?ma:r.protocol==="http:"?ua:void 0;if(!o)throw new Error(`telemetry_http_protocol_unsupported_${r.protocol}`);return new Promise((i,s)=>{let a=lr(),c={method:"POST",headers:{...t,"content-length":Buffer.byteLength(n)},signal:AbortSignal.timeout(a),autoSelectFamilyAttemptTimeout:Math.min(5e3,a)},d=o(r,c,u=>{u.once("error",s),u.once("end",()=>i(u.statusCode)),u.resume()});d.once("error",s),d.end(n)})}async function ja(e){let t=await te(e);if(!t.telemetry.enabled||de().telemetry_disabled)return null;if(t.telemetry.installation_id.trim().length===0){if(tn(e))return null;t.telemetry.installation_id=Ft.randomUUID(),await ye(e,t,"telemetry:install_id")}return{installationId:t.telemetry.installation_id,endpoint:t.telemetry.endpoint,retentionDays:Math.max(1,Math.trunc(t.telemetry.retention_days)),captureLevel:Va(t.telemetry.capture_level)}}function Cr(e){let t=[];for(let n of e.split(`
16
+ `)){let r=n.trim();if(r.length!==0)try{let o=JSON.parse(r);o&&typeof o=="object"&&o.event&&typeof o.event=="object"&&typeof o.attempts=="number"&&(o.client_schema_version===void 0||typeof o.client_schema_version=="number"&&Number.isFinite(o.client_schema_version))&&t.push(o)}catch{}}return t}function xr(e){let t=Math.min(wa*2**Math.max(e-1,0),Ea);return new Date(Date.now()+t).toISOString()}function Vt(e){if(typeof e!="string"||e.trim().length===0)return!0;let t=Date.parse(e);return Number.isNaN(t)?!0:t<=Date.now()}function kr(e){return Vt(e.next_attempt_after)}function Rr(e){let t=Number.isFinite(e)?Math.max(1,Math.trunc(e)):1;return Date.now()-t*Ta}function qa(e,t){let n=e.event?.occurred_at;if(typeof n!="string"||n.trim().length===0)return!1;let r=Date.parse(n);return Number.isNaN(r)?!1:r<t}function je(e,t){let n=Rr(t),r=[],o=0;for(let i of e){if(JSON.stringify(i).length>pr||qa(i,n)||i.attempts>=_r){o+=1;continue}r.push(i)}return{entries:r,prunedCount:o}}async function Lr(e,t){let n=t.map(o=>JSON.stringify(o)).join(`
17
+ `),r=n.length>0?`${n}
18
+ `:"";for(let o=0;;o+=1)try{await v(Ue(e),r,{createParentDirectories:!H(process.env[q])});return}catch(i){let s=hr[o];if(s===void 0||!Or(i))throw i;await Mr(s)}}function Or(e){if(typeof e!="object"||e===null||!("code"in e))return!1;let t=e.code;return t==="EACCES"||t==="EBUSY"||t==="EPERM"}function Mr(e){return new Promise(t=>{setTimeout(t,e)})}function Ha(e){let t=JSON.stringify([e.endpoint,e.enqueued_at,e.payload]);return Ft.createHash("sha256").update(t).digest("hex").slice(0,32)}function jt(e){let t=[];for(let n of e.split(`
19
+ `)){let r=n.trim();if(r.length!==0)try{let o=JSON.parse(r);o&&typeof o=="object"&&typeof o.endpoint=="string"&&o.endpoint.trim().length>0&&"payload"in o&&typeof o.attempts=="number"&&Number.isFinite(o.attempts)&&((typeof o.id!="string"||o.id.length===0)&&(o.id=Ha(o)),t.push(o))}catch{}}return t}function Ba(e,t){if(typeof e.enqueued_at!="string"||e.enqueued_at.trim().length===0)return!1;let n=Date.parse(e.enqueued_at);return Number.isNaN(n)?!1:n<t}function qt(e,t){let n=Rr(t),r=[],o=0;for(let i of e){if(JSON.stringify(i).length>pr||Ba(i,n)||i.attempts>=_r){o+=1;continue}r.push(i)}if(r.length>ar){let i=r.length-ar;return o+=i,{entries:r.slice(i),prunedCount:o}}return{entries:r,prunedCount:o}}async function Ya(e,t){let n=t.map(o=>JSON.stringify(o)).join(`
20
+ `),r=n.length>0?`${n}
21
+ `:"";for(let o=0;;o+=1)try{await v(Ve(e),r,{createParentDirectories:!H(process.env[q])});return}catch(i){let s=hr[o];if(s===void 0||!Or(i))throw i;await Mr(s)}}async function ur(e,t,n,r){return le(async()=>{let o=await T(Ve(e)),i=o===null?[]:jt(o),s=[];for(let c of i){if(n.has(c.id))continue;let d=r.get(c.id);s.push(d?{...c,attempts:d.attempts,next_attempt_after:d.next_attempt_after}:c)}let{entries:a}=qt(s,t);return await Ya(e,a),a.length},e)}async function Wa(e,t){let n=await T(Ve(e));if(n===null||n.trim().length===0){await R(e,{pending_otel_spans:0});return}let r=jt(n),{entries:o,prunedCount:i}=qt(r,t),s=o.filter(g=>Vt(g.next_attempt_after)).slice(0,ha);if(s.length===0){let g=i>0?await ur(e,t,new Set,new Map):o.length;await R(e,{pending_otel_spans:g});return}let a=D(),c=new Set,d=new Map,u=0,p;await Promise.all(s.map(async g=>{try{let h=await Ar(g.endpoint,{"content-type":"application/json"},JSON.stringify(g.payload));if(h<200||h>=300)throw new Error(`local_otel_export_http_${h}`);c.add(g.id),u+=1}catch(h){p=h instanceof Error?zt(h.message,"redacted"):"local_otel_export_failed";let y=g.attempts+1;d.set(g.id,{attempts:y,next_attempt_after:xr(y)})}}));let _=await ur(e,t,c,d),f={pending_otel_spans:_,last_otel_attempt_at:a};u>0&&(f.last_otel_success_at=a),p!==void 0?(f.last_otel_failure_at=a,f.last_otel_failure_error=p):_===0&&(f.last_otel_failure_at=void 0,f.last_otel_failure_error=void 0),await R(e,f)}async function Ga(e,t,n){try{await Ja(e,t,n)}catch{}try{await Wa(e,n)}catch{}}async function Ka(e,t=va){try{let n=Da(e),r=await la(n,{withFileTypes:!0}),o=Date.now()-Math.max(0,t);await Promise.all(r.filter(i=>i.isFile()&&/^\.events\.jsonl\.\d+\.\d+\.[a-f0-9]+\.tmp$/.test(i.name)).map(async i=>{let s=A.join(n,i.name);(await fr(s)).mtimeMs<o&&await Ut(s,{force:!0})}))}catch{}}async function le(e,t=ee(process.cwd()),n=5e3){let r=dr.catch(()=>{}).then(()=>Kt(async()=>{let o=await pe(t,"telemetry-queue",60,"telemetry",!1,!1,n,{createParentDirectories:!H(process.env[q])});try{return en(t),await e()}finally{await o()}}));return dr=r.catch(()=>{}),r}async function qe(e){let t=await T(Ue(e));return t===null||t.trim().length===0?[]:Cr(t)}async function $t(e,t,n){return le(async()=>{let r=await qe(e),{entries:o}=je(r,n),i=o.filter(s=>!t.has(s.event.event_id));return await Lr(e,i),i},e)}async function Xa(e,t,n,r){return le(async()=>{let o=await qe(e),{entries:i}=je(o,r),s=i.map(a=>{if(!t.has(a.event.event_id))return a;let c=a.attempts+1;return{...a,attempts:c,last_attempt_at:n,next_attempt_after:xr(c)}});return await Lr(e,s),s},e)}async function Ja(e,t,n){await Ka(e);let r=t.trim();if(r.length===0)return;let o=await T(Ue(e));if(o===null||o.trim().length===0){await R(e,{endpoint:r,queue_entries:0});return}let i=Cr(o);if(i.length===0){await R(e,{endpoint:r,queue_entries:0});return}let{entries:s,prunedCount:a}=je(i,n);if(s.length===0){let f=await $t(e,new Set,n);await R(e,{endpoint:r,queue_entries:f.length});return}let c=s.filter(f=>kr(f)).slice(0,ya);if(c.length===0){let f=a>0?await $t(e,new Set,n):s;await R(e,{endpoint:r,queue_entries:f.length});return}let d=new Set(c.map(f=>f.event.event_id)),u=D(),p={"content-type":"application/json"},_=process.env.PM_TELEMETRY_INGEST_KEY?.trim();_&&(p["x-pm-telemetry-key"]=_);try{let f=await Ar(r,p,JSON.stringify({schema_version:ga,events:c.map(g=>g.event)}));if(f<200||f>=300)throw new Error(`telemetry_flush_http_${f}`)}catch(f){let g=await Xa(e,d,u,n),h=f instanceof Error?zt(f.message,"redacted"):"telemetry_flush_failed";await R(e,{endpoint:r,queue_entries:g.length,last_attempted_flush_at:u,last_failed_flush_at:u,last_failed_flush_error:h});return}try{let f=await $t(e,d,n);await R(e,{endpoint:r,queue_entries:f.length,last_attempted_flush_at:u,last_successful_flush_at:u,last_failed_flush_at:void 0,last_failed_flush_error:void 0})}catch(f){let g=f instanceof Error?zt(f.message,"redacted"):"telemetry_flush_failed",h=await qe(e).catch(()=>s);await R(e,{endpoint:r,queue_entries:h.length,last_attempted_flush_at:u,last_failed_flush_at:u,last_failed_flush_error:g})}}async function Qa(e){let t=Er(e);H(process.env[q])||await Pt(A.dirname(t),{recursive:!0});try{return await Pt(t),!0}catch(n){if(typeof n!="object"||n===null||!("code"in n)||n.code!=="EEXIST")throw n}try{let n=await fr(t);return Date.now()-n.mtimeMs<Ia?!1:(await Ut(t,{recursive:!0,force:!0}),await Pt(t),!0)}catch{return!1}}function Za(e){try{da(e,{recursive:!0,force:!0})}catch{}}function ec(e){Za(Na(e))}async function tc(e,t,n){let r=await Qa(e);if(ec(e),!r)return!1;try{await Ga(e,t,n)}finally{try{await Ut(Er(e),{recursive:!0,force:!0})}catch{}}return!0}async function mr(e,t){let n=new Set;try{let{entries:r}=je(await qe(e),t);for(let o of r.filter(kr))n.add(`event:${o.event.event_id}`)}catch{}try{let r=await T(Ve(e));if(r!==null)for(let o of qt(jt(r),t).entries)Vt(o.next_attempt_after)&&n.add(`span:${o.id}`)}catch{}return n}async function fm(e=ee(process.cwd())){if(!de().telemetry_disabled)try{await nt(e,async()=>{let t=H(process.env[q]),n=!0;for(;n;){if(!(await te(e)).telemetry.enabled)return;let r=await le(()=>ja(e),e);if(!r)return;let o=t?await mr(e,r.retentionDays):new Set;if(!await tc(e,r.endpoint,r.retentionDays)||!t)return;let i=await mr(e,r.retentionDays);n=i.size>0&&(i.size!==o.size||[...i].some(s=>!o.has(s)))}},()=>H(process.env[q]))}catch{}}(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]="f7513c8b-4ae1-50ef-8e22-5f743be36db6")}catch{}})();export{eu as a,_d as b,pi as c,hi as d,yi as e,Ei as f,st as g,Pr as h,cn as i,dn as j,zr as k,Fr as l,Ur as m,Vr as n,pn as o,Kr as p,sc as q,Xr as r,ac as s,re as t,Qr as u,be as v,cc as w,Zr as x,we as y,dc as z,Se as A,to as B,no as C,Li as D,si as E,Gc as F,kn as G,Kc as H,Ce as I,Xc as J,mi as K,gd as L,wi as M,bi as N,yt as O,Ti as P,Et as Q,vi as R,Od as S,Ai as T,Dn as U,Ci as V,xi as W,Ri as X,jd as Y,Di as Z,Gd as _,zi as $,Ui as aa,ro as ba,Vi as ca,ji as da,Re as ea,us as fa,yc as ga,ct as ha,yn as ia,dt as ja,go as ka,yo as la,bc as ma,En as na,X as oa,lt as pa,mt as qa,xt as ra,gl as sa,kt as ta,Ne as ua,Wn as va,Pe as wa,Rt as xa,Lt as ya,Ot as za,Mt as Aa,Zn as Ba,er as Ca,zl as Da,Dt as Ea,de as Fa,Wo as Ga,In as Ha,Ko as Ia,Xo as Ja,Jo as Ka,Oc as La,ht as Ma,Cn as Na,An as Oa,ei as Pa,ti as Qa,xn as Ra,oi as Sa,Zs as Ta,ra as Ua,ia as Va,sa as Wa,ga as Xa,_r as Ya,le as Za,fm as _a};
22
+ //# sourceMappingURL=chunk-NOKG4RFN.js.map
@@ -1,8 +1,8 @@
1
- import{r as q,s as V}from"./chunk-I4X6AKOO.js";import{m,s as M,u as k}from"./chunk-6VDRAJYX.js";import{Fa as O,Md as z,R as x,W as g,pd as N,sd as D,vd as j}from"./chunk-6L4KKRK7.js";import{D as _,H as L,y as S,z as C}from"./chunk-7SZPZOIC.js";import{constants as p}from"node:fs";import{lstat as A,mkdir as I,open as P}from"node:fs/promises";import h from"node:path";(function(){try{var i=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new i.Error().stack;e&&(i._sentryDebugIds=i._sentryDebugIds||{},i._sentryDebugIds[e]="5434ff6f-95af-5983-88cb-fd360d95cb9e")}catch{}})();function E(i,e){if(typeof i!="string"||i.trim().length===0)throw new TypeError(`Relationship event ${e} must be non-empty`);return i.trim()}function $(i,e){let t=e.require(i.kind),n=t.direction==="undirected"?[i.source,i.target].sort().join("\0"):`${i.source}\0${i.target}`;return`${t.kind}\0${n}`}function Q(i){return Object.freeze({...i,...i.payload===void 0?{}:{payload:Object.freeze(structuredClone(i.payload))}})}function U(i,e,t,n){let r=t.require(i.kind),o=n.outgoingOne.get(`${r.kind}\0${i.source}`);if(o!==void 0&&o!==e)throw new TypeError(`Relationship outgoing cardinality exceeded for ${r.kind}`);let s=n.incomingOne.get(`${r.kind}\0${i.target}`);if(s!==void 0&&s!==e)throw new TypeError(`Relationship incoming cardinality exceeded for ${r.kind}`);let c=$(i,t),a=n.identities.get(c);if(a!==void 0&&a!==e)throw new TypeError(`Relationship edge already active: ${c}`)}function Y(i){let e=new Map;for(let t of i)t.action==="remove"?e.delete(t.relationshipId):e.set(t.relationshipId,t.edge);return e}function X(i,e,t){if(i.expectedVersion!==void 0&&i.expectedVersion!==e)throw new TypeError(`Relationship event version conflict: expected ${i.expectedVersion}, current ${e}`);let n=E(i.eventId,"eventId");if(t.has(n))throw new TypeError(`Relationship event already exists: ${n}`);if(i.action!=="add"&&i.action!=="remove"&&i.action!=="supersede")throw new TypeError(`Unknown relationship event action: ${i.action}`);if(!Number.isFinite(Date.parse(i.timestamp)))throw new TypeError("Relationship event timestamp must be valid");return{eventId:n,relationshipId:E(i.relationshipId,"relationshipId"),author:E(i.author,"author"),timestamp:new Date(i.timestamp).toISOString()}}function Z(i,e,t,n,r,o){let s=t.has(e);if(i.action==="add"&&s)throw new TypeError(`Relationship is already active: ${e}`);if(i.action!=="add"&&!s)throw new TypeError(`Relationship is not active: ${e}`);if(i.action==="remove")return;if(!i.edge)throw new TypeError(`Relationship ${i.action} event requires an edge`);let c=typeof i.edge.source=="string"?i.edge.source.trim():"",a=typeof i.edge.target=="string"?i.edge.target.trim():"";if(!n.has(c)||!n.has(a))throw new TypeError(`Relationship endpoint not found: ${c} -> ${a}`);let d=new g([c,a],[i.edge],r).edges()[0];return U(d,e,r,o),Q(d)}var T=class{#t;#i;#n=[];#o=new Set;#e=new Map;#r={identities:new Map,outgoingOne:new Map,incomingOne:new Map};constructor(e,t={}){this.#t=new Set([...e].filter(n=>typeof n=="string").map(n=>n.trim()).filter(Boolean)),this.#i=t.registry??x()}get version(){return this.#n.length}events(){return Object.freeze([...this.#n])}*stream(e={}){let t=e.fromVersion??1,n=e.toVersion??this.version,r=e.batchSize??100;if(!Number.isInteger(t)||t<1)throw new TypeError("Relationship event stream fromVersion must be positive");if(!Number.isInteger(n)||n<0||n>this.version)throw new TypeError(`Relationship event stream toVersion out of range: ${n}`);if(!Number.isInteger(r)||r<1)throw new TypeError("Relationship event stream batchSize must be positive");if(t>n+1)throw new TypeError("Relationship event stream fromVersion exceeds the selected prefix");for(let o=t-1;o<n;o+=r)yield Object.freeze(this.#n.slice(o,Math.min(o+r,n)))}project(e,t,n={}){if(typeof t!="function")throw new TypeError("Relationship event projection requires a reducer");let r=e,o=0,s;for(let c of this.stream({...n,batchSize:256}))for(let a of c)r=t(r,a),o+=1,s=a;return Object.freeze({state:r,version:s?.sequence??Math.max(0,(n.fromVersion??1)-1),processed:o,...s===void 0?{}:{asOf:s.timestamp}})}#s(e,t){let n=this.#i.require(t.kind);this.#r.identities.set($(t,this.#i),e),n.outgoing==="one"&&this.#r.outgoingOne.set(`${n.kind}\0${t.source}`,e),n.incoming==="one"&&this.#r.incomingOne.set(`${n.kind}\0${t.target}`,e)}#a(e){let t=this.#i.require(e.kind);this.#r.identities.delete($(e,this.#i)),t.outgoing==="one"&&this.#r.outgoingOne.delete(`${t.kind}\0${e.source}`),t.incoming==="one"&&this.#r.incomingOne.delete(`${t.kind}\0${e.target}`)}append(e){let t=X(e,this.version,this.#o),n=this.#e.get(t.relationshipId),r=Z(e,t.relationshipId,this.#e,this.#t,this.#i,this.#r),o=Object.freeze({eventId:t.eventId,relationshipId:t.relationshipId,action:e.action,...r===void 0?{}:{edge:r},author:t.author,timestamp:t.timestamp,...e.reason?.trim()?{reason:e.reason.trim()}:{},sequence:this.version+1});return this.#n.push(o),this.#o.add(t.eventId),n&&this.#a(n),e.action==="remove"?this.#e.delete(t.relationshipId):(this.#e.set(t.relationshipId,r),this.#s(t.relationshipId,r)),o}snapshot(e={}){if(e.atVersion!==void 0&&e.atTimestamp!==void 0)throw new TypeError("Relationship snapshot accepts one target");let t;if(e.atTimestamp!==void 0){let o=Date.parse(e.atTimestamp);if(!Number.isFinite(o))throw new TypeError("Relationship snapshot timestamp must be valid");t=this.#n.filter(s=>Date.parse(s.timestamp)<=o)}else{let o=e.atVersion??this.version;if(!Number.isInteger(o)||o<0||o>this.version)throw new TypeError(`Relationship snapshot version out of range: ${o}`);t=this.#n.slice(0,o)}let n=Y(t),r=new g(this.#t,n.values(),this.#i);return Object.freeze({version:t.at(-1)?.sequence??0,...t.at(-1)?{asOf:t.at(-1).timestamp}:{},edges:r.edges(),graph:r})}page(e){if(!Number.isInteger(e.limit)||e.limit<1)throw new TypeError("Relationship event page limit must be positive");let t=N("relationship-events",{order:"append-sequence"}),n=e.cursor===void 0?this.version:Number(D(e.cursor,t).snapshot);if(!Number.isSafeInteger(n)||n<0||n>this.version)throw new TypeError("Relationship event cursor snapshot version is invalid");let r=j(this.#n.slice(0,n),{cursor:e.cursor,fingerprint:t,limit:e.limit,readId:o=>o.eventId,snapshot:String(n)});return{version:n,events:r.rows,hasMore:r.has_more,...r.next_cursor?{nextCursor:r.next_cursor}:{}}}},ee="relationship-event-store",W=p.O_NOFOLLOW;function w(i){return z(i,ee,30,`relationship-store:${process.pid}`,!1,!1,3e3)}async function f(i,e="relationships/events.jsonl"){let t=h.resolve(i),n=h.resolve(t,e),r=h.relative(t,n);if(r.length===0)throw new TypeError("Relationship event path must name a file within the tracker root");if(r===".."||r.startsWith(`..${h.sep}`)||h.isAbsolute(r))throw new TypeError("Relationship event path must stay within the tracker root");if(await I(t,{recursive:!0}),(await A(t)).isSymbolicLink())throw new TypeError("Relationship event tracker root must not be a symbolic link");let o=t;for(let s of r.split(h.sep)){o=h.join(o,s);try{if((await A(o)).isSymbolicLink())throw new TypeError("Relationship event path must not contain symbolic links")}catch(c){if(_(c))break;throw c}}return n}async function y(i,e,t){let n=new T(e,{registry:t}),r,o;try{o=await P(i,p.O_RDONLY|W),r=await o.readFile("utf8")}catch(c){if(_(c))return{log:n,raw:""};throw c}finally{await o?.close()}let s=r.split(`
1
+ import{r as q,s as V}from"./chunk-SFQKCA5K.js";import{m,s as M,u as k}from"./chunk-KKRIFBSL.js";import{Fa as O,Fd as N,Id as D,Ld as j,R as x,W as g,ae as z}from"./chunk-GP2WU43K.js";import{A as C,E as _,I as L,z as S}from"./chunk-JLXGRDTG.js";import{constants as p}from"node:fs";import{lstat as A,mkdir as I,open as P}from"node:fs/promises";import h from"node:path";(function(){try{var i=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new i.Error().stack;e&&(i._sentryDebugIds=i._sentryDebugIds||{},i._sentryDebugIds[e]="5434ff6f-95af-5983-88cb-fd360d95cb9e")}catch{}})();function E(i,e){if(typeof i!="string"||i.trim().length===0)throw new TypeError(`Relationship event ${e} must be non-empty`);return i.trim()}function $(i,e){let t=e.require(i.kind),n=t.direction==="undirected"?[i.source,i.target].sort().join("\0"):`${i.source}\0${i.target}`;return`${t.kind}\0${n}`}function Q(i){return Object.freeze({...i,...i.payload===void 0?{}:{payload:Object.freeze(structuredClone(i.payload))}})}function U(i,e,t,n){let r=t.require(i.kind),o=n.outgoingOne.get(`${r.kind}\0${i.source}`);if(o!==void 0&&o!==e)throw new TypeError(`Relationship outgoing cardinality exceeded for ${r.kind}`);let s=n.incomingOne.get(`${r.kind}\0${i.target}`);if(s!==void 0&&s!==e)throw new TypeError(`Relationship incoming cardinality exceeded for ${r.kind}`);let c=$(i,t),a=n.identities.get(c);if(a!==void 0&&a!==e)throw new TypeError(`Relationship edge already active: ${c}`)}function Y(i){let e=new Map;for(let t of i)t.action==="remove"?e.delete(t.relationshipId):e.set(t.relationshipId,t.edge);return e}function X(i,e,t){if(i.expectedVersion!==void 0&&i.expectedVersion!==e)throw new TypeError(`Relationship event version conflict: expected ${i.expectedVersion}, current ${e}`);let n=E(i.eventId,"eventId");if(t.has(n))throw new TypeError(`Relationship event already exists: ${n}`);if(i.action!=="add"&&i.action!=="remove"&&i.action!=="supersede")throw new TypeError(`Unknown relationship event action: ${i.action}`);if(!Number.isFinite(Date.parse(i.timestamp)))throw new TypeError("Relationship event timestamp must be valid");return{eventId:n,relationshipId:E(i.relationshipId,"relationshipId"),author:E(i.author,"author"),timestamp:new Date(i.timestamp).toISOString()}}function Z(i,e,t,n,r,o){let s=t.has(e);if(i.action==="add"&&s)throw new TypeError(`Relationship is already active: ${e}`);if(i.action!=="add"&&!s)throw new TypeError(`Relationship is not active: ${e}`);if(i.action==="remove")return;if(!i.edge)throw new TypeError(`Relationship ${i.action} event requires an edge`);let c=typeof i.edge.source=="string"?i.edge.source.trim():"",a=typeof i.edge.target=="string"?i.edge.target.trim():"";if(!n.has(c)||!n.has(a))throw new TypeError(`Relationship endpoint not found: ${c} -> ${a}`);let d=new g([c,a],[i.edge],r).edges()[0];return U(d,e,r,o),Q(d)}var T=class{#t;#i;#n=[];#o=new Set;#e=new Map;#r={identities:new Map,outgoingOne:new Map,incomingOne:new Map};constructor(e,t={}){this.#t=new Set([...e].filter(n=>typeof n=="string").map(n=>n.trim()).filter(Boolean)),this.#i=t.registry??x()}get version(){return this.#n.length}events(){return Object.freeze([...this.#n])}*stream(e={}){let t=e.fromVersion??1,n=e.toVersion??this.version,r=e.batchSize??100;if(!Number.isInteger(t)||t<1)throw new TypeError("Relationship event stream fromVersion must be positive");if(!Number.isInteger(n)||n<0||n>this.version)throw new TypeError(`Relationship event stream toVersion out of range: ${n}`);if(!Number.isInteger(r)||r<1)throw new TypeError("Relationship event stream batchSize must be positive");if(t>n+1)throw new TypeError("Relationship event stream fromVersion exceeds the selected prefix");for(let o=t-1;o<n;o+=r)yield Object.freeze(this.#n.slice(o,Math.min(o+r,n)))}project(e,t,n={}){if(typeof t!="function")throw new TypeError("Relationship event projection requires a reducer");let r=e,o=0,s;for(let c of this.stream({...n,batchSize:256}))for(let a of c)r=t(r,a),o+=1,s=a;return Object.freeze({state:r,version:s?.sequence??Math.max(0,(n.fromVersion??1)-1),processed:o,...s===void 0?{}:{asOf:s.timestamp}})}#s(e,t){let n=this.#i.require(t.kind);this.#r.identities.set($(t,this.#i),e),n.outgoing==="one"&&this.#r.outgoingOne.set(`${n.kind}\0${t.source}`,e),n.incoming==="one"&&this.#r.incomingOne.set(`${n.kind}\0${t.target}`,e)}#a(e){let t=this.#i.require(e.kind);this.#r.identities.delete($(e,this.#i)),t.outgoing==="one"&&this.#r.outgoingOne.delete(`${t.kind}\0${e.source}`),t.incoming==="one"&&this.#r.incomingOne.delete(`${t.kind}\0${e.target}`)}append(e){let t=X(e,this.version,this.#o),n=this.#e.get(t.relationshipId),r=Z(e,t.relationshipId,this.#e,this.#t,this.#i,this.#r),o=Object.freeze({eventId:t.eventId,relationshipId:t.relationshipId,action:e.action,...r===void 0?{}:{edge:r},author:t.author,timestamp:t.timestamp,...e.reason?.trim()?{reason:e.reason.trim()}:{},sequence:this.version+1});return this.#n.push(o),this.#o.add(t.eventId),n&&this.#a(n),e.action==="remove"?this.#e.delete(t.relationshipId):(this.#e.set(t.relationshipId,r),this.#s(t.relationshipId,r)),o}snapshot(e={}){if(e.atVersion!==void 0&&e.atTimestamp!==void 0)throw new TypeError("Relationship snapshot accepts one target");let t;if(e.atTimestamp!==void 0){let o=Date.parse(e.atTimestamp);if(!Number.isFinite(o))throw new TypeError("Relationship snapshot timestamp must be valid");t=this.#n.filter(s=>Date.parse(s.timestamp)<=o)}else{let o=e.atVersion??this.version;if(!Number.isInteger(o)||o<0||o>this.version)throw new TypeError(`Relationship snapshot version out of range: ${o}`);t=this.#n.slice(0,o)}let n=Y(t),r=new g(this.#t,n.values(),this.#i);return Object.freeze({version:t.at(-1)?.sequence??0,...t.at(-1)?{asOf:t.at(-1).timestamp}:{},edges:r.edges(),graph:r})}page(e){if(!Number.isInteger(e.limit)||e.limit<1)throw new TypeError("Relationship event page limit must be positive");let t=N("relationship-events",{order:"append-sequence"}),n=e.cursor===void 0?this.version:Number(D(e.cursor,t).snapshot);if(!Number.isSafeInteger(n)||n<0||n>this.version)throw new TypeError("Relationship event cursor snapshot version is invalid");let r=j(this.#n.slice(0,n),{cursor:e.cursor,fingerprint:t,limit:e.limit,readId:o=>o.eventId,snapshot:String(n)});return{version:n,events:r.rows,hasMore:r.has_more,...r.next_cursor?{nextCursor:r.next_cursor}:{}}}},ee="relationship-event-store",W=p.O_NOFOLLOW;function w(i){return z(i,ee,30,`relationship-store:${process.pid}`,!1,!1,3e3)}async function f(i,e="relationships/events.jsonl"){let t=h.resolve(i),n=h.resolve(t,e),r=h.relative(t,n);if(r.length===0)throw new TypeError("Relationship event path must name a file within the tracker root");if(r===".."||r.startsWith(`..${h.sep}`)||h.isAbsolute(r))throw new TypeError("Relationship event path must stay within the tracker root");if(await I(t,{recursive:!0}),(await A(t)).isSymbolicLink())throw new TypeError("Relationship event tracker root must not be a symbolic link");let o=t;for(let s of r.split(h.sep)){o=h.join(o,s);try{if((await A(o)).isSymbolicLink())throw new TypeError("Relationship event path must not contain symbolic links")}catch(c){if(_(c))break;throw c}}return n}async function y(i,e,t){let n=new T(e,{registry:t}),r,o;try{o=await P(i,p.O_RDONLY|W),r=await o.readFile("utf8")}catch(c){if(_(c))return{log:n,raw:""};throw c}finally{await o?.close()}let s=r.split(`
2
2
  `);for(let c=0;c<s.length;c+=1){let a=s[c].trim();if(!a)continue;let d;try{d=JSON.parse(a)}catch{throw new TypeError(`Invalid relationship event JSONL at line ${c+1}`)}if(d.sequence!==n.version+1)throw new TypeError(`Invalid relationship event sequence at line ${c+1}`);n.append({eventId:d.eventId,relationshipId:d.relationshipId,action:d.action,...d.edge===void 0?{}:{edge:d.edge},author:d.author,timestamp:d.timestamp,...d.reason===void 0?{}:{reason:d.reason},expectedVersion:n.version})}return{log:n,raw:r}}function te(i,e,t,n){let r=Date.parse(e.timestamp),o;return e.action!=="remove"&&e.edge!==void 0&&(o=new g(t,[e.edge],n).edges()[0]),i.eventId===e.eventId.trim()&&i.relationshipId===e.relationshipId.trim()&&i.action===e.action&&i.author===e.author.trim()&&Number.isFinite(r)&&i.timestamp===new Date(r).toISOString()&&i.reason===(e.reason?.trim()||void 0)&&O(i.edge)===O(o)}var F=class i{#t;#i;#n;#o;#e;constructor(e,t,n,r){this.#t=e.pmRoot,this.#i=t,this.#n=e.registry,this.#o=n,this.#e=r}static async open(e){let t=Object.freeze([...e.nodes]),n=await f(e.pmRoot,e.relativePath),r=await w(e.pmRoot);try{await f(e.pmRoot,n);let{log:o}=await y(n,t,e.registry);return new i(e,t,n,o)}finally{await r()}}get path(){return this.#o}async currentVersion(){return this.#e=await this.#r(),this.#e.version}async append(e){let t=await w(this.#t);try{let n=await f(this.#t,this.#o),{log:r}=await y(n,this.#i,this.#n),o=r.append(e);await I(h.dirname(n),{recursive:!0}),await f(this.#t,n);let s=await P(n,p.O_APPEND|p.O_CREAT|p.O_WRONLY|W);try{await s.appendFile(`${JSON.stringify(o)}
3
3
  `,"utf8")}finally{await s.close()}return this.#e=r,o}finally{await t()}}async appendBatch(e,t={}){let n=await w(this.#t);try{let r=await f(this.#t,this.#o),{log:o,raw:s}=await y(r,this.#i,this.#n),c=o.version,a=new Map(o.events().map(l=>[l.eventId,l])),d=[],R=[];for(let l of e){let u=l.eventId.trim(),v=a.get(u);if(v!==void 0){if(t.existingEventPolicy==="skip_identical"&&te(v,l,this.#i,this.#n)){R.push(v.eventId);continue}if(t.existingEventPolicy==="skip_identical")throw new TypeError(`Relationship event id collision with different content: ${u}`)}let b=o.append(l);a.set(b.eventId,b),d.push(b)}if(d.length>0){let l=s.length===0||s.endsWith(`
4
4
  `)?s:`${s}
5
5
  `;await I(h.dirname(r),{recursive:!0}),await f(this.#t,r),await L(r,`${l}${d.map(u=>JSON.stringify(u)).join(`
6
6
  `)}
7
7
  `)}return this.#e=o,Object.freeze({version_before:c,version_after:o.version,appended:Object.freeze(d),skipped_event_ids:Object.freeze(R)})}finally{await n()}}async snapshot(e={}){return this.#e=await this.#r(),this.#e.snapshot(e)}async page(e){return this.#e=await this.#r(),this.#e.page(e)}async*stream(e={}){this.#e=await this.#r(),yield*this.#e.stream(e)}async project(e,t,n={}){return this.#e=await this.#r(),this.#e.project(e,t,n)}async#r(){let e=await w(this.#t);try{let t=await f(this.#t,this.#o);return(await y(t,this.#i,this.#n)).log}finally{await e()}}};(function(){try{var i=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new i.Error().stack;e&&(i._sentryDebugIds=i._sentryDebugIds||{},i._sentryDebugIds[e]="73852fdf-f072-51ab-9449-d7922712eeb4")}catch{}})();function K(i){return[...i].sort().join("\0")}function ie(i,e,t){let n=i.successors.get(e);n?n.push(t):i.successors.set(e,[t]);let r=i.predecessors.get(t);r?r.push(e):i.predecessors.set(t,[e])}function G(i,e,t,n,r){let o=e.resolve(r);if(o?.ordering!==!0)return;let s=M(n),c=s===void 0?void 0:i.canonicalIds.get(s.toLowerCase());if(c===void 0)return;let a=(o.precedence??"source_before_target")==="source_before_target";ie(i,a?t:c,a?c:t)}function ne(i,e){let t={successors:new Map,predecessors:new Map,canonicalIds:new Map},n=i.filter(r=>typeof r?.id=="string"&&r.id.trim().length>0);for(let r of n){let o=r.id.trim();t.canonicalIds.set(o.toLowerCase(),o)}for(let r of n){let o=r.id.trim();G(t,e,o,r.blocked_by,"blocked_by");for(let s of r.dependencies??[])typeof s!="object"||s===null||G(t,e,o,s.id,typeof s.kind=="string"?s.kind:"related")}for(let r of[t.successors,t.predecessors])for(let o of r.values())o.sort();return t}function re(i,e){let t=new Set([e]),n=[e];for(;n.length>0;){let r=n.pop();for(let o of[i.successors,i.predecessors])for(let s of o.get(r)??[])t.has(s)||(t.add(s),n.push(s))}return t}function oe(i,e){let t=new Map;for(let n of e){let r=(i.successors.get(n)??[]).filter(o=>e.has(o));r.length>0&&t.set(n,r)}return t}function H(i,e,t){let n=ne(i,e),r=n.canonicalIds.get(t.trim().toLowerCase());if(r===void 0)return{cycles:[],successors:new Map,canonical:t};let o=oe(n,re(n,r));return{cycles:q(o).filter(s=>s.includes(r)),successors:o,canonical:r}}function se(i,e,t){let n=new Set(e),r=n.has(t)?t:e[0];if(i.get(r)?.includes(r))return[r,r];for(let o of i.get(r)??[]){if(!n.has(o))continue;let s=ae(i,n,r,o);if(s)return s}return[...e,e[0]]}function ae(i,e,t,n){let r=[[n]],o=new Set([t,n]);for(;r.length>0;){let s=r.shift(),c=s.at(-1);for(let a of i.get(c)??[]){if(a===t)return[t,...s,t];!e.has(a)||o.has(a)||(o.add(a),r.push([...s,a]))}}}function ve(i,e,t){let n=m(),r=H(i,n,t),o=H(e,n,t),s=new Set(r.cycles.map(K)),c=new Set(k(i,void 0,n).map(a=>`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`));return[...k(e,void 0,n).filter(a=>a.holder_id.toLowerCase()===t.trim().toLowerCase()&&!c.has(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`)).map(a=>`ordering_storage_contradiction_created:${V(a)}:remove_contradicting_dependency_row:run_pm_graph_audit`),...o.cycles.filter(a=>!s.has(K(a))).map(a=>`ordering_cycle_created:${se(o.successors,a,o.canonical).join(" -> ")}:items_will_not_be_ready:run_pm_graph_audit`)]}(function(){try{var i=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new i.Error().stack;e&&(i._sentryDebugIds=i._sentryDebugIds||{},i._sentryDebugIds[e]="5f2ca18e-450d-5b6e-9e07-7bbf080764f9")}catch{}})();function Ee(i,e){let t=e.resolve(i);return t?.hierarchy===!0||t?.outgoing==="one"||t?.incoming==="one"}function J(i,e,t,n,r){let o=JSON.stringify([e,t,n]),s=i.get(o);s===void 0&&(s={kind:e,direction:t,node_id:n,endpoints:new Set},i.set(o,s)),s.endpoints.add(r)}function B(i,e){let t=new Map;for(let n of i)for(let r of n.dependencies??[]){let o=e.resolve(r.kind);o===void 0||o.hierarchy||(o.outgoing==="one"&&J(t,o.kind,"outgoing",n.id,r.id),o.incoming==="one"&&J(t,o.kind,"incoming",r.id,n.id))}return t}function Ie(i,e,t=m()){let n=B(i,t),r=B(e,t);for(let o of[...r.keys()].sort()){let s=r.get(o);if(s.endpoints.size<=1)continue;let c=n.get(o);if(![...s.endpoints].every(a=>c?.endpoints.has(a)))throw new C(`Relationship ${s.kind} permits only one ${s.direction} endpoint for ${s.node_id}.`,S.USAGE,{code:"dependency_cardinality_created",field:"dependencies",value:s.kind,relationship_cardinality:{kind:s.kind,direction:s.direction,node_id:s.node_id,endpoint_ids:[...s.endpoints].sort()},required:"The final dependency set must satisfy the active relationship kind's one-edge cardinality.",nextSteps:["Drop extra --dep seeds, or remove conflicting rows with update --dep-remove before adding another edge.","Choose another kind only when its declared semantics match the intended relationship."]})}}export{T as a,F as b,ve as c,Ee as d,Ie as e};
8
- //# sourceMappingURL=chunk-DRN4W3YJ.js.map
8
+ //# sourceMappingURL=chunk-NRBUMDLF.js.map
@@ -1,2 +1,2 @@
1
- import{G as h}from"./chunk-6L4KKRK7.js";import{l as b,y as l,z as f}from"./chunk-7SZPZOIC.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]="300b6741-40eb-5bb1-bb0a-bb144d15946e")}catch{}})();var d=new Set(b),u=Object.freeze({get size(){return d.size},has(e){return d.has(e)},entries(){return d.entries()},keys(){return d.keys()},values(){return d.values()},forEach(e,t){d.forEach(n=>e.call(t,n,n,u))},[Symbol.iterator](){return d.values()}});function g(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function w(e){return typeof e!="string"?null:h(e)}function E(e){try{return structuredClone(e)}catch{return e}}function x(e){let t=e.trim(),n=t.indexOf("=");if(n<=0)throw new f(`--field entries must use name=value syntax, received: ${e}`,l.USAGE);let i=t.slice(0,n).trim(),r=t.slice(n+1);return{key:i,value:r}}function S(e,t,n){try{let i=JSON.parse(e);if(n==="array"&&Array.isArray(i)||n==="object"&&typeof i=="object"&&i!==null&&!Array.isArray(i))return i}catch{}throw new f(`--field ${t}=... must be valid JSON ${n}`,l.USAGE)}function F(e,t,n){if(t==="string")return n;if(t==="number"){let i=n.trim();if(i.length===0)throw new f(`--field ${e}=... must be a number`,l.USAGE);let r=Number(i);if(!Number.isFinite(r))throw new f(`--field ${e}=... must be a number`,l.USAGE);return r}if(t==="boolean"){let i=n.trim().toLowerCase();if(i==="true"||i==="1"||i==="yes")return!0;if(i==="false"||i==="0"||i==="no")return!1;throw new f(`--field ${e}=... must be one of true|false|1|0|yes|no`,l.USAGE)}return t==="string_array"?n.split(/[\n,|]/u).map(i=>i.trim()).filter(i=>i.length>0):S(n,e,t)}function y(e){let t=new Map;if(!e)return t;for(let n of e.item_fields)for(let i of n.fields){let r=g(i.name),s=w(i.type);if(!r||!s)continue;let o=t.get(r);if(o&&o.type!==s)throw new f(`Extension item field "${r}" is declared with conflicting types: ${o.type}, ${s}`,l.USAGE,{code:"extension_item_field_type_conflict",nextSteps:["Make every active extension declaration for this field use the same type."]});t.set(r,{name:r,type:s})}return t}function A(e){if(u.has(e))throw new f(`Extension item field "${e}" collides with built-in item metadata "${e}"; rename the extension field with an extension-specific prefix. Reserved fields: ${[...u].sort((t,n)=>t.localeCompare(n)).join(", ")}.`,l.USAGE,{code:"extension_item_field_reserved",nextSteps:["Rename the extension item field, preferably with an extension-specific prefix."]})}function D(e){return[...y(e).keys()].sort((t,n)=>t.localeCompare(n))}function U(e,t,n){if(!e||e.length===0)return{};let i=y(t),r={};for(let s of e){let{key:o,value:c}=x(s),a=i.get(o);if(!a){if(u.has(o)){let m=n?.(o)??{recovery:{provided_fields:[o]},nextSteps:["Core metadata has no generic --field mutation path. Use the owning lifecycle, evidence, or importer API; inspect pm update <id> --help for declared mutation flags."]};throw new f(`--field ${o} is a core item field, not an extension field`,l.USAGE,{code:"core_item_field_requires_dedicated_flag",field:o,...m})}let p=[...i.keys()].sort((m,_)=>m.localeCompare(_));throw new f(`--field ${o} is not declared by an active extension item-field registration`,l.USAGE,{code:"extension_item_field_unknown",field:o,recovery:{provided_fields:[o]},nextSteps:p.length>0?[`Use one of the declared fields: ${p.join(", ")}`]:["Activate an extension that calls registerItemFields before setting extension fields."]})}A(a.name),r[a.name]=F(a.name,a.type,c)}return r}function I(e,t){return t==="string"?typeof e=="string":t==="number"?typeof e=="number"&&Number.isFinite(e):t==="boolean"?typeof e=="boolean":t==="array"?Array.isArray(e):t==="string_array"?Array.isArray(e)&&e.every(n=>typeof n=="string"):typeof e=="object"&&e!==null&&!Array.isArray(e)}function $(e,t){return!t||t.length===0?!0:t.some(n=>Object.is(n,e))}function G(e,t,n={}){if(t){y(t);for(let i of t.item_fields)for(let r of i.fields){let s=g(r.name);if(!s)continue;A(s),!(s in e)&&!n.skipDefaultFields?.has(s)&&Object.prototype.hasOwnProperty.call(r,"default")&&(e[s]=E(r.default));let o=e[s];if(o===void 0)continue;let c=w(r.type);if(c&&!I(o,c))throw new TypeError(`Item field "${s}" must be of type ${c}`);let a=Array.isArray(r.values)?r.values:void 0;if(!$(o,a))throw new TypeError(`Item field "${s}" must match one of the configured allowed values`)}}}export{u as a,D as b,U as c,G as d};
2
- //# sourceMappingURL=chunk-ML5JIUM6.js.map
1
+ import{G as h}from"./chunk-GP2WU43K.js";import{A as f,m as b,z as l}from"./chunk-JLXGRDTG.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]="300b6741-40eb-5bb1-bb0a-bb144d15946e")}catch{}})();var d=new Set(b),u=Object.freeze({get size(){return d.size},has(e){return d.has(e)},entries(){return d.entries()},keys(){return d.keys()},values(){return d.values()},forEach(e,t){d.forEach(n=>e.call(t,n,n,u))},[Symbol.iterator](){return d.values()}});function g(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function w(e){return typeof e!="string"?null:h(e)}function E(e){try{return structuredClone(e)}catch{return e}}function x(e){let t=e.trim(),n=t.indexOf("=");if(n<=0)throw new f(`--field entries must use name=value syntax, received: ${e}`,l.USAGE);let i=t.slice(0,n).trim(),r=t.slice(n+1);return{key:i,value:r}}function S(e,t,n){try{let i=JSON.parse(e);if(n==="array"&&Array.isArray(i)||n==="object"&&typeof i=="object"&&i!==null&&!Array.isArray(i))return i}catch{}throw new f(`--field ${t}=... must be valid JSON ${n}`,l.USAGE)}function F(e,t,n){if(t==="string")return n;if(t==="number"){let i=n.trim();if(i.length===0)throw new f(`--field ${e}=... must be a number`,l.USAGE);let r=Number(i);if(!Number.isFinite(r))throw new f(`--field ${e}=... must be a number`,l.USAGE);return r}if(t==="boolean"){let i=n.trim().toLowerCase();if(i==="true"||i==="1"||i==="yes")return!0;if(i==="false"||i==="0"||i==="no")return!1;throw new f(`--field ${e}=... must be one of true|false|1|0|yes|no`,l.USAGE)}return t==="string_array"?n.split(/[\n,|]/u).map(i=>i.trim()).filter(i=>i.length>0):S(n,e,t)}function y(e){let t=new Map;if(!e)return t;for(let n of e.item_fields)for(let i of n.fields){let r=g(i.name),s=w(i.type);if(!r||!s)continue;let o=t.get(r);if(o&&o.type!==s)throw new f(`Extension item field "${r}" is declared with conflicting types: ${o.type}, ${s}`,l.USAGE,{code:"extension_item_field_type_conflict",nextSteps:["Make every active extension declaration for this field use the same type."]});t.set(r,{name:r,type:s})}return t}function A(e){if(u.has(e))throw new f(`Extension item field "${e}" collides with built-in item metadata "${e}"; rename the extension field with an extension-specific prefix. Reserved fields: ${[...u].sort((t,n)=>t.localeCompare(n)).join(", ")}.`,l.USAGE,{code:"extension_item_field_reserved",nextSteps:["Rename the extension item field, preferably with an extension-specific prefix."]})}function D(e){return[...y(e).keys()].sort((t,n)=>t.localeCompare(n))}function U(e,t,n){if(!e||e.length===0)return{};let i=y(t),r={};for(let s of e){let{key:o,value:c}=x(s),a=i.get(o);if(!a){if(u.has(o)){let m=n?.(o)??{recovery:{provided_fields:[o]},nextSteps:["Core metadata has no generic --field mutation path. Use the owning lifecycle, evidence, or importer API; inspect pm update <id> --help for declared mutation flags."]};throw new f(`--field ${o} is a core item field, not an extension field`,l.USAGE,{code:"core_item_field_requires_dedicated_flag",field:o,...m})}let p=[...i.keys()].sort((m,_)=>m.localeCompare(_));throw new f(`--field ${o} is not declared by an active extension item-field registration`,l.USAGE,{code:"extension_item_field_unknown",field:o,recovery:{provided_fields:[o]},nextSteps:p.length>0?[`Use one of the declared fields: ${p.join(", ")}`]:["Activate an extension that calls registerItemFields before setting extension fields."]})}A(a.name),r[a.name]=F(a.name,a.type,c)}return r}function I(e,t){return t==="string"?typeof e=="string":t==="number"?typeof e=="number"&&Number.isFinite(e):t==="boolean"?typeof e=="boolean":t==="array"?Array.isArray(e):t==="string_array"?Array.isArray(e)&&e.every(n=>typeof n=="string"):typeof e=="object"&&e!==null&&!Array.isArray(e)}function $(e,t){return!t||t.length===0?!0:t.some(n=>Object.is(n,e))}function G(e,t,n={}){if(t){y(t);for(let i of t.item_fields)for(let r of i.fields){let s=g(r.name);if(!s)continue;A(s),!(s in e)&&!n.skipDefaultFields?.has(s)&&Object.prototype.hasOwnProperty.call(r,"default")&&(e[s]=E(r.default));let o=e[s];if(o===void 0)continue;let c=w(r.type);if(c&&!I(o,c))throw new TypeError(`Item field "${s}" must be of type ${c}`);let a=Array.isArray(r.values)?r.values:void 0;if(!$(o,a))throw new TypeError(`Item field "${s}" must match one of the configured allowed values`)}}}export{u as a,D as b,U as c,G as d};
2
+ //# sourceMappingURL=chunk-PC3R5CJV.js.map
@@ -0,0 +1,2 @@
1
+ import{$ as Ke,Na as X,Oa as Y,Pa as Q,Qa as J,_ as ke,ca as xe,da as Oe}from"./chunk-NOKG4RFN.js";import{t as ye}from"./chunk-HSAEEWSI.js";import{g as He,m as qe,n as Ve,q as We}from"./chunk-KKRIFBSL.js";import{A as Be,C as D,F as Ge,I as $e,J as k,K as ze,e as q,f as De,h as Ne,i as Pe,k as Ue,l as je,w as V,y as W}from"./chunk-5MCGYBOQ.js";import{$a as w,Ca as Ae,Ga as Re,d as Fe,da as Te,eb as C,r as Ee,sa as Ce,t as T,ta as Le,ua as Me}from"./chunk-57HPXGOQ.js";import{b as fe}from"./chunk-PC3R5CJV.js";import{j as A,l as ge}from"./chunk-MW77Q3AQ.js";import{Ca as N,Ed as be,Fd as we,Gd as z,Kd as Ie,Nc as he,Od as Se,Sd as R,Td as ve,Ub as B,Ud as H,Vb as G,Xb as $,aa as h,qa as I,ra as O,sc as F,wa as b,zc as _e}from"./chunk-GP2WU43K.js";import{A as f,C as pe,z as m}from"./chunk-JLXGRDTG.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]="738a98bc-eaf0-578d-88e3-1c5f83c8894b")}catch{}})();function P(e,t="--limit"){if(e===void 0)return;let r=String(e).trim(),i=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(i)||i<0)throw new f(`${t} must be a non-negative integer`,m.USAGE);return i}function Xe(e,t="--priority"){if(e===void 0)return;let r=String(e).trim(),i=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(i)||i<0||i>4)throw new f(`${t} filter must be 0..4`,m.USAGE);return i}function oi(e,t,r="--type"){if(e===void 0)return;let i=O(e,t);if(!i)throw new f(`${r} filter must be one of ${t.types.join("|")}`,m.USAGE);return 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]="75ecca0c-fac8-5a9b-9043-c65731daad4a")}catch{}})();function Z(e,t){if(e===void 0)return;let r=[],i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a==="\\"){let l=e[o+1];if(l===","||l==="\\"){i+=l,o+=1;continue}i+=a;continue}if(a===","){r.push(i),i="";continue}i+=a}r.push(i);let n=r.map(o=>o.trim());if(n.some(o=>o.length===0))throw new f(`${t.label} requires at least one non-empty value`,m.USAGE);let s=n.map(o=>t.normalize?.(o)??o);return[...new Set(s)]}function K(e,t){let r=Z(e,t);return r===void 0?void 0:new Set(r)}function Ye(e,t,r="--type"){let i=Z(e,{label:r});if(i===void 0)return;let n=i.map(s=>{let o=O(s,t);if(!o)throw new f(`${r} filter token "${s}" must be one of ${t.types.join("|")}`,m.USAGE);return o});return new Set(n)}function Qe(e,t="--priority"){let r=Z(e,{label:t});if(r!==void 0)return new Set(r.map(i=>Xe(i,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]="f9d73d74-7c4e-5ea9-b34c-c984b4c15ab3")}catch{}})();function Je(e,t){let r=e.trim().toLowerCase();return t.alias_to_id.get(r)??r}function rt(e){return{isTerminal(t){return e.terminal_statuses.has(Je(t,e))},classify(t){let r=Je(t,e);return e.terminal_canceled_statuses.has(r)?"canceled":e.terminal_statuses.has(r)?"closed":e.blocked_statuses.has(r)?"blocked":e.draft_statuses.has(r)?"draft":r===e.open_status?"open":e.active_statuses.has(r)?"in_progress":"other"}}}function ee(e){return h(e.acceptance_criteria)===void 0}function te(e){return!Number.isFinite(e.estimated_minutes)}function it(e,t){return t.isTerminal(e.status)?h(e.resolution)===void 0:!1}function Qt(e){return h(e.reviewer)===void 0}function Jt(e){return h(e.risk)===void 0}function Zt(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):h(e.confidence)===void 0}function er(e){return h(e.sprint)===void 0}function tr(e){return h(e.release)===void 0}function re(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function rr(e,t,r){return[[t.acMissing,ee(e)],[t.estimatesMissing,te(e)],[t.resolutionMissing,it(e,r)],[t.reviewerMissing,Qt(e)],[t.riskMissing,Jt(e)],[t.confidenceMissing,Zt(e)],[t.sprintMissing,er(e)],[t.releaseMissing,tr(e)]].every(([i,n])=>i!==!0||n)}function ir(e,t){return ee(e)||te(e)||it(e,t)}function nt(e,t,r){return re(t)?!(!rr(e,t,r)||t.metadataMissing&&!ir(e,r)):!0}var ie=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function nr(e,t){switch(t){case"acceptance_criteria":return!ee(e);case"estimated_minutes":return!te(e);case"resolution":return h(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return h(e.parent)!==void 0}}function sr(e,t,r){return t==="resolution"?r.isTerminal(e.status):!0}function or(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Ze(){let e={};for(let t of ie)e[t]={present:0,applicable:0,percent:100};return e}function et(e,t,r){for(let i of ie){if(!sr(t,i,r))continue;let n=e[i];n.applicable+=1,nr(t,i)&&(n.present+=1)}}function tt(e){for(let t of ie){let r=e[t];r.percent=or(r.present,r.applicable)}}function pi(e,t){let r=Ze(),i={};for(let n of e){et(r,n,t);let s=i[n.type]??(i[n.type]=Ze());et(s,n,t)}tt(r);for(let n of Object.values(i))tt(n);return{overall:r,by_type:i}}var ar={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function lr(e){return ar[e]}function dr(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function cr(e,t,r){switch(t){case"assignee":return[h(e.assignee)??null];case"parent":return[h(e.parent)??null];case"type":return[h(e.type)??null];case"status":return[h(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let i=r.tagPrefix?.trim(),n=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!i||s.startsWith(i)));return n.length>0?n:[null]}}}function yi(e,t,r,i={}){let n=new Map,s=0;for(let a of e){s+=1;let l=r.classify(a.status);for(let d of cr(a,t,i)){let c=d??"\0empty",u=n.get(c);u||(u={label:d??lr(t),key:d,buckets:dr(),total:0},n.set(c,u)),u.buckets[l]+=1,u.total+=1}}let o=[...n.values()].sort((a,l)=>l.total!==a.total?l.total-a.total:a.key===null?1:l.key===null?-1:a.label.localeCompare(l.label));return{dimension:t,rows:o,total_items: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]="67f9184e-08b6-5f21-9f92-e60974adbf1e")}catch{}})();var L=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function E(e){return Array.isArray(e)&&e.length>0}function ur(e){return typeof e=="string"&&e.trim().length>0}function mr(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let r=t.command;return typeof r=="string"&&r.trim().length>0}):!1}function ot(e,t){switch(t){case"notes":return E(e.notes);case"learnings":return E(e.learnings);case"files":return E(e.files);case"docs":return E(e.docs);case"tests":return E(e.tests);case"comments":return E(e.comments);case"deps":return E(e.dependencies);case"body":return ur(e.body);case"linked_command":return mr(e.tests)}}function at(e){return L.some(t=>e[t]!==void 0)}function lt(e,t){for(let r of L){let i=t[r];if(i===void 0)continue;let n=ot(e,r);if(i==="present"&&!n||i==="absent"&&n)return!1}return!0}function dt(e){return L.some(t=>t!=="body"&&e[t]!==void 0)}function ct(e){return e.body!==void 0}function st(e,t){return t===0?100:Math.round(e/t*1e3)/10}function fr(){let e={};for(let t of L)e[t]={present:0,total:0,percent:100};return e}function _i(e){let t=fr(),r=e.length;for(let o of e)for(let a of L)ot(o,a)&&(t[a].present+=1);for(let o of L)t[o].total=r,t[o].percent=st(t[o].present,r);let i=t.body,n=r-i.present,s={present:n,total:r,percent:st(n,r)};return{total_items:r,fields:t,body_populated:i,empty_body: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]="084aad9c-485f-5bdc-8da7-225c9c4f695c")}catch{}})();var gt=e=>({acMissing:e.filterAcMissing===!0,estimatesMissing:e.filterEstimatesMissing===!0,resolutionMissing:e.filterResolutionMissing===!0,metadataMissing:e.filterMetadataMissing===!0,reviewerMissing:e.filterReviewerMissing===!0,riskMissing:e.filterRiskMissing===!0,confidenceMissing:e.filterConfidenceMissing===!0,sprintMissing:e.filterSprintMissing===!0,releaseMissing:e.filterReleaseMissing===!0}),ut=[{field:"notes",presentKey:"hasNotes",absentKey:"noNotes",presentFlag:"--has-notes",absentFlag:"--no-notes"},{field:"learnings",presentKey:"hasLearnings",absentKey:"noLearnings",presentFlag:"--has-learnings",absentFlag:"--no-learnings"},{field:"files",presentKey:"hasFiles",absentKey:"noFiles",presentFlag:"--has-files",absentFlag:"--no-files"},{field:"docs",presentKey:"hasDocs",absentKey:"noDocs",presentFlag:"--has-docs",absentFlag:"--no-docs"},{field:"tests",presentKey:"hasTests",absentKey:"noTests",presentFlag:"--has-tests",absentFlag:"--no-tests"},{field:"comments",presentKey:"hasComments",absentKey:"noComments",presentFlag:"--has-comments",absentFlag:"--no-comments"},{field:"deps",presentKey:"hasDeps",absentKey:"noDeps",presentFlag:"--has-deps",absentFlag:"--no-deps"},{field:"body",presentKey:"hasBody",absentKey:"emptyBody",presentFlag:"--has-body",absentFlag:"--empty-body"},{field:"linked_command",presentKey:"hasLinkedCommand",absentKey:"noLinkedCommand",presentFlag:"--has-linked-command",absentFlag:"--no-linked-command"}],se=e=>{let t=ut.find(r=>e[r.presentKey]===!0&&e[r.absentKey]===!0);if(t)throw new f(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,m.USAGE);return Object.fromEntries(ut.flatMap(r=>e[r.presentKey]===!0?[[r.field,"present"]]:e[r.absentKey]===!0?[[r.field,"absent"]]:[]))},mt=["priority","deadline","updated_at","created_at","title","parent"],ft=["asc","desc"],_t=new Set(Be);function pr(e,t,r){let i=e.filter(o=>o.startsWith("item_list_item_read_failed:")).length,n=e.filter(o=>o.startsWith("item_list_directory_read_failed:")).length,s={status:t?"unchecked":i+n>0?"partial":"complete",unreadable_item_count:i,unreadable_directory_count:n};if(r&&s.status==="partial")throw new f(`List source is incomplete: ${i} item document(s) and ${n} item directory/directories could not be read.`,m.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return s}function yr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var gr=[{key:"hasNotes",summaryKey:"has_notes"},{key:"hasLearnings",summaryKey:"has_learnings"},{key:"hasFiles",summaryKey:"has_files"},{key:"hasDocs",summaryKey:"has_docs"},{key:"hasTests",summaryKey:"has_tests"},{key:"hasComments",summaryKey:"has_comments"},{key:"hasDeps",summaryKey:"has_deps"},{key:"hasBody",summaryKey:"has_body"},{key:"hasLinkedCommand",summaryKey:"has_linked_command"},{key:"noNotes",summaryKey:"no_notes"},{key:"noLearnings",summaryKey:"no_learnings"},{key:"noFiles",summaryKey:"no_files"},{key:"noDocs",summaryKey:"no_docs"},{key:"noTests",summaryKey:"no_tests"},{key:"noComments",summaryKey:"no_comments"},{key:"noDeps",summaryKey:"no_deps"},{key:"emptyBody",summaryKey:"empty_body"},{key:"noLinkedCommand",summaryKey:"no_linked_command"}],_r=[{key:"filterReviewerMissing",summaryKey:"filter_reviewer_missing"},{key:"filterRiskMissing",summaryKey:"filter_risk_missing"},{key:"filterConfidenceMissing",summaryKey:"filter_confidence_missing"},{key:"filterSprintMissing",summaryKey:"filter_sprint_missing"},{key:"filterReleaseMissing",summaryKey:"filter_release_missing"}];function ht(e,t){for(let r of gr)t[r.key]===!0&&(e[r.summaryKey]=!0)}function bt(e,t){for(let r of _r)t[r.key]===!0&&(e[r.summaryKey]=!0)}function hr(e,t,r){for(let i of r){let n=t[i.optionKey];n!==void 0&&(e[i.summaryKey]=i.normalize?i.normalize(n):n)}}function wt(e){let t={};return ht(t,e),t}function It(e){let t={};return bt(t,e),t}var br=[{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:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"}],wr=[{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:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"limit",summaryKey:"limit"},{optionKey:"offset",summaryKey:"offset"},{optionKey:"includeBody",summaryKey:"include_body"},{optionKey:"compact",summaryKey:"compact"},{optionKey:"fields",summaryKey:"fields"}],Ir=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Sr="-7d";function St(e){let{filtersStatus:t,options:r,treeEnabled:i,treeDepth:n,sortField:s,sortOrder:o,runtimeFieldFilters:a}=e,l={};return t!==null&&(l.status=t),r.dependencyBlocked===!0&&(l.blocked_semantics="status_or_dependency"),hr(l,r,br),Ft(l,r),r.filterAcMissing===!0&&(l.filter_ac_missing=!0),r.filterEstimatesMissing===!0&&(l.filter_estimates_missing=!0),r.filterResolutionMissing===!0&&(l.filter_resolution_missing=!0),r.filterMetadataMissing===!0&&(l.filter_metadata_missing=!0),bt(l,r),ht(l,r),r.limit!==void 0&&(l.limit=r.limit),r.offset!==void 0&&(l.offset=r.offset),r.includeBody===!0&&(l.include_body=!0),r.fields!==void 0&&(l.fields=r.fields),i&&(l.tree=!0,n!==void 0&&(l.tree_depth=n)),s!==void 0&&(l.sort=s,l.order=o),yr(a)&&(l.runtime_filters=a),l}function oe(e,t,r){let i=T(e.status,r),n=T(t.status,r);if(i!==n)return i?1:-1;let s=e.priority-t.priority;if(s!==0)return s;let o=R(t.updated_at,e.updated_at);return o!==0?o:(e.id??"").localeCompare(t.id??"")}function vr(e,t){return[...e].sort((r,i)=>oe(r,i,t))}function pt(e,t){if(e!==void 0)return H(e,new Date,t)}function x(e,t){if(e==null)return;let r=String(e).trim();if(r.length!==0)return H(r,new Date,t)}function vt(e){let t=e.updatedAfter!=null&&String(e.updatedAfter).trim().length>0;if([e.today===!0,e.recent===!0,t].filter(r=>r).length>1)throw new f("Choose only one updated_at window: --today, --recent, or --updated-after.",m.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?x(Sr,"recent"):x(e.updatedAfter,"updated-after")}function Ft(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Et(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new f("--ids requires at least one non-empty item ID",m.USAGE);let r=t.split(",").map(i=>i.trim()).filter(i=>i.length>0);if(r.length===0)throw new f("--ids requires at least one non-empty item ID",m.USAGE);return new Set(r)}function ae(e){if(e===void 0)return;let t=String(e).trim(),r=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(r)||r<0)throw new f("Offset filter must be a non-negative integer",m.USAGE);return r}function Tt(e){if(e===void 0)return;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new f("List --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function Ct(e,t=e.projectionCommand??"list"){let r=e.compact===!0,i=e.brief===!0,n=e.full===!0,s=Tt(e.fields);if(Number(r)+Number(i)+Number(n)+ +(s!==void 0)>1)throw new f("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});if(n)return{mode:"full",fields:[]};if(i){let o=le(e.sort);return{mode:"brief",fields:[...new Set([...G,o??"priority"])]}}return r?{mode:"compact",fields:[...B]}:s?{mode:"fields",fields:[...new Set(s.map(o=>v(o)))]}:{mode:"full",fields:[]}}function v(e){return e.startsWith("item.")?e.slice(5):e}function Fr(e,t,r){if(e.mode!=="fields")return;let i=$(t),n=new Set(i.map(o=>v(o))),s=e.fields.filter(o=>!n.has(v(o)));if(s.length>0){let o=[r,"--fields",e.fields.filter(a=>!s.includes(a)).join(",")||"id,title,status"];throw new f(`Unknown list --fields value(s): ${s.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm list --status open --fields id,title,status","pm list --fields id,title,parent,priority --limit 10","pm list --all --fields id,title,body --limit 5"],recovery:{allowed_values:i,suggested_retry:he(o),suggested_retry_args:o}})}}var Er=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function le(e){if(e===void 0)return;let t=e.trim().toLowerCase(),r=Er.get(t);if(r)return r;if(!mt.includes(t))throw new f(`Sort field must be one of ${mt.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function Lt(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!ft.includes(t))throw new f(`Sort order must be one of ${ft.join("|")}`,m.USAGE);return t}function Tr(e){return P(e,"--tree-depth")}function Mt(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new f("Assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new f(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function yt(e,t){return Ke(e,t,{strict:!0})}function At(e){return K(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Cr(e,t,r){let i=At(t);if(i===void 0)return;let n=new Set(e.flatMap(o=>o.tags.map(a=>a.trim().toLowerCase()))),s=[...i].filter(o=>!n.has(o));s.length>0&&r.push(`unknown_tags:${s.join(",")}`)}function Lr(e,t){if(e&&[...e].some(r=>r.toLowerCase()==="none"||r.toLowerCase()==="null"))throw new f('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(e!==void 0&&t==="unassigned")throw new f("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE)}function Mr(e,t,r,i){let n=K(t.assignee,{label:"--assignee"}),s=Mt(t.assigneeFilter);Lr(n,s);let o=gt(t),a=se(t);return{idsFilter:Et(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Ye(t.type,r),tagFilters:At(t.tag),priorityFilter:Qe(t.priority),deadlineBefore:pt(t.deadlineBefore,"deadline-before"),deadlineAfter:pt(t.deadlineAfter,"deadline-after"),updatedAfter:vt(t),updatedBefore:x(t.updatedBefore,"updated-before"),createdAfter:x(t.createdAfter,"created-after"),createdBefore:x(t.createdBefore,"created-before"),assigneeFilter:n,assigneeModeFilter:s,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:K(t.sprint,{label:"--sprint"}),releaseFilter:K(t.release,{label:"--release"}),missingMetadataFilters:o,missingMetadataActive:re(o),lifecycleClassifier:rt(i),contentFieldFilters:a,contentFiltersActive:at(a)}}function Ar(e,t,r){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&T(e.status,r)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(i=>(e.tags??[]).some(n=>n.trim().toLowerCase()===i))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Rr(e,t){return ve(e,t)}function Dr(e,t){return t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee?!1:t.assigneeFilter===void 0||e.assignee!==void 0&&t.assigneeFilter.has(e.assignee)}function kr(e,t,r){let i=e.parent?.trim().toLowerCase(),n=[...new Set([...r?.get(e.id.trim().toLowerCase())??[],...i?[i]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!n.includes(t.parentFilter.trim().toLowerCase())||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))?!1:t.releaseFilter===void 0||e.release!==void 0&&t.releaseFilter.has(e.release)}function Kr(e,t,r,i,n){return!(!Ar(e,t,r)||!Rr(e,t)||!Dr(e,t)||!kr(e,t,n)||t.missingMetadataActive&&!nt(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!lt(e,t.contentFieldFilters)||!Oe(e,i))}function Rt(e,t,r,i,n,s,o){let a=Mr(t,r,i,n);return e.filter(l=>Kr(l,a,n,s,o))}function M(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function ne(e,t,r,i){let n=e,s=typeof n.title=="string"?n.title:"",o=i??M(typeof n.parent=="string"?n.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:o,tree_children:r,tree_title:`${" ".repeat(t)}${s}`}}function xr(e,t){let r=new Map,i=new Map;for(let n of e){let s=n.id.trim().toLowerCase();r.set(s,n);let o=t?t.parents_by_child.get(s)??[]:[M(n.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of o){let l=i.get(a)??[];l.push(n),i.set(a,l)}}return{byId:r,childrenByParent:i}}function Or(e,t,r,i,n){return t?[...i.get(t.toLowerCase())??[]]:e.filter(s=>(n?n.parents_by_child.get(s.id.trim().toLowerCase())??[]:[M(s.parent)?.toLowerCase()].filter(o=>o!==void 0)).every(o=>!r.has(o)))}function Dt(e,t,r,i,n=e){let{byId:s,childrenByParent:o}=xr(e,i),a=Or(e,t,s,o,i),l=[],d=new Set,c=new Map(n.map(p=>[p.id.trim().toLowerCase(),p.id.trim()])),u=[...a].reverse().map(p=>({node:p,depth:0,parentId:t===void 0?void 0:c.get(t.trim().toLowerCase())??t.trim()}));for(;u.length>0;){let{node:p,depth:y,parentId:g}=u.pop(),_=p.id.trim().toLowerCase();if(d.has(_))continue;d.add(_);let S=o.get(_)??[];if(l.push(ne(p,y,S.length,g)),!(r!==void 0&&y>=r))for(let j of[...S].reverse())u.push({node:j,depth:y+1,parentId:c.get(_)})}if(t===void 0&&r===void 0)for(let p of e){let y=p.id.trim().toLowerCase();d.has(y)||(d.add(y),l.push(ne(p,0,o.get(y)?.length??0)))}return l}function kt(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function Kt(e,t){return e===t?0:e===null?1:t===null?-1:R(e,t)}function xt(e,t,r){switch(r){case"priority":return e.priority-t.priority;case"deadline":return Kt(e.deadline??null,t.deadline??null);case"updated_at":return R(e.updated_at,t.updated_at);case"created_at":return R(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return kt(e.parent??null,t.parent??null);default:return 0}}function Ot(e,t,r,i){return t?[...e].sort((n,s)=>{let o=xt(n,s,t);if(o!==0)return r==="desc"?-o:o;let a=oe(n,s,i);return r==="desc"?-a:a}):vr(e,i)}function Nt(e,t,r=!1){let i=v(t.trim());if(i.length===0)return null;let n=e;return r&&i==="title"&&typeof n.tree_title=="string"?n.tree_title:Object.prototype.hasOwnProperty.call(n,i)?n[i]??null:null}function de(e,t,r=!1){return t.mode==="full"?e:e.map(i=>{let n={};for(let s of t.fields)n[s]=Nt(i,s,r);return n})}function Pt(e){let t=[];for(let r of e)t.push(r.metadata_key);return[...t,...fe(F())]}function Ut(e,t){let r=P(e.limit);if(r!==void 0)return r;if(e.noTruncate!==!0)return t>=1e4?20:void 0}function Nr(e,t,r){return t.after===void 0?ae(t.offset)??0:Ie(e,t.after,r,i=>i.id)}function jt(e,t,r){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:r??null}}async function Pr(e,t){let r=b(process.cwd(),t.path);await C(r);let i=await w(r),n=A(i.schema),s=ge(i.schema),o=e.projectionCommand??"list",a=Ct(e,o);return Fr(a,Pt(s.definitions),o),{pmRoot:r,settings:i,statusRegistry:n,runtimeFieldFilters:xe(e,s,"list"),typeRegistry:I(i,F()),projection:a}}async function Ur(e,t,r){let i=t.projection.fields.some(l=>v(l)==="body"),n=t.projection.mode==="full"||t.projection.fields.some(l=>_t.has(v(l))),s=se(e),o=dt(s),a=ct(s);return e.includeBody||i||a?await ze(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):n||o?await $e(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):await k(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema)}function jr(e){let t=le(e.sort),r=Lt(e.order)??"asc",i=e.tree===!0;if(!i&&e.treeDepth!==void 0)throw new f("List --tree-depth requires --tree",m.USAGE);if(!t&&e.order!==void 0)throw new f("List --order requires --sort",m.USAGE);return{sortField:t,sortOrder:r,treeEnabled:i,treeDepth:i?Tr(e.treeDepth):void 0,parentRoot:i?M(e.parent):void 0}}function Br(e,t,r){let i=yt(t.status,r),n;t.lifecycleBucket==="in_progress"?n=[r.in_progress_status]:t.lifecycleBucket==="open"&&(n=[...r.active_statuses].filter(d=>d!==r.in_progress_status).sort((d,c)=>d.localeCompare(c)));let s=i??n??yt(e,r),o=ke(t.status),a=i||o?{...t,excludeTerminal:!1}:t,l="all";return o?l="all":i!==void 0?l=i.length===1?i[0]:i:t.lifecycleBucket!==void 0?l=t.lifecycleBucket:s!==void 0?l=s.length===1?s[0]:s:a.excludeTerminal===!0&&(l=null),{resolvedStatus:s,explicitAllStatuses:o,effectiveOptions:a,filtersStatus:l}}function Gr(e,t,r,i,n){if(t.after!==void 0&&t.offset!==void 0)throw new f("List --after cannot be combined with --offset.",m.USAGE);let s=Ut(t,e.length),o=Nr(e,t,n),a=s===void 0?e.slice(o):e.slice(o,o+s),l=de(a,r,i),d=e.length,c=a.length>0&&o+a.length<d,u=c&&a.length>0?z(n,a[a.length-1].id,o+a.length-1):void 0;return{projected:l,totalMatched:d,pageExtras:jt(s,c,u)}}function Bt(e,t,r,i){return we("list",{pmRoot:i,status:e,options:be(t,ye),sort:r.sortField??"default",order:r.sortOrder,tree:r.treeEnabled,tree_depth:r.treeDepth??null})}async function $r(e){let{options:t,runtime:r,statusSelection:i,ordering:n}=e,s=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","dependencyBlocked","lifecycleBucket","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),o=[r.projection.mode==="full",r.projection.fields.some(y=>{let g=v(y);return g==="body"||_t.has(g)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,n.treeEnabled,n.sortField!==void 0,o,_e(),Object.keys(r.runtimeFieldFilters).length>0,Object.entries(t).some(([y,g])=>g!==void 0&&!s.has(y))].includes(!0))return null;let a=await D(r.pmRoot,[...new Set(Object.values(r.typeRegistry.type_to_folder))]);if(!a)return null;let l=P(t.limit),d=ae(t.offset)??0,c=await V({pmRoot:r.pmRoot,expectedSourceCursor:a.source_cursor,query:{statuses:i.resolvedStatus,excludeStatuses:i.resolvedStatus===void 0&&i.effectiveOptions.excludeTerminal===!0?[...r.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...r.statusRegistry.terminal_statuses],limit:l,offset:d}});if(!c)return null;let u=c.items.length>0&&d+c.items.length<c.total,p=u?z(Bt(i.filtersStatus,t,n,r.pmRoot),c.items.at(-1).id,d+c.items.length-1):void 0;return{projected:de(c.items,r.projection,!1),totalMatched:c.total,pageExtras:jt(l,u,p)}}function zr(e){let{filtersStatus:t,options:r,noTruncate:i,treeEnabled:n,treeDepth:s,sortField:o,sortOrder:a,runtimeFieldFilters:l}=e,d={};t!==null&&(d.status=t),r.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let c=r;for(let u of wr){let p=c[u.optionKey];p!=null&&(d[u.summaryKey]=p)}for(let u of Ir)c[u.key]===!0&&(d[u.summaryKey]=!0);return Object.assign(d,It(r),wt(r)),Ft(d,r),i&&(d.no_truncate=!0),r.strictRead===!0&&(d.strict_read=!0),n&&(d.tree=!0,s!==void 0&&(d.tree_depth=s)),o!==void 0&&(d.sort=o,d.order=a),d.runtime_filters=l,d}async function Yi(e,t,r){let i=await Pr(t,r),n=[],s=jr(t),o=Br(e,t,i.statusRegistry),a=t.noTruncate===!0,l=await $r({options:t,runtime:i,statusSelection:o,ordering:s}),d=l;if(!d){let g=await Ur(t,i,n),_=s.treeEnabled||M(t.parent)!==void 0?We(Ve(g,qe())):void 0;Cr(g,t.tag,n);let S=Rt(g,o.resolvedStatus,o.effectiveOptions,i.typeRegistry,i.statusRegistry,i.runtimeFieldFilters,_?.parents_by_child),j=t.dependencyBlocked===!0?(()=>{let Xt=He(g,i.statusRegistry);return S.filter(Yt=>Xt.has(Yt.id.trim().toLowerCase()))})():S,me=Ot(j,s.sortField,s.sortOrder,i.statusRegistry),Wt=s.treeEnabled?Dt(me,s.parentRoot,s.treeDepth,_,g):me;d=Gr(Wt,t,i.projection,s.treeEnabled,Bt(o.filtersStatus,t,s,i.pmRoot))}let c=Se(),u=[...new Set(n)].sort((g,_)=>g.localeCompare(_)),p=pr(u,l!==null,t.strictRead===!0),y=i.projection.mode==="full"?null:[...i.projection.fields];if(i.projection.mode==="compact"&&t.compact===!0){let g=St({filtersStatus:o.filtersStatus,options:t,treeEnabled:s.treeEnabled,treeDepth:s.treeDepth,sortField:s.sortField,sortOrder:s.sortOrder,runtimeFieldFilters:i.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:g,projection:{mode:"compact",fields:y},...u.length>0?{warnings:u}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:zr({filtersStatus:o.filtersStatus,options:t,noTruncate:a,treeEnabled:s.treeEnabled,treeDepth:s.treeDepth,sortField:s.sortField,sortOrder:s.sortOrder,runtimeFieldFilters:i.runtimeFieldFilters}),projection:{mode:i.projection.mode,fields:y},sorting:{sort:s.sortField??"default",order:s.sortField?s.sortOrder:"asc",...s.sortField===void 0&&!s.treeEnabled?{effective_keys:[["status_registry:nonterminal_before_terminal","asc"],["priority","asc"],["updated_at","desc"],["id","asc"]]}:{}},now:c,...u.length>0?{warnings:u}:{}}}var Qi={applyFilters:Rt,buildCompactListFilterSummary:St,buildContentFilterEcho:wt,buildGovernanceMissingFilterEcho:It,resolveContentFieldFilters:se,resolveMissingMetadataFilters:gt,compareBySortField:xt,compareDefaultSort:oe,compareNullableString:kt,compareNullableTimestamp:Kt,normalizeProjectionField:v,parseAssigneeFilter:Mt,parseFieldSelectors:Tt,parseIdsFilter:Et,parseOffset:ae,parseProjectionConfig:Ct,resolveListUpdatedAfter:vt,resolveListPageLimit:Ut,parseSortField:le,parseSortOrder:Lt,orderItemsAsTree:Dt,projectListItems:de,readListFieldValue:Nt,runtimeMetadataKeysForProjection:Pt,sortItems:Ot,trimNonEmpty:M,withTreeMetadata:ne};(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]="59842825-3a81-53f4-845d-db2257ec6286")}catch{}})();async function un(e){let t=b(process.cwd(),e);await C(t);let r=await w(t),i=I(r,F());return{pmRoot:t,settings:r,typeRegistry:i}}async function Gt(e,t,r,i){N(e,q(t));let n=await Ge(e,t,r.id_prefix,r.item_format,i);if(n)return{id:n.id,historyPath:N(e,n.id),located:n};let s=De(t,r.id_prefix),o=q(t),a=s===o?[s]:[s,o];for(let l of a){let d=N(e,l);if(await pe(d))return{id:l,historyPath:d,located:null}}throw new f(`Item ${t} not found`,m.NOT_FOUND)}(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]="eb2e6046-156c-56ee-a03a-ecaa1cccfb45")}catch{}})();function Rn(e,t){let r=Re(e),i=e.length>0?e[e.length-1].after_hash:Me(),n=t===void 0||r.item_hash_version===void 0?void 0:Le(t,r.item_hash_version,Fe(e.at(-1)?.hash_algorithm)),s=t===void 0?void 0:n===void 0?Ce(t):n[Math.max(0,n.indexOf(i))],o=s===void 0?void 0:s===i,a=[...r.errors];return o===!1&&a.push("verify_failed:current_item_hash_mismatch"),{ok:a.length===0,entries:e.length,errors:a,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:s,current_matches_latest:o}}async function Dn(e,t,r={}){let i=b(r.cwd??process.cwd(),r.pmRoot);await C(i);let n=await w(i),s=I(n,F()),o=await Gt(i,e,n,s.type_to_folder),a=await Te(o.historyPath,o.id);if(a.length===0)throw new f(`No history exists for ${o.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let l=Pe(t,a),d=je(Ue(a,l.historyIndex),l),c=Ae(d,{schema:n.schema});if(c.metadata.id!==o.id)throw new f(`History target resolved to item ${c.metadata.id}, expected ${o.id}.`,m.GENERIC_FAILURE);let u=a[l.historyIndex],p=Ne(a,!0);return{document:c,reconstructed:!0,as_of_version:p===null?null:p+l.historyIndex+1,as_of_timestamp:u.ts,target:l,history_length:a.length}}(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]="e524f0ad-faad-5d89-b8f5-1283979919ad")}catch{}})();(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]="67d97df8-6551-52ed-9307-8b573a087831")}catch{}})();var U=1e6;function ce(e,t=U,r=.8,i=!1){let n=new Set,s=(c,u)=>{if(n.add(`${c}:${u}`),n.size>t)throw new f(`Duplicate sweep exceeded ${t} candidate pairs; narrow it with statuses or since.`,m.CONFLICT,{code:"duplicate_sweep_cost_limit",required:"Narrow the duplicate query or increase its similarity threshold. No partial result was returned."})};if(i||r===0){for(let c=0;c<e.length;c+=1)for(let u=0;u<c;u+=1)s(u,c);return n}let o=new Map;for(let{prepared:c}of e)for(let u of c.tokens)o.set(u,(o.get(u)??0)+1);let a=new Map,l=new Map,d=new Map;for(let[c,{prepared:u}]of e.entries()){let p=[...u.tokens].sort((_,S)=>o.get(_)-o.get(S)||_.localeCompare(S)),y=p.length-Math.ceil(r*p.length-1e-12)+1,g=[{index:a,keys:[u.normalized],lengthFilter:!1},{index:l,keys:r<=.99?u.issueCodes:[],lengthFilter:!1},{index:d,keys:p.length===0?[""]:p.slice(0,y),lengthFilter:!0}];for(let _ of g)Hr(e,c,_,r,s)}return n}function Hr(e,t,r,i,n){let s=e[t].prepared.tokens.length;for(let o of r.keys){let a=r.index.get(o)??[];for(let l of a){let d=e[l].prepared.tokens.length;r.lengthFilter&&Math.min(d,s)/Math.max(d,s)+1e-12<i||n(l,t)}a.push(t),r.index.set(o,a)}}(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]="a5f450bd-8970-5b1b-8250-b76b7818e6e1")}catch{}})();var qr=3,$t=20,Vr=.8,Wr=100,zt=1e3;function ss(e){return e===void 0?[]:[`likely_duplicates:${e.result.items.map(t=>t.id).join(",")}`,`likely_duplicate_recovery:${e.recovery.action}:${e.recovery.item_id}`]}async function Xr(e,t){let r=e.items[0],i=b(t.cwd??process.cwd(),t.pmRoot),n=A((await w(i)).schema);return T(r.status,n)?{action:"reopen",item_id:r.id,command:`pm item reopen ${r.id} "<recurrence reason>"`,args:["item","reopen",r.id,"<recurrence reason>"]}:{action:"reuse",item_id:r.id,command:`pm get ${r.id} --full`,args:["get",r.id,"--full"]}}function ue(e){let t=e.limit??qr,r=e.threshold??Vr;if(!Number.isSafeInteger(t)||t<0||t>$t)throw new f(`Similarity limit must be an integer from 0 to ${$t}.`,m.USAGE);if(!Number.isFinite(r)||r<0||r>1)throw new f("Similarity threshold must be a number from 0 to 1.",m.USAGE);return{limit:t,threshold:r}}function Ht(e){let t=e.limit??Wr;if(!Number.isSafeInteger(t)||t<0||t>zt)throw new f(`Duplicate cluster limit must be an integer from 0 to ${zt}.`,m.USAGE);let r=e.since===void 0?void 0:new Date(e.since);if(r&&Number.isNaN(r.getTime()))throw new f("Duplicate cluster --since must be a valid ISO timestamp.",m.USAGE);return{limit:t,since:r}}async function Yr(e,t){let r=b(e.cwd??process.cwd(),e.pmRoot),i=await w(r),n=I(i),s=e.statuses?.map(u=>u.trim().toLowerCase()).filter(Boolean);if(e.statuses!==void 0&&s?.length===0)throw new f("Duplicate cluster statuses must include at least one lifecycle status or all.",m.USAGE);let o=A(i.schema),a=s?.map(u=>{if(u==="all")return u;let p=Ee(u,o);if(!p)throw new f(`Unknown duplicate-cluster status "${u}". Allowed: all, ${o.definitions.map(y=>y.id).join(", ")}.`,m.USAGE);return p}),l=a?.includes("all")===!0;if(l&&a?.some(u=>u!=="all"))throw new f('The "all" status cannot be combined with other statuses.',m.USAGE);let d=l?void 0:a,c=d?new Set(d):void 0;return{items:(await k(r,i.item_format,n.type_to_folder,void 0,i.schema)).filter(u=>(!c||c.has(u.status))&&(!t||new Date(u.created_at).getTime()>=t.getTime())),statuses:d}}var os={buildDuplicateClusters:Vt,collectDuplicateCandidatePairs:ce,createDuplicateUnionFind:qt};function qt(e){let t=Array.from({length:e},(r,i)=>i);return{parent:t,findRoot:r=>{let i=r;for(;t[i]!==i;)i=t[i];for(;t[r]!==r;){let n=t[r];t[r]=i,r=n}return i}}}function Qr(e,t,r,i){let n=[];for(let s of t){let[o,a]=s.split(":").map(u=>Number.parseInt(u,10)),l=J(e[o].prepared,e[a].prepared);if(l.score<r)continue;let d=i.findRoot(o),c=i.findRoot(a);d!==c&&(i.parent[c]=d),n.push({left_id:e[o].item.id,right_id:e[a].item.id,...l})}return n}function Vt(e,t,r,i){let n=new Map;for(let a of e.keys()){let l=r.findRoot(a),d=n.get(l)??[];d.push(a),n.set(l,d)}let s=new Map(e.map(({item:a},l)=>[a.id,r.findRoot(l)])),o=new Map;for(let a of t){let l=s.get(a.left_id),d=o.get(l)??[];d.push(a),o.set(l,d)}return[...n.values()].filter(a=>a.length>1).map(a=>{let l=(o.get(r.findRoot(a[0]))??[]).sort((d,c)=>c.score-d.score||d.left_id.localeCompare(c.left_id)||d.right_id.localeCompare(c.right_id));return{id:e[a[0]].item.id,items:a.map(d=>{let c=e[d].item;return{id:c.id,title:c.title,status:c.status,type:c.type}}),matches:l,max_score:l[0]?.score??0}}).sort((a,l)=>l.max_score-a.max_score||a.id.localeCompare(l.id)).slice(0,i)}function Jr(e,t,r,i,n){return t.filter(s=>!r.has(s.id)).map(s=>({id:s.id,title:s.title,status:s.status,type:s.type,...Q(e,s.title)})).filter(s=>s.score>=i).sort((s,o)=>o.score-s.score||s.id.localeCompare(o.id)).slice(0,n)}async function Zr(e,t={}){let r=e.title.trim();if(r.length===0)throw new f("Similarity candidate title must not be empty.",m.USAGE);let{limit:i,threshold:n}=ue(t),s=b(t.cwd??process.cwd(),t.pmRoot),o=await w(s),a=I(o),l=await D(s,Object.values(a.type_to_folder)),d=X(r),c=l&&d.length>0?await W({pmRoot:s,expectedSourceCursor:l.source_cursor,query:d.map(y=>`"${y.replaceAll('"','""')}"`).join(" OR "),limit:Math.max(i*10,50)}):null,u=c===null?await k(s,o.item_format,a.type_to_folder,void 0,o.schema):c.items,p=Jr(r,u,new Set(e.excludeIds??[]),n,i);return{items:p,count:p.length,threshold:n,source:c?"persistent_index":"metadata_fallback"}}function ei(e,t={}){let{threshold:r}=ue({...t,limit:void 0}),{limit:i}=Ht(t),n=new Set;for(let c of e){if(!c.id.trim()||n.has(c.id))throw new f("Duplicate analysis requires unique non-empty item ids.",m.USAGE);n.add(c.id)}let s=[...e].sort((c,u)=>c.id.localeCompare(u.id)).map(c=>({item:c,prepared:Y(c.title)})),o=ce(s,U,r,t.exhaustive===!0),a=qt(s.length),l=Qr(s,o,r,a),d=Vt(s,l,a,i);return{clusters:d,count:d.length,threshold:r,cost:{item_count:s.length,algorithm:t.exhaustive===!0||r===0?"exhaustive":"prefix_exact",possible_pairs:s.length*(s.length-1)/2,pair_limit:U,recall_guarantee:"exact",candidate_pairs:o.size,scored_pairs:o.size}}}async function as(e={}){ue({...e,limit:void 0});let{since:t}=Ht(e),{items:r,statuses:i}=await Yr(e,t);return{...ei(r,e),source:"metadata_scan",filters:{statuses:i??null,since:e.since??null}}}async function ls(e,t){if(t.mode==="off")return;let r=await Zr(e,t);if(r.count===0)return;let i=await Xr(r,t),n=t.mode==="strict"&&t.allowDuplicate===!0;if(t.mode==="strict"&&!n){let s=r.items.map(a=>`${a.id} (${a.status}): ${a.title}`).join("; "),o=i.action==="reopen"?"Reopen the canonical item":"Reuse the canonical item";throw new f(`Likely duplicate item(s) found: ${s}. ${o} or pass --allow-duplicate with explicit intent.`,m.CONFLICT,{code:"likely_duplicate",required:`${o}, or explicitly acknowledge the duplicate with --allow-duplicate.`,recovery:{suggested_flags:["--allow-duplicate"],suggested_retry:i.command,suggested_retry_args:i.args}})}return{mode:t.mode,bypassed:n,result:r,recovery: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]="f091d0c3-f2a7-5d76-8656-4aebe82e9798")}catch{}})();function cs(e,t){let r=t??{};return e.filter(i=>r[i.id]!==i.updated_at).map(i=>i.id).sort((i,n)=>i.localeCompare(n))}export{P as a,Xe as b,oi as c,Z as d,K as e,Ye as f,Qe as g,rt as h,re as i,nt as j,pi as k,yi as l,at as m,lt as n,_i as o,gt as p,se as q,mt as r,ft as s,hr as t,wt as u,It as v,Yi as w,Qi as x,un as y,Gt as z,Rn as A,Dn as B,ss as C,os as D,Zr as E,ei as F,as as G,ls as H,cs as I};
2
+ //# sourceMappingURL=chunk-PFBQOZPK.js.map
@@ -1,8 +1,8 @@
1
- import{b as K}from"./chunk-ON5WFDCG.js";import{Wa as H,_a as P,aa as U,ab as L,db as V}from"./chunk-IQKLJFJE.js";import{Md as $,Z as G,qa as B,wa as E,yd as W}from"./chunk-6L4KKRK7.js";import{a as X,b as y,c as q}from"./chunk-FOA7XKWP.js";import{B as S,D as j,E as F,H as N,y as w,z as v}from"./chunk-7SZPZOIC.js";import{access as le,readFile as A,realpath as _}from"node:fs/promises";import{constants as ue}from"node:fs";import{execFile as me}from"node:child_process";import c from"node:path";import{promisify as de}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new e.Error().stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="6d1f8e03-97b4-5d83-b85c-e47f39c07d48")}catch{}})();var se="PM_SOURCE_CONTEXT_ACCESS",ce="PM_ALLOW_SOURCE_CONTEXT_WRITES";function z(e){let r=e[se],i=r===void 0||r.trim().toLowerCase()==="write"?"write":"read_only",t=i==="read_only"&&e[ce]?.trim()==="1";return{access:i,write_override_applied:t,source_writes_allowed:i==="write"||t}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new e.Error().stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="b1828465-0619-514c-8956-2a81dea9efbc")}catch{}})();var k=de(me),T="# pm-cli:merge-drivers:start",pe="# pm-cli:merge-drivers:end",x="# pm-cli:merge-drivers:v2:start",Q="# pm-cli:merge-drivers:v2:end",fe="merge-fence",ge="merge-attributes";function R(e){return`'${e.replaceAll("'",`'"'"'`)}'`}async function he(e,r){let i=await _(e);if(/(?:^|[\\/])bun-node-[^\\/]+[\\/]bun(?:\.exe)?$/iu.test(i))return;let{stdout:t}=await k(e,["--version"],{encoding:"utf8",windowsHide:!0,timeout:1e4});return t.trim()===r?i:void 0}async function ye(){let e=G(import.meta.url,["../../.."]),r=process.execPath,i=!1,t=await _(process.execPath),o=process.versions.bun,n=(process.env.PATH??"").split(c.delimiter).filter(a=>c.isAbsolute(a)).map(a=>c.join(a,o===void 0?c.basename(process.execPath):process.platform==="win32"?"bun.exe":"bun")),s=o===void 0?n:[process.env.npm_execpath??"",...n,t].filter(a=>c.isAbsolute(a)&&/^(?:bun|bun\.exe)$/iu.test(c.basename(a)));for(let a of s)try{if(await le(a,ue.X_OK),o!==void 0){let d=await he(a,o);if(d!==void 0){r=d,i=!0;break}continue}if(a!==t&&await _(a)===t){r=a;break}}catch{}if(o!==void 0&&!i)throw new v("Cannot install Bun merge drivers without a durable executable matching the current Bun version.",w.DEPENDENCY_FAILED,{code:"merge_bun_launcher_unavailable",why:"The current Bun process may be a temporary bunx launcher that Git cannot reuse after this command exits.",nextSteps:["Run with a durable version-matched Bun executable, expose one on an absolute PATH entry, or invoke pm through a Bun runner that publishes an absolute npm_execpath.","Retry pm merge install, then check pm health --strict-exit before merging branches."]});return`${R(r)} ${R(c.join(e,"dist","cli.js"))}`}var Z=[{key:"pm-item-toon",name:"pm field-aware TOON item document merge",artifact:"item",itemPath:"%P"},{key:"pm-item-markdown",name:"pm field-aware JSON-markdown item document merge",artifact:"item",itemPath:"%P"},{key:"pm-history",name:"pm append-only history stream merge",artifact:"history",itemPath:void 0},{key:"pm-relationship",name:"pm append-only relationship event store merge",artifact:"relationship",itemPath:void 0},{key:"pm-json",name:"pm key-level JSON config merge",artifact:"json",itemPath:void 0}];function we(e){let r=e.explicitPath?.trim(),i=e.environment.PM_SOURCE_WORKSPACE_ROOT?.trim(),t=e.environment.PM_SOURCE_PM_PATH?.trim(),o=z(e.environment),n=!!(i&&t),s=r===void 0&&n&&(e.dryRun||o.source_writes_allowed);if(r!==void 0){let a=E(e.cwd,r);return{pm_root:a,workspace_start:a,source_coordinates_available:n,source_context_selected:!1,source_policy:o}}return s?{pm_root:c.resolve(t),workspace_start:c.resolve(i),source_coordinates_available:!0,source_context_selected:!0,source_policy:o}:{pm_root:n?E(e.cwd,".agents/pm"):E(e.cwd),workspace_start:e.cwd,source_coordinates_available:n,source_context_selected:!1,source_policy:o}}async function ee(e){try{let{stdout:r}=await k("git",["rev-parse","--show-toplevel"],{cwd:e,env:y(),encoding:"utf8",windowsHide:!0,timeout:1e4});return await _(r.trim())}catch{return null}}async function te(e){let r=await ee(e);if(r===null)throw new v("pm merge install requires a git repository (merge drivers are git configuration).",w.USAGE);return r}function I(e,r){return c.relative(e,r).split(c.sep).join("/")}function J(e){return e.replace(/[\\*?[\]!]/gu,"\\$&")}function h(e){return`"${e.replaceAll("\\","\\\\").replaceAll('"','\\"')}"`}function Y(e,r){if(e[r]!=="'")return null;let i="";for(let t=r+1;t<e.length;t+=1){if(e.startsWith(`'"'"'`,t)){i+="'",t+=4;continue}if(e[t]==="'")return{value:i,nextOffset:t+1};i+=e[t]}return null}async function ve(e,r,i){if(L(r).filter(o=>o.constraint==="exact").some(o=>o.version!==i))return!1;let t=await ee(e);if(t!==null&&t!==await _(r)){let o=await Promise.all([t,r].map(async n=>{let s=await k("git",["rev-parse","--path-format=absolute","--git-common-dir"],{cwd:n,env:y(),timeout:1e4});return _(s.stdout.trim())}));if(o[0]===o[1])return!1}return!0}async function _e(e,r,i){let t=Y(e,0);if(t===null||e[t.nextOffset]!==" ")return!1;let o=Y(e,t.nextOffset+1);if(o===null||e.slice(o.nextOffset)!==r||!/^(?:node|bun)(?:\.exe)?$/iu.test(c.basename(t.value))||c.basename(o.value)!=="cli.js"||c.basename(c.dirname(o.value))!=="dist"||!await S(t.value)||!await S(o.value))return!1;try{let n=c.dirname(c.dirname(o.value)),s=JSON.parse(await A(c.join(n,"package.json"),"utf8")),a=typeof s.bin=="string"?s.bin:s.bin?.pm;return await ve(n,i,s.version)?s.name==="@unbrained/pm-cli"&&a==="dist/cli.js":!1}catch{return!1}}function O(e,r){let i=e.length>0?`${J(e)}/`:"",t=[`${h(`${i}**/*.toon`)} merge=pm-item-toon`,`${h(`${i}**/*.md`)} merge=pm-item-markdown`];for(let o of r){let n=J(o);t.push(`${h(`${i}${n}/*.toon`)} merge=pm-item-toon`),t.push(`${h(`${i}${n}/*.md`)} merge=pm-item-markdown`)}return t.push(`${h(`${i}**/*.jsonl`)} merge=pm-relationship`),t.push(`${h(`${i}history/*.jsonl`)} merge=pm-history`),t.push(`${h(`${i}settings.json`)} merge=pm-json`),t.push(`${h(`${i}**/*.json`)} merge=pm-json`),t.push(`${h(`${i}extensions/**`)} merge=text`),t.push(`${h(`${i}extensions/.managed-extensions.json`)} merge=pm-json`),t}function re(e){let r=[],i=0;for(;i<e.length;){let t=e.indexOf(T,i),o=e.indexOf(x,i),n=t===-1?o:o===-1?t:Math.min(t,o);if(n===-1)break;let s=n===o,a=s?x:T,d=s?Q:pe,u=e.indexOf(d,n+a.length),m=u===-1?e.length:u+d.length;r.push({start:n,end:m,closed:u!==-1,lines:e.slice(n+a.length,u===-1?m:u).split(`
1
+ import{b as K}from"./chunk-DFUTCKUF.js";import{$a as P,Xa as H,ba as U,bb as L,eb as V}from"./chunk-57HPXGOQ.js";import{Od as W,Z as G,ae as $,qa as B,wa as E}from"./chunk-GP2WU43K.js";import{a as X,b as y,c as q}from"./chunk-FOA7XKWP.js";import{A as v,C as S,E as j,F,I as N,z as w}from"./chunk-JLXGRDTG.js";import{access as le,readFile as A,realpath as _}from"node:fs/promises";import{constants as ue}from"node:fs";import{execFile as me}from"node:child_process";import c from"node:path";import{promisify as de}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new e.Error().stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="6d1f8e03-97b4-5d83-b85c-e47f39c07d48")}catch{}})();var se="PM_SOURCE_CONTEXT_ACCESS",ce="PM_ALLOW_SOURCE_CONTEXT_WRITES";function z(e){let r=e[se],i=r===void 0||r.trim().toLowerCase()==="write"?"write":"read_only",t=i==="read_only"&&e[ce]?.trim()==="1";return{access:i,write_override_applied:t,source_writes_allowed:i==="write"||t}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new e.Error().stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="b1828465-0619-514c-8956-2a81dea9efbc")}catch{}})();var k=de(me),T="# pm-cli:merge-drivers:start",pe="# pm-cli:merge-drivers:end",x="# pm-cli:merge-drivers:v2:start",Q="# pm-cli:merge-drivers:v2:end",fe="merge-fence",ge="merge-attributes";function R(e){return`'${e.replaceAll("'",`'"'"'`)}'`}async function he(e,r){let i=await _(e);if(/(?:^|[\\/])bun-node-[^\\/]+[\\/]bun(?:\.exe)?$/iu.test(i))return;let{stdout:t}=await k(e,["--version"],{encoding:"utf8",windowsHide:!0,timeout:1e4});return t.trim()===r?i:void 0}async function ye(){let e=G(import.meta.url,["../../.."]),r=process.execPath,i=!1,t=await _(process.execPath),o=process.versions.bun,n=(process.env.PATH??"").split(c.delimiter).filter(a=>c.isAbsolute(a)).map(a=>c.join(a,o===void 0?c.basename(process.execPath):process.platform==="win32"?"bun.exe":"bun")),s=o===void 0?n:[process.env.npm_execpath??"",...n,t].filter(a=>c.isAbsolute(a)&&/^(?:bun|bun\.exe)$/iu.test(c.basename(a)));for(let a of s)try{if(await le(a,ue.X_OK),o!==void 0){let d=await he(a,o);if(d!==void 0){r=d,i=!0;break}continue}if(a!==t&&await _(a)===t){r=a;break}}catch{}if(o!==void 0&&!i)throw new v("Cannot install Bun merge drivers without a durable executable matching the current Bun version.",w.DEPENDENCY_FAILED,{code:"merge_bun_launcher_unavailable",why:"The current Bun process may be a temporary bunx launcher that Git cannot reuse after this command exits.",nextSteps:["Run with a durable version-matched Bun executable, expose one on an absolute PATH entry, or invoke pm through a Bun runner that publishes an absolute npm_execpath.","Retry pm merge install, then check pm health --strict-exit before merging branches."]});return`${R(r)} ${R(c.join(e,"dist","cli.js"))}`}var Z=[{key:"pm-item-toon",name:"pm field-aware TOON item document merge",artifact:"item",itemPath:"%P"},{key:"pm-item-markdown",name:"pm field-aware JSON-markdown item document merge",artifact:"item",itemPath:"%P"},{key:"pm-history",name:"pm append-only history stream merge",artifact:"history",itemPath:void 0},{key:"pm-relationship",name:"pm append-only relationship event store merge",artifact:"relationship",itemPath:void 0},{key:"pm-json",name:"pm key-level JSON config merge",artifact:"json",itemPath:void 0}];function we(e){let r=e.explicitPath?.trim(),i=e.environment.PM_SOURCE_WORKSPACE_ROOT?.trim(),t=e.environment.PM_SOURCE_PM_PATH?.trim(),o=z(e.environment),n=!!(i&&t),s=r===void 0&&n&&(e.dryRun||o.source_writes_allowed);if(r!==void 0){let a=E(e.cwd,r);return{pm_root:a,workspace_start:a,source_coordinates_available:n,source_context_selected:!1,source_policy:o}}return s?{pm_root:c.resolve(t),workspace_start:c.resolve(i),source_coordinates_available:!0,source_context_selected:!0,source_policy:o}:{pm_root:n?E(e.cwd,".agents/pm"):E(e.cwd),workspace_start:e.cwd,source_coordinates_available:n,source_context_selected:!1,source_policy:o}}async function ee(e){try{let{stdout:r}=await k("git",["rev-parse","--show-toplevel"],{cwd:e,env:y(),encoding:"utf8",windowsHide:!0,timeout:1e4});return await _(r.trim())}catch{return null}}async function te(e){let r=await ee(e);if(r===null)throw new v("pm merge install requires a git repository (merge drivers are git configuration).",w.USAGE);return r}function I(e,r){return c.relative(e,r).split(c.sep).join("/")}function J(e){return e.replace(/[\\*?[\]!]/gu,"\\$&")}function h(e){return`"${e.replaceAll("\\","\\\\").replaceAll('"','\\"')}"`}function Y(e,r){if(e[r]!=="'")return null;let i="";for(let t=r+1;t<e.length;t+=1){if(e.startsWith(`'"'"'`,t)){i+="'",t+=4;continue}if(e[t]==="'")return{value:i,nextOffset:t+1};i+=e[t]}return null}async function ve(e,r,i){if(L(r).filter(o=>o.constraint==="exact").some(o=>o.version!==i))return!1;let t=await ee(e);if(t!==null&&t!==await _(r)){let o=await Promise.all([t,r].map(async n=>{let s=await k("git",["rev-parse","--path-format=absolute","--git-common-dir"],{cwd:n,env:y(),timeout:1e4});return _(s.stdout.trim())}));if(o[0]===o[1])return!1}return!0}async function _e(e,r,i){let t=Y(e,0);if(t===null||e[t.nextOffset]!==" ")return!1;let o=Y(e,t.nextOffset+1);if(o===null||e.slice(o.nextOffset)!==r||!/^(?:node|bun)(?:\.exe)?$/iu.test(c.basename(t.value))||c.basename(o.value)!=="cli.js"||c.basename(c.dirname(o.value))!=="dist"||!await S(t.value)||!await S(o.value))return!1;try{let n=c.dirname(c.dirname(o.value)),s=JSON.parse(await A(c.join(n,"package.json"),"utf8")),a=typeof s.bin=="string"?s.bin:s.bin?.pm;return await ve(n,i,s.version)?s.name==="@unbrained/pm-cli"&&a==="dist/cli.js":!1}catch{return!1}}function O(e,r){let i=e.length>0?`${J(e)}/`:"",t=[`${h(`${i}**/*.toon`)} merge=pm-item-toon`,`${h(`${i}**/*.md`)} merge=pm-item-markdown`];for(let o of r){let n=J(o);t.push(`${h(`${i}${n}/*.toon`)} merge=pm-item-toon`),t.push(`${h(`${i}${n}/*.md`)} merge=pm-item-markdown`)}return t.push(`${h(`${i}**/*.jsonl`)} merge=pm-relationship`),t.push(`${h(`${i}history/*.jsonl`)} merge=pm-history`),t.push(`${h(`${i}settings.json`)} merge=pm-json`),t.push(`${h(`${i}**/*.json`)} merge=pm-json`),t.push(`${h(`${i}extensions/**`)} merge=text`),t.push(`${h(`${i}extensions/.managed-extensions.json`)} merge=pm-json`),t}function re(e){let r=[],i=0;for(;i<e.length;){let t=e.indexOf(T,i),o=e.indexOf(x,i),n=t===-1?o:o===-1?t:Math.min(t,o);if(n===-1)break;let s=n===o,a=s?x:T,d=s?Q:pe,u=e.indexOf(d,n+a.length),m=u===-1?e.length:u+d.length;r.push({start:n,end:m,closed:u!==-1,lines:e.slice(n+a.length,u===-1?m:u).split(`
2
2
  `).map(l=>l.trim()).filter(Boolean)}),i=m}return r}function ie(e,r,i){let t=new Set(r),o=h(i.length>0?`${i}/`:"").slice(0,-1);return e.some(n=>t.has(n)||n.startsWith(o)&&/^[^/]+\/\*\.(?:toon|md)" merge=pm-item-(?:toon|markdown)$/u.test(n.slice(o.length)))}async function ne(e,r,i,t){let o=c.join(e,".gitattributes"),n=t?null:(await k("git",["rev-parse","--absolute-git-dir"],{cwd:e,env:y(),encoding:"utf8",windowsHide:!0,timeout:1e4})).stdout.trim(),s=n===null?null:await $(n,ge,120,"merge-fence",!1,!0,5e3);try{let a=await F(o)??"",d=[x,...i,Q].join(`
3
3
  `),u=re(a),m=u.filter(p=>ie(p.lines,i,r));m.length===0&&r===".agents/pm"&&u.length===1&&u[0].lines.every(p=>!p.includes("/"))&&m.push(u[0]);let l;if(m.length>0){let p=m[0];l=a;for(let b of m.slice(1).reverse())l=`${l.slice(0,b.start)}${l.slice(b.end)}`;l=`${l.slice(0,p.start)}${d}${l.slice(p.end)}`}else{let p=a.trimEnd();l=`${p.length>0?`${p}
4
4
 
5
5
  `:""}${d}
6
6
  `}return l===a?{path:o,changed:!1}:(t||await N(o,l),{path:o,changed:!0})}finally{await s?.()}}function oe(e){let r=B(e,null);return[...new Set(Object.values(r.type_to_folder))].sort((i,t)=>i.localeCompare(t))}async function qe(e,r){let i=c.resolve(e),t=null,o="",n=i;for(let g=0;g<8;g+=1){let ae=c.join(n,".gitattributes");try{let C=await A(ae,"utf8");if(C.includes(x)||C.includes(T)){t=n,o=C;break}}catch{}let D=c.dirname(n);if(D===n)break;n=D}if(t===null)return{status:"not_installed",missing_patterns:[],stale_patterns:[],schema_scope:"project"};let s=c.join(t,".gitattributes"),a=I(t,i),d=re(o),u=O(a,r),m=d.filter(g=>ie(g.lines,u,a)),l=m.flatMap(g=>g.closed?g.lines:[]),p=new Set(l),b=new Set(u),f=u.filter(g=>!p.has(g)),M=l.filter(g=>!b.has(g));return{status:m.length!==1||!m[0].closed||f.length>0||M.length>0?"drift":"ok",path:s,missing_patterns:f,stale_patterns:M,schema_scope:"project"}}async function ze(e){let r=[],i=[];for(let t of Z){let o=`merge.${t.key}.driver`,n=` merge driver ${t.artifact} "%O" "%A" "%B"${t.itemPath===void 0?"":` --item-path ${t.itemPath}`}`;try{let{stdout:s}=await k("git",["config","--get",o],{cwd:e,env:y(),encoding:"utf8",windowsHide:!0,timeout:1e4}),a=s.trim();await _e(a,n,e)||i.push(o)}catch{r.push(o)}}return{status:r.length>0?"missing":i.length>0?"drift":"ok",missing_keys:r,drifted_keys:i}}async function Je(e){let r;try{r=await te(c.resolve(e))}catch{return{status:"no_git"}}let i=I(r,c.resolve(e)),t=await P(e),o=U(void 0,t.author_default),n=await $(e,fe,t.locks.ttl_seconds,o,!1,H(t).force_required_for_stale_lock,t.locks.wait_ms);try{let s=c.join(r,".gitattributes"),a;try{a=await A(s,"utf8")}catch(l){if(l instanceof Error&&"code"in l&&j(l))return{status:"not_installed",path:s};throw l}if(!a.includes(x)&&!a.includes(T))return{status:"not_installed",path:s};let d=await P(e),u=oe(d),m=await ne(r,i,O(i,u),!1);return{status:m.changed?"refreshed":"unchanged",path:m.path}}finally{await n()}}async function Ye(e,r){let i=we({cwd:process.cwd(),explicitPath:r.path,dryRun:e.dryRun===!0,environment:process.env}),t=i.pm_root;await V(t);let o=await te(i.workspace_start);return ke({pmRoot:t,workspaceRoot:o,dryRun:e.dryRun===!0,preCommitHook:e.preCommitHook===!0})}async function be(e,r){let i=(await k("git",["rev-parse","--path-format=absolute","--git-common-dir"],{cwd:e,env:y(),timeout:1e4})).stdout.trim(),t=await $(i,"merge-driver-config",120,"merge-install",!1,!0,5e3);try{let o=await q(e),n;try{n=(await k("git",["config",o,"--null","--get-regexp","."],{cwd:e,env:y(),timeout:1e4})).stdout}catch(a){if(typeof a!="object"||a===null||!("code"in a)||a.code!==1)throw a;n=""}let s=new Map(n.split("\0").filter(Boolean).map(a=>{let d=a.indexOf(`
7
- `);return[a.slice(0,d),a.slice(d+1)]}));for(let a of r)s.get(a.key)!==a.value&&await X(e,[o,a.key,a.value])}finally{await t()}}async function ke(e){let r=c.resolve(e.pmRoot),i=c.resolve(e.workspaceRoot),t=e.dryRun===!0,o,n;try{[o,n]=await Promise.all([_(r),_(i)])}catch(f){throw new v(`Cannot resolve tracker root ${r} or workspace root ${i}: ${String(f)}`,w.NOT_FOUND,{code:"merge_root_not_found",nextSteps:["Initialize the tracker and ensure both paths are accessible.",'Retry "pm merge install" from the repository workspace.']})}let s=I(n,o);if(K(s))throw new v(`Tracker root ${r} is outside the git repository ${i}; there is nothing to configure for this repository.`,w.USAGE);let a=await P(o),d=oe(a),u=O(s,d),m=[],l=await ye(),p=e.preCommitHook===!0?await import("./settlement-hook-LBVWWSCF.js").then(async f=>({plan:await f.prepareMergeSettlementHook(n,`${l} --pm-path ${R(s||".")}`),write:f.writeMergeSettlementHook})):void 0;for(let f of Z)m.push({key:`merge.${f.key}.name`,value:f.name}),m.push({key:`merge.${f.key}.driver`,value:`${l} merge driver ${f.artifact} "%O" "%A" "%B"${f.itemPath===void 0?"":` --item-path ${f.itemPath}`}`});if(!t)try{await be(n,m)}catch{throw new v(`Cannot install repository-local merge drivers in ${n}. Ensure the repository Git config is writable and no other Git process holds its lock, then retry.`,w.DEPENDENCY_FAILED,{code:"merge_git_config_unwritable",why:"pm merge install must persist clone-local driver commands before publishing their shared .gitattributes mappings.",nextSteps:["Make the repository Git config writable or wait for the process holding its lock to finish.",'Retry "pm merge install"; the operation is idempotent.','Use "pm merge install --dry-run --json" when the workspace is intentionally read-only.']})}let b=await ne(n,s,u,t);return p!==void 0&&!t&&await p.write(p.plan),{ok:!0,dry_run:t,workspace_root:n,pm_root:o,gitattributes:{path:b.path,changed:b.changed,patterns:u,schema_scope:"project"},git_config:m,...p===void 0?{}:{settlement_hook:{path:p.plan.path,changed:p.plan.changed}},guidance:["Commit .gitattributes so every branch and collaborator shares the merge mapping.",'git config is per-clone: each collaborator (and each fresh worktree/clone) runs "pm merge install" once.','After merging branches, run "pm merge reconcile --dry-run" to inspect the complete receipt and history repair, then apply "pm merge reconcile"; use --force only after explicitly accepting any discarded values.',"Custom item types registered later refresh this fence automatically (pm schema add-type/remove-type); rerun pm merge install only after out-of-band type-folder edits."],generated_at:W()}}import{execFile as xe}from"node:child_process";import{promisify as Ee}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new e.Error().stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="e57ef62f-fd40-5a33-9816-e24d8dba4d1d")}catch{}})();var $e=Ee(xe);async function nt(e,r){if(r.length===0)return[];let i;try{let n=$e("git",["check-ignore","--verbose","-z","--stdin"],{cwd:e,env:y(),timeout:1e4}),s=n.child.stdin;s!==null&&(s.on("error",()=>{n.child.kill()}),s.end(`${r.join("\0")}\0`)),{stdout:i}=await n}catch(n){if(typeof n=="object"&&n!==null&&"code"in n&&n.code===1)return[];throw new v("Git could not verify ignore rules for merge artifacts; no automatic settlement is safe until that check succeeds.",w.CONFLICT,{code:"merge_settlement_review_required",reason:"ignore_check_unavailable",nextSteps:["Check Git configuration and ignore-file readability, then retry pm merge reconcile --stage --dry-run."]})}let t=i.split("\0"),o=[];for(let n=0;n+3<t.length;n+=4){let[s,a,d,u]=t.slice(n,n+4);d.startsWith("!")||o.push({path:u,source:s,line:Number(a),pattern:d})}return o}export{se as a,ce as b,ee as c,oe as d,qe as e,ze as f,Je as g,Ye as h,ke as i,nt as j};
8
- //# sourceMappingURL=chunk-R3EA3SDW.js.map
7
+ `);return[a.slice(0,d),a.slice(d+1)]}));for(let a of r)s.get(a.key)!==a.value&&await X(e,[o,a.key,a.value])}finally{await t()}}async function ke(e){let r=c.resolve(e.pmRoot),i=c.resolve(e.workspaceRoot),t=e.dryRun===!0,o,n;try{[o,n]=await Promise.all([_(r),_(i)])}catch(f){throw new v(`Cannot resolve tracker root ${r} or workspace root ${i}: ${String(f)}`,w.NOT_FOUND,{code:"merge_root_not_found",nextSteps:["Initialize the tracker and ensure both paths are accessible.",'Retry "pm merge install" from the repository workspace.']})}let s=I(n,o);if(K(s))throw new v(`Tracker root ${r} is outside the git repository ${i}; there is nothing to configure for this repository.`,w.USAGE);let a=await P(o),d=oe(a),u=O(s,d),m=[],l=await ye(),p=e.preCommitHook===!0?await import("./settlement-hook-SJV52ZTV.js").then(async f=>({plan:await f.prepareMergeSettlementHook(n,`${l} --pm-path ${R(s||".")}`),write:f.writeMergeSettlementHook})):void 0;for(let f of Z)m.push({key:`merge.${f.key}.name`,value:f.name}),m.push({key:`merge.${f.key}.driver`,value:`${l} merge driver ${f.artifact} "%O" "%A" "%B"${f.itemPath===void 0?"":` --item-path ${f.itemPath}`}`});if(!t)try{await be(n,m)}catch{throw new v(`Cannot install repository-local merge drivers in ${n}. Ensure the repository Git config is writable and no other Git process holds its lock, then retry.`,w.DEPENDENCY_FAILED,{code:"merge_git_config_unwritable",why:"pm merge install must persist clone-local driver commands before publishing their shared .gitattributes mappings.",nextSteps:["Make the repository Git config writable or wait for the process holding its lock to finish.",'Retry "pm merge install"; the operation is idempotent.','Use "pm merge install --dry-run --json" when the workspace is intentionally read-only.']})}let b=await ne(n,s,u,t);return p!==void 0&&!t&&await p.write(p.plan),{ok:!0,dry_run:t,workspace_root:n,pm_root:o,gitattributes:{path:b.path,changed:b.changed,patterns:u,schema_scope:"project"},git_config:m,...p===void 0?{}:{settlement_hook:{path:p.plan.path,changed:p.plan.changed}},guidance:["Commit .gitattributes so every branch and collaborator shares the merge mapping.",'git config is per-clone: each collaborator (and each fresh worktree/clone) runs "pm merge install" once.','After merging branches, run "pm merge reconcile --dry-run" to inspect the complete receipt and history repair, then apply "pm merge reconcile"; use --force only after explicitly accepting any discarded values.',"Custom item types registered later refresh this fence automatically (pm schema add-type/remove-type); rerun pm merge install only after out-of-band type-folder edits."],generated_at:W()}}import{execFile as xe}from"node:child_process";import{promisify as Ee}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new e.Error().stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="e57ef62f-fd40-5a33-9816-e24d8dba4d1d")}catch{}})();var $e=Ee(xe);async function nt(e,r){if(r.length===0)return[];let i;try{let n=$e("git",["check-ignore","--verbose","-z","--stdin"],{cwd:e,env:y(),timeout:1e4}),s=n.child.stdin;s!==null&&(s.on("error",()=>{n.child.kill()}),s.end(`${r.join("\0")}\0`)),{stdout:i}=await n}catch(n){if(typeof n=="object"&&n!==null&&"code"in n&&n.code===1)return[];throw new v("Git could not verify ignore rules for merge artifacts; no automatic settlement is safe until that check succeeds.",w.CONFLICT,{code:"merge_settlement_review_required",reason:"ignore_check_unavailable",nextSteps:["Check Git configuration and ignore-file readability, then retry pm merge reconcile --stage --dry-run."]})}let t=i.split("\0"),o=[];for(let n=0;n+3<t.length;n+=4){let[s,a,d,u]=t.slice(n,n+4);d.startsWith("!")||o.push({path:u,source:s,line:Number(a),pattern:d})}return o}export{se as a,ce as b,ee as c,oe as d,qe as e,ze as f,Je as g,Ye as h,ke as i,nt as j};
8
+ //# sourceMappingURL=chunk-QFMJGQGO.js.map