@unbrained/pm-cli 2026.10.31 → 2026.11.2

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 (187) hide show
  1. package/.agents/skills/pm-user/references/ECOSYSTEM_PLANNING.md +1 -1
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/AGENTS.md +3 -3
  4. package/CHANGELOG.md +27 -0
  5. package/CONTRIBUTING.md +1 -1
  6. package/README.md +1 -1
  7. package/dist/cli/migration-gates.js +1 -1
  8. package/dist/cli/register-operations.d.ts +3 -3
  9. package/dist/cli/register-operations.js +1 -1
  10. package/dist/cli-bundle/bundle-manifest.json +1 -1
  11. package/dist/cli-bundle/chunks/{chunk-GMBDZID5.js → chunk-3A4NVHYS.js} +3 -3
  12. package/dist/cli-bundle/chunks/{chunk-VC7TA67O.js → chunk-3ZQQVJT2.js} +19 -19
  13. package/dist/cli-bundle/chunks/{chunk-XDDPSWIW.js → chunk-4HW253W2.js} +2 -2
  14. package/dist/cli-bundle/chunks/chunk-4OELCF3O.js +2 -0
  15. package/dist/cli-bundle/chunks/{chunk-6PSDQ7T7.js → chunk-533L6D2N.js} +3 -3
  16. package/dist/cli-bundle/chunks/{chunk-35Q2B2GJ.js → chunk-ABFFRQRO.js} +2 -2
  17. package/dist/cli-bundle/chunks/chunk-BFZUJ5QP.js +115 -0
  18. package/dist/cli-bundle/chunks/{chunk-SBVX5CMV.js → chunk-D52QQ7LP.js} +2 -2
  19. package/dist/cli-bundle/chunks/{chunk-P3LNMWL2.js → chunk-DAZFCSDV.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-43R7UTWV.js → chunk-EN27ZQSV.js} +2 -2
  21. package/dist/cli-bundle/chunks/{chunk-MRUA2Z43.js → chunk-GK2CHAT3.js} +2 -2
  22. package/dist/cli-bundle/chunks/{chunk-BS2KXT24.js → chunk-HOGKWJU5.js} +42 -42
  23. package/dist/cli-bundle/chunks/{chunk-WX25MU4N.js → chunk-J3JM36EH.js} +3 -3
  24. package/dist/cli-bundle/chunks/{chunk-V6EWBTNH.js → chunk-JRXD7SIL.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-U7JXZMU5.js → chunk-K46GDAKX.js} +2 -2
  26. package/dist/cli-bundle/chunks/{chunk-PT7TS6E7.js → chunk-KJLGBLR3.js} +2 -2
  27. package/dist/cli-bundle/chunks/{chunk-2AHSPMKJ.js → chunk-NGRPD3ZO.js} +2 -2
  28. package/dist/cli-bundle/chunks/chunk-OJR2YGXF.js +31 -0
  29. package/dist/cli-bundle/chunks/chunk-QHHFXNSQ.js +3 -0
  30. package/dist/cli-bundle/chunks/{chunk-TL3O5GZA.js → chunk-RGHLQGEX.js} +4 -4
  31. package/dist/cli-bundle/chunks/{chunk-24J6TNYE.js → chunk-VEOFWE32.js} +2 -2
  32. package/dist/cli-bundle/chunks/chunk-ZNWDYDFF.js +129 -0
  33. package/dist/cli-bundle/chunks/{indexed-receipt-blobs-KGMJVFH2.js → indexed-receipt-blobs-IEJ2QOW3.js} +2 -2
  34. package/dist/cli-bundle/chunks/item-transaction-JHPBH6N7.js +2 -0
  35. package/dist/cli-bundle/chunks/{mutation-admission-I4RHIT3Q.js → mutation-admission-QUNQZCZ5.js} +2 -2
  36. package/dist/cli-bundle/chunks/{register-list-query-MVDL5EXG.js → register-list-query-NZTK3AXA.js} +2 -2
  37. package/dist/cli-bundle/chunks/{register-mutation-GAF7LXRB.js → register-mutation-2OFAMOVH.js} +2 -2
  38. package/dist/cli-bundle/chunks/register-operations-RFMM5KZ6.js +2 -0
  39. package/dist/cli-bundle/chunks/{register-setup-MZN6ONB3.js → register-setup-6B6Q7M5L.js} +2 -2
  40. package/dist/cli-bundle/chunks/{settlement-hook-YWSWFOZY.js → settlement-hook-UTCEZBFT.js} +2 -2
  41. package/dist/cli-bundle/chunks/{stage-2ZORTOF6.js → stage-VLI4OBVX.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/{chunk-4QPGJO2G.js → chunk-3UD6F2KQ.js} +2 -2
  43. package/dist/cli-bundle/focused-chunks/{chunk-EA65HVBO.js → chunk-4NVPDZLX.js} +12 -12
  44. package/dist/cli-bundle/focused-chunks/{chunk-KKRIFBSL.js → chunk-4UUE3YXZ.js} +2 -2
  45. package/dist/cli-bundle/focused-chunks/{chunk-NRBUMDLF.js → chunk-5UDDRPYR.js} +2 -2
  46. package/dist/cli-bundle/focused-chunks/{chunk-SFQKCA5K.js → chunk-745IDMTD.js} +2 -2
  47. package/dist/cli-bundle/focused-chunks/{chunk-QFMJGQGO.js → chunk-B6OOKKOX.js} +3 -3
  48. package/dist/cli-bundle/focused-chunks/{chunk-5MCGYBOQ.js → chunk-EJJWOFP5.js} +2 -2
  49. package/dist/cli-bundle/focused-chunks/chunk-FUGYXUUL.js +80 -0
  50. package/dist/cli-bundle/focused-chunks/{chunk-6F6APBCX.js → chunk-HMXVTWIV.js} +3 -3
  51. package/dist/cli-bundle/focused-chunks/{chunk-HSAEEWSI.js → chunk-I4Z2SCV5.js} +2 -2
  52. package/dist/cli-bundle/focused-chunks/chunk-JLN5CFYM.js +2 -0
  53. package/dist/cli-bundle/focused-chunks/chunk-K4FMZB4Y.js +23 -0
  54. package/dist/cli-bundle/focused-chunks/{chunk-DFUTCKUF.js → chunk-MQVBWFJF.js} +2 -2
  55. package/dist/cli-bundle/focused-chunks/{chunk-2J7T2UCH.js → chunk-NJFMG3IK.js} +2 -2
  56. package/dist/cli-bundle/focused-chunks/{chunk-HPWT3RBG.js → chunk-PCCZ72C3.js} +54 -54
  57. package/dist/cli-bundle/focused-chunks/chunk-PF553UVP.js +44 -0
  58. package/dist/cli-bundle/focused-chunks/{chunk-MW77Q3AQ.js → chunk-Q23K6WLV.js} +2 -2
  59. package/dist/cli-bundle/focused-chunks/{chunk-Y6UYRMVG.js → chunk-QNXXOFLQ.js} +2 -2
  60. package/dist/cli-bundle/focused-chunks/{chunk-JLXGRDTG.js → chunk-QVFE5LIX.js} +3 -3
  61. package/dist/cli-bundle/focused-chunks/{chunk-KH5QJXY7.js → chunk-RUCG6UWN.js} +2 -2
  62. package/dist/cli-bundle/focused-chunks/{chunk-JNKRUCVZ.js → chunk-SGWYNU7T.js} +2 -2
  63. package/dist/cli-bundle/focused-chunks/chunk-TGS5RXBY.js +26 -0
  64. package/dist/cli-bundle/focused-chunks/{chunk-PC3R5CJV.js → chunk-WD43E7RU.js} +2 -2
  65. package/dist/cli-bundle/focused-chunks/{chunk-PFBQOZPK.js → chunk-YM4AMP7H.js} +2 -2
  66. package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-KHWT44EK.js → indexed-receipt-blobs-FT3KF6VJ.js} +2 -2
  67. package/dist/cli-bundle/focused-chunks/{item-transaction-LU75EG7D.js → item-transaction-F4SN7TXJ.js} +2 -2
  68. package/dist/cli-bundle/focused-chunks/{mutation-admission-KDJ7SCPA.js → mutation-admission-7R2FXJ5O.js} +2 -2
  69. package/dist/cli-bundle/focused-chunks/{settlement-hook-SJV52ZTV.js → settlement-hook-KMIBD4F2.js} +2 -2
  70. package/dist/cli-bundle/focused-chunks/{stage-R4KEBO37.js → stage-6B3O2GZ6.js} +2 -2
  71. package/dist/cli-bundle/main.js +24 -24
  72. package/dist/cli-bundle/sdk-authoring.js +1 -1
  73. package/dist/cli-bundle/sdk-contracts.js +4 -4
  74. package/dist/cli-bundle/sdk-core.js +1 -1
  75. package/dist/cli-bundle/sdk-governance.js +1 -1
  76. package/dist/cli-bundle/sdk-graph.js +1 -1
  77. package/dist/cli-bundle/sdk-merge.js +57 -57
  78. package/dist/cli-bundle/sdk-query.js +1 -1
  79. package/dist/cli-bundle/sdk-runtime.js +1 -1
  80. package/dist/cli-bundle/sdk-testing.js +1 -1
  81. package/dist/cli-bundle/sdk.js +9 -9
  82. package/dist/core/extensions/extension-types.d.ts +5 -0
  83. package/dist/core/extensions/extension-types.js +1 -1
  84. package/dist/core/item/parse.js +2 -2
  85. package/dist/core/lock/lock-confinement.d.ts +55 -0
  86. package/dist/core/lock/lock-confinement.js +2 -0
  87. package/dist/core/lock/lock-gc.js +1 -1
  88. package/dist/core/lock/lock.js +2 -2
  89. package/dist/core/output/mutation-projection.js +1 -1
  90. package/dist/core/output/output.js +2 -2
  91. package/dist/core/shared/errors.d.ts +6 -0
  92. package/dist/core/shared/errors.js +1 -1
  93. package/dist/core/store/settings-sections.d.ts +61 -0
  94. package/dist/core/store/settings-sections.js +3 -0
  95. package/dist/core/store/settings-validator.d.ts +4 -0
  96. package/dist/core/store/settings-validator.js +1 -1
  97. package/dist/core/store/settings.d.ts +29 -2
  98. package/dist/core/store/settings.js +4 -3
  99. package/dist/core/telemetry/consent.js +2 -2
  100. package/dist/core/telemetry/runtime.js +2 -2
  101. package/dist/core/test/background-runs.js +3 -3
  102. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  103. package/dist/sdk/config.js +1 -1
  104. package/dist/sdk/context-intent-contracts.d.ts +17 -0
  105. package/dist/sdk/context-intent-contracts.js +1 -1
  106. package/dist/sdk/core.d.ts +1 -1
  107. package/dist/sdk/core.js +1 -1
  108. package/dist/sdk/extension-command-context.js +2 -2
  109. package/dist/sdk/generated/error-code-catalog-rows.d.ts +39 -0
  110. package/dist/sdk/generated/error-code-catalog-rows.js +2 -0
  111. package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +3 -3
  112. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  113. package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +3 -3
  114. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  115. package/dist/sdk/generated-error-code-catalog.js +1 -1
  116. package/dist/sdk/index.d.ts +1 -1
  117. package/dist/sdk/index.js +1 -1
  118. package/dist/sdk/init-agent-guidance.js +2 -2
  119. package/dist/sdk/lifecycle/claim.d.ts +27 -0
  120. package/dist/sdk/lifecycle/claim.js +1 -1
  121. package/dist/sdk/lifecycle/mcp-actions.d.ts +1 -1
  122. package/dist/sdk/lifecycle/mcp-actions.js +1 -1
  123. package/dist/sdk/lifecycle/task-composition.js +1 -1
  124. package/dist/sdk/mcp/discovery.js +1 -1
  125. package/dist/sdk/output/list-envelope.d.ts +8 -0
  126. package/dist/sdk/output/list-envelope.js +1 -1
  127. package/dist/sdk/output.d.ts +1 -1
  128. package/dist/sdk/output.js +2 -2
  129. package/dist/sdk/public-surface.json +1 -1
  130. package/dist/sdk/query/context.js +2 -2
  131. package/dist/sdk/runtime/actions.js +1 -1
  132. package/dist/sdk/runtime-input.js +1 -1
  133. package/dist/sdk/runtime-primitives.d.ts +2 -1
  134. package/dist/sdk/runtime-primitives.js +1 -1
  135. package/dist/sdk/runtime-public-contracts.d.ts +2 -0
  136. package/dist/sdk/runtime.d.ts +2 -2
  137. package/dist/sdk/runtime.js +1 -1
  138. package/dist/sdk/start-task-status.d.ts +1 -1
  139. package/dist/sdk/start-task-status.js +1 -1
  140. package/docs/AGENT_EVIDENCE_CONSISTENCY.md +10 -0
  141. package/docs/AGENT_GUIDE.md +3 -3
  142. package/docs/COMMANDS.md +1 -0
  143. package/docs/COMMAND_NAMESPACES.md +1 -1
  144. package/docs/CONFIGURATION.md +9 -0
  145. package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +9 -6
  146. package/docs/LIFECYCLE_COMMANDS.md +19 -4
  147. package/docs/RELEASING.md +22 -2
  148. package/docs/SDK.md +37 -2
  149. package/docs/SDK_ACTION_CONFORMANCE.md +21 -0
  150. package/docs/SDK_CONFIGURATION_SAFETY.md +55 -0
  151. package/docs/TESTING.md +2 -1
  152. package/docs/agent-task-token-baseline.json +1 -1
  153. package/docs/agent-task-transcripts.json +1 -1
  154. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +12 -3
  155. package/marketplace.json +1 -1
  156. package/package.json +9 -3
  157. package/packages/pm-beads/package.json +1 -1
  158. package/packages/pm-calendar/package.json +1 -1
  159. package/packages/pm-command-kit/package.json +1 -1
  160. package/packages/pm-digital-twin/package.json +1 -1
  161. package/packages/pm-governance-audit/package.json +1 -1
  162. package/packages/pm-guide-shell/package.json +1 -1
  163. package/packages/pm-kanban/package.json +1 -1
  164. package/packages/pm-lifecycle-hooks/package.json +1 -1
  165. package/packages/pm-linked-test-adapters/package.json +1 -1
  166. package/packages/pm-search-advanced/package.json +1 -1
  167. package/packages/pm-templates/package.json +1 -1
  168. package/packages/pm-todos/package.json +1 -1
  169. package/packages/pm-vcs/package.json +1 -1
  170. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  171. package/plugins/pm-claude/package.json +1 -1
  172. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  173. package/plugins/pm-codex/package.json +1 -1
  174. package/plugins/pm-codex/plugin.json +1 -1
  175. package/runtime-dependencies.json +1 -1
  176. package/dist/cli-bundle/chunks/chunk-HSBTITO4.js +0 -3
  177. package/dist/cli-bundle/chunks/chunk-WNF6FOL7.js +0 -31
  178. package/dist/cli-bundle/chunks/chunk-WRXQAW7Q.js +0 -114
  179. package/dist/cli-bundle/chunks/chunk-YT5D5HNG.js +0 -2
  180. package/dist/cli-bundle/chunks/chunk-ZTJVOBDU.js +0 -128
  181. package/dist/cli-bundle/chunks/item-transaction-UWV6UNSV.js +0 -2
  182. package/dist/cli-bundle/chunks/register-operations-JLFRL36Q.js +0 -2
  183. package/dist/cli-bundle/focused-chunks/chunk-57HPXGOQ.js +0 -79
  184. package/dist/cli-bundle/focused-chunks/chunk-AFVN2KCP.js +0 -44
  185. package/dist/cli-bundle/focused-chunks/chunk-GP2WU43K.js +0 -26
  186. package/dist/cli-bundle/focused-chunks/chunk-NOKG4RFN.js +0 -22
  187. package/dist/cli-bundle/focused-chunks/chunk-WHIE2C6Q.js +0 -2
@@ -1,22 +0,0 @@
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