@unbrained/pm-cli 2026.8.13 → 2026.8.14

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 (136) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +141 -112
  3. package/dist/cli/main.js +39 -3
  4. package/dist/cli-bundle/bundle-manifest.json +144 -176
  5. package/dist/cli-bundle/chunks/{chunk-DEDU3DG7.js → chunk-BBOFSVAK.js} +66 -65
  6. package/dist/cli-bundle/chunks/chunk-BFALV3YP.js +5 -0
  7. package/dist/cli-bundle/chunks/{chunk-Q47C67TQ.js → chunk-FIW4P64F.js} +2 -2
  8. package/dist/cli-bundle/chunks/{chunk-QGTUPEU5.js → chunk-G5JUB66K.js} +41 -41
  9. package/dist/cli-bundle/chunks/{chunk-3ZMOWAFM.js → chunk-SBRKH6OR.js} +2 -2
  10. package/dist/cli-bundle/chunks/chunk-TMJ7URWS.js +13 -0
  11. package/dist/cli-bundle/chunks/{chunk-F7FJYGK3.js → chunk-TXMEUUUY.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-YLBAPY22.js → chunk-XAVMOK6B.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-TF3TPKPR.js → chunk-YAMTJL6Y.js} +33 -33
  14. package/dist/cli-bundle/chunks/{chunk-IMGIN7R6.js → chunk-YSVSMJ2B.js} +2 -2
  15. package/dist/cli-bundle/chunks/{register-list-query-4HIZ7EA3.js → register-list-query-T3EHHNNV.js} +2 -2
  16. package/dist/cli-bundle/chunks/{register-mutation-W64FZ5HN.js → register-mutation-E27WCLSZ.js} +2 -2
  17. package/dist/cli-bundle/chunks/{register-operations-C44ET7R5.js → register-operations-4R6I7CPY.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-setup-634MFRXU.js → register-setup-3YXZ444E.js} +2 -2
  19. package/dist/cli-bundle/focused-chunks/{chunk-OOYYKQWX.js → chunk-4DQ2YERC.js} +2 -2
  20. package/dist/cli-bundle/focused-chunks/chunk-F43TT2QQ.js +8 -0
  21. package/dist/cli-bundle/focused-chunks/{chunk-2RI2FESN.js → chunk-K7RWWOAG.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/chunk-KFSZ3BP6.js +16 -0
  23. package/dist/cli-bundle/focused-chunks/{chunk-3DJSGWVB.js → chunk-KSEDUWVZ.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/{chunk-NFHFZH2Z.js → chunk-KYUQGTSB.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/{chunk-IIS2FRKL.js → chunk-LZ4MV3RH.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/chunk-PGXJQLCT.js +155 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-E3AVJ655.js → chunk-PPFGQDSI.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/chunk-Q4YY3XNF.js +2 -0
  29. package/dist/cli-bundle/focused-chunks/chunk-QK753U3U.js +46 -0
  30. package/dist/cli-bundle/focused-chunks/{chunk-QDZUABWL.js → chunk-QUMB2J27.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/chunk-SM7MTG27.js +2 -0
  32. package/dist/cli-bundle/focused-chunks/{chunk-I75MANL7.js → chunk-WCVE2NIG.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/chunk-XDNAW5OI.js +18 -0
  34. package/dist/cli-bundle/focused-chunks/{chunk-2JP7W7GO.js → chunk-YOOI3UZX.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/chunk-ZM6TZVHC.js +2 -0
  36. package/dist/cli-bundle/main.js +13 -13
  37. package/dist/cli-bundle/sdk-authoring.js +1 -1
  38. package/dist/cli-bundle/sdk-contracts.js +1 -1
  39. package/dist/cli-bundle/sdk-core.js +44 -41
  40. package/dist/cli-bundle/sdk-governance.js +1 -1
  41. package/dist/cli-bundle/sdk-graph.js +1 -1
  42. package/dist/cli-bundle/sdk-merge.js +109 -1
  43. package/dist/cli-bundle/sdk-query.js +1 -1
  44. package/dist/cli-bundle/sdk-runtime.js +1 -1
  45. package/dist/cli-bundle/sdk-testing.js +1 -1
  46. package/dist/cli-bundle/sdk.js +2 -2
  47. package/dist/core/history/drift-scan.d.ts +6 -0
  48. package/dist/core/history/drift-scan.js +74 -50
  49. package/dist/core/history/workspace-history.d.ts +59 -0
  50. package/dist/core/history/workspace-history.js +197 -10
  51. package/dist/core/output/output.js +12 -4
  52. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +6 -1
  53. package/dist/sdk/cli-contracts/runtime-contracts.js +155 -60
  54. package/dist/sdk/cli-program.js +3 -3
  55. package/dist/sdk/context-relevance.js +12 -4
  56. package/dist/sdk/governance/assurance.js +4 -4
  57. package/dist/sdk/governance/health.js +15 -3
  58. package/dist/sdk/governance/validate-history-drift.d.ts +7 -0
  59. package/dist/sdk/governance/validate-history-drift.js +68 -0
  60. package/dist/sdk/governance/validate.js +4 -46
  61. package/dist/sdk/graph/assembly.d.ts +23 -0
  62. package/dist/sdk/graph/assembly.js +54 -2
  63. package/dist/sdk/graph/durable-cache.js +50 -20
  64. package/dist/sdk/graph/governance-contracts.d.ts +1 -1
  65. package/dist/sdk/graph/governance-contracts.js +4 -2
  66. package/dist/sdk/graph/governance.d.ts +21 -1
  67. package/dist/sdk/graph/governance.js +94 -32
  68. package/dist/sdk/graph/index.d.ts +2 -2
  69. package/dist/sdk/graph/index.js +4 -4
  70. package/dist/sdk/graph/mutation-advisory.js +15 -7
  71. package/dist/sdk/graph/remediation.js +12 -2
  72. package/dist/sdk/history-read.d.ts +8 -0
  73. package/dist/sdk/history-read.js +2 -2
  74. package/dist/sdk/index.d.ts +1 -1
  75. package/dist/sdk/index.js +3 -3
  76. package/dist/sdk/query/history.js +20 -3
  77. package/dist/sdk/read-output-budget.d.ts +2 -0
  78. package/dist/sdk/read-output-budget.js +12 -5
  79. package/dist/sdk/read-output-contracts.d.ts +61 -5
  80. package/dist/sdk/read-output-contracts.js +210 -28
  81. package/dist/sdk/read-output-rows.d.ts +11 -0
  82. package/dist/sdk/read-output-rows.js +47 -2
  83. package/dist/sdk/runtime-primitives.d.ts +1 -1
  84. package/dist/sdk/runtime-primitives.js +3 -3
  85. package/dist/sdk/runtime.js +5 -3
  86. package/docs/ASSURANCE.md +10 -1
  87. package/docs/COMMANDS.md +31 -2
  88. package/docs/READ_OUTPUT_CONTRACTS.md +44 -8
  89. package/docs/RELATIONSHIP_GRAPH.md +20 -5
  90. package/docs/SDK.md +12 -5
  91. package/docs/SDK_CONTEXT_INTEGRITY.md +32 -1
  92. package/docs/TESTING.md +23 -1
  93. package/docs/performance/sdk-entrypoint-import-costs.md +20 -13
  94. package/marketplace.json +2 -2
  95. package/package.json +6 -6
  96. package/packages/pm-beads/extensions/beads/index.ts +1 -0
  97. package/packages/pm-beads/package.json +1 -1
  98. package/packages/pm-calendar/extensions/calendar/index.ts +1 -0
  99. package/packages/pm-calendar/package.json +1 -1
  100. package/packages/pm-command-kit/package.json +1 -1
  101. package/packages/pm-digital-twin/extensions/digital-twin/index.ts +7 -0
  102. package/packages/pm-digital-twin/package.json +1 -1
  103. package/packages/pm-governance-audit/extensions/governance-audit/index.ts +4 -0
  104. package/packages/pm-governance-audit/package.json +1 -1
  105. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +5 -0
  106. package/packages/pm-guide-shell/package.json +1 -1
  107. package/packages/pm-kanban/package.json +1 -1
  108. package/packages/pm-lifecycle-hooks/package.json +1 -1
  109. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +6 -0
  110. package/packages/pm-linked-test-adapters/package.json +1 -1
  111. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -0
  112. package/packages/pm-search-advanced/package.json +1 -1
  113. package/packages/pm-templates/extensions/templates/index.ts +4 -0
  114. package/packages/pm-templates/package.json +1 -1
  115. package/packages/pm-todos/extensions/todos/index.ts +2 -0
  116. package/packages/pm-todos/package.json +1 -1
  117. package/packages/pm-vcs/extensions/vcs/index.ts +7 -0
  118. package/packages/pm-vcs/package.json +1 -1
  119. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  120. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  121. package/scripts/bundle-cli.mjs +17 -4
  122. package/sdk/public-surface.json +209 -29
  123. package/dist/cli-bundle/chunks/chunk-DL5M5J3V.js +0 -13
  124. package/dist/cli-bundle/chunks/chunk-HIUZVCMN.js +0 -5
  125. package/dist/cli-bundle/focused-chunks/chunk-27N23W6M.js +0 -31
  126. package/dist/cli-bundle/focused-chunks/chunk-3BNVU6LC.js +0 -8
  127. package/dist/cli-bundle/focused-chunks/chunk-6MLIRBLV.js +0 -5
  128. package/dist/cli-bundle/focused-chunks/chunk-6XYLENDV.js +0 -155
  129. package/dist/cli-bundle/focused-chunks/chunk-CP4K4WFS.js +0 -2
  130. package/dist/cli-bundle/focused-chunks/chunk-EBTNSFYE.js +0 -2
  131. package/dist/cli-bundle/focused-chunks/chunk-HC2OL2H2.js +0 -2
  132. package/dist/cli-bundle/focused-chunks/chunk-OGC4XSBC.js +0 -17
  133. package/dist/cli-bundle/focused-chunks/chunk-PKPOZXLL.js +0 -2
  134. package/dist/cli-bundle/focused-chunks/chunk-QQX5TDFT.js +0 -16
  135. package/dist/cli-bundle/focused-chunks/chunk-TEZIXMTH.js +0 -2
  136. package/dist/cli-bundle/focused-chunks/chunk-WEH6NSL6.js +0 -18
@@ -1,16 +0,0 @@
1
- import{a as si,e as di}from"./chunk-TEZIXMTH.js";import{b as ai,e as Zt,f as it,g as ci}from"./chunk-2JP7W7GO.js";import{a as zr,c as qr,d as Hr,g as Vr}from"./chunk-PKPOZXLL.js";import{C as Jr,D as he,F as te,G as ge,H as ye,I as Zr,L as ei,M as rt,N as ti,O as Yt,P as Xt,Q as Qt,R as ni,V as ri,W as Jt,da as ii,f as Yr,g as Xr,h as Vt,i as Qr,ma as _e,va as oi}from"./chunk-WEH6NSL6.js";import{Fa as wr,f as yr,xa as _r}from"./chunk-QDZUABWL.js";import{$a as Pr,A as Er,Aa as Dr,B as Cr,C as xr,D as Tr,E as Ir,Ha as Lr,I as xe,Ja as Or,Ma as qt,N as Fr,Pa as Ht,Qa as Nr,U as ee,V as D,W as S,X as tt,Y as U,Ya as T,Z as Ar,_a as $r,cb as jr,eb as Ur,ia as x,ib as Kr,ja as M,ka as K,kb as fe,l as F,mb as Br,na as Mr,nb as me,ob as pe,pb as nt,q as Ce,qa as V,qb as J,r as vr,rb as Gr,tb as Wr,u as Sr,ya as Rr}from"./chunk-6XYLENDV.js";import{$ as pr,Ea as gr,F as O,G as Qe,L as E,N as fr,O as $,P as zt,R as Je,Ra as P,Ta as B,U as Se,V as R,_ as mr,a as sr,h as dr,p as N,q as Xe,r as ur,t as lr,w as Wt}from"./chunk-2RI2FESN.js";import{i as br,k as Ze,m as ue,n as le,o as Ee,r as et,s as kr}from"./chunk-EBTNSFYE.js";import{E as de,J as Gt,K as Ve,R as ar,S as Ye,W as cr,Y as m,Z as p,aa as hr}from"./chunk-CP4K4WFS.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]="bccbd81b-988f-569d-8dbf-c0998d813953")}catch{}})();function ui(e,t){let n=qt(e),r=e.length>0?e[e.length-1].after_hash:Dr(),i=t===void 0?void 0:Rr(t),o=i===void 0?void 0:i===r,s=[...n.errors];return o===!1&&s.push("verify_failed:current_item_hash_mismatch"),{ok:s.length===0,entries:e.length,errors:s,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:i,current_matches_latest:o}}async function li(e,t,n={}){let r=E(n.cwd??process.cwd(),n.pmRoot);if(!await N($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await T(r),o=O(i,F()),s=await Vr(r,e,i,o.type_to_folder),a=await V(s.historyPath,s.id);if(a.length===0)throw new p(`No history exists for ${s.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let d=zr(t,a),c=Hr(qr(a,d.historyIndex),d),l=Lr(c,{schema:i.schema});if(l.metadata.id!==s.id)throw new p(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,m.GENERIC_FAILURE);let u=a[d.historyIndex];return{document:l,reconstructed:!0,as_of_version:d.historyIndex+1,as_of_timestamp:u.ts,target:d,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function j(e,t="--limit"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0)throw new p(`${t} must be a non-negative integer`,m.USAGE);return r}function ot(e,t="--priority"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0||r>4)throw new p(`${t} filter must be 0..4`,m.USAGE);return r}function fi(e,t,n="--type"){if(e===void 0)return;let r=Qe(e,t);if(!r)throw new p(`${n} filter must be one of ${t.types.join("|")}`,m.USAGE);return r}import Ea from"node:fs/promises";import gi 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]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch{}})();var en={version:1,aliases:{}};function st(e=[]){let t=new Set(xe),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let i of Object.keys(r.provenance_environment_keys??{}))n(i);for(let i of Object.keys(r.provenance_resolvers??{}))n(i);for(let i of r.provenance_unavailable_dimensions??[])n(i)}return[...t].sort()}function mi(e){if(e===void 0)return;let n=(typeof e=="string"?[e]:e).flatMap(r=>r.split(",")).map(r=>r.trim()).filter(r=>r.length>0);return n.length===0?void 0:new Set(n)}function tn(e,t){if(e.agent_harness?.trim())return{agent_harness:e.agent_harness,harness_source:"recorded"};let n=t.aliases[e.author];return n?{agent_harness:n,harness_source:"vocabulary"}:{harness_source:"unresolved"}}function Sa(e,t=xe){let n=new Set(t),r=new Map,i=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let o of i.flatMap(s=>s.split(","))){let s=o.indexOf("=");if(s<0)throw new p(`Provenance predicate must use dimension=value; received "${o.trim()}".`,m.USAGE,{code:"invalid_provenance_predicate"});let a=o.slice(0,s).trim().toLowerCase(),d=o.slice(s+1).trim();if(!n.has(a))throw new p(`Unknown provenance dimension "${a||o.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,m.USAGE,{code:"unknown_provenance_dimension"});if(d.length===0)throw new p(`Provenance predicate must use dimension=value; received "${o.trim()}".`,m.USAGE,{code:"invalid_provenance_predicate"});let c=r.get(a)??new Set;c.add(d),r.set(a,c)}return r}function at(e,t=en,n={}){let r=tn(e,t);return{...n.itemId===void 0?{}:{item_id:n.itemId},...n.version===void 0?{}:{version:n.version},ts:e.ts,op:e.op,author:e.author,...e.author_source===void 0?{}:{author_source:e.author_source},...r,vocabulary_version:t.version,...e.agent_instance===void 0?{}:{agent_instance:e.agent_instance},agent_provenance:e.agent_provenance??{},...e.message===void 0?{}:{message:e.message}}}function ct(e,t=en,n=xe){let r=mi(e.harness),i=mi(e.agentInstance),o=Sa(e,n);return s=>{let d=tn(s,t).agent_harness;if(r&&(!d||!r.has(d))||i&&!i.has(s.agent_instance??""))return!1;for(let[c,l]of o){let u=s.agent_provenance?.[c];if(!u||!l.has(u.value))return!1}return!0}}function dt(e,t=en,n=xe){let r=new Set(n),i=new Map,o=0;for(let s of e){for(let d of Object.keys(s.agent_provenance??{}))r.add(d);tn(s,t).agent_harness?o+=1:i.set(s.author,(i.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:o,unresolved:e.length-o,unresolved_authors:[...i].map(([s,a])=>({author:s,entries:a})).sort((s,a)=>a.entries-s.entries||s.author.localeCompare(a.author)).slice(0,20)},dimensions:[...r].sort().map(s=>{let a=0,d=0;for(let c of e){let l=c.agent_provenance?.[s];l===null?d+=1:l!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:d,legacy_missing:e.length-a-d}})}}(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]="49304d18-d722-5413-8e4d-4f2c3df4a1ca")}catch{}})();var Ca=20,xa=5,Ta=15,Ia="-24h";function Gp(e){let t={...e};return t.full===!0?(t.raw=!0,t.compact=!1):t.raw===!0&&t.compact===void 0&&(t.compact=!0),delete t.full,t}var Fa={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function nn(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new p(`${t} must not be empty`,m.USAGE);return n}function pi(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new p("Activity time bounds must not be empty",m.USAGE);let i=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return U(i,new Date(t),n)}function Aa(e,t,n){return!(e.ts.length===0&&(t||n)||t&&S(e.ts,t)<0||n&&S(e.ts,n)>=0)}function hi(e,t){return t===void 0?e:e.slice(0,t)}function Te(e,t=""){return typeof e=="string"?e:t}function Ma(e,t){return{...t,id:e,ts:Te(t.ts),author:Te(t.author,"unknown"),op:Te(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Te(t.before_hash),after_hash:Te(t.after_hash)}}function Ra(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let i=t.id.localeCompare(n.id);return i!==0?i:t.op.localeCompare(n.op)})}async function Da(e){try{return(await Ea.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(ur(t))return[];throw t}}function La(e){return e.raw!==!0&&e.compact!==!0&&e.provenance!==!0?"digest":e.provenance===!0?"provenance":e.compact===!0||e.raw===!0&&e.compact!==!1?"compact":"full"}function Oa(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Ta:n==="compact"?Ca:xa}function Na(e,t){let n=D(),r=t==="digest",i=pi(e.to??(r?n:void 0),n,"--to"),o=pi(e.from??(r?Ia:void 0),e.from===void 0&&r?i:n,"--from");if(o&&i&&S(o,i)>=0)throw new p("Activity --from must be before --to",m.USAGE);let s=te(e.limit);if(e.unbounded===!0&&s!==void 0)throw new p("Activity --unbounded cannot be combined with --limit",m.USAGE);return{id:nn(e.id,"Activity --id"),op:nn(e.op,"Activity --op"),author:nn(e.author,"Activity --author"),from:o,to:i,limit:Oa(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function $a(e){let t=E(process.cwd(),e.path);if(!await N($(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,m.NOT_FOUND);return{pmRoot:t,settings:await T(t)}}async function Pa(e){let t=O(e.settings,F()),n=await J(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await Pr({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=gi.join(e.pmRoot,"history");return await Ce({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function ja(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Aa(t,n.from,n.to)}async function Ua(e,t){let n=[];for(let r of await Da(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await V(gi.join(e,r),i);for(let s of o){let a=Ma(i,s);ja(s,a,t)&&n.push(a)}}return n}function Ka(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function Ba(e){let t=[...e.entries()].sort(([r,i],[o,s])=>s-i||r.localeCompare(o)),n=t.slice(0,4).map(([r,i])=>`${r}:${i}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function Ga(e,t){let n=new Map;for(let r of e){let i=n.get(r.id);if(i===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}i.eventCount+=1,S(r.ts,i.firstTs)<0&&(i.firstTs=r.ts),S(r.ts,i.lastTs)>0&&(i.lastTs=r.ts),i.operations.set(r.op,(i.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,i])=>{let o=t.get(r);return{id:r,type:o?.type??"unknown",status:o?.status??"unknown",title:(o?.title??"(item metadata unavailable)").slice(0,160),event_count:i.eventCount,first_ts:i.firstTs,last_ts:i.lastTs,operations:Ba(i.operations)}}).sort((r,i)=>S(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function Wa(e){let t=new Map;for(let i of e)t.set(i.op,(t.get(i.op)??0)+1);let n=[...t.entries()].sort((i,o)=>o[1]-i[1]||i[0].localeCompare(o[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((i,[,o])=>i+o,0)]),Object.fromEntries(r)}function za(e,t,n,r,i){if(e==="digest"){let s=Ga(t,r),a=hi(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let o=hi(t,n);return e==="compact"?{rows:{compact_activity:Ka(o)},compact:!0,totalRows:t.length,returnedRows:o.length}:e==="provenance"?{rows:{provenance_activity:o.map(i)},compact:!1,totalRows:t.length,returnedRows:o.length}:{rows:{activity:o},compact:!1,totalRows:t.length,returnedRows:o.length}}async function yi(e,t){let n=await $a(t),r=La(e),i=Na(e,r),o=await Pa(n),s=st(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,d=ct({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),c=Ra(await Ua(o.historyDir,i)).filter(d),l=za(r,c,i.limit,o.itemsById,f=>at(f,a,{itemId:f.id})),u=l.totalRows-l.returnedRows;return{...l.rows,compact:l.compact,projection:{mode:r,row_key:Fa[r]},omission_receipt:Ze("activity",r),count:l.returnedRows,total_count:l.totalRows,limit:i.limit??null,omitted_count:u,has_more:u>0,...r==="digest"?{activity_summary:{window:{from:i.from,to:i.to},event_count:c.length,item_count:l.totalRows,author_count:new Set(c.map(f=>f.author)).size,operation_counts:Wa(c)}}:{},...e.provenanceSummary===!0?{provenance_summary:dt(c,a,s)}:{},applied_bound:{kind:i.limit===void 0?"unbounded":"limit",source:i.limitSource,value:i.limit??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]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function rn(e,t){if(e===void 0)return;let n=[],r="";for(let s=0;s<e.length;s+=1){let a=e[s];if(a==="\\"){let d=e[s+1];if(d===","||d==="\\"){r+=d,s+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let i=n.map(s=>s.trim());if(i.some(s=>s.length===0))throw new p(`${t.label} requires at least one non-empty value`,m.USAGE);let o=i.map(s=>t.normalize?.(s)??s);return[...new Set(o)]}function G(e,t){let n=rn(e,t);return n===void 0?void 0:new Set(n)}function ut(e,t,n="--type"){let r=rn(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=Qe(o,t);if(!s)throw new p(`${n} filter token "${o}" must be one of ${t.types.join("|")}`,m.USAGE);return s});return new Set(i)}function lt(e,t="--priority"){let n=rn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>ot(r,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]="5b7b3eaf-a792-5f44-9981-8c82ce511070")}catch{}})();function _i(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function ft(e){return{isTerminal(t){return e.terminal_statuses.has(_i(t,e))},classify(t){let n=_i(t,e);return e.terminal_canceled_statuses.has(n)?"canceled":e.terminal_statuses.has(n)?"closed":e.blocked_statuses.has(n)?"blocked":e.draft_statuses.has(n)?"draft":n===e.open_status?"open":e.active_statuses.has(n)?"in_progress":"other"}}}function on(e){return R(e.acceptance_criteria)===void 0}function sn(e){return!Number.isFinite(e.estimated_minutes)}function vi(e,t){return t.isTerminal(e.status)?R(e.resolution)===void 0:!1}function qa(e){return R(e.reviewer)===void 0}function Ha(e){return R(e.risk)===void 0}function Va(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):R(e.confidence)===void 0}function Ya(e){return R(e.sprint)===void 0}function Xa(e){return R(e.release)===void 0}function Ie(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Qa(e,t,n){return[[t.acMissing,on(e)],[t.estimatesMissing,sn(e)],[t.resolutionMissing,vi(e,n)],[t.reviewerMissing,qa(e)],[t.riskMissing,Ha(e)],[t.confidenceMissing,Va(e)],[t.sprintMissing,Ya(e)],[t.releaseMissing,Xa(e)]].every(([i,o])=>i!==!0||o)}function Ja(e,t){return on(e)||sn(e)||vi(e,t)}function mt(e,t,n){return Ie(t)?!(!Qa(e,t,n)||t.metadataMissing&&!Ja(e,n)):!0}var an=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Za(e,t){switch(t){case"acceptance_criteria":return!on(e);case"estimated_minutes":return!sn(e);case"resolution":return R(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return R(e.parent)!==void 0}}function ec(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function tc(e,t){return t===0?100:Math.round(e/t*1e3)/10}function wi(){let e={};for(let t of an)e[t]={present:0,applicable:0,percent:100};return e}function bi(e,t,n){for(let r of an){if(!ec(t,r,n))continue;let i=e[r];i.applicable+=1,Za(t,r)&&(i.present+=1)}}function ki(e){for(let t of an){let n=e[t];n.percent=tc(n.present,n.applicable)}}function Qp(e,t){let n=wi(),r={};for(let i of e){bi(n,i,t);let o=r[i.type]??(r[i.type]=wi());bi(o,i,t)}ki(n);for(let i of Object.values(r))ki(i);return{overall:n,by_type:r}}var nc={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function rc(e){return nc[e]}function ic(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function oc(e,t,n){switch(t){case"assignee":return[R(e.assignee)??null];case"parent":return[R(e.parent)??null];case"type":return[R(e.type)??null];case"status":return[R(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=n.tagPrefix?.trim(),o=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!r||s.startsWith(r)));return o.length>0?o:[null]}}}function Jp(e,t,n,r={}){let i=new Map,o=0;for(let a of e){o+=1;let d=n.classify(a.status);for(let c of oc(a,t,r)){let l=c??"\0empty",u=i.get(l);u||(u={label:c??rc(t),key:c,buckets:ic(),total:0},i.set(l,u)),u.buckets[d]+=1,u.total+=1}}let s=[...i.values()].sort((a,d)=>d.total!==a.total?d.total-a.total:a.key===null?1:d.key===null?-1:a.label.localeCompare(d.label));return{dimension:t,rows:s,total_items:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var we=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function ne(e){return Array.isArray(e)&&e.length>0}function sc(e){return typeof e=="string"&&e.trim().length>0}function ac(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let n=t.command;return typeof n=="string"&&n.trim().length>0}):!1}function Ei(e,t){switch(t){case"notes":return ne(e.notes);case"learnings":return ne(e.learnings);case"files":return ne(e.files);case"docs":return ne(e.docs);case"tests":return ne(e.tests);case"comments":return ne(e.comments);case"deps":return ne(e.dependencies);case"body":return sc(e.body);case"linked_command":return ac(e.tests)}}function pt(e){return we.some(t=>e[t]!==void 0)}function ht(e,t){for(let n of we){let r=t[n];if(r===void 0)continue;let i=Ei(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function Ci(e){return we.some(t=>t!=="body"&&e[t]!==void 0)}function xi(e){return e.body!==void 0}function Si(e,t){return t===0?100:Math.round(e/t*1e3)/10}function cc(){let e={};for(let t of we)e[t]={present:0,total:0,percent:100};return e}function eh(e){let t=cc(),n=e.length;for(let s of e)for(let a of we)Ei(s,a)&&(t[a].present+=1);for(let s of we)t[s].total=n,t[s].percent=Si(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:Si(i,n)};return{total_items:n,fields:t,body_populated:r,empty_body:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ec0c4c57-e3c2-54b3-bcf4-b4ab3b1d964e")}catch{}})();var gt=e=>({acMissing:e.filterAcMissing===!0,estimatesMissing:e.filterEstimatesMissing===!0,resolutionMissing:e.filterResolutionMissing===!0,metadataMissing:e.filterMetadataMissing===!0,reviewerMissing:e.filterReviewerMissing===!0,riskMissing:e.filterRiskMissing===!0,confidenceMissing:e.filterConfidenceMissing===!0,sprintMissing:e.filterSprintMissing===!0,releaseMissing:e.filterReleaseMissing===!0}),Ti=[{field:"notes",presentKey:"hasNotes",absentKey:"noNotes",presentFlag:"--has-notes",absentFlag:"--no-notes"},{field:"learnings",presentKey:"hasLearnings",absentKey:"noLearnings",presentFlag:"--has-learnings",absentFlag:"--no-learnings"},{field:"files",presentKey:"hasFiles",absentKey:"noFiles",presentFlag:"--has-files",absentFlag:"--no-files"},{field:"docs",presentKey:"hasDocs",absentKey:"noDocs",presentFlag:"--has-docs",absentFlag:"--no-docs"},{field:"tests",presentKey:"hasTests",absentKey:"noTests",presentFlag:"--has-tests",absentFlag:"--no-tests"},{field:"comments",presentKey:"hasComments",absentKey:"noComments",presentFlag:"--has-comments",absentFlag:"--no-comments"},{field:"deps",presentKey:"hasDeps",absentKey:"noDeps",presentFlag:"--has-deps",absentFlag:"--no-deps"},{field:"body",presentKey:"hasBody",absentKey:"emptyBody",presentFlag:"--has-body",absentFlag:"--empty-body"},{field:"linked_command",presentKey:"hasLinkedCommand",absentKey:"noLinkedCommand",presentFlag:"--has-linked-command",absentFlag:"--no-linked-command"}],Me=e=>{let t=Ti.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new p(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,m.USAGE);return Object.fromEntries(Ti.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Ii=["priority","deadline","updated_at","created_at","title","parent"],Fi=["asc","desc"],dc=["id","title","status","type","priority","parent","updated_at"],uc=["id","status","type","title"],Ch={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},lc=["tree_depth","tree_parent","tree_children","tree_title"],Di=new Set(Kr);function fc(e,t,n){let r=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,i=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,o={status:t?"unchecked":r+i>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:i};if(n&&o.status==="partial")throw new p(`List source is incomplete: ${r} item document(s) and ${i} item directory/directories could not be read.`,m.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return o}function mc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var pc=[{key:"hasNotes",summaryKey:"has_notes"},{key:"hasLearnings",summaryKey:"has_learnings"},{key:"hasFiles",summaryKey:"has_files"},{key:"hasDocs",summaryKey:"has_docs"},{key:"hasTests",summaryKey:"has_tests"},{key:"hasComments",summaryKey:"has_comments"},{key:"hasDeps",summaryKey:"has_deps"},{key:"hasBody",summaryKey:"has_body"},{key:"hasLinkedCommand",summaryKey:"has_linked_command"},{key:"noNotes",summaryKey:"no_notes"},{key:"noLearnings",summaryKey:"no_learnings"},{key:"noFiles",summaryKey:"no_files"},{key:"noDocs",summaryKey:"no_docs"},{key:"noTests",summaryKey:"no_tests"},{key:"noComments",summaryKey:"no_comments"},{key:"noDeps",summaryKey:"no_deps"},{key:"emptyBody",summaryKey:"empty_body"},{key:"noLinkedCommand",summaryKey:"no_linked_command"}],hc=[{key:"filterReviewerMissing",summaryKey:"filter_reviewer_missing"},{key:"filterRiskMissing",summaryKey:"filter_risk_missing"},{key:"filterConfidenceMissing",summaryKey:"filter_confidence_missing"},{key:"filterSprintMissing",summaryKey:"filter_sprint_missing"},{key:"filterReleaseMissing",summaryKey:"filter_release_missing"}];function Li(e,t){for(let n of pc)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Oi(e,t){for(let n of hc)t[n.key]===!0&&(e[n.summaryKey]=!0)}function cn(e,t,n){for(let r of n){let i=t[r.optionKey];i!==void 0&&(e[r.summaryKey]=r.normalize?r.normalize(i):i)}}function Re(e){let t={};return Li(t,e),t}function De(e){let t={};return Oi(t,e),t}var gc=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"}],yc=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"limit",summaryKey:"limit"},{optionKey:"offset",summaryKey:"offset"},{optionKey:"includeBody",summaryKey:"include_body"},{optionKey:"compact",summaryKey:"compact"},{optionKey:"fields",summaryKey:"fields"}],_c=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],wc="-7d";function Ni(e){let{filtersStatus:t,options:n,treeEnabled:r,treeDepth:i,sortField:o,sortOrder:s,runtimeFieldFilters:a}=e,d={};return t!==null&&(d.status=t),n.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency"),cn(d,n,gc),Pi(d,n),n.filterAcMissing===!0&&(d.filter_ac_missing=!0),n.filterEstimatesMissing===!0&&(d.filter_estimates_missing=!0),n.filterResolutionMissing===!0&&(d.filter_resolution_missing=!0),n.filterMetadataMissing===!0&&(d.filter_metadata_missing=!0),Oi(d,n),Li(d,n),n.limit!==void 0&&(d.limit=n.limit),n.offset!==void 0&&(d.offset=n.offset),n.includeBody===!0&&(d.include_body=!0),n.fields!==void 0&&(d.fields=n.fields),r&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),o!==void 0&&(d.sort=o,d.order=s),mc(a)&&(d.runtime_filters=a),d}function dn(e,t,n){let r=K(e.status,n),i=K(t.status,n);if(r!==i)return r?1:-1;let o=e.priority-t.priority;if(o!==0)return o;let s=S(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function bc(e,t){return[...e].sort((n,r)=>dn(n,r,t))}function Ai(e,t){if(e!==void 0)return U(e,new Date,t)}function Fe(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return U(n,new Date,t)}function $i(e){let t=e.updatedAfter!=null&&String(e.updatedAfter).trim().length>0;if([e.today===!0,e.recent===!0,t].filter(r=>r).length>1)throw new p("Choose only one updated_at window: --today, --recent, or --updated-after.",m.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?Fe(wc,"recent"):Fe(e.updatedAfter,"updated-after")}function Pi(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function ji(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new p("--ids requires at least one non-empty item ID",m.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new p("--ids requires at least one non-empty item ID",m.USAGE);return new Set(n)}function un(e){if(e===void 0)return;let t=String(e).trim(),n=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(n)||n<0)throw new p("Offset filter must be a non-negative integer",m.USAGE);return n}function Ui(e){if(e===void 0)return;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("List --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function Ki(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,i=Ui(e.fields);if(Number(t)+Number(n)+Number(r)+ +(i!==void 0)>1)throw new p("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE);return r?{mode:"full",fields:[]}:n?{mode:"brief",fields:[...uc]}:t?{mode:"compact",fields:[...dc]}:i?{mode:"fields",fields:i}:{mode:"full",fields:[]}}function be(e){return e.startsWith("item.")?e.slice(5):e}function kc(e,t){if(e.mode!=="fields")return;let n=new Set([...Ye,"body",...lc,...t]),r=e.fields.filter(i=>!n.has(be(i)));if(r.length>0)throw new p(`Unknown list --fields value(s): ${r.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"]})}var vc=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Bi(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=vc.get(t);if(n)return n;if(!Ii.includes(t))throw new p(`Sort field must be one of ${Ii.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function Gi(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!Fi.includes(t))throw new p(`Sort order must be one of ${Fi.join("|")}`,m.USAGE);return t}function Sc(e){return j(e,"--tree-depth")}function Wi(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new p("Assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new p(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function Mi(e,t){return he(e,t,{strict:!0})}function zi(e){return G(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Ec(e,t,n){let r=zi(t);if(r===void 0)return;let i=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),o=[...r].filter(s=>!i.has(s));o.length>0&&n.push(`unknown_tags:${o.join(",")}`)}function Cc(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(e!==void 0&&t==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE)}function xc(e,t,n,r){let i=G(t.assignee,{label:"--assignee"}),o=Wi(t.assigneeFilter);Cc(i,o);let s=gt(t),a=Me(t);return{idsFilter:ji(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:ut(t.type,n),tagFilters:zi(t.tag),priorityFilter:lt(t.priority),deadlineBefore:Ai(t.deadlineBefore,"deadline-before"),deadlineAfter:Ai(t.deadlineAfter,"deadline-after"),updatedAfter:$i(t),updatedBefore:Fe(t.updatedBefore,"updated-before"),createdAfter:Fe(t.createdAfter,"created-after"),createdBefore:Fe(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:G(t.sprint,{label:"--sprint"}),releaseFilter:G(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:Ie(s),lifecycleClassifier:ft(r),contentFieldFilters:a,contentFiltersActive:pt(a)}}function Tc(e,t,n){return Ic(e,t,n)&&Fc(e,t)&&Ac(e,t)&&Mc(e,t)}function Ic(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&K(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(i=>i.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Fc(e,t){return tt(e,t)}function Ac(e,t){return t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee?!1:t.assigneeFilter===void 0||e.assignee!==void 0&&t.assigneeFilter.has(e.assignee)}function Mc(e,t){return t.parentFilter!==void 0&&!t.treeEnabled&&e.parent!==t.parentFilter||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))?!1:t.releaseFilter===void 0||e.release!==void 0&&t.releaseFilter.has(e.release)}function Rc(e,t,n,r){return!(!Tc(e,t,n)||t.missingMetadataActive&&!mt(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!ht(e,t.contentFieldFilters)||!ye(e,r))}function qi(e,t,n,r,i,o){let s=xc(t,n,r,i);return e.filter(a=>Rc(a,s,i,o))}function Ae(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Hi(e,t,n){let r=e,i=typeof r.title=="string"?r.title:"",o=Ae(typeof r.parent=="string"?r.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:o,tree_children:n,tree_title:`${" ".repeat(t)}${i}`}}function Vi(e,t,n){let r=new Map,i=new Map;for(let c of e){r.set(c.id,c);let l=Ae(c.parent);if(!l)continue;let u=i.get(l);u?u.push(c):i.set(l,[c])}let o=t?[...i.get(t)??[]]:e.filter(c=>{let l=Ae(c.parent);return!l||!r.has(l)}),s=[],a=new Set,d=(c,l)=>{if(a.has(c.id))return;a.add(c.id);let u=i.get(c.id)??[];if(s.push(Hi(c,l,u.length)),!(n!==void 0&&l>=n))for(let f of u)d(f,l+1)};for(let c of o)d(c,0);return s}function Yi(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function Xi(e,t){return e===t?0:e===null?1:t===null?-1:S(e,t)}function Qi(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return Xi(e.deadline??null,t.deadline??null);case"updated_at":return S(e.updated_at,t.updated_at);case"created_at":return S(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Yi(e.parent??null,t.parent??null);default:return 0}}function Ji(e,t,n,r){return t?[...e].sort((i,o)=>{let s=Qi(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=dn(i,o,r);return n==="desc"?-a:a}):bc(e,r)}function Zi(e,t,n=!1){let r=be(t.trim());if(r.length===0)return null;let i=e;return n&&r==="title"&&typeof i.tree_title=="string"?i.tree_title:Object.prototype.hasOwnProperty.call(i,r)?i[r]??null:null}function ln(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=Zi(r,o,n);return i})}function eo(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function to(e,t){if(e.noTruncate!==!0)return j(e.limit)??(t>=1e4?20:void 0)}function Dc(e,t,n){return t.after===void 0?un(t.offset)??0:et(e,t.after,n,r=>r.id)}function no(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function Lc(e,t){let n=E(process.cwd(),t.path);if(!await N($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await T(n),i=P(r.schema),o=B(r.schema),s=Ki(e);return kc(s,eo(o.definitions)),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:ge(e,o,"list"),typeRegistry:O(r,F()),projection:s}}async function Oc(e,t,n){let r=t.projection.fields.some(d=>be(d)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(d=>Di.has(be(d))),o=Me(e),s=Ci(o),a=xi(o);return e.includeBody||r||a?await Gr(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await nt(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await J(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function Nc(e){let t=Bi(e.sort),n=Gi(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new p("List --tree-depth requires --tree",m.USAGE);if(!t&&e.order!==void 0)throw new p("List --order requires --sort",m.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?Sc(e.treeDepth):void 0,parentRoot:r?Ae(e.parent):void 0}}function $c(e,t,n){let r=Mi(t.status,n),i=r??Mi(e,n),o=Jr(t.status),s=r||o?{...t,excludeTerminal:!1}:t,a=o?"all":i===void 0?s.excludeTerminal===!0?null:"all":i.length===1?i[0]:i;return{resolvedStatus:i,explicitAllStatuses:o,effectiveOptions:s,filtersStatus:a}}function Pc(e,t,n,r,i){if(t.after!==void 0&&t.offset!==void 0)throw new p("List --after cannot be combined with --offset.",m.USAGE);let o=to(t,e.length),s=Dc(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),d=ln(a,n,r),c=e.length,l=a.length>0&&s+a.length<c,u=l&&a.length>0?Ee(i,a[a.length-1].id,s+a.length-1):void 0;return{projected:d,totalMatched:c,pageExtras:no(o,l,u)}}function ro(e,t,n){return le("list",{status:e,options:ue(t,yr),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function jc(e){let{options:t,runtime:n,statusSelection:r,ordering:i}=e,o=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","noTruncate"]),s=[n.projection.mode==="full",n.projection.fields.some(y=>{let g=be(y);return g==="body"||Di.has(g)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,i.treeEnabled,i.sortField!==void 0,s,vr(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([y,g])=>g!==void 0&&!o.has(y))].includes(!0))return null;let d=await fe(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!d)return null;let c=j(t.limit),l=un(t.offset)??0,u=await Ur({pmRoot:n.pmRoot,expectedSourceCursor:d.source_cursor,query:{statuses:r.resolvedStatus,excludeStatuses:r.resolvedStatus===void 0&&r.effectiveOptions.excludeTerminal===!0?[...n.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...n.statusRegistry.terminal_statuses],limit:c,offset:l}});if(!u)return null;let f=u.items.length>0&&l+u.items.length<u.total,h=f?Ee(ro(r.filtersStatus,t,i),u.items.at(-1).id,l+u.items.length-1):void 0;return{projected:ln(u.items,n.projection,!1),totalMatched:u.total,pageExtras:no(c,f,h)}}function Uc(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:i,treeDepth:o,sortField:s,sortOrder:a,runtimeFieldFilters:d}=e,c={};t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency");let l=n;for(let u of yc){let f=l[u.optionKey];f!=null&&(c[u.summaryKey]=f)}for(let u of _c)l[u.key]===!0&&(c[u.summaryKey]=!0);return Object.assign(c,De(n),Re(n)),Pi(c,n),r&&(c.no_truncate=!0),i&&(c.tree=!0,o!==void 0&&(c.tree_depth=o)),s!==void 0&&(c.sort=s,c.order=a),c.runtime_filters=d,c}async function Y(e,t,n){let r=await Lc(t,n),i=[],o=Nc(t),s=$c(e,t,r.statusRegistry),a=t.noTruncate===!0,d=await jc({options:t,runtime:r,statusSelection:s,ordering:o}),c=d;if(!c){let g=await Oc(t,r,i);Ec(g,t.tag,i);let k=qi(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),_=t.dependencyBlocked===!0?(()=>{let I=it(g,r.statusRegistry);return k.filter(L=>I.has(L.id.trim().toLowerCase()))})():k,w=Ji(_,o.sortField,o.sortOrder,r.statusRegistry),v=o.treeEnabled?Vi(w,o.parentRoot,o.treeDepth):w;c=Pc(v,t,r.projection,o.treeEnabled,ro(s.filtersStatus,t,o))}let l=D(),u=[...new Set(i)].sort((g,k)=>g.localeCompare(k)),f=fc(u,d!==null,t.strictRead===!0),h=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let g=Ni({filtersStatus:s.filtersStatus,options:t,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:c.projected,count:c.projected.length,total:c.totalMatched,...c.pageExtras,completeness:f,filters:g,projection:{mode:"compact",fields:h},...u.length>0?{warnings:u}:{}}}return{items:c.projected,count:c.projected.length,total:c.totalMatched,...c.pageExtras,completeness:f,filters:Uc({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:h},sorting:{sort:o.sortField??"default",order:o.sortField?o.sortOrder:"asc"},now:l,...u.length>0?{warnings:u}:{}}}var xh={applyFilters:qi,buildCompactListFilterSummary:Ni,buildContentFilterEcho:Re,buildGovernanceMissingFilterEcho:De,resolveContentFieldFilters:Me,resolveMissingMetadataFilters:gt,compareBySortField:Qi,compareDefaultSort:dn,compareNullableString:Yi,compareNullableTimestamp:Xi,normalizeProjectionField:be,parseAssigneeFilter:Wi,parseFieldSelectors:Ui,parseIdsFilter:ji,parseOffset:un,parseProjectionConfig:Ki,resolveListUpdatedAfter:$i,resolveListPageLimit:to,parseSortField:Bi,parseSortOrder:Gi,orderItemsAsTree:Vi,projectListItems:ln,readListFieldValue:Zi,runtimeMetadataKeysForProjection:eo,sortItems:Ji,trimNonEmpty:Ae,withTreeMetadata:Hi};(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]="ab1153b1-2d91-58a5-9b4a-1d9c5f35a54a")}catch{}})();var Kc=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],Bc=["filterAcMissing","filterEstimatesMissing","filterResolutionMissing","filterMetadataMissing","filterReviewerMissing","filterRiskMissing","filterConfidenceMissing","filterSprintMissing","filterReleaseMissing","hasNotes","hasLearnings","hasFiles","hasDocs","hasTests","hasComments","hasDeps","hasBody","hasLinkedCommand","noNotes","noLearnings","noFiles","noDocs","noTests","noComments","noDeps","emptyBody","noLinkedCommand"];function Gc(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function Ih(e,t,n={}){let r=n.includePagination!==!1;return[t,...Kc.map(o=>e?.[o]),...r?[e?.limit,e?.offset]:[]].some(Gc)||Bc.some(o=>e?.[o]===!0)}function io(e){return{type:e.type,tag:e.tag,priority:e.priority,deadlineBefore:e.deadlineBefore,deadlineAfter:e.deadlineAfter,assignee:e.assignee,assigneeFilter:e.assigneeFilter,parent:e.parent,sprint:e.sprint,release:e.release}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="56486369-9164-58d3-ac34-46d57859f96d")}catch{}})();var oo=["parent","type","priority","status","assignee","tags","sprint","release"];function ao(e,t){let n=he(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function co(e,t=["estimate","estimated_minutes","priority"]){let n=e.sum?.trim(),r=e.avg?.trim(),i=n&&n.length>0?n:void 0,o=r&&r.length>0?r:void 0;if(!i&&!o)return null;if(i&&o&&i!==o)throw new p("Aggregate --sum and --avg must target the same numeric field",m.USAGE);let s=i??o;if(!t.includes(s))throw new p(`Aggregate numeric field "${s}" is not registered. Allowed: ${t.join(", ")}`,m.USAGE);return{field:s,sum:i!==void 0,avg:o!==void 0}}function uo(e){let t=e?.trim()??"status";if(t.length===0)throw new p("--group-by requires at least one field name",m.USAGE);let n=oi(t);if(n.length===0)throw new p("--group-by requires a comma-separated list of fields",m.USAGE);for(let r of n)if(!oo.includes(r))throw new p(`Aggregate group fields must be one of ${oo.join("|")}; received "${r}"`,m.USAGE);return n}function lo(e){let t=[...new Set(e.map(n=>n.trim().toLowerCase()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length===0?null:t.join(",")}function fo(e,t){switch(e){case"parent":return t.parent??null;case"type":return t.type;case"priority":return t.priority;case"status":return t.status;case"assignee":return t.assignee??null;case"tags":return lo(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function mo(e,t){let n=e??null,r=t??null;return n===r?0:n===null?1:r===null?-1:typeof n=="number"&&typeof r=="number"?n-r:String(n).localeCompare(String(r))}function po(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var Wc={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function so(e,t){return t==null||t===""?Wc[e]:String(t)}function zc(e,t){return e.length===1?so(e[0],t[e[0]]):e.map(n=>`${n}=${so(n,t[n])}`).join(" | ")}function ho(e,t,n){for(let r of n){let i=mo(e.group[r],t.group[r]);if(i!==0)return i}return 0}function go(e,t){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){let i=r.trim();if(i.length===0)return null;let o=Number(i);if(Number.isFinite(o))return o}return null}function yo(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function fn(e,t,n){let r=x(String(t),n)??t;if(r===n.open_status){e.open_count+=1;return}if(r==="in_progress"||n.active_statuses.has(r)&&r!==n.open_status){e.in_progress_count+=1;return}if(n.terminal_done_statuses.has(r)||r===n.close_status){e.closed_count+=1;return}e.other_count+=1}function qc(e,t){return{row:{group:e,count:1},numeric_count:t===null?0:1,numeric_sum:t??0,null_count:t===null?1:0,open_count:0,in_progress_count:0,closed_count:0,other_count:0}}function Hc(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function Vc(e){e.accumulator.row.count+=1,e.includeCompletion&&fn(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&Hc(e.accumulator,e.numericValue)}function Yc(e,t){let n={};for(let r of e)n[r]=fo(r,t);return n}function Xc(e,t,n,r){let i={...e.row,group_label:zc(t,e.row.group)};return n&&(i.open=e.open_count,i.in_progress=e.in_progress_count,i.closed=e.closed_count,i.other=e.other_count,i.completion_pct=yo(e.closed_count,e.row.count)),r!==null&&(i.null_count=e.null_count,r.sum&&(i.sum=e.numeric_sum),r.avg&&(i.avg=e.numeric_count===0?null:e.numeric_sum/e.numeric_count)),i}function Qc(e){return{group_by:e.groupBy,count:!0,completion:e.includeCompletion,include_unparented:e.includeUnparented,status:e.status?.[0]??null,status_values:e.status,type:e.options.type??null,tag:e.options.tag??null,priority:e.options.priority??null,deadline_before:e.options.deadlineBefore??null,deadline_after:e.options.deadlineAfter??null,assignee:e.options.assignee??null,assignee_filter:e.options.assigneeFilter??null,parent:e.options.parent??null,sprint:e.options.sprint??null,release:e.options.release??null,...e.numericAggregation!==null?{sum:e.options.sum??null,avg:e.options.avg??null,numeric_field:e.numericAggregation.field}:{}}}async function Dh(e,t){if(e.count===!1)throw new p("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let n=E(process.cwd(),t.path),r=await T(n),i=P(r.schema),o=["estimate","estimated_minutes","priority",...B(r.schema).definitions.filter(_=>_.type==="number").map(_=>_.metadata_key)],s=uo(e.groupBy),a=ao(e.status,i),d=co(e,[...new Set(o)].sort((_,w)=>_.localeCompare(w))),c=e.completion===!0,l=e.includeUnparented===!0,u=await Y(void 0,{...io(e),status:e.status},t),f=new Map,h=0,y=0;for(let _ of u.items){let w=_,v=Yc(s,w);if(s.includes("parent")&&v.parent===null&&!l){h+=1;continue}let I=po(s,v),L=f.get(I),C=d===null?null:go(w,d.field);if(L)Vc({accumulator:L,item:w,statusRegistry:i,includeCompletion:c,numericAggregation:d,numericValue:C});else{let A=qc(v,C);c&&fn(A,w.status,i),f.set(I,A)}y+=1}let g=[...f.values()].map(_=>Xc(_,s,c,d)).sort((_,w)=>ho(_,w,s)),k=u.warnings&&u.warnings.length>0?u.warnings:void 0;return{groups:g,count:g.length,totals:{items_considered:u.items.length,items_grouped:y,items_skipped_unparented:h},filters:Qc({groupBy:s,includeCompletion:c,includeUnparented:l,status:a,options:e,numericAggregation:d}),now:D(),...k?{warnings:k}:{}}}var Lh={buildGroupKey:po,compareAggregateRows:ho,compareNullableGroupValue:mo,completionPct:yo,normalizeTagGroupValue:lo,parseGroupBy:uo,parseNumericAggregation:co,parseStatus:ao,readNumericAggregateValue:go,resolveGroupValue:fo,updateCompletionCounts:fn};import{encode as Jc}from"@toon-format/toon";(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]="f1677c6e-872e-5c42-ae3d-f73f4ec73616")}catch{}})();var mn=["agenda","day","week","month"],pn=["markdown","toon","json"],Zc=["sun","mon","tue","wed","thu","fri","sat"],ed=365,td=365,bo=28,nd=1e3;function hn(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new p(`${t} must be a non-negative integer`,m.USAGE);return n}function rd(e){if(!e)return new Set(["deadlines","reminders","events"]);let t=e.trim().toLowerCase();if(t==="all")return new Set(["deadlines","reminders","events"]);let n=t.split(/[|,]/).map(i=>i.trim()).filter(i=>i.length>0);if(n.length===0)throw new p("Calendar include filter must not be empty",m.USAGE);let r=new Set;for(let i of n){if(i==="deadlines"||i==="deadline"){r.add("deadlines");continue}if(i==="reminders"||i==="reminder"){r.add("reminders");continue}if(i==="events"||i==="event"||i==="scheduled"){r.add("events");continue}throw new p("Calendar include filter must be deadlines|reminders|events|scheduled|all",m.USAGE)}return r}function ko(e,t){let n;for(let r of t){let i=sr(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function id(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!mn.includes(t)){let n=ko(t,mn);throw new p(`Calendar view must be one of ${mn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function od(e){if(!e)return;let t=e.trim().toLowerCase();if(!pn.includes(t)){let n=ko(t,pn);throw new p(`Calendar format must be one of ${pn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function Uh(e,t){let n=od(e.format);if(t.json&&n&&n!=="json")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?"json":n??"markdown"}function sd(e,t){if(e===void 0)return;let n=x(e,t);if(!n){let r=t.definitions.map(i=>i.id);throw new p(`Calendar status filter must be one of ${r.join("|")}`,m.USAGE)}return n}function ad(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new p("Calendar assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new p(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function yt(e){return new Date(e).toISOString().slice(0,10)}function vo(e,t){if(!t||t==="UTC")return yt(e);try{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date(e)),r=n.find(s=>s.type==="year")?.value,i=n.find(s=>s.type==="month")?.value,o=n.find(s=>s.type==="day")?.value;if(r&&i&&o)return`${r}-${i}-${o}`}catch{}return yt(e)}function wn(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function X(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function So(e){let t=new Date(wn(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return X(t.toISOString(),r)}function cd(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function dd(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function ud(e,t){return S(e,t)>=0?e:t}function _o(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function wo(e,t){e.set(t,(e.get(t)??0)+1)}function ld(e){if(!e)return null;let t=[`freq=${e.freq}`];if(e.interval!==void 0&&t.push(`interval=${e.interval}`),e.count!==void 0&&t.push(`count=${e.count}`),e.until&&t.push(`until=${e.until}`),e.by_weekday&&e.by_weekday.length>0){let n=[...e.by_weekday].sort((r,i)=>de(r)-de(i));t.push(`by_weekday=${n.join("|")}`)}if(e.by_month_day&&e.by_month_day.length>0){let n=[...e.by_month_day].sort((r,i)=>r-i);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,i)=>r.localeCompare(i));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function Eo(e,t,n,r){let i=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(i.getUTCFullYear()!==e||i.getUTCMonth()!==t||i.getUTCDate()!==n))return i.toISOString()}function Co(e){return Zc[new Date(e).getUTCDay()]}function fd(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function md(e){let t=new Set;for(let n of e??[]){let r=fd(n);r&&t.add(r)}return t}function pd(e,t,n,r,i){let o=e??X(n,-(r??td)),s=t??X(e??n,i??ed);return{start:o,end:S(s,o)>0?s:X(o,1)}}function hd(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[Co(e)],o=t.by_month_day!==void 0?[...t.by_month_day]:[new Date(e).getUTCDate()];return{startAt:e,startDate:new Date(e),window:n,maxOccurrences:r??nd,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:md(t.exdates),weekdayFilter:t.by_weekday!==void 0?new Set(t.by_weekday):void 0,monthDayFilter:t.by_month_day!==void 0?new Set(t.by_month_day):void 0,sortedWeekdays:[...new Set(i)].sort((s,a)=>de(s)-de(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function _t(e,t){return S(t,e.startAt)<0?"continue":e.until&&S(t,e.until)>0||S(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,S(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function wt(e,t){let n=Co(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function gd(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(wt(e,t)&&_t(e,t)==="stop");n+=1)t=X(t,e.interval);return e.occurrences}function yd(e,t,n){let r=de(n),i=X(t,r),o=new Date(i);return new Date(Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate(),e.startDate.getUTCHours(),e.startDate.getUTCMinutes(),e.startDate.getUTCSeconds(),e.startDate.getUTCMilliseconds())).toISOString()}function _d(e){let t=So(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=X(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=yd(e,r,i);if(wt(e,o)&&_t(e,o)==="stop")return e.occurrences}}return e.occurrences}function wd(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let i=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let o of e.sortedMonthDays){let s=Eo(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!wt(e,s))&&_t(e,s)==="stop")return e.occurrences}}return e.occurrences}function bd(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let i=t+r*e.interval;for(let o of e.sortedMonthDays){let s=Eo(i,n,o,e.startDate);if(!(!s||!wt(e,s))&&_t(e,s)==="stop")return e.occurrences}}return e.occurrences}function kd(e,t,n,r){let i=hd(e,t,n,r);return t.freq==="daily"?gd(i):t.freq==="weekly"?_d(i):t.freq==="monthly"?wd(i):bd(i)}function xo(e){return[...e].sort((t,n)=>{let r=S(t.at,n.at);if(r!==0)return r;let i=t.item_priority-n.item_priority;if(i!==0)return i;let o=t.item_id.localeCompare(n.item_id);if(o!==0)return o;let s=t.kind.localeCompare(n.kind);if(s!==0)return s;let a=String(t.event_title).localeCompare(String(n.event_title));return a!==0?a:String(t.reminder_text).localeCompare(String(n.reminder_text))})}function bn(e){return{item_id:e.id,item_title:e.title,item_type:e.type,item_status:e.status,item_priority:e.priority,item_assignee:e.assignee??null,item_deadline:e.deadline??null,item_tags:e.tags}}function vd(e){return e.deadline?{at:e.deadline,date:yt(e.deadline),kind:"deadline",reminder_text:null,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...bn(e),item_deadline:e.deadline}:null}function Sd(e){return(e.reminders??[]).map(t=>({at:t.at,date:yt(t.at),kind:"reminder",reminder_text:t.text,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...bn(e)}))}function Ed(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Cd(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function xd(e,t,n,r){let i=ld(t.recurrence),o=Ed(t.start_at,t.end_at);return(t.recurrence?kd(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):vo(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Cd(a,t,o),event_location:t.location??null,event_all_day:t.all_day??null,event_timezone:t.timezone??null,event_recurring:!!t.recurrence,event_recurrence_rule:i,...bn(e)}))}function Td(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?vd(o):null;s&&i.push(s),n.has("reminders")&&i.push(...Sd(o));for(let a of n.has("events")?o.events??[]:[])i.push(...xd(o,a,t,r))}return xo(i)}function Id(e,t,n,r,i){let o=fi(t.type,n),s=t.tag?.trim().toLowerCase(),a=ot(t.priority),d=sd(t.status,r),c=t.assignee?.trim(),l=ad(t.assigneeFilter),u=t.sprint?.trim(),f=t.release?.trim();if(c&&(c.toLowerCase()==="none"||c.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(c!==void 0&&l==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE);return e.filter(h=>Fd(h,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:d,assigneeFilter:c,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:i}))}function Fd(e,t){return Ad(e,t)&&Md(e,t)&&ye(e,t.runtimeFieldFilters)}function Ad(e,t){return!(t.typeFilter&&e.type!==t.typeFilter||t.tagFilter&&!e.tags.some(n=>n.trim().toLowerCase()===t.tagFilter)||t.priorityFilter!==void 0&&e.priority!==t.priorityFilter||t.statusFilter&&e.status!==t.statusFilter)}function Md(e,t){return!(t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee||t.assigneeFilter!==void 0&&e.assignee!==t.assigneeFilter||t.sprintFilter!==void 0&&e.sprint!==t.sprintFilter||t.releaseFilter!==void 0&&e.release!==t.releaseFilter)}function Rd(e,t,n){return!(t&&S(e.at,t)<0||n&&S(e.at,n)>=0)}function gn(e,t,n){return e.trim().toLowerCase()==="today"?wn(t):U(e,new Date(t),n)}function Dd(e,t,n){let r=t.date?gn(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?gn(t.from,n,"--from"):void 0,a=t.to?gn(t.to,n,"--to"):void 0;if(s&&a&&S(s,a)>=0)throw new p("Calendar --from must be before --to",m.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new p("--from and --to are only supported for --view agenda",m.USAGE);if(e==="agenda")return Ld(r,t,n,i,o,s,a);if(e==="day"){let c=wn(r);return yn(r,n,i,o,c,X(c,1))}if(e==="week"){let c=So(r);return yn(r,n,i,o,c,X(c,7))}let d=cd(r);return yn(r,n,i,o,d,dd(r))}function Ld(e,t,n,r,i,o,s){if(i)throw new p("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",m.USAGE);return{anchor:e,start:o??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function yn(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:ud(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function Od(e){let t=new Map;for(let n of e){let r=t.get(n.date)??[];r.push(n),t.set(n.date,r)}return[...t.entries()].sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>({date:n,count:r.length,events:xo(r)}))}function Nd(e){let t=new Set,n=new Map,r=new Map,i=0,o=0,s=0,a=0;for(let d of e)t.add(d.item_id),wo(n,d.item_type),wo(r,d.item_status),d.kind==="deadline"?i+=1:d.kind==="reminder"?o+=1:(s+=1,d.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:i,reminders:o,scheduled:s,by_kind:{deadline:i,reminder:o,event:s},by_type:_o(n),by_status:_o(r),recurring_events:a}}function $d(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function To(e,t){if(t&&t!=="UTC")try{let n=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),r=n.find(o=>o.type==="hour")?.value,i=n.find(o=>o.type==="minute")?.value;if(r&&i)return`${r}:${i}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function _n(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Pd(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===vo(e.event_end,e.event_timezone)?To(e.event_end,e.event_timezone):e.event_end:null}function jd(e){let t=`${To(e.at,e.event_timezone)} [${e.kind}] ${e.item_id} type=${e.item_type} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder"){let n=e.reminder_text??"";return`${t} \u2014 ${n} reminder=${JSON.stringify(n)}`}if(e.kind==="event"){let n=[],r=e.event_title??e.item_title;e.event_title!==null&&e.event_title!==e.item_title&&(n.push(r),n.push(`title=${JSON.stringify(r)}`)),e.event_recurring&&(n.push("(recurring)"),n.push("recurring=true"));let o=Pd(e);return o&&n.push(`end=${o}`),e.event_all_day!==null&&n.push(`all_day=${e.event_all_day?"true":"false"}`),e.event_timezone&&n.push(`timezone=${e.event_timezone}`),e.event_location&&(n.push(`@ ${e.event_location}`),n.push(`location=${JSON.stringify(e.event_location)}`)),e.event_recurrence_rule&&n.push(`recurrence=${e.event_recurrence_rule}`),e.reminder_text&&n.push(`description=${JSON.stringify(e.reminder_text)}`),`${t} \u2014 ${n.join(" ")}`}return t}function Kh(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${$d(e.range)}`),e.range.period_start&&e.range.period_end&&(t.push(`- period: ${e.range.period_start} -> ${e.range.period_end}`),t.push(`- period-mode: ${e.range.full_period?"full-period":"active-window"}`)),t.push(`- events: ${e.summary.events} (deadlines: ${e.summary.deadlines}, reminders: ${e.summary.reminders}, scheduled: ${e.summary.scheduled})`),t.push(`- items: ${e.summary.items}`),t.push(`- by-kind: ${_n(e.summary.by_kind)}`),t.push(`- by-type: ${_n(e.summary.by_type)}`),t.push(`- by-status: ${_n(e.summary.by_status)}`),t.push(`- recurring-events: ${e.summary.recurring_events}`),t.push(""),e.events.length===0)return t.push("No calendar events matched the selected filters."),t.join(`
2
- `);for(let n of e.days){t.push(`## ${n.date} (${n.count})`);for(let r of n.events)t.push(`- ${jd(r)}`);t.push("")}if(e.warnings&&e.warnings.length>0){t.push("### warnings");for(let n of e.warnings)t.push(`- ${n}`);t.push("")}return Ud(t.join(`
3
- `))}function Bh(e){return Jc(e)}function Ud(e){let t=e.length;for(;t>0&&e[t-1]===`
4
- `;)t-=1;return e.slice(0,t)}function Kd(e){let t=D(),n=id(e.view),r=Dd(n,e,t),i=j(e.limit),o=rd(e.include),s=hn(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=hn(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),d=hn(e.occurrenceLimit,"Calendar occurrence limit");if(d!==void 0&&d<1)throw new p("Calendar occurrence limit must be >= 1",m.USAGE);let c=o.has("events")&&!o.has("deadlines")&&!o.has("reminders"),l=e.to!==void 0||s!==void 0||a!==void 0||d!==void 0,u=c&&!l;return{nowValue:t,view:n,rangeBounds:r,limit:i,includeSources:o,occurrenceLimit:d,recurrenceLookaheadDays:u?bo:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function Bd(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${bo}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Gd(e,t){return{type:e.type??null,tag:e.tag??null,priority:e.priority??null,status:e.status??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,runtime_filters:t,limit:e.limit??null,include:e.include??null,full_period:e.fullPeriod===!0?"true":null,recurrence_lookahead_days:e.recurrenceLookaheadDays??null,recurrence_lookback_days:e.recurrenceLookbackDays??null,occurrence_limit:e.occurrenceLimit??null}}function Wd(e,t){return{start:t.start??null,end:t.end??null,period_start:t.periodStart??null,period_end:t.periodEnd??null,full_period:t.fullPeriod,past:e.past===!0,from:e.from??null,to:e.to??null}}async function Io(e,t){let n=E(process.cwd(),t.path);if(!await N($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=Kd(e),i=await T(n),o=P(i.schema),s=B(i.schema),a=ge(e,s,"calendar"),d=O(i,F()),c=[];Bd(c,r.eventsOnlyCapApplied);let l=await J(n,i.item_format,d.type_to_folder,c,i.schema),u=Id(l,e,d,o,a),f=pd(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),y=Td(u,f,r.includeSources,r.occurrenceLimit).filter(w=>Rd(w,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?y:y.slice(0,r.limit),k=Od(g),_=[...new Set(c)].sort((w,v)=>w.localeCompare(v));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:Wd(e,r.rangeBounds),filters:Gd(e,a),summary:Nd(g),events:g,days:k,..._.length>0?{warnings:_}:{}}}(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]="1f898377-b606-5bfd-932d-6ce5f2f9c717")}catch{}})();var kn=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],zd=Symbol("no-context-author"),qd=Symbol("no-item-assignee");function Fo(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function Hd(e,t){let n=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(n)?1-Math.min(Math.max(n,0),t)/t:0}function Vd(e,t){let n=typeof e=="string"?Date.parse(e):e instanceof Date?e.getTime():typeof e=="number"?e:Number.NaN;if(!Number.isFinite(n)||!Number.isFinite(t))return 0;let r=(n-t)/864e5;return r<=0?1:1/(1+r/30)}function Yd(e){let t=typeof e=="string"?e.trim().toLowerCase():void 0;return t==="critical"||t==="high"?1:t==="medium"?.5:t==="low"?.1:0}function bt(e,t,n){return e?.[t]??n}function kt(e,t){let n=c=>{if(typeof c!="string")return"";try{return U(c,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((c,l)=>{let u=n(c.updated_at),f=n(l.updated_at);return S(f,u)||c.id.localeCompare(l.id)}),i=new Map(r.map((c,l)=>[c.id,l])),o=Math.max(e.length-1,1),s=Fo(t.author,zd),a=x("in_progress",t.statusRegistry),d=Date.parse(t.now);return e.map(c=>{let l=Fo(c.assignee,qd)===s,u=(c.comments?.length??0)+(c.notes?.length??0)+(c.learnings?.length??0);return{id:c.id,item:c,signals:{recency:e.length===1?1:1-i.get(c.id)/o,activity_density:t.activityDensity?.[c.id],graph_proximity:bt(t.graphProximity,c.id,c.parent?.3:0),claim_focus:bt(t.claimFocus,c.id,M(c.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:Hd(c.priority,4),risk_pressure:Yd(c.risk),deadline_pressure:Vd(c.deadline,d),knowledge_density:bt(t.knowledgeDensity,c.id,Math.min(u/5,1)),author_affinity:bt(t.authorAffinity,c.id,l?1:0),usage_affinity:t.usageAffinity?.[c.id],semantic_similarity:t.semanticSimilarity?.[c.id]}}})}var Xd="context_relevance",Qd={structural:.4,recency:.35,activity_density:.25,graph_proximity:.15,claim_focus:.6,priority_pressure:.35,risk_pressure:.2,deadline_pressure:.45,knowledge_density:.25,author_affinity:.2,usage_affinity:.3,semantic_similarity:.5},Jd=new TextEncoder;function Zd(e){let t=new Set;for(let n of e){if(typeof n.id!="string"||n.id.trim().length===0||t.has(n.id))throw new TypeError("Context relevance candidates require unique non-empty ids");t.add(n.id);for(let[r,i]of Object.entries(n.signals??{})){if(r==="structural"||!kn.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(i!==void 0&&(!Number.isFinite(i)||i<0||i>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function eu(e){let t={...Qd};for(let[n,r]of Object.entries(e??{}))r!==void 0&&kn.includes(n)&&(t[n]=r);for(let[n,r]of Object.entries(t))if(!Number.isFinite(r)||r<0)throw new TypeError(`Context relevance weight ${n} must be a finite non-negative number`);return t}function Mo(e,t={}){Zd(e);let n=eu(t.weights),r=Math.max(e.length-1,1),i=new Set(["structural"]);for(let a of e)for(let[d,c]of Object.entries(a.signals??{}))c!==void 0&&i.add(d);let o=kn.filter(a=>i.has(a)),s=e.map((a,d)=>{let c={structural:e.length===1?1:1-d/r,...a.signals},l={},u=0,f=0;for(let h of o){let y=c[h];if(y===void 0)continue;let g=y*n[h];l[h]=g,u+=g,f+=n[h]}return{...a,baseline_rank:d+1,rank:0,score:f===0?0:u/f,contributions:l}});return s.sort((a,d)=>d.score-a.score||a.baseline_rank-d.baseline_rank),s.forEach((a,d)=>{a.rank=d+1}),{model:"default-weighted-v1",available_signals:o,ranked:s}}async function tu(e,t={}){let n=Mo(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),i=new Map;for(let s of r){if(i.has(s.id)||!Number.isFinite(s.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");i.set(s.id,s.score)}if(i.size!==e.length||e.some(s=>!i.has(s.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let o=n.ranked.map(s=>{let a=i.get(s.id);return{...s,score:a,contributions:{custom:a}}});return o.sort((s,a)=>a.score-s.score||s.baseline_rank-a.baseline_rank),o.forEach((s,a)=>{s.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:o}}async function vt(e,t,n={}){let r=Mo(t,n),i=await Sr(Xd,{surface:e,candidates:t,default_report:r});if(!i.handled)return i.warnings.length>0?{...r,warnings:i.warnings}:r;if(!Array.isArray(i.result)||!i.result.every(o=>typeof o=="object"&&o!==null&&typeof o.id=="string"&&typeof o.score=="number"&&Number.isFinite(o.score)))return{...r,warnings:[...i.warnings,"extension_context_relevance_invalid_result"]};try{let o=await tu(t,{...n,scorer:()=>i.result});return i.warnings.length>0?{...o,warnings:i.warnings}:o}catch{return{...r,warnings:[...i.warnings,"extension_context_relevance_invalid_result"]}}}var nu=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Ao(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function ru(e){if(!Number.isFinite(e.actual_tokens)||e.actual_tokens<0||!Number.isFinite(e.token_budget)||e.token_budget<=0)throw new TypeError("Context ranking token counts require actual_tokens >= 0 and token_budget > 0");let t=e.judgments??{},n=e.ranked_ids.map(c=>Math.max(0,t[c]??0)),r=Object.values(t).map(c=>Math.max(0,c)).sort((c,l)=>l-c).slice(0,n.length||1),i=c=>c.reduce((l,u,f)=>l+(2**u-1)/Math.log2(f+2),0),o=i(r),s=n.findIndex(c=>c>0),a=new Set(e.ranked_ids),d=e.actual_tokens<=e.token_budget;return{ndcg:o===0?1:i(n)/o,reciprocal_rank:s<0?0:1/(s+1),required_recall:Ao(e.required_ids??[],a),continuity_coverage:Ao(e.continuity_ids??[],a),token_budget_adherence:d?1:e.token_budget/e.actual_tokens,within_token_budget:d}}function iu(e){return Math.ceil(Jd.encode(JSON.stringify(e)).byteLength/4)}function ou(e){return Math.round(e*1e4)/1e4}function su(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(o=>o.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(o=>o.id),r=new Set(n),i=(e.ranking?.items??[]).filter(o=>r.has(o.id)).map(o=>({id:o.id,contributions:o.contributions}));return{rankedIds:n,attribution:i}}async function au(e,t){if(e.id.trim().length===0||e.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");let n=e.surface==="context"?await t.context({...e.options,explainRanking:!0}):await t.next({...e.options,explainRanking:!0}),{rankedIds:r,attribution:i}=su(n,e.surface),o={...n,ranking:void 0},s=iu(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:ru({ranked_ids:r,judgments:e.judgments,required_ids:e.required_ids,continuity_ids:e.continuity_ids,actual_tokens:s,token_budget:e.token_budget}),attribution:i}}function cu(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=nu;for(let o of n)if(!Number.isFinite(t[o]))throw new TypeError(`Context evaluation threshold ${o} must be a finite number`);let r=Object.fromEntries(n.map(o=>[o,ou(e.reduce((s,a)=>s+a.metrics[o],0)/e.length)])),i=n.filter(o=>r[o]<t[o]).map(o=>`${o}:${r[o]}<${t[o]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:i.length===0,failures:i}}async function Hh(e,t,n){let r=[];for(let i of e)r.push(await au(i,t));return cu(r,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]="b5c90a16-c075-5dc6-a326-ad2da7a6ef6d")}catch{}})();var du={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},uu=["identity","summary","full"];function lu(e){if(!e.id.trim()||!Number.isInteger(e.rank)||e.rank<1)throw new TypeError("Context packing candidates require a non-empty id and positive integer rank");if(!Number.isFinite(e.score)||e.score<0)throw new TypeError("Context packing candidate scores must be finite and non-negative");let t=uu.map(n=>e.token_costs[n]);if(t.some(n=>!Number.isInteger(n)||n<1)||t[0]>t[1]||t[1]>t[2])throw new TypeError("Context projection costs must be positive monotone integers");if(e.uncertainty!==void 0&&(!Number.isFinite(e.uncertainty)||e.uncertainty<0))throw new TypeError("Context packing uncertainty must be finite and non-negative")}function fu(e){if(!Number.isInteger(e.tokenBudget)||e.tokenBudget<1)throw new TypeError("Context packing tokenBudget must be a positive integer");let t=e.profile??"balanced",n=du[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,i=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(i)||i<0)throw new TypeError("Context packing penalties must be finite and within their supported ranges");if(e.latencyBudgetMs!==void 0&&(!Number.isFinite(e.latencyBudgetMs)||e.latencyBudgetMs<=0))throw new TypeError("Context packing latencyBudgetMs must be positive");return{redundancy:r,uncertainty:i,profile:t}}function mu(e){let t=new Set;for(let n of e){if(lu(n),t.has(n.id))throw new TypeError("Context packing candidates require unique ids");t.add(n.id)}return[...e].sort((n,r)=>n.rank-r.rank||n.id.localeCompare(r.id))}function pu(e,t,n,r,i){let o=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&i()>=r)return{index:o,evaluated:s,timedOut:!0};let d=e[a];if(d.token_costs.identity>t)continue;s+=1;let c=o<0?void 0:e[o],l=n(d)/d.token_costs.identity,u=c===void 0?Number.NEGATIVE_INFINITY:n(c)/c.token_costs.identity;(l>u||l===u&&c!==void 0&&(d.rank<c.rank||d.rank===c.rank&&d.id.localeCompare(c.id)<0))&&(o=a)}return{index:o,evaluated:s,timedOut:!1}}function hu(e){let t=new Set,n=[],r=e.tokenBudget,i=c=>{let l=c.lineage??c.cluster,u=l&&t.has(l)?1-e.redundancyPenalty:1;return Math.max(0,(c.score-e.uncertaintyPenalty*(c.uncertainty??0))*u)},o=c=>{let l=c.token_costs.identity;n.push({...c,projection:"identity",tokens:l,marginal_value:i(c)}),r-=l;let u=c.lineage??c.cluster;u&&t.add(u)};for(let c of e.ordered.filter(l=>l.required))c.token_costs.identity<=r&&o(c);let s=e.ordered.filter(c=>!c.required),a=!0,d=0;for(;s.length>0;){let c=pu(s,r,i,e.deadline,e.readClock);if(d+=c.evaluated,c.timedOut&&(a=!1),c.index<0||c.timedOut)break;o(s.splice(c.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:d}}function gu(e,t){let n=t;for(let r of["summary","full"]){let i=r==="summary"?"identity":"summary",o=[...e].sort((s,a)=>{let d=s.token_costs[r]-s.token_costs[i],c=a.token_costs[r]-a.token_costs[i];return a.marginal_value/Math.max(c,1)-s.marginal_value/Math.max(d,1)||s.rank-a.rank||s.id.localeCompare(a.id)});for(let s of o){if(s.projection!==i)continue;let a=s.token_costs[r]-s.tokens;a>n||(s.projection=r,s.tokens+=a,n-=a)}}return n}function Ro(e,t){let n=fu(t),r=mu(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=hu({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,d=gu(a,s.remaining);a.sort((l,u)=>l.rank-u.rank||l.id.localeCompare(u.id));let c=new Set(a.map(l=>l.id));return{included:a,omitted_ids:r.filter(l=>!c.has(l.id)).map(l=>l.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-d,remaining_tokens:d,complete:s.selectionComplete&&a.length===e.length&&a.every(l=>l.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import{randomUUID as yu}from"node:crypto";import{appendFile as _u,mkdir as wu,readFile as bu,rename as ku,stat as vu,writeFile as Su}from"node:fs/promises";import Do 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]="5f4ccd28-a001-54aa-8378-893025c69b96")}catch{}})();var Lo=2048,Oo=30,No=864e5,Eu=262144,Cu="context-usage-ledger",W=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function $o(e){return Do.join(e,"runtime","context-usage.jsonl")}function Le(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new W("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function Po(e){try{let n=(await bu($o(e.pmRoot),"utf8")).split(`
5
- `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Lo,i=e.retentionDays??Oo,o=Le(e).ms-i*No;return n.filter(s=>Date.parse(s.at)>=o).slice(-r)}catch{return[]}}async function jo(e,t){let n=e.maxEvents??Lo,r=e.retentionDays??Oo;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new W("Context usage retention requires positive maxEvents and retentionDays");let i=$o(e.pmRoot),o=Do.dirname(i),s=await Ar(e.pmRoot,Cu,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await wu(o,{recursive:!0}),await _u(i,t.map(l=>`${JSON.stringify(l)}
6
- `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await vu(i)).size<=Eu)return;let d=await Po(e),c=`${i}.${process.pid}.${yu()}.tmp`;await Su(c,`${d.map(l=>JSON.stringify(l)).join(`
7
- `)}
8
- `,"utf8"),await ku(c,i)}finally{await s()}}async function Uo(e,t){await jo(e,[t])}async function St(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||e.rows.some(t=>!t.id.trim()||!Number.isInteger(t.rank)||t.rank<1))throw new W("Context usage serving requires an author and valid ranked rows");await Uo(e,{kind:"serve",at:Le(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function eg(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new W("Context usage touch requires author, itemId, and intent");await Uo(e,{kind:"touch",at:Le(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function Ko(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1||e.itemIds.length===0)return;let t=e.author.trim(),n=e.intent.trim();if(!t||!n)throw new W("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new W("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new W("Context usage touch requires non-empty itemId");r.add(a)}let i=Le(e).iso,o=[...r].map(s=>({kind:"touch",at:i,author:t,item_id:s,intent:n}));await jo(e,o)}function xu(e,t,n,r){return e.find(({entry:i,time:o})=>i.item_id===t&&o>=n&&o-n<=r)?.time}async function Et(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await Po(e),n=Le(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new W("Context usage horizonHours must be positive");let i=e.author.trim(),o=t.filter(u=>u.kind==="touch"&&u.author===i).map(u=>({entry:u,time:Date.parse(u.at)})),s=new Map,a=0,d=0;for(let u of t){if(u.kind!=="serve"||u.author!==i)continue;a+=1;let f=Date.parse(u.at);for(let h of u.rows){if(!h.included)continue;let y=xu(o,h.id,f,r);if(y===void 0)continue;d+=1;let g=Math.max(0,(n-y)/No);s.set(h.id,(s.get(h.id)??0)+Math.exp(-g/14))}}let c=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([u,f])=>[u,.05+.95*(c>0?f/c:0)])),positive_judgments:d,serving_events:a}}import Oe from"node:fs/promises";import Ne from"node:path";import{createHash as Tu,randomUUID as Iu}from"node:crypto";(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]="3d0a558b-6a01-5bca-a2f7-21766be6d67c")}catch{}})();var vn=1,Sn=1,Bo=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Fu={context_signal_store_invalid:{code:"context_signal_store_invalid",meaning:"The persisted context-signal snapshot was unreadable or invalid and was rebuilt from authoritative items.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot can be loaded without the warning."},context_signal_store_stale:{code:"context_signal_store_stale",meaning:"The persisted context-signal snapshot did not match the authoritative cursor or item corpus and was rebuilt.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot is now fresh."},context_signal_store_write_failed:{code:"context_signal_store_write_failed",meaning:"Context signals were rebuilt in memory, but the derived snapshot could not be persisted.",recovery_command:"pm context",recovery_effect:"Retry the derived snapshot write and confirm the warning clears after storage access is restored."}};function Ct(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Go(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Au(e){let t={};for(let n of Bo){let r=e[n];if(r!==void 0){if(!Go(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Mu(e,t){let n=e.map(i=>[i.id,t(i)]),r=Math.max(0,...n.map(([,i])=>i));return Object.fromEntries(n.map(([i,o])=>[i,r===0?0:o/r]))}function Ru(e){let t=new Map(e.map(i=>[i.id,0])),n=i=>{t.set(i,(t.get(i)??0)+1)};for(let i of e){typeof i.parent=="string"&&i.parent.trim()&&(n(i.id),n(i.parent.trim()));for(let o of i.dependencies??[])typeof o.id!="string"||!o.id.trim()||(n(i.id),n(o.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(i=>[i.id,r===0?0:t.get(i.id)/r]))}function Du(e,t){return{...t,activityDensity:t.activityDensity??Mu(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Ru(e)}}function Lu(e){if(!Ct(e)||typeof e.id!="string"||!Ct(e.signals))return null;let t={},n=new Set(Bo);for(let[r,i]of Object.entries(e.signals)){if(!n.has(r)||!Go(i))return null;t[r]=i}return{id:e.id,signals:t}}function Ou(e){if(!Ct(e)||e.format_version!==vn||e.signal_set_version!==Sn||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.generated_at!="string"||!Number.isFinite(Date.parse(e.generated_at))||e.source!=="derived_index"&&e.source!=="scan_fallback"||!Array.isArray(e.items))return null;let t=e.items.map(Lu);if(t.some(r=>r===null))return null;let n=t;return new Set(n.map(r=>r.id)).size!==n.length||n.some(r=>r.id.trim().length===0)?null:{format_version:vn,signal_set_version:Sn,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,i)=>r.id.localeCompare(i.id))}}function Nu(e,t){if(typeof t.sourceCursor!="string"||t.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(t.source!=="derived_index"&&t.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback");let n=kt(e,Du(e,t)).map(({id:r,signals:i})=>({id:r,signals:Au(i)})).sort((r,i)=>r.id.localeCompare(i.id));return Object.freeze({format_version:vn,signal_set_version:Sn,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var En=class{filePath;constructor(t){if(typeof t!="string"||t.trim().length===0)throw new TypeError("Context signal store path must be non-empty");this.filePath=Ne.resolve(t)}async read(){try{return JSON.parse(await Oe.readFile(this.filePath,"utf8"))}catch(t){if(Ct(t)&&Xe(t))return null;throw t}}async write(t){let n=Ne.dirname(this.filePath);await Oe.mkdir(n,{recursive:!0});let r=Ne.join(n,`.${Ne.basename(this.filePath)}.${Iu()}.tmp`);try{await Oe.writeFile(r,`${JSON.stringify(t)}
9
- `,{encoding:"utf8",flag:"wx"}),await Oe.rename(r,this.filePath)}finally{try{await Oe.rm(r,{force:!0})}catch{}}}},Cn=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],i=null;try{let u=await this.adapter.read();i=Ou(u),u!==null&&i===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let o=t.map(u=>u.id).sort((u,f)=>u.localeCompare(f)),s=i?.items.map(u=>u.id)??[],a=i!==null&&i.source_cursor===n.sourceCursor&&i.source===n.source&&s.length===o.length&&s.every((u,f)=>u===o[f]),d;if(a&&i!==null)d=i;else{i!==null&&r.push("context_signal_store_stale"),d=Nu(t,n);try{await this.adapter.write(d)}catch{r.push("context_signal_store_write_failed")}}let c=new Map(d.items.map(u=>[u.id,u.signals])),l=kt(t,n);return{snapshot:d,candidates:l.map(u=>({...u,signals:{...u.signals,...c.get(u.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r,warning_details:r.map(u=>Fu[u])}}};function $u(e){let t=Tu("sha256");for(let n of[...e].sort((r,i)=>r.id.localeCompare(i.id)))t.update(JSON.stringify([n.id,n.updated_at,n.status,n.parent??null,n.priority??null,n.risk??null,(n.dependencies??[]).map(r=>r.id).sort(),n.comments?.length??0,n.notes?.length??0,n.learnings?.length??0,n.test_runs?.length??0]));return`scan:${t.digest("hex")}`}async function xt(e,t){let n=t.sourceCursor!==void 0,r=t.source!==void 0;if(n!==r)throw new TypeError("Context signal source and source cursor must be provided together");if(t.storeKey!==void 0&&!/^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/u.test(t.storeKey))throw new TypeError("Context signal store key must be a filesystem-safe identifier");let i=n?null:await fe(t.pmRoot),o=t.sourceCursor??i?.source_cursor??$u(e),s=t.source??(i===null?"scan_fallback":"derived_index");return new Cn(new En(Ne.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:o,source:s})}import Pu from"node:path";import{createHash as ju}from"node:crypto";(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]="a19662f9-f8b3-5988-bc04-1b5a5edaaaa5")}catch{}})();function Wo(e){return e.completed_at!==void 0?{resolved:!0,timestamp:e.completed_at,source:"completed_at",fallback:!1}:e.closed_at!==void 0?{resolved:!0,timestamp:e.closed_at,source:"closed_at",fallback:!0}:e.updated_at!==void 0?{resolved:!0,timestamp:e.updated_at,source:"updated_at",fallback:!0}:{resolved:!1}}import Uu from"node:fs/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]="ad77a79d-54da-55f1-8ac8-935366880d90")}catch{}})();var zo=1,Ku=1e4,qo=12;function Bu(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Gu(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let i=t.get(r);if(!i)return;if(i.type.toLowerCase()==="epic")return i;r=i.parent}}function Wu(e){let t=[...e.items].sort((i,o)=>o.completion.timestamp.localeCompare(i.completion.timestamp)||i.item.id.localeCompare(o.item.id)),n=new Set,r=0;for(let{item:i}of t){let o=i.resolution??i.close_reason;o?.trim()&&n.add(o.trim()),r+=(i.notes?.length??0)+(i.learnings?.length??0)}return{kind:e.kind,key:e.key,label:e.label,item_count:t.length,first_closed_at:t.at(-1).completion.timestamp,last_closed_at:t[0].completion.timestamp,representative_items:t.slice(0,5).map(({item:{id:i,title:o}})=>({id:i,title:o})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function zu(e,t){if(!t.sourceCursor.trim())throw new TypeError("Workspace memory source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Workspace memory clock must be a valid timestamp");let n=e.filter(o=>t.statusRegistry.terminal_done_statuses.has(M(o.status,t.statusRegistry))).map(o=>{let s=Wo(o);if(!s.resolved)throw new TypeError(`Completed item ${o.id} has no reporting timestamp`);return{item:o,completion:s}}),r=new Map(e.map(o=>[o.id,o])),i=new Map;for(let o of n){let{item:s,completion:a}=o,d=Bu(a.timestamp),c=`epoch:${d}`,l=i.get(c)??{kind:"epoch",key:d,label:d,items:[]};l.items.push(o),i.set(c,l);let u=Gu(s,r);if(u){let f=`epic:${u.id}`,h=i.get(f)??{kind:"epic",key:u.id,label:u.title,items:[]};h.items.push(o),i.set(f,h)}}return{format_version:zo,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((o,{completion:s})=>(o[s.source]+=1,o),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...i.values()].map(Wu).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function qu(e){return typeof e=="object"&&e!==null&&"id"in e&&typeof e.id=="string"&&e.id.length>0&&"title"in e&&typeof e.title=="string"}function Hu(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(i=>typeof i=="string"&&i.length>0),r=[t.first_closed_at,t.last_closed_at].every(i=>typeof i=="string"&&Number.isFinite(Date.parse(i)));return(t.kind==="epoch"||t.kind==="epic")&&n&&Number.isSafeInteger(t.item_count)&&t.item_count>0&&r&&Array.isArray(t.representative_items)&&t.representative_items.every(qu)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function Vu(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==zo||typeof t.source_cursor!="string"||!t.source_cursor.trim()||!Number.isSafeInteger(t.source_item_count)||t.source_item_count<0||typeof t.generated_at!="string"||!Number.isFinite(Date.parse(t.generated_at))||!Array.isArray(t.rollups)?null:t.rollups.every(Hu)?t:null}function Yu(e){return`scan:${ju("sha256").update(hr(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function Xu(e,t,n){return n!==void 0?n:(await fe(t))?.source_cursor??Yu(e)}async function Qu(e){try{let t=Vu(JSON.parse(await Uu.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&Xe(t))}}}async function Tt(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Ku));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await Xu(e,t.pmRoot,t.sourceCursor),i=Pu.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await Qu(i),a=s.snapshot;if(s.invalid&&o.push("workspace_memory_invalid"),a?.source_cursor===r&&a.source_item_count===e.length)return{snapshot:a,cache_status:"fresh",warnings:o};a&&o.push("workspace_memory_stale");let d=zu(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await lr(i,`${JSON.stringify(d)}
10
- `)}catch{o.push("workspace_memory_write_failed")}return{snapshot:d,cache_status:"rebuilt",warnings:o}}function Ju(e,t,n=qo){let r=Math.max(0,Math.floor(t)),i=0,o=[];for(let s of e.rollups){if(o.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(s).length/4);i+a>r||(o.push(s),i+=a)}return o}function Ho(e,t,n=qo){if(e.snapshot===null)return;let r=Ju(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",source_cursor:e.snapshot.source_cursor,...e.snapshot.completion_time_sources?{completion_time_sources:{...e.snapshot.completion_time_sources}}:{},rollups:r}}function Zu(e,t,n=5){if(e===null)return[];let r=t.trim().toLowerCase().split(/\s+/u).filter(Boolean);return r.length===0?[]:e.rollups.map(i=>({rollup:i,score:r.filter(o=>[i.key,i.label,...i.outcomes,...i.representative_items.flatMap(s=>[s.id,s.title])].join(" ").toLowerCase().includes(o)).length})).filter(({score:i})=>i>0).sort((i,o)=>o.score-i.score||o.rollup.last_closed_at.localeCompare(i.rollup.last_closed_at)||i.rollup.key.localeCompare(o.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:i})=>i)}function Vo(e,t,n=5){let r=Zu(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",matches: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]="97c1e310-3cd9-5846-a54c-d019b0351541")}catch{}})();var Yo=16;async function Xo(e,t,n){let r=O(t,F()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<Yo;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let d=await me(e,s,t.id_prefix,t.item_format,r);if(!d)break;let c=await pe(d,{schema:t.schema});i.push(c.document.metadata.id),s=c.document.metadata.parent}return i}async function Sg(e){await xr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Xo(e.pmRoot,e.settings,e.itemId)})}async function Eg(e){await Tr(e)}async function Cg(e){await Ir({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Xo(e.pmRoot,e.settings,e.itemId)}:{}})}var xg={lineage_depth:Yo,active_items:64,evidence_rows:32};function Qo(e){if(!e)return;let t={};for(let n of e.active_item_ids)t[n]=1;e.focused_item_id&&(t[e.focused_item_id]=1);for(let n of e.evidence){let r=/^lineage:(.+)$/u.exec(n)?.[1];r&&t[r]===void 0&&(t[r]=.75)}return Object.keys(t).length>0?t:void 0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="757a0349-9fb6-579d-ab29-fabaad790ce4")}catch{}})();var el=["markdown","toon","json","ndjson"],Pe=new Set(["Epic","Feature"]),rs=10,is=1e4,os=["hierarchy","activity","progress","recently_created","unparented","workload"],tl=[...os,"blockers","files","staleness","tests"],nl=/^(\d{4})-(\d{2})-(\d{2})/,rl=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,il=/^(\d{4})(\d{2})(\d{2})$/,ol=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function sl(e){if(!e)return;let t=e.trim().toLowerCase();if(!el.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var Jo=new Set(["id","title","type","status","priority","order","deadline","assignee","tags","tags_inherited","updated_at","parent","children_total","children_closed","completion_pct","blocked","blocker_ids","created_at"]);function al(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Jo.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[...Jo].join(", ")})`,m.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new p("Context --fields requires at least one field name",m.USAGE);return t}function $e(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function zg(e,t){let n=sl(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function cl(e,t){return j(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:rs)}function In(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new p("--token-budget must be a positive integer",m.USAGE);return n}function dl(e,t){return t>=is&&e===Number.MAX_SAFE_INTEGER?rs:e}function ul(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Gt.includes(n))throw new p(`Context --depth must be one of ${Gt.join("|")}`,m.USAGE);return n}function ll(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!Ve.includes(s))throw new p(`Context --section must be one of ${Ve.join("|")}`,m.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...Ve]:(t==="deep"?tl:os).filter(i=>n.sections[i])}function fl(e,t){return e?j(e,"--activity-limit")??t.activity_limit:t.activity_limit}function ml(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new p("--stale-threshold must be a number of days (e.g. 7 or 7d)",m.USAGE);let i=parseInt(r[1],10);if(i<=0)throw new p("--stale-threshold must be positive",m.USAGE);return i}function Zo(e,t){let n=M(e,t),r=x("in_progress",t),i=x("open",t),o=x("blocked",t),s=x("draft",t);return r&&n===r?0:i&&n===i?1:o&&n===o?2:s&&n===s?3:t.active_statuses.has(n)?4:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function je(e,t){let n=x("closed",t);return M(e,t)===n}function Fn(e,t){let n=x("in_progress",t);return M(e,t)===n}function ss(e,t){let n=x("open",t);return M(e,t)===n}function pl(e,t){return t.blocked_statuses.has(M(e,t))}var hl=["compact","brief","fields","includeBody","include_body","parent"];function gl(e){let t={...e};for(let n of hl)delete t[n];return t}function An(e,t){let n=t.trim().toLowerCase(),r=e.find(a=>a.id.trim().toLowerCase()===n);if(!r)return{ids:new Set,found:!1};let i=ke(e),o=Ue(r.id,i);return{ids:new Set([r.id,...o.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function yl(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new p("Context --parent requires an item id",m.USAGE);return t}function _l(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function wl(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:S(n,r)}function bl(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function kl(e){let t=nl.exec(e)??rl.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),i=Number.parseInt(t[3],10);return r>=1&&r<=12&&i>=1&&i<=bl(n,r-1)}function vl(e){let t=il.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=ol.exec(e);if(n){let[,r,i,o,s,a,d,c]=n,l=d?`:${d}`:"",u=c&&c.length===5&&c!=="Z"?`${c.slice(0,3)}:${c.slice(3)}`:c??"";return`${r}-${i}-${o}T${s}:${a}${l}${u}`}return e}function as(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!kl(t))return Number.NaN;let n=Date.parse(vl(t));return Number.isFinite(n)?n:Number.NaN}function Tn(e){let t=as(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Sl(e){let t=as(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function Mn(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function re(e,t,n){let r=Zo(e.status,n)-Zo(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=_l(e.order,t.order);if(o!==0)return o;let s=wl(e.deadline,t.deadline);if(s!==0)return s;let a=S(Tn(t.updated_at),Tn(e.updated_at)),d=e.id.localeCompare(t.id);return a!==0?a:d}function xn(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function Rn(e,t,n=new Set,r="context"){return Ro(e.ranked.map(i=>({id:i.id,item:i.item,rank:i.rank,score:i.score,required:n.has(i.id),cluster:i.item.parent?.trim()||i.item.type,token_costs:{identity:xn({id:i.id,title:i.item.title}),summary:xn({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:xn(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function Dn(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Ln(e,t){return{model:e.model,available_signals:e.available_signals,items:e.ranked.map(n=>({id:n.id,rank:n.rank,baseline_rank:n.baseline_rank,score:n.score,contributions:n.contributions})),...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function cs(e,t){return t>0?Math.round(e/t*100):0}function ke(e){let t=new Map;for(let n of e){let r=Mn(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function Ke(e,t,n){let r={id:e.id,title:e.title,type:e.type,status:e.status,priority:e.priority,order:e.order??null,deadline:e.deadline??null,assignee:e.assignee??null,tags:Array.isArray(e.tags)?[...e.tags]:[],updated_at:e.updated_at,parent:Mn(e.parent)};if(t&&n){let i=Ue(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>je(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=cs(s,o)}}return r}function El(e){let t=0,n=0,r=0,i=new Set;for(let o of e){if(i.add(o.item_id),o.kind==="deadline"){t+=1;continue}if(o.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:i.size,deadlines:t,reminders:n,scheduled:r}}function It(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Cl(e,t){return e.filter(n=>!t.terminal_statuses.has(M(n.item_status,t)))}function xl(e,t,n,r){let i=new Map;for(let d of e)i.set(d.id,d);let o=ke(e),s=new Set(t.filter(d=>Pe.has(d.type)).map(d=>d.id)),a=[];for(let d of s){let c=i.get(d);if(!c)continue;let l=Ue(d,o),u=o.get(d)??[],f=0,h=0,y=0,g=0;for(let _ of l)je(_.status,n)?f++:Fn(_.status,n)?y++:pl(_.status,n)?g++:ss(_.status,n)&&h++;let k=u.sort((_,w)=>re(_,w,n)).slice(0,r).map(_=>{let w=Ue(_.id,o),v=w.filter(I=>je(I.status,n)).length;return{id:_.id,title:_.title,type:_.type,status:_.status,children_total:w.length,children_closed:v}});a.push({id:c.id,title:c.title,type:c.type,status:c.status,children_total:l.length,children_closed:f,children_open:h,children_in_progress:y,children_blocked:g,children:k})}return a.sort((d,c)=>{let l=i.get(d.id),u=i.get(c.id);return re(l,u,n)}).slice(0,r)}function Ue(e,t){let n=[],r=[e],i=new Set;for(;r.length>0;){let o=r.pop();if(i.has(o))continue;i.add(o);let s=t.get(o)??[];for(let a of s)n.push(a),r.push(a.id)}return n}async function Tl(e,t){return(await yi({compact:!0,limit:String(e)},t)).compact_activity??[]}function Il(e,t,n,r,i){let o=new Map;for(let d of e){if(!d.parent)continue;let c=o.get(d.parent)??[];c.push(d),o.set(d.parent,c)}let s=t.filter(d=>Pe.has(d.type)),a=[];for(let d of s){let c=Ue(d.id,o),l=c.length;if(l===0)continue;let u=0,f=0,h=0,y=0;for(let g of c)je(g.status,r)?u++:n.has(g.id.trim().toLowerCase())?y++:Fn(g.status,r)?h++:ss(g.status,r)&&f++;a.push({id:d.id,title:d.title,type:d.type,total:l,closed:u,open:f,in_progress:h,blocked:y,completion_pct:cs(u,l)})}return a.sort((d,c)=>d.completion_pct-c.completion_pct).slice(0,i)}function Fl(e,t,n,r){let i=new Map(t.map(o=>[o.id.trim().toLowerCase(),o]));return e.slice(0,r).map(o=>{let s=Zt(o,i,n),a=s.find(c=>!c.resolved)?.id??s[0]?.id??null,d=a?i.get(a.trim().toLowerCase()):void 0;return{id:o.id,title:o.title,blocked_by:a,blocked_by_title:d?.title??null,blocked_by_status:d?.status??null,blocked_reason:o.blocked_reason??null,unblock_note:o.unblock_note??null}})}function Al(e,t){let n=new Map;for(let r of e)for(let i of r.files??[]){let o=n.get(i.path)??new Set;o.add(r.id),n.set(i.path,o)}return[...n.entries()].map(([r,i])=>({path:r,references:i.size,items:[...i].sort()})).sort((r,i)=>i.references-r.references).slice(0,t)}function Ml(e,t,n){let r=new Map;for(let i of e){let o=i.assignee??null,s=r.get(o)??[];s.push(i),r.set(o,s)}return[...r.entries()].map(([i,o])=>({assignee:i,active:o.length,in_progress:o.filter(s=>Fn(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function Rl(e,t,n,r){let i=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(o=>new Date(o.updated_at).getTime()<i).map(o=>({id:o.id,title:o.title,status:o.status,updated_at:o.updated_at,stale_days:Math.floor((new Date(n).getTime()-new Date(o.updated_at).getTime())/(1440*60*1e3))})).sort((o,s)=>s.stale_days-o.stale_days).slice(0,r)}function Dl(e,t,n,r){return e.map(i=>({item:i,sortKey:Tn(i.created_at)})).sort((i,o)=>{let s=S(o.sortKey,i.sortKey);return s!==0?s:i.item.id.localeCompare(o.item.id)}).slice(0,r).map(({item:i})=>({...Ke(i,t,n),created_at:i.created_at}))}function Ll(e,t,n,r){return e.filter(i=>!Mn(i.parent)&&!Pe.has(i.type)).sort((i,o)=>re(i,o,t)).slice(0,r).map(i=>Ke(i,t,n))}function Ol(e){let t=0,n=0,r=0,i=0,o=0,s=[];for(let a of e){(a.tests??[]).length>0&&t++;let d=a.test_runs??[];if(d.length>0){n++;let c=!1;for(let l of d)r+=l.passed??0,i+=l.failed??0,o+=l.skipped??0,(l.failed??0)>0&&(c=!0);c&&s.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:i,skipped:o},items_failing:s.sort()}}function es(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function ds(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",i=e.children_total!==void 0&&e.children_closed!==void 0&&e.completion_pct!==void 0?` children:${e.children_closed}/${e.children_total} done:${e.completion_pct}%`:"",o=e.blocked===!0?` blocked:${e.blocker_ids?.join(",")||"lifecycle"}`:"";return`${e.id} p${e.priority} ${e.status} ${e.type} order:${t} deadline:${n}${r}${i}${o} ${e.title}`}function Nl(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function $l(e){if("reference_only"in e){let n=e.kind==="reminder"?` \u2014 ${e.reminder_text??"reminder"}`:e.kind==="event"?` \u2014 ${e.event_title??"event"}${e.event_recurring?" (recurring)":""}`:"";return`${es(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${es(e.at)} [${e.kind}] ${e.item_id} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder")return`${t} \u2014 ${e.reminder_text}`;if(e.kind==="event"){let n=e.event_recurring?" (recurring)":"",r=e.event_title??e.item_title;return`${t} \u2014 ${r}${n}`}return t}function ts(e,t,n,r,i){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let o of n)e.push(`- ${i(o)}`);e.push("")}function Pl(e,t,n){if(t.blocked_fallback.length!==0){e.push("## Blocked fallback");for(let r of t.blocked_fallback)e.push(`- ${n(r)}`);e.push("")}}function jl(e,t){if(e.push("## Agenda"),e.push(`- events: ${t.agenda.summary.events} (deadlines: ${t.agenda.summary.deadlines}, reminders: ${t.agenda.summary.reminders}, scheduled: ${t.agenda.summary.scheduled})`),t.agenda.events.length===0)e.push("No agenda events matched the selected filters.");else for(let n of t.agenda.events)e.push(`- ${$l(n)}`);e.push("")}function Ul(e,t){if(!(!t.hierarchy||t.hierarchy.length===0)){e.push("## Hierarchy");for(let n of t.hierarchy){let r=n.children_total>0?Math.round(n.children_closed/n.children_total*100):0;e.push(`- ${n.id} ${n.type} ${n.status} "${n.title}" [${n.children_closed}/${n.children_total} done ${r}%]`);for(let i of n.children){let o=i.children_total>0?Math.round(i.children_closed/i.children_total*100):0;e.push(` - ${i.id} ${i.type} ${i.status} "${i.title}" [${i.children_closed}/${i.children_total} done ${o}%]`)}}e.push("")}}function Kl(e,t){if(!(!t.progress||t.progress.length===0)){e.push("## Progress");for(let n of t.progress)e.push(`- ${n.id} "${n.title}" ${n.completion_pct}% (${n.closed}/${n.total} closed, ${n.in_progress} wip, ${n.open} open, ${n.blocked} blocked)`);e.push("")}}function Bl(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let i of t.recently_created)e.push(n?`- ${r(i)}`:`- ${Sl(i.created_at)} ${ds(i)}`);e.push("")}}function Gl(e,t,n){if(!(!t.unparented||t.unparented.length===0)){e.push("## Unparented");for(let r of t.unparented)e.push(`- ${n(r)}`);e.push("")}}function Wl(e,t){if(!(!t.activity||t.activity.length===0)){e.push("## Recent activity");for(let n of t.activity){let r=n.msg?` ${n.msg}`:"";e.push(`- ${n.ts.slice(0,16)}Z ${n.id} ${n.op} by:${n.author}${r}`)}e.push("")}}function zl(e,t){if(!(!t.blockers||t.blockers.length===0)){e.push("## Blockers");for(let n of t.blockers){let r=n.blocked_by?`blocked_by:${n.blocked_by}(${n.blocked_by_status??"?"})`:"blocked_by:-",i=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",o=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${i}${o}`)}e.push("")}}function ql(e,t){if(!(!t.files||t.files.length===0)){e.push("## Hot files");for(let n of t.files)e.push(`- ${n.path} refs:${n.references} items:[${n.items.join(",")}]`);e.push("")}}function Hl(e,t){if(!(!t.workload||t.workload.length===0)){e.push("## Workload");for(let n of t.workload){let r=n.assignee??"(unassigned)";e.push(`- ${r} active:${n.active} wip:${n.in_progress} items:[${n.items.join(",")}]`)}e.push("")}}function Vl(e,t){if(!(!t.staleness||t.staleness.length===0)){e.push("## Stale items");for(let n of t.staleness)e.push(`- ${n.id} ${n.status} stale:${n.stale_days}d last:${n.updated_at.slice(0,10)} "${n.title}"`);e.push("")}}function Yl(e,t){t.tests&&(e.push("## Test health"),e.push(`- items_with_tests: ${t.tests.items_with_tests}`),e.push(`- items_with_recent_runs: ${t.tests.items_with_recent_runs}`),e.push(`- passed: ${t.tests.recent_runs.passed}, failed: ${t.tests.recent_runs.failed}, skipped: ${t.tests.recent_runs.skipped}`),t.tests.items_failing.length>0&&e.push(`- items_failing: [${t.tests.items_failing.join(",")}]`),e.push(""))}function Xl(e,t){t.summary.active_items===0&&t.summary.blocked===0&&t.agenda.summary.events===0&&(e.push("## Suggestions"),e.push("No active work items or upcoming events. Consider:"),e.push('- `pm create --type Task --title "..."` to add a new work item'),e.push("- `pm list --status closed --limit 5` to review recent completions"),e.push("- `pm search <keywords>` to find related past work"),e.push("- `pm aggregate` for a full project status overview"))}function qg(e){let t=[],n=e.focus_fields,r=o=>n?Nl(o,n):ds(o);if(t.push("# pm context"),t.push(""),t.push(`- now: ${e.now}`),t.push(`- depth: ${e.depth}`),e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(`- active_items: ${e.summary.active_items} (in_progress: ${e.summary.in_progress}, open: ${e.summary.open})`),e.summary.total_items!==void 0&&t.push(`- total_items: ${e.summary.total_items} (closed: ${e.summary.closed??0}, canceled: ${e.summary.canceled??0})`),t.push(`- agenda_events: ${e.summary.agenda_events}`),t.push(`- blocked_fallback_used: ${e.summary.blocked_fallback_used}`),e.extension_health){let o=e.extension_health.packages.filter(s=>s.status==="degraded").map(s=>s.name);t.push(`- extensions: ${e.extension_health.ok} ok, ${e.extension_health.degraded} degraded${o.length>0?` (${o.join(", ")})`:""}`)}let i=e.sections_included.filter(o=>o!=="blockers"||(e.blockers?.length??0)>0);if(i.length>0&&t.push(`- sections: ${i.join(", ")}`),t.push(""),ts(t,"High-level focus",e.high_level,"No high-level active items.",r),ts(t,"Low-level focus",e.low_level,"No low-level active items.",r),Pl(t,e,r),jl(t,e),e.workspace_memory){t.push("## Workspace memory");for(let o of e.workspace_memory.rollups)t.push(`- ${o.kind}:${o.key} \u2014 ${o.label} (${o.item_count} completed, latest ${o.last_closed_at})`);t.push("")}return Ul(t,e),Kl(t,e),Bl(t,e,n,r),Gl(t,e,r),Wl(t,e),zl(t,e),ql(t,e),Hl(t,e),Vl(t,e),Yl(t,e),Xl(t,e),t.join(`
11
- `)}async function Ql(e,t){let n=E(process.cwd(),t.path),r=await T(n),i=r.context??cr.context,o=P(r.schema),s=ul(e.depth,i),a=cl(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:ll(e.section,s,i),activityLimit:fl(e.activityLimit,i),staleThresholdDays:ml(e.staleThreshold,i),parentScope:yl(e.parent),focusFields:al(e.fields),baseListOptions:gl(e)}}function On(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function Jl(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function Zl(e,t){let n=On(t.sectionsIncluded),r=await Y(void 0,Jl(t.baseListOptions,{excludeTerminal:!1}),e),i=r.items,o=i.filter(d=>!K(d.status,t.statusRegistry)),s=n||t.parentScope!==void 0?i:o,a=ef(t.parentScope,i);return a&&(o=o.filter(d=>a.has(d.id.trim().toLowerCase())),s=s.filter(d=>a.has(d.id.trim().toLowerCase()))),{listed:r,listedItemMetadata:o,allItems:s,fullCorpus:i,subtreeIds:a}}function ef(e,t){if(e===void 0)return;let n=An(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}async function tf(e,t,n,r,i,o,s,a,d,c,l,u,f,h,y){let g=[...e].sort((b,ce)=>re(b,ce,i)),k=await Et({pmRoot:f,author:d,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),_=await xt(g,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:d,usageAffinity:k.affinity,claimFocus:y}),w=await vt("context",_.candidates),v=w.ranked.map(b=>b.item),I=i.active_statuses,L=v.filter(b=>I.has(M(b.status,i))),C=u?et(L,c,l,b=>b.id):0,A=u?L.slice(C,C+s):L,ze=u&&A.length>0&&C+A.length<L.length,qe=ze&&A.length>0?Ee(l,A[A.length-1].id,C+A.length-1):void 0,jt=v.filter(b=>r.has(b.id.trim().toLowerCase())),oe=new Set([...A.map(b=>b.id),...jt.slice(0,s).map(b=>b.id)]),se=Rn({...w,ranked:w.ranked.filter(b=>oe.has(b.id))},h,new Set(Object.entries(y??{}).filter(([,b])=>b>=1).map(([b])=>b))),ae=se.included.map(b=>b.item),Z=ae.filter(b=>I.has(M(b.status,i))),He=ae.filter(b=>r.has(b.id.trim().toLowerCase())),Ut=ke(t),q=On(o)?Ut:void 0,H=new Map(n.map(b=>[b.id.trim().toLowerCase(),b])),Kt=b=>{let ce=Ke(b,i,q);return r.has(b.id.trim().toLowerCase())&&(ce.blocked=!0,ce.blocker_ids=Zt(b,H,i).filter(Bt=>!Bt.resolved).map(Bt=>Bt.id)),ce},ka=Z.filter(b=>Pe.has(b.type)).slice(0,u?A.length:s).map(Kt),va=Z.filter(b=>!Pe.has(b.type)).slice(0,u?A.length:s).map(Kt),or=L.length===0;return{activeItems:Z,blockedItems:He,highLevel:ka,lowLevel:va,blockedFallback:or?He.slice(0,s).map(Kt):[],blockedFallbackUsed:or,ranking:w,packing:se,featureStore:_,pageExtras:{...u?{applied_limit:s}:{},...ze?{has_more:!0,truncated:!0}:{},...qe?{next_cursor:qe}:{}}}}function nf(e){return le("context",ue(e,_r))}function rf(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=is}async function of(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await Io(i,e),s=n===void 0?o.events:o.events.filter(c=>n.has(c.item_id.trim().toLowerCase())),a=Cl(s,t.statusRegistry).slice(0,t.limit),d=a.map(c=>r.has(c.item_id)?{at:c.at,date:c.date,kind:c.kind,item_id:c.item_id,reference_only:!0,...c.kind==="reminder"?{reminder_text:c.reminder_text}:{},...c.kind==="event"?{event_title:c.event_title,event_recurring:c.event_recurring}:{}}:c);return{agenda:o,agendaEvents:d,agendaSummary:El(a)}}function ns(e,t,n){let r=String(t);return e.filter(i=>M(i.status,n)===r).length}async function sf(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,d=ke(n),c=n.filter(u=>!K(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?xl(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await Tl(t.activityLimit,a):void 0,progress:l("progress")?Il(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?Fl(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?Dl(c,t.statusRegistry,d,t.limit):void 0,unparented:l("unparented")?Ll(c,t.statusRegistry,d,t.limit):void 0,filesSection:l("files")?Al(o.activeItems,t.limit):void 0,workload:l("workload")?Ml(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?Rl(c,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?Ol(o.activeItems):void 0}}function af(e,t,n){if(!e)return{};let r=x("canceled",n);return{total_items:t.length,closed:t.filter(i=>je(i.status,n)).length,canceled:t.filter(i=>M(i.status,n)===r).length}}function cf(e,t,n){t.hierarchy&&(e.hierarchy=t.hierarchy),t.activity&&(e.activity=t.activity),t.progress&&(e.progress=t.progress),t.blockersSection&&(e.blockers=t.blockersSection),t.recentlyCreated&&(e.recently_created=t.recentlyCreated),t.unparented&&(e.unparented=t.unparented),t.filesSection&&(e.files=t.filesSection),t.workload&&(e.workload=t.workload),t.staleness&&(e.staleness=t.staleness),t.tests&&(e.tests=t.tests),n!==void 0&&n.length>0&&(e.warning_details=n)}function df(e,t){t&&(e.focus_fields=t,e.high_level=$e(e.high_level,t),e.low_level=$e(e.low_level,t),e.blocked_fallback=$e(e.blocked_fallback,t),e.recently_created&&(e.recently_created=$e(e.recently_created,t)),e.unparented&&(e.unparented=$e(e.unparented,t)))}function uf(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let o of n)delete o.tags,delete o.tags_inherited;return}let r=new Map(n.map(o=>[o.id,o])),i=new Map(n.map(o=>[o.id,o.tags?[...o.tags].sort().join("\0"):void 0]));for(let o of n){if(!o.parent||!o.tags)continue;let s=r.get(o.parent);s&&i.get(o.id)===i.get(s.id)&&(delete o.tags,o.tags_inherited=s.id)}}function lf(e,t,n){t.length>0||n.length>0||e.agenda.events.length>0||(e.suggestions=['pm create --type Task --title "..." to add a new work item',"pm list --status closed --limit 5 to review recent completions","pm search <keywords> to find related past work","pm aggregate for a full project status overview"])}async function ff(e,t,n,r){try{let i=new Set(t.packing.included.map(o=>o.id));await St({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:t.ranking.ranked.map(o=>({id:o.id,rank:o.rank,included:i.has(o.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.warnings=It(e.warnings,["context_usage_feedback_write_failed"])}}async function mf(e,t,n){if(e)return{};let i=(await gr({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(s=>({name:s.name??s.directory,status:s.status==="ok"?"ok":"degraded"})).sort((s,a)=>s.name.localeCompare(a.name)),o=i.filter(s=>s.status==="degraded").length;return i.length===0?{}:{extension_health:{total:i.length,ok:i.length-o,degraded:o,packages:i.slice(0,20),...i.length>20?{truncated:!0}:{}}}}async function pf(e,t){let n=Fr(),r=await Er(e),i=n.instance||Cr(t);return Qo(r.semantic_attribution?.[i])}async function Hg(e,t){let n=E(process.cwd(),t.path),r=await Ql(e,t),i=await Zl(t,r),o=dl(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:In(e.tokenBudget,Math.max(256,o*160))},a=ee(void 0,s.settings.author_default),d=await pf(n,a),c=mf(e.noExtensionHealth===!0,n,s.settings),l=it(i.fullCorpus,s.statusRegistry),u=await tf(i.listedItemMetadata,i.allItems,i.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,D(),a,e.after,nf(e),rf(e,i.fullCorpus.length),n,s.tokenBudget,d),f=await of(t,s,i.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(I=>I.id))),h=await Tt(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),y=It(i.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],h.warnings),g=ns(u.activeItems,x("in_progress",s.statusRegistry),s.statusRegistry),k=ns(u.activeItems,x("open",s.statusRegistry),s.statusRegistry),_=await sf({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),w=af(On(s.sectionsIncluded),i.allItems,s.statusRegistry),v={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:i.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{active_items:u.activeItems.length,in_progress:g,open:k,blocked:u.blockedItems.length,blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:f.agendaSummary.events,...w},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...u.pageExtras};return v.workspace_memory=Ho(h,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(v,await c),cf(v,_,u.featureStore.warning_details),uf(v,e.noTags===!0),e.explainRanking===!0&&(v.ranking=Ln(u.ranking,u.featureStore),v.packing=Dn(u.packing)),df(v,s.focusFields),y.length>0&&(v.warnings=y),lf(v,u.activeItems,u.blockedItems),await ff(v,u,n,a),v}(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]="3431d4d4-e053-5416-b3d1-6dbfbed0142d")}catch{}})();var hf=["markdown","toon","json"],gf=5,yf=1440*60*1e3;function _f(e){if(!e)return;let t=e.trim().toLowerCase();if(!hf.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function iy(e,t){let n=_f(e.format);if(t.json&&n&&n!=="json")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?"json":n??"toon"}function us(e,t,n){let r=j(e,t);return r===void 0||r<=0?n:r}function Nn(e,t,n,r){return{...Ke(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(i=>({id:i.id,title:i.title,status:i.status})),unblocks:e.unblocks,rank:r}}function wf(e,t,n,r){let i=e.item,o=[],s=x("in_progress",t);return o.push(M(i.status,t)===s?"in progress \u2014 resume to finish":"open and ready to start"),r&&o.push("completed container \u2014 governance closeout"),o.push(`priority p${i.priority}${i.priority===0?" (highest)":""}`),typeof i.deadline=="string"&&i.deadline.trim().length>0&&o.push(kf(i.deadline,n)),o.push(ai(i).length>0?"all blockers resolved":"no blockers"),typeof i.parent=="string"&&i.parent.trim().length>0&&o.push(`advances ${i.parent.trim()}`),e.unblocks.length>0&&o.push(`unblocks ${e.unblocks.length} item(s): ${e.unblocks.join(", ")}`),o}function fs(e,t,n){let r=ee(n,t),i=[],o=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?o.push({id:s.item.id,assignee:a}):i.push(s)}return{available:i,held:o}}var oy={partitionCallerOwnedReady:fs,resolveNextCallerAuthor:(e,t)=>ms(e,t)};function bf(e,t){let n=e.filter(r=>r.item.type.trim().toLowerCase()==="decision");return{agent:t?e:e.filter(r=>r.item.type.trim().toLowerCase()!=="decision"),decisions:t?[]:n}}function kf(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),i=new Date(Date.parse(t)).toISOString().slice(0,10),o=Math.round((Date.parse(r)-Date.parse(i))/yf);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function vf(e,t){let n=x("in_progress",t);return e.filter(r=>M(r.status,t)===n).length}function $n(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Sf(e,t){return{type:e.type,tag:e.tag,priority:typeof e.priority=="number"?String(e.priority):e.priority,assignee:e.assignee,assigneeFilter:e.assigneeFilter,sprint:e.sprint,release:e.release,noTruncate:!0,...t}}function ls(e,t,n){return[...e].sort((r,i)=>{let o=$n(r.item,t),s=$n(i.item,t);return o!==s?Number(o)-Number(s):re(r.item,i.item,n)})}function Ef(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:wf(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Cf(e,t){if(e===null){if(t.length>0){let n=t.find(r=>r.blockers.length>0);return[n?`${t.length} item(s) are blocked; unblock the top one by closing ${n.blockers.map(r=>r.id).join(", ")}`:`${t.length} item(s) are blocked; add blocker context or move the top item back to an active status`,"pm next --ready-only after a blocker closes to re-check ready work",'pm create --type Task --title "..." to add new ready work']}return['pm create --type Task --title "..." to add a new work item',"pm list --status in_progress to review work already underway","pm context --depth deep for the full project snapshot"]}}function xf(e,t,n){let r={};return e>n&&(r.decision_needed_total=e),t>n&&(r.held_by_others_total=t),Object.keys(r).length>0?r:void 0}async function Tf(e){try{let t=new Set(e.packing.included.map(n=>n.id));await St({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:e.packing.profile,rows:e.ranking.ranked.map(n=>({id:n.id,rank:n.rank,included:t.has(n.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.result.warnings=It(e.result.warnings,["context_usage_feedback_write_failed"])}}async function If(e){let t=[...new Set([...e.candidatesWarnings??[],...e.corpusWarnings??[],...e.readyRanking.warnings??[],...e.featureStore.warnings])].sort((n,r)=>n.localeCompare(r));return t.length>0&&(e.result.warnings=t),e.explainRanking&&(e.result.ranking=Ln(e.readyRanking,e.featureStore),e.result.packing=Dn(e.packing)),e.result.suggestions=Cf(e.recommended,e.blockedRows),await Tf({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Ff(e,t,n){if(!n)return e;let r=An(t,n);if(!r.found)throw new p(`Next --parent item not found: ${n}`,m.NOT_FOUND);return e.filter(i=>r.ids.has(i.id.trim().toLowerCase()))}async function Af(e,t,n,r,i,o,s){let a=e.filter(g=>!$n(g.item,t)),d=a.length>0?a:e,c=await Et({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),l=await xt(d.map(g=>g.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:c.affinity}),u=await vt("next",l.candidates),f=Rn(u,s,new Set,"next"),h=new Map(d.map(g=>[g.item.id,g]));return{projectedReady:u.ranked.map(g=>h.get(g.id)).filter(g=>g!==void 0),ranking:u,completedContainer:a.length===0,packing:f,featureStore:l}}function ms(e,t){let n=e.assignee?.trim();return ee(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function sy(e,t){let n=E(process.cwd(),t.path),r=await T(n),i=ms(e,r.author_default),o=P(r.schema),s=D(),a=us(e.limit,"--limit",gf),d=In(e.tokenBudget,Math.max(192,a*128)),c=us(e.blockedLimit,"--blocked-limit",a),l=e.readyOnly===!0,u=typeof e.parent=="string"?e.parent.trim():"",f=await Y(void 0,Sf(e,{excludeTerminal:!0}),t),h=await Y(void 0,{excludeTerminal:!1,noTruncate:!0},t),y=Ff(f.items,h.items,u),g=h.items,k=ci(y,g,o),_=ke(g),w=bf(k.ready,e.includeDecisions===!0),v=fs(w.agent,r.author_default,i),I=ls(v.available,_,o),L=[...k.blocked].sort((q,H)=>re(q.item,H.item,o)),{projectedReady:C,ranking:A,completedContainer:ze,packing:qe,featureStore:jt}=await Af(I,_,o,s,i,n,d),oe=C.map((q,H)=>Nn(q,o,_,H+1)),se=L.map((q,H)=>Nn(q,o,_,H+1)),ae=ls(w.decisions,_,o).map((q,H)=>Nn(q,o,_,H+1)),Z=Ef({projectedReady:C,readyRows:oe,statusRegistry:o,now:s,completedContainer:ze}),He=xf(ae.length,v.held.length,a),Ut={output_default:"toon",now:s,recommended:Z,ready:oe.slice(1,a+1),decision_needed:ae.slice(0,a),blocked:l?[]:se.slice(0,c),held_by_others:v.held.slice(0,a),summary:{recommended:Z!==null,ready:oe.length,blocked:se.length,in_progress:vf(oe,o),candidates:k.active_count,containers:k.container_count,decision_needed:ae.length,held_by_others:v.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:u.length>0?u:null,limit:a,blocked_limit:c,ready_only:l,include_decisions:e.includeDecisions===!0,token_budget:d},truncation:He};return If({result:Ut,recommended:Z,blockedRows:se,candidatesWarnings:f.warnings,corpusWarnings:h.warnings,readyRanking:A,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:qe,featureStore:jt})}function ay(e){let t=["# pm next","",...Mf(e)];if(t.push(...Ft("Recommended",Rf(e.recommended),"No ready work.")),t.push(...Ft("Decision needed",(e.decision_needed??[]).map(n=>`- ${At(n)}`),"No human-gated decisions.")),t.push(...Ft("Ready",e.ready.map(n=>`- ${At(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Ft("Blocked",e.blocked.map(n=>`- ${Df(n)}`),"No blocked items.")),e.suggestions&&e.suggestions.length>0){t.push("## Suggestions");for(let n of e.suggestions)t.push(`- ${n}`)}return t.join(`
12
- `).trimEnd()}function Mf(e){let t=[`- now: ${e.now}`,`- ready: ${e.summary.ready} (in_progress: ${e.summary.in_progress}), blocked: ${e.summary.blocked}, candidates: ${e.summary.candidates}`];return e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(""),t}function Rf(e){return e?[`- ${At(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Ft(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Df(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${At(e)} blocked_by:${t}`}function At(e){let t=e.deadline??"-",n=e.parent?` parent:${e.parent}`:"",r=e.unblocks.length>0?` unblocks:${e.unblocks.length}`:"";return`${Number.isInteger(e.rank)?`#${e.rank} `:""}${e.id} p${e.priority} ${e.status} ${e.type} deadline:${t}${n}${r} ${e.title}`}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1638ef81-7558-5d51-8561-99c958de2d03")}catch{}})();function Lf(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function Of(e,t){return e.map((n,r)=>{let i=new Set,o=Or(n.patch);for(let s of o)i.add(Vt(s.path)),s.from&&i.add(Vt(s.from));return{index:t+r+1,ts:n.ts,op:n.op,author:n.author,patch_ops:o.length,changed_fields:[...i].sort((s,a)=>s.localeCompare(a))}})}async function Nf(e,t){let n=E(process.cwd(),t.path);if(!await N($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await T(n),i=O(r,F()),o=e.trim()===Ht,s=o?Ht:jr(e,r.id_prefix),a=await me(n,s,r.id_prefix,r.item_format,i.type_to_folder),d=a?.id??s,c=o?Nr(n):Je(n,d);if(!a&&!await N(c))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await $r({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:c,located:a,resolvedId:d,settings:r}}async function py(e,t,n){let r=te(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await Nf(e,n),d=await V(i,s),c=a.agent_identity.identity_vocabulary,l=st(a.agent_identity.harness_signals),u=ct({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},c,l),f=d.map((C,A)=>({entry:C,version:A+1})).filter(({entry:C})=>u(C)),h=Lf(f,r),y=h.map(({entry:C})=>C),g=t.compact===!0,k=g?Of(y,Math.max(0,d.length-y.length)):void 0,_=t.provenance===!0?h.map(({entry:C,version:A})=>at(C,c,{itemId:s,version:A})):void 0,w=t.provenance===!0?"provenance":g?"compact":"full",v={compact:{compact_history:k},provenance:{provenance_history:_},full:{history:y}}[w],L={id:s,...v,compact:g,projection:{mode:w,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[w]},omission_receipt:Ze("history",w),count:y.length,limit:r??null,...t.provenanceSummary===!0?{provenance_summary:dt(f.map(({entry:C})=>C),c,l)}:{}};if((t.diff||t.field!==void 0)&&(L.diff=Qr(d,{windowStartIndex:Math.max(0,d.length-y.length),field:t.field})),t.verify){let C=o?(await pe(o,{schema:a.schema})).document:void 0;L.verification=ui(d,C)}return L}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2e14b978-95c9-5922-b8cb-c49d24e6f8c4")}catch{}})();var ps=1e6,hs=20;function gs(e,t,n,r=hs){if(!Number.isSafeInteger(r)||r<0)throw new p("Child projection sample limit must be a non-negative integer.",m.USAGE);let i=e.trim().toLowerCase(),o={},s=[],a=0,d=0;for(let f of t){if(d+=1,d>ps)throw new p(`Child projection exceeded the ${ps.toLocaleString("en-US")} item safety bound.`,m.GENERIC_FAILURE,{code:"child_projection_item_bound_exceeded",required:"Use an indexed or parent-filtered metadata source.",why:"Unbounded graph scans can exhaust memory in universal project stores.",nextSteps:["Build the derived item index, then retry the parent read."]});if(f.parent?.trim().toLowerCase()!==i)continue;s.push(f);let h=f.status.trim().toLowerCase();o[h]=(o[h]??0)+1,K(h,n)||(a+=1)}s.sort((f,h)=>f.id.localeCompare(h.id));let c=s.slice(0,r).map(f=>({id:f.id,title:f.title,type:f.type,status:f.status,priority:f.priority})),l=s.length>c.length,u=r===0?hs:r;return{count:s.length,active:a,by_status:Object.fromEntries(Object.entries(o).sort(([f],[h])=>f.localeCompare(h))),sample:c,sample_limit:r,truncated:l,next_offset:l?c.length:null,continuation:l?`pm list --status all --parent ${e} --offset ${c.length} --limit ${u}`:null,scanned:d}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="80981c24-3442-57a2-8c35-e0e00d5425d6")}catch{}})();var $f=new Set(["event","meeting","reminder"]);function Pf(e){return $f.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function Pn(e){if(!Pf(e))return;let t=[...e.events??[]].sort((r,i)=>r.start_at.localeCompare(i.start_at)),n=t[0];return{deadline:e.deadline??null,start_at:n?.start_at??null,end_at:n?.end_at??null,location:n?.location??null,reminders:[...e.reminders??[]],events:t}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="89176e36-40ea-5ec2-b291-d1cf042c4140")}catch{}})();var jf=["brief","standard","deep"],Uf=new Set(["epic","feature","milestone","plan"]),Kf=new Set(Object.keys(ar).map(e=>e.toLowerCase()));function Un(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(n=>[n,e[n]?.length??0]))}function Bf(e,t){let n=Un(e);return[...t.length>0?["body"]:[],...Object.entries(n).flatMap(([r,i])=>i>0?[r]:[]),...n.files+n.tests+n.docs>0?["linked"]:[],"children",...typeof e.assignee=="string"&&e.assignee.trim().length>0?["claim_state"]:[],...Pn(e)?["schedule"]:[]]}function _s(e){let t=e.trim().toLowerCase();return t.length>0&&(Uf.has(t)||!Kf.has(t))}function ys(e){return{ts:e.ts,author:e.author,message:e.message??null}}function Gf(e,t){let n=e?.trim(),r=n&&n.length>0?n:null,i=[...t].reverse().find(s=>s.op==="claim"),o=[...t].reverse().find(s=>s.op==="release");return{claimed:r!==null,assignee:r,last_claim:i?ys(i):null,last_release:o?ys(o):null}}function Wf(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(jf.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function zf(e,t){let n=Un(e);if(t==="deep")return{...e,comments:e.comments??[],notes:e.notes??[],learnings:e.learnings??[],files:e.files??[],tests:e.tests??[],docs:e.docs??[],reminders:e.reminders??[],events:e.events??[],notes_count:n.notes,tests_count:n.tests,collection_counts:n};let{comments:r,notes:i,learnings:o,files:s,tests:a,docs:d,reminders:c,events:l,...u}=e;return{...u,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:n}}function qf(e){if(e===void 0)return null;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Get --fields requires a comma-separated list of field names",m.USAGE);return t}function Rt(e){return e.startsWith("item.")?e.slice(5):e}function Hf(e,t){if(e===null)return;let n=new Set([...Ye,...t,"notes_count","tests_count","collection_counts"]),r=new Set(["body","linked","claim_state","children","schedule"]),i=new Set(["linked.files","linked.tests","linked.docs"]),o=new Set(["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"]),s=new Set(["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"]),a=e.filter(d=>{let c=Rt(d);return!n.has(c)&&!r.has(c)&&!i.has(c)&&!o.has(c)&&!s.has(c)});if(a.length>0)throw new p(`Unknown get --fields value(s): ${a.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm get <id> --fields id,title,status,type,updated_at","pm get <id> --fields id,title,claim_state","pm get <id> --fields id,title,body,linked.files"]})}function Vf(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:Un(e)},i={};for(let o of t){let s=Rt(o);s==="body"||s==="linked"||s.startsWith("linked.")||s==="claim_state"||s.startsWith("claim_state.")||s==="children"||s.startsWith("children.")||s==="schedule"||s.startsWith("schedule.")||(i[s]=Object.hasOwn(r,s)?r[s]:n[s])}return i}function Be(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function Mt(e,t){return e.some(n=>{let r=Rt(n);return r===t||r.startsWith(`${t}.`)})}function Yf(e){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new p("Get projection options are mutually exclusive; remove the extra projection flag and retry.",m.USAGE);if(e.tree!==!0&&e.treeDepth!==void 0)throw new p("Get --tree-depth requires --tree",m.USAGE);if(e.at!==void 0&&e.tree===!0)throw new p("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",m.USAGE);return{depth:e.full?"deep":Wf(e.depth),treeDepth:e.tree===!0?j(e.treeDepth,"--tree-depth"):void 0,fields:qf(e.fields),fieldProjection:e.fields!==void 0}}async function Xf(e,t,n){let r=E(process.cwd(),t.path);if(!await N($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await T(r),o=O(i,F());if(n!==void 0){let d=await li(e,n,{pmRoot:t.path});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:d.document.metadata.id,metadata:d.document.metadata,body:d.document.body,historical:d}}let s=await me(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await Wr(r,e,i.id_prefix,o.type_to_folder);let a=await pe(s,{schema:i.schema});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:s.id,metadata:a.document.metadata,body:a.document.body}}function Qf(e,t,n){let r=B(t.schema).definitions.map(i=>i.metadata_key);if(Hf(e,r),n&&Mt(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function jn(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?Be(r,i):Mt(r,i):n!=="brief"}async function Jf(e,t){if(!t)return;let n=Je(e.pmRoot,e.locatedId),r=await V(n,e.locatedId);return Gf(e.metadata.assignee,e.historical?r.slice(0,e.historical.as_of_version):r)}function Zf(e,t,n,r){let i=r||Be(n,"linked.files"),o=r||Be(n,"linked.tests"),s=r||Be(n,"linked.docs");!r&&!i&&!o&&!s||(e.linked={files:i?t.metadata.files??[]:[],tests:o?t.metadata.tests??[]:[],docs:s?t.metadata.docs??[]:[]})}async function em(e,t,n,r){if(!t)return;let i=P(e.settings.schema),o=await J(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=gs(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function tm(e,t,n,r){if(!r)return;let i=Pn(t.metadata);if(i){if(n===null||Be(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>Rt(s)===`schedule.${o}`)))}}async function nm(e,t,n,r){if(t.tree!==!0)return;let i=await Y(void 0,{parent:e.locatedId,tree:!0,treeDepth:n===void 0?void 0:String(n),full:!0},r);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:n??null,count:i.count,items:i.items.map(o=>o)}}async function My(e,t,n={}){let r=Yf(n),i=await Xf(e,t,n.at);Qf(r.fields,i.settings,i.historical!==void 0);let o=jn({...r,field:"body"}),s=jn({...r,field:"linked"}),a=jn({...r,field:"claim_state"}),d=i.historical===void 0&&(r.fieldProjection?Mt(r.fields,"children"):r.depth!=="brief"&&_s(i.metadata.type)),c=r.fieldProjection?Mt(r.fields,"schedule"):r.depth!=="brief",l=await Jf(i,a),u={item:r.fieldProjection?Vf(i.metadata,r.fields):zf(i.metadata,r.depth)};o&&(u.item.body=i.body),Zf(u,i,r.fields,s),l&&(u.claim_state=l),tm(u,i,r.fields,c);let f=await em(i,d,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(u.children=f);let h=await nm(i,n,r.treeDepth,t);if(h!==void 0&&(u.tree=h),i.historical&&(u.reconstructed=!0,u.as_of_version=i.historical.as_of_version,u.as_of_timestamp=i.historical.as_of_timestamp),i.historical===void 0)try{await Ko({pmRoot:i.pmRoot,author:ee(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return br(u,Bf(i.metadata,i.body)),u}var Ry={shouldAutoIncludeGetChildren:_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]="b0abcc02-bd6e-536a-b876-e13cfc8ea741")}catch{}})();function ws(e){if(typeof e!="string")return!1;let t=e.split(",").map(n=>n.trim().toLowerCase()).filter(Boolean);return t.length===1&&t[0]==="all"}var rm=[{optionKey:"status",summaryKey:"status",normalize:e=>ws(e)?"all":e},{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"parent",summaryKey:"parent"}];function Ge(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,runtimeFieldFilters:c}=e,l={};return cn(l,r,rm),Object.assign(l,De(r)),Object.assign(l,Re(r)),n!==void 0&&n!=="or"&&(l.match_mode=n),i&&(l.include_linked=!0),o&&(l.title_exact=!0),s&&(l.phrase_exact=!0),a>0&&(l.score_threshold=a),t==="hybrid"&&r.semanticWeight!==void 0&&(l.hybrid_semantic_weight=d),r.limit!==void 0&&(l.limit=r.limit),c&&Object.keys(c).length>0&&(l.runtime_filters=c),l}function We(e){let{effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,queryExpansion:c,rerank:l,runtimeFieldFilters:u}=e,f=h=>h??null;return{mode:t,match_mode:n,status:r.status===void 0||ws(r.status)?"all":r.status,type:f(r.type),tag:f(r.tag),priority:f(r.priority),deadline_before:f(r.deadlineBefore),deadline_after:f(r.deadlineAfter),updated_after:f(r.updatedAfter),updated_before:f(r.updatedBefore),created_after:f(r.createdAfter),created_before:f(r.createdBefore),assignee:f(r.assignee),sprint:f(r.sprint),release:f(r.release),parent:f(r.parent),...De(r),...Re(r),include_linked:i,title_exact:o,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?d:null,query_expansion_enabled:c.enabled,query_expansion_provider:c.provider,rerank_enabled:l.enabled,rerank_model:l.model,rerank_top_k:l.top_k,limit:f(r.limit),runtime_filters:u}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1")}catch{}})();function im(e){return le("search",{query:e.query.trim(),mode:e.mode,options:ue(e.searchOptions,wr)})}function bs(e){let t=kr(e.sorted,{cursor:e.searchOptions.after,fingerprint:im(e),limit:e.limit,readId:n=>n.item.id});return{limited:t.rows,pageExtras:{applied_limit:e.limit,...t.has_more?{has_more:!0,truncated:!0}:{},...t.next_cursor?{next_cursor:t.next_cursor}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47576eb5-4ddf-5e04-9e1d-c961da39b754")}catch{}})();var om=["id","title","status","type","priority","updated_at","score","matched_fields"],sm=new Set(["score","matched_fields","highlights"]),am=new Set(["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"]);function ks(e){if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(t!=="keyword"&&t!=="semantic"&&t!=="hybrid")throw new p("Search mode must be one of keyword|semantic|hybrid",m.USAGE);return t}function Dt(e){return e===!0}function vs(e){return pr(e,0,1)??void 0}function Ss(e){if(e===void 0)return"or";let t=e.trim().toLowerCase();if(t!=="and"&&t!=="or"&&t!=="exact")throw new p("Search --match-mode must be one of and|or|exact",m.USAGE);return t}function Es(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(String(e).trim());if(!Number.isFinite(t)||t<0)throw new p("Search --min-score must be a finite number >= 0",m.USAGE);return t}function ve(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return U(n,new Date,t)}function Q(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Kn(e,t){if(e!==void 0)return U(e,new Date,t)}function cm(e){if(e===void 0)return;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Search --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function Bn(e){let t=e.compact===!0,n=e.full===!0,r=cm(e.fields);if(Number(t)+Number(n)+ +(r!==void 0)>1)throw new p("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",m.USAGE);return t?{mode:"compact",fields:[...om]}:n?{mode:"full",fields:[]}:r?{mode:"fields",fields:r}:{mode:"full",fields:[]}}function Gn(e,t){if(e.mode!=="fields")return;let n=new Set(t.definitions.flatMap(i=>[i.key,i.metadata_key])),r=e.fields.filter(i=>{let o=i.trim(),s=o.startsWith("item.")?o.slice(5):o;return!sm.has(o)&&!am.has(s)&&!n.has(s)});if(r.length>0)throw new p(`Unknown search --fields value(s): ${r.join(", ")}`,m.USAGE,{examples:["pm search <query> --fields id,title,status,score","pm search <query> --fields id,title,item.description,matched_fields"],nextSteps:["Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples."]})}function Wn(e){let t=Q(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function zn(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function qn(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function Hn(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function Vn(e){let t={title_exact_bonus:10,title_weight:48,description_weight:5,tags_weight:6,status_weight:2,body_weight:1,comments_weight:1,notes_weight:1,learnings_weight:1,reminders_weight:2,events_weight:2,dependencies_weight:3,linked_content_weight:1},n=e.search?.tuning;if(!n)return t;let r=(i,o)=>typeof i=="number"&&Number.isFinite(i)&&i>=0?i:o;return{title_exact_bonus:r(n.title_exact_bonus,t.title_exact_bonus),title_weight:r(n.title_weight,t.title_weight),description_weight:r(n.description_weight,t.description_weight),tags_weight:r(n.tags_weight,t.tags_weight),status_weight:r(n.status_weight,t.status_weight),body_weight:r(n.body_weight,t.body_weight),comments_weight:r(n.comments_weight,t.comments_weight),notes_weight:r(n.notes_weight,t.notes_weight),learnings_weight:r(n.learnings_weight,t.learnings_weight),reminders_weight:r(n.reminders_weight,t.reminders_weight),events_weight:r(n.events_weight,t.events_weight),dependencies_weight:r(n.dependencies_weight,t.dependencies_weight),linked_content_weight:r(n.linked_content_weight,t.linked_content_weight)}}import Ot from"node:fs/promises";import er 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]="42fde1a1-ee4b-5564-93b2-78d5a0fc7555")}catch{}})();var Yn=4,dm=20,um=200,lm=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function Xn(e,t){let n=[],r=new Set;for(let i of e){let o=i.trim().replaceAll(/\s+/g," ");if(o.length===0)continue;let s=o.toLowerCase();if(!r.has(s)&&(r.add(s),n.push(o),n.length>=t))break}return n}function fm(e){let t=e.toLowerCase();return t.length>4&&t.endsWith("ies")?`${t.slice(0,-3)}y`:t.length>4&&(t.endsWith("ches")||t.endsWith("shes")||t.endsWith("xes")||t.endsWith("zes")||t.endsWith("sses"))?t.slice(0,-2):t.length>3&&t.endsWith("s")&&!t.endsWith("ss")&&!t.endsWith("us")&&!t.endsWith("is")&&!t.endsWith("as")?t.slice(0,-1):t}function mm(e){let t=e.toLowerCase();return t.length>2&&(!t.endsWith("s")||t.endsWith("ss"))?t.endsWith("y")&&!/[aeiou]y$/u.test(t)?`${t.slice(0,-1)}ies`:t.endsWith("ch")||t.endsWith("sh")||t.endsWith("x")||t.endsWith("z")||t.endsWith("ss")?`${t}es`:`${t}s`:t}function Cs(e,t=Yn){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=_e(n);if(r.length===0)return[n];let i=r.filter(a=>!lm.has(a.toLowerCase())),o=r.map(a=>fm(a)),s=i.map(a=>mm(a));return Xn([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function xs(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?Xn(t.filter(n=>typeof n=="string"),Yn):[]}function Ts(e,t,n){return Xn([...e,...t],Math.max(1,n))}function Is(e,t){let r=e.search?.query_expansion,i=Se(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:Yn}}function Fs(e,t){let r=e.search?.rerank,i=Se(r?.model),s=mr(r?.top_k)??dm;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(um,s)}}function As(e){let t=Array.isArray(e)?e:e?.hits;if(!Array.isArray(t))return[];let n=new Map;for(let i of t){if(typeof i!="object"||i===null)continue;let o=Se(i.id),s=i.score;if(!o||typeof s!="number"||!Number.isFinite(s))continue;let a=n.get(o);(a===void 0||s>a)&&n.set(o,s)}let r=[...n.entries()].map(([i,o])=>({id:i,score:o}));return r.sort((i,o)=>i.score!==o.score?o.score-i.score:i.id.localeCompare(o.id)),r}function pm(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function Ms(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function hm(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=pm(e,t),i=Ms(t),o=n*i;return!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(i)||!Number.isFinite(o)||o===0?0:Math.max(-1,Math.min(1,r/o))}async function Rs(e,t,n,r,i){if(r.length===0)return new Map;let o=Se(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],d=await rt(s,a,i?{timeout_ms:i}:{}),c=d[0];if(!c)return new Map;let l=Ms(c),u=new Map;for(let f=0;f<r.length;f+=1){let h=r[f],y=d[f+1];if(!y)continue;let g=hm(c,y,l);u.set(h.id,Math.max(0,Math.min(1,(g+1)/2)))}return u}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3fd6ed70-6633-5886-90a6-3d4cc16b3ef0")}catch{}})();var gm=1.2,ym=.75;function Qn(e){return _e(e)}function _m(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function Ls(e){let t=[],n=new Map,r=0;for(let o of e){let s=Qn(o.text),a=_m(s);r+=s.length;for(let d of a.keys())n.set(d,(n.get(d)??0)+1);t.push({id:o.id,termFrequencies:a,length:s.length})}let i=t.length;return{documents:t,documentFrequency:n,documentCount:i,averageDocumentLength:i>0?r/i:0}}function wm(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function Os(e,t,n){let r=new Map;if(e.documentCount===0||e.averageDocumentLength===0)return r;let i=[...new Set(t.filter(s=>s.length>0))];if(i.length===0)return r;let o=new Map;for(let s of i){let a=e.documentFrequency.get(s);a!==void 0&&o.set(s,wm(e.documentCount,a))}if(o.size===0)return r;for(let s of e.documents){let a=0;for(let[d,c]of o){let l=s.termFrequencies.get(d);if(l===void 0)continue;let u=1-n.b+n.b*s.length/e.averageDocumentLength,f=l+n.k1*u;a+=c*(l*(n.k1+1)/f)}a>0&&r.set(s.id,a)}return r}function Ds(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function Ns(e){let t=n=>typeof n=="string"?[n]:typeof n=="number"?[String(n)]:Array.isArray(n)?n.flatMap(t):typeof n=="object"&&n!==null?Object.values(n).flatMap(t):[];return t(Object.values(e)).join(" ")}function $s(e){let t=e?.search?.bm25;return{k1:Ds(t?.k1,gm,0,1e3),b:Ds(t?.b,ym,0,1)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1750b332-dd40-5497-b410-26c8c7436329")}catch{}})();var bm=2,km=120,vm=6,Sm=40,Em=1e3,Cm=900,xm="\xAB",Tm="\xBB",Ps=60,Ks=["tag","status","type","priority"];function Bs(e){let t=[],n=e;for(let r=0;r<5&&n&&typeof n=="object";r+=1){let i=n.code;typeof i=="string"&&t.push(i.toLowerCase()),n=n.cause}return t.join(" ")}function Gs(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=Bs(e),r=`${t} ${n}`;return r.includes("timed out")||r.includes("timeout")||r.includes("etimedout")?"timeout":r.includes("econnrefused")||r.includes("connection refused")||r.includes("connect ")||r.includes("enotfound")||r.includes("eai_again")||r.includes("econnreset")||r.includes("fetch failed")?"connection":"error"}function Ws(e,t){let n=Gs(t);return`search_${e}_fallback:${n}:using_keyword_mode`}async function zs(e,t,n){try{let r=await ii(e);r.warnings.length>0&&n.push(...r.warnings);let i=si(t.map(o=>({id:o.metadata.id,updated_at:o.metadata.updated_at})),r.entries);if(i.length===0)return;n.push(`vector_index_stale:${i.length}`),process.stderr.write(`[pm] warning: ${i.length} item${i.length===1?" is":"s are"} new or modified since the last reindex and ${i.length===1?"is":"are"} NOT in the semantic index yet \u2014 they will be missing from semantic/hybrid results until you run 'pm reindex --mode hybrid'. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
13
- `)}catch{}}var N_={applyFilters:Qs,applyExactQueryFilters:Xs,applyInlineQueryFilters:Hs,buildHitHighlights:ia,buildVerboseSearchFilters:We,buildExplicitSemanticFallbackWarning:Ws,buildCompactSearchFilterSummary:Ge,buildHybridLexicalScore:aa,buildRerankCorpus:ga,buildSemanticHits:fa,classifyImplicitSemanticFallbackReason:Gs,collectErrorCauseCodes:Bs,collectExactPhraseFields:Vs,collectLinkedPaths:Js,combineHybridHits:ir,computeBuiltInBm25Hits:pa,computeSemanticOrHybridHits:ya,resolveBuiltInBm25Mode:ma,countOccurrences:nr,dependencyEntries:tr,documentContainsExactPhrase:Ys,emptySearchResult:ca,highlightFieldSnippet:ra,loadDocuments:_a,markTokenRuns:na,parseInlineQueryFilters:qs,maybeEmitVectorIndexStaleWarning:zs,loadLinkedCorpus:ea,mergeVectorHitsById:ha,normalizeExtensionProviderHits:la,normalizeScoreMap:Jn,parseProjectionConfig:Bn,parseTimestampWindow:ve,parseTokens:Wn,projectSearchHits:ba,readSearchFieldValue:wa,requireSemanticDependencies:rr,resolveExtensionSearchProvider:da,resolveExtensionSearchProviderByName:Pt,resolveExtensionVectorAdapter:ua,resolveLinkedCorpusRoots:Zs,scoreDocument:oa,sortHits:sa,stringArray:$t,textEntries:ie,validateSearchProjectionFields:Gn};function qs(e){let t={},n=[];for(let r of e.split(/\s+/).filter(i=>i.length>0)){let i=r.indexOf(":"),o=i>0?r.slice(0,i).toLowerCase():"",s=i>0?r.slice(i+1):"",a=Ks.includes(o)?o:void 0;if(a&&s.length>0&&t[a]===void 0){t[a]=s;continue}n.push(r)}return{residualQuery:n.join(" "),inlineFilters:t}}function Hs(e,t,n){let r={...e};for(let i of Ks){let o=t[i];if(o!==void 0){if(R(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function $t(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function ie(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function tr(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function Vs(e){let t=e.metadata;return[t.title,t.description,t.status,$t(t.tags).join(" "),e.body,ie(t.comments).map(n=>n.text).join(" "),ie(t.notes).map(n=>n.text).join(" "),ie(t.learnings).map(n=>n.text).join(" "),Yt(t).join(" "),Xt(t).join(" "),tr(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),Qt(t)]}function Ys(e,t){return Vs(e).some(n=>Q(n).includes(t))}function Xs(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&Q(r.metadata.title)!==t||n.phraseExact&&!Ys(r,t)))}function Im(e){if(e&&[...e].some(t=>t.toLowerCase()==="none"||t.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null".',m.USAGE)}function Fm(e,t,n){let r=G(e.assignee,{label:"--assignee"});Im(r);let i=gt(e),o=Me(e);return{typeFilter:ut(e.type,t),tagFilter:G(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:lt(e.priority),deadlineBefore:Kn(e.deadlineBefore,"deadline-before"),deadlineAfter:Kn(e.deadlineAfter,"deadline-after"),updatedAfter:ve(e.updatedAfter,"updated-after"),updatedBefore:ve(e.updatedBefore,"updated-before"),createdAfter:ve(e.createdAfter,"created-after"),createdBefore:ve(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:G(e.sprint,{label:"--sprint"}),releaseFilter:G(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:Ie(i),contentFieldFilters:o,contentFiltersActive:pt(o)}}function Am(e,t){return Mm(e,t)&&Rm(e,t)&&Dm(e,t)}function Mm(e,t){if(t.statusSet&&!t.statusSet.has(e.status)||t.typeFilter&&!t.typeFilter.has(e.type))return!1;let n=t.tagFilter;return!(n&&!$t(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function Rm(e,t){return tt(e,t)}function Dm(e,t){return!(t.assigneeFilter!==void 0&&(e.assignee===void 0||!t.assigneeFilter.has(e.assignee))||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))||t.releaseFilter!==void 0&&(e.release===void 0||!t.releaseFilter.has(e.release))||t.parentFilter!==void 0&&e.parent!==t.parentFilter)}function Lm(e,t,n,r){let i=e.metadata;return!(!Am(i,t)||!ye(i,n)||t.missingMetadataActive&&!mt(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!ht(i,t.contentFieldFilters))}function Qs(e,t,n,r,i,o){let s=Fm(t,n,i);return e.filter(a=>Lm(a,s,r,o))}function nr(e,t){let n=0,r=0;for(;;){let i=e.indexOf(t,r);if(i<0)return n;n+=1,r=i+t.length}}function Om(e){return _e(e)}function Js(e){let t=(e.files??[]).map(s=>({scope:s.scope,path:s.path.trim()})),n=(e.docs??[]).map(s=>({scope:s.scope,path:s.path.trim()})),r=(e.tests??[]).filter(s=>typeof s.path=="string"&&s.path.trim().length>0).map(s=>({scope:s.scope,path:s.path.trim()})),i=[...t,...n,...r].filter(s=>s.path.length>0).sort((s,a)=>s.scope.localeCompare(a.scope)||s.path.localeCompare(a.path)),o=new Map;for(let s of i)o.set(`${s.scope}:${s.path}`,s);return[...o.values()]}async function js(e){let t=er.resolve(e);try{let n=await Ot.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function Zs(e,t){let[n,r]=await Promise.all([js(e),js(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function ea(e,t){let n=Js(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=er.resolve(o.resolved,i.path);if(!Wt(o.resolved,s))continue;let a;try{a=await Ot.realpath(s)}catch{continue}if(Wt(o.realpath,a))try{await Ce({path:s,scope:i.scope}),r.push(await Ot.readFile(s,"utf8"))}catch{}}return r.join(`
14
- `)}var ta=[{name:"title",weightKey:"title_weight",value:e=>e.metadata.title},{name:"description",weightKey:"description_weight",value:e=>e.metadata.description},{name:"tags",weightKey:"tags_weight",value:e=>$t(e.metadata.tags).join(" ")},{name:"status",weightKey:"status_weight",value:e=>typeof e.metadata.status=="string"?e.metadata.status:""},{name:"body",weightKey:"body_weight",value:e=>e.body},{name:"comments",weightKey:"comments_weight",value:e=>ie(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>ie(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>ie(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>Yt(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>Xt(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>tr(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>Qt(e.metadata)}],Nm=new Map(ta.map(e=>[e.name,e]));function $m(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function na(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map($m);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${xm}${i}${Tm}`)}function ra(e,t){if(e.length===0)return null;let n=e.toLowerCase(),r=-1,i=0;for(let l of t){if(l.length===0)continue;let u=n.indexOf(l);u>=0&&(r<0||u<r)&&(r=u,i=l.length)}if(r<0)return null;let o=Math.max(0,r-Ps),s=Math.min(e.length,r+i+Ps),a=na(e.slice(o,s),t),d=o>0?"\u2026":"",c=s<e.length?"\u2026":"";return`${d}${a}${c}`}function ia(e,t,n){let r=[];for(let i of t){let o=Nm.get(i);if(o===void 0)continue;let s=ra(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function Pm(e,t,n){return[...ta.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function jm(e,t,n){let r=Q(e.id),i=typeof n=="string"?n.trim().toLowerCase():"",o=Q(i),s=o.length>0&&r.startsWith(o)?r.slice(o.length).trim():r;return t!==r&&t!==s?null:{item:e,score:t===r?Em:Cm,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function Um(e,t,n,r,i){for(let o of e){let s=t.get(o)??0;s>0&&(i.score+=s*r.title_exact_bonus,i.matched.add("title"),i.matchedTokens.add(o));for(let a of n){let d=nr(a.value.toLowerCase(),o);d>0&&(i.score+=d*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function Km(e,t,n,r){Q(e.title)===t&&(r.score+=km,r.matched.add("title"));for(let o of n){let s=nr(Q(o.value),t);s>0&&(r.score+=s*o.weight*vm,r.matched.add(o.name))}}function oa(e,t,n,r,i,o,s=!1){let a=e.metadata,d=jm(a,n,o);if(d)return d;let c=new Map;for(let g of Om(a.title))c.set(g,(c.get(g)??0)+1);let l=Pm(e,r,i),u={score:0,matched:new Set,matchedTokens:new Set};Um(t,c,l,i,u);let f=new Set(t),h=f.size>0&&u.matchedTokens.size===f.size;return s&&f.size>1&&h&&(u.score+=Sm),t.length>=bm&&n.includes(" ")&&Km(a,n,l,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((g,k)=>g.localeCompare(k)),matched_all_terms:h}}function sa(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=K(n.item.status,t),s=K(r.item.status,t);if(o!==s)return o?1:-1;let a=n.item.priority-r.item.priority;if(a!==0)return a;let d=S(r.item.updated_at,n.item.updated_at);return d!==0?d:n.item.id.localeCompare(r.item.id)})}function aa(e,t,n,r,i,o,s,a=!1){return oa(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function Jn(e){if(e.size===0)return new Map;let t=[...e.values()],n=Math.min(...t),r=Math.max(...t);if(r===n)return new Map([...e.keys()].map(o=>[o,1]));let i=new Map;for(let[o,s]of e)i.set(o,(s-n)/(r-n));return i}function ca(e,t,n,r,i,o,s,a,d,c,l,u,f=!1){let h=f?{total:0,count_only:!0}:{};if(c.mode==="compact"&&r.compact===!0){let k=Ge({mode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,runtimeFieldFilters:u});return{query:e.trim(),mode:t,items:[],count:0,...h,filters:k,...l.length>0?{warnings:l}:{}}}let g=c.mode==="full"?null:[...c.fields];return{query:e.trim(),mode:t,items:[],count:0,...h,filters:We({effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,queryExpansion:a,rerank:d,runtimeFieldFilters:u??{}}),projection:{mode:c.mode,fields:g},now:D(),...l.length>0?{warnings:l}:{}}}function rr(e,t,n,r){if(!t.active)throw new p(`Search mode '${e}' requires a configured embedding provider in settings.providers.openai or settings.providers.ollama`,m.USAGE);if(!n.active&&!r)throw new p(`Search mode '${e}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`,m.USAGE);return{provider:t.active,vectorStore:n.active??null}}var z=R;function Pt(e){let t=F(),n=Yr(t,e);if(!n)return null;let r=n.runtime_definition??n.definition,i=r.query,o=r.queryExpansion??r.query_expansion,s=r.rerank,a=z(r.name)??z(n.definition.name)??e;if(!a)return null;let d={providerName:a,...typeof i=="function"?{query:i}:{},...typeof o=="function"?{queryExpansion:o}:{},...typeof s=="function"?{rerank:s}:{}};return!d.query&&!d.queryExpansion&&!d.rerank?null:d}function da(e){let t=z(e.search?.provider),n=Pt(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function ua(e){let t=F(),n=z(e.vector_store?.adapter),r=Xr(t,n);if(!r)return null;let i=r.runtime_definition??r.definition,o=i.query;if(typeof o!="function")return null;let s=i.upsert;return{adapterName:z(i.name)??z(r.definition.name)??n??"extension",query:o,...typeof s=="function"?{upsert:s}:{}}}function la(e,t,n){let r=Array.isArray(t)?t:t?.hits;if(!Array.isArray(r))throw new p(`Extension search provider "${e}" must return an array of hits or { hits: [...] }`,m.GENERIC_FAILURE);let i=new Set,o=[];for(let s of r){if(typeof s!="object"||s===null)continue;let a=z(s.id),d=s.score;if(!a||typeof d!="number"||!Number.isFinite(d)||i.has(a))continue;let c=n.get(a);if(!c)continue;let l=s.matched_fields,u=Array.isArray(l)&&l.every(f=>typeof f=="string")?[...new Set(l.map(f=>f.trim()).filter(f=>f.length>0))].sort((f,h)=>f.localeCompare(h)):[`provider:${e}`];i.add(a),o.push({item:c.metadata,score:d,matched_fields:u})}return o}function fa(e,t){let n=[],r=new Map;for(let i of e){if(r.has(i.id))continue;let o=t.get(i.id);o&&(r.set(i.id,i.score),n.push({item:o.metadata,score:i.score,matched_fields:["semantic"]}))}return{semanticHits:n,semanticScores:r}}function Nt(e,t){let n=t.filter(c=>c.exact_id_match===!0);if(n.length===0)return e;let r=new Set(n.map(c=>c.item.id)),i=e.filter(c=>!r.has(c.item.id)),o=i.reduce((c,l)=>Math.max(c,l.score),0),s=n.sort((c,l)=>l.score-c.score),a=o+s.length+1;return[...s.map((c,l)=>({...c,score:a-l,matched_fields:["id"]})),...i]}function ir(e,t,n,r,i="semantic"){let o=new Map(n.map(u=>[u.item.id,u.score])),s=new Map(n.map(u=>[u.item.id,u.matched_fields])),a=Jn(t),d=Jn(o),c=new Set([...t.keys(),...o.keys()]),l=1-r;return[...c].map(u=>{let f=e.get(u),h=a.get(u)??0,y=d.get(u)??0,g=h*r+y*l;if(g<=0)return null;let k=new Set;t.has(u)&&k.add(i);for(let _ of s.get(u)??[])k.add(_);return{item:f.metadata,score:g,matched_fields:[...k].sort((_,w)=>_.localeCompare(w))}}).filter(u=>u!==null)}function ma(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function pa(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:Ns(ni(s,{fields:e.corpusFields}))})),n=Ls(t),r=Os(n,Qn(e.query),e.bm25Params),i=new Map(e.filteredDocuments.map(s=>[s.metadata.id,s]));if(e.requestedMode==="semantic"){let s=[...r].map(([a,d])=>({item:i.get(a).metadata,score:d,matched_fields:["bm25"]}));return Nt(s,e.keywordHits)}let o=ir(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return Nt(o,e.keywordHits)}function ha(e){let t=new Map;for(let r of e)for(let i of r){let o=t.get(i.id);(!o||i.score>o.score)&&t.set(i.id,i)}let n=[...t.values()];return n.sort((r,i)=>r.score!==i.score?i.score-r.score:r.id.localeCompare(i.id)),n}function ga(e){let t=e.metadata,n=Array.isArray(t?.tags)?t.tags.join(" "):"";return[t?.title,t?.description,t?.type,t?.status,n,e.body].map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0).join(`
15
- `)}async function Bm(e,t){let n=e.queryExpansion.enabled?Cs(t,e.queryExpansion.max_queries):[t],r=n.length>0?n:[t];if(!e.queryExpansion.enabled)return r;if(e.queryExpansionExtension?.expand)try{let i=await Promise.resolve(e.queryExpansionExtension.expand({query:t,mode:e.requestedMode,settings:e.settings}));return Ts(r,xs(i),e.queryExpansion.max_queries)}catch{return e.warnings.push(`search_query_expansion_provider_failed:${e.queryExpansionExtension.providerName}:using_builtin`),r}return e.queryExpansion.provider&&e.queryExpansion.provider!=="openai"&&e.queryExpansion.provider!=="ollama"&&e.warnings.push(`search_query_expansion_provider_unavailable:${e.queryExpansion.provider}:using_builtin`),r}async function Gm(e,t,n,r){if(e.extensionVectorAdapter?.query)try{return await Promise.resolve(e.extensionVectorAdapter.query({vector:t,limit:n,settings:e.settings}))}catch(i){if(!e.vectorStore)throw new p(`Extension vector adapter query failed and no built-in fallback store is configured (${i instanceof Error?i.message:String(i)})`,m.GENERIC_FAILURE);return e.warnings.push(`search_vector_adapter_failed:${e.extensionVectorAdapter.adapterName}:using_builtin`),await Jt(e.vectorStore,t,n,r)}if(e.vectorStore)return await Jt(e.vectorStore,t,n,r);throw new p("Semantic search requires either a configured vector store or an extension vector adapter query handler",m.USAGE)}function Wm(e,t,n){return[...e].sort((i,o)=>i.score!==o.score?o.score-i.score:i.item.id.localeCompare(o.item.id)).slice(0,n).map(i=>{let o=t.get(i.item.id);return o?{hit:i,text:ga(o)}:null}).filter(i=>i!==null)}async function zm(e,t,n){if(!e.rerankExtension?.rerank)return null;try{let r=await Promise.resolve(e.rerankExtension.rerank({query:t,mode:"hybrid",model:e.rerank.model,top_k:e.rerank.top_k,settings:e.settings,candidates:n.map(o=>({id:o.hit.item.id,text:o.text,score:o.hit.score}))})),i=As(r);return i.length>0?new Map(i.map(o=>[o.id,o.score])):(e.warnings.push(`search_rerank_provider_invalid_response:${e.rerankExtension.providerName}:using_builtin`),null)}catch{return e.warnings.push(`search_rerank_provider_failed:${e.rerankExtension.providerName}:using_builtin`),null}}async function qm(e,t,n){let r=await zm(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await Rs(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function Hm(e,t){let n=new Set(t.keys()),r=e.map(i=>{let o=t.get(i.item.id);if(o===void 0)return i;let s=new Set(i.matched_fields);return s.add("rerank"),{...i,score:o,matched_fields:[...s].sort((a,d)=>a.localeCompare(d))}});return r.sort((i,o)=>{let s=n.has(i.item.id),a=n.has(o.item.id);return s!==a?s?-1:1:i.score!==o.score?o.score-i.score:i.item.id.localeCompare(o.item.id)}),r}async function Vm(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=Wm(n,r,e.rerank.top_k),o=await qm(e,t,i);return o&&o.size>0?Hm(n,o):n}async function ya(e){let t=Math.max(e.limit??e.maxResults,e.maxResults),n=e.embeddingTimeoutMs!==void 0?{timeout_ms:e.embeddingTimeoutMs}:{},r=e.vectorQueryTimeoutMs!==void 0?{timeout_ms:e.vectorQueryTimeoutMs}:{},i=e.query.trim(),o=await Bm(e,i),s=await rt(e.provider,o,n),a=await Promise.all(s.map(async y=>await Gm(e,y,t,r))),d=ha(a),c=new Map(e.filteredDocuments.map(y=>[y.metadata.id,y])),{semanticHits:l,semanticScores:u}=fa(d,c),f=u.size;if(e.requestedMode==="semantic")return{hits:Nt(l,e.keywordHits),vectorMatchCount:f};let h=await Vm(e,i,ir(c,u,e.keywordHits,e.hybridSemanticWeight),c);return{hits:Nt(h,e.keywordHits),vectorMatchCount:f}}async function _a(e,t,n,r){let i=dr(F()),o=async(c,l,u)=>{let f=async(h,y)=>{await Ce({path:h,scope:"project"});let g=await Ot.readFile(h,"utf8");return Mr(g,{format:y,schema:r,extensionFieldNames:i,onWarning:_=>s.push(_)}).body};try{return await f(l,u)}catch{let h=u==="toon"?"json_markdown":"toon",y=zt(e,c.type,c.id,h,n);try{return await f(y,h)}catch{return s.push(`item_list_item_read_failed:${er.relative(e,y)}`),""}}},s=[],a=await Br(e,t,n,s,r),d=[];if(a.length===0){let c=await nt(e,t,n,s,r);for(let l of c){let u=zt(e,l.type,l.id,t,n),f=await o(l,u,t);d.push({metadata:l,body:f})}return{documents:d,warnings:[...new Set(s)].sort((l,u)=>l.localeCompare(u))}}for(let c of a){if(typeof c.body=="string"){d.push({metadata:c.metadata,body:c.body});continue}let l=await o(c.metadata,c.item_path,c.item_format);d.push({metadata:c.metadata,body:l})}return{documents:d,warnings:[...new Set(s)].sort((c,l)=>c.localeCompare(l))}}function wa(e,t){let n=t.trim();if(n.length===0)return null;if(n==="score")return e.score;if(n==="matched_fields")return e.matched_fields;if(n.startsWith("item.")){let o=n.slice(5);return o.length===0?null:e.item[o]??null}let r=e,i=e.item;return Object.prototype.hasOwnProperty.call(i,n)?i[n]??null:Object.prototype.hasOwnProperty.call(r,n)?r[n]??null:null}function ba(e,t){return t.mode==="full"?e.map(({matched_all_terms:n,exact_id_match:r,...i})=>i):e.map(n=>{let r={};for(let i of t.fields)r[i]=wa(n,i);return r})}function Ym(e){let t=Pt(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function Xm(e){let t=Pt(z(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function Qm(e,t){let n=[],r=qs(e),i=Object.keys(r.inlineFilters).length>0;if(i&&r.residualQuery.trim().length===0)throw new p("Inline field:value tokens consumed the entire query, leaving no search terms.",m.USAGE,{examples:["pm search auth tag:area:search","pm list --tag area:search --status open"],nextSteps:["Add keyword terms alongside the inline filters, or use pm list for pure tag/status/type/priority filtering."]});let o=i?r.residualQuery:e,s=Hs(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:Dt(s.includeLinked),titleExact:Dt(s.titleExact),phraseExact:Dt(s.phraseExact),matchMode:Ss(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:Es(s.minScore),countOnly:s.count===!0,tokens:Wn(o),normalizedQuery:Q(o),limit:te(s.limit),projection:Bn(s),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function Jm(e,t){let n=E(process.cwd(),t.path);if(!await N($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await T(n),i=Zr(r).settings,o=P(i.schema),s=B(i.schema);Gn(e.projection,s);let a=ge(e.options,s,"search"),d=O(i,F()),c=ei(i),l=ri(i,n),u=da(i),f=ua(i),h=vs(e.options.semanticWeight),y=Is(i,c.active?.name??null),g=Fs(i,c.active?.model??z(i.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:i,statusRegistry:o,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:d,maxResults:zn(i),scoreThreshold:e.minScoreOverride??qn(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:h,hybridSemanticWeight:h??Hn(i),tuning:Vn(i),providerResolution:c,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:f,bm25Mode:ma({configuredProvider:z(i.search?.provider),hasEmbeddingProvider:c.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:y,queryExpansionExtension:Ym(y),rerank:g,rerankExtension:Xm(i),effectiveMode:ks(e.options.mode)}}async function Zm(e,t){let n=await _a(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=he(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),i=ft(t.statusRegistry),o=Qs(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:Xs(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function ep(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await Zs(i,fr(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await ea(a,o)]));for(let[a,d]of s)r.set(a,d);return r}async function tp(e,t,n){let r=await ep(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>aa(o,e.tokens,e.normalizedQuery,e.includeLinked,r,t.tuning,t.settings.id_prefix,i)).filter(o=>o!==null).filter(o=>e.matchMode!=="and"||o.matched_all_terms===!0)}function Us(e,t){return ca(e.query,e.effectiveMode,e.matchMode,e.options,e.includeLinked,e.scoreThreshold,e.hybridSemanticWeight,e.queryExpansion,e.rerank,e.projection,e.warnings,e.runtimeFieldFilters,t)}async function np(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=pa({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:ti(t.settings),bm25Params:$s(t.settings),hybridSemanticWeight:t.hybridSemanticWeight});return t.bm25Mode==="auto-fallback"&&i.push(`search_${t.effectiveMode}_offline_bm25:no_embedding_provider:using_lexical_bm25`),o}async function rp(e,t,n,r){if(!t.extensionSearchProvider)return null;let i=t.providerResolution.active!==null&&(t.vectorResolution.active!==null||t.extensionVectorAdapter!==null);try{let o=await Promise.resolve(t.extensionSearchProvider.query({query:e.query,mode:t.effectiveMode,tokens:e.tokens,options:e.options,settings:t.settings,documents:n}));return la(t.extensionSearchProvider.providerName,o,r)}catch(o){if(!i)throw new p(`Extension search provider "${t.extensionSearchProvider.providerName}" failed: ${o instanceof Error?o.message:String(o)}`,m.GENERIC_FAILURE);return null}}function ip(e,t,n,r){return t.vectorMatchCount>0?t.hits:(r.push(`search_${e}_degraded:no_vector_matches:results_are_lexical`),e==="semantic"?n:t.hits)}async function op(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await zs(e.pmRoot,n,r),e.extensionSearchProvider||rr(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function sp(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,d=await np(t,n,r,i,o),c=n.effectiveMode;if(d!==null||c==="keyword")return{effectiveMode:n.effectiveMode,hits:d??a};try{if(await op(n,c,r,o,s),r.length===0||t.limit===0)return{effectiveMode:n.effectiveMode,hits:[]};let l=new Map(r.map(u=>[u.metadata.id,u]));if(a=await rp(t,n,r,l)??a,a===i){let{provider:u,vectorStore:f}=rr(c,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),h=await ya({requestedMode:c,query:t.query,filteredDocuments:r,keywordHits:i,hybridSemanticWeight:n.hybridSemanticWeight,limit:t.limit,maxResults:n.maxResults,provider:u,vectorStore:f,extensionVectorAdapter:n.extensionVectorAdapter,queryExpansion:n.queryExpansion,queryExpansionExtension:n.queryExpansionExtension,rerank:n.rerank,rerankExtension:n.rerankExtension,warnings:o,settings:n.settings});a=ip(c,h,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(l){return o.push(Ws(n.effectiveMode,l)),{effectiveMode:"keyword",hits:i}}}function ap(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return Zn({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:Ge({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let n=e.projection.mode==="full"?null:[...e.projection.fields];return Zn({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:We({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:e.projection.mode,fields:n},now:D()},e.warnings)}function Zn(e,t){return t.length===0?e:{...e,warnings:t}}function Lt(e,t){return t?{...e,workspace_memory:t}:e}function cp(e,t,n){if(!e.highlight)return{hits:n,projection:e.projection};let r=new Map(t.map(o=>[o.metadata.id,o])),i=n.map(o=>({...o,highlights:ia(r.get(o.item.id),o.matched_fields,e.tokens)}));return e.projection.mode==="full"||e.projection.fields.includes("highlights")?{hits:i,projection:e.projection}:{hits:i,projection:{mode:e.projection.mode,fields:[...e.projection.fields,"highlights"]}}}function dp(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return Zn({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:Ge({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let a=i.mode==="full"?null:[...i.fields];return{query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:We({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:i.mode,fields:a},now:D(),...e.warnings.length>0?{warnings:e.warnings}:{}}}function up(e){if(e.after!==void 0&&e.count===!0)throw new p("Search --after cannot be combined with --count.",m.USAGE)}async function $_(e,t,n){up(t);let r=Qm(e,t),i=await Jm(r,n),o=await Zm(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await Tt(o.allDocuments.map(I=>I.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:D()});s.push(...a.warnings);let d=Vo(a,r.query);i.effectiveMode==="hybrid"&&i.semanticWeightProvided&&i.semanticWeightOverride===void 0&&s.push("search_hybrid_semantic_weight_override_invalid:using_settings_default");let c={query:r.query,matchMode:r.matchMode,options:r.options,includeLinked:r.includeLinked,titleExact:r.titleExact,phraseExact:r.phraseExact,scoreThreshold:i.scoreThreshold,hybridSemanticWeight:i.hybridSemanticWeight,queryExpansion:i.queryExpansion,rerank:i.rerank,projection:r.projection,warnings:s,runtimeFieldFilters:i.runtimeFieldFilters};if(i.effectiveMode==="keyword"&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return Lt(Us({...c,effectiveMode:i.effectiveMode},r.countOnly),d);let l=await tp(r,i,o.filteredDocuments),u=await sp({prepared:r,runtime:i,filteredDocuments:o.filteredDocuments,keywordHits:l,warnings:s,modeWasExplicit:r.modeWasExplicit});if(u.effectiveMode!=="keyword"&&u.hits.length===0&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return Lt(Us({...c,effectiveMode:u.effectiveMode},r.countOnly),d);let f=u.hits.filter(I=>I.exact_id_match===!0||I.score>=i.scoreThreshold),h=sa(f,i.statusRegistry),y=h.length,g=bs({sorted:h,query:r.query,mode:u.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),k={...c,effectiveMode:u.effectiveMode};if(r.countOnly)return Lt(ap(k,y),d);let{hits:_,projection:w}=cp(r,o.filteredDocuments,g.limited),v=ba(_,w);return Lt(dp(k,v,y,g.limited.length,w,g.pageExtras),d)}(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]="6152efa9-8338-57f0-b3de-5707befed019")}catch{}})();async function B_(e,t={}){let n=await di({pmRoot:E(process.cwd(),e.path),...t.status===void 0?{}:{statuses:t.status.flatMap(r=>r.split(",").map(i=>i.trim()).filter(Boolean))},...t.since===void 0?{}:{since:t.since},...t.threshold===void 0?{}:{threshold:t.threshold},...t.limit===void 0?{}:{limit:t.limit}});return{...n,clusters:n.clusters.map(r=>{let i=r.id;return{...r,canonical_id:i,close_command:`pm close <duplicate-id> --duplicate-of ${i}`}}),guidance:{strategy:"review_then_close_duplicate",command:"pm close <duplicate-id> --duplicate-of <canonical-id>"}}}export{li as a,j as b,ot as c,fi as d,st as e,Sa as f,at as g,dt as h,Gp as i,yi as j,Ih as k,rn as l,G as m,ut as n,lt as o,ft as p,Qp as q,Jp as r,eh as s,gt as t,Me as u,Ii as v,Fi as w,dc as x,uc as y,Ch as z,cn as A,Re as B,De as C,Y as D,xh as E,Dh as F,Lh as G,Uh as H,Kh as I,Bh as J,Io as K,kn as L,kt as M,Xd as N,Mo as O,tu as P,vt as Q,nu as R,ru as S,au as T,cu as U,Hh as V,du as W,Ro as X,W as Y,St as Z,eg as _,Ko as $,Et as aa,vn as ba,Sn as ca,Fu as da,Ou as ea,Nu as fa,En as ga,Cn as ha,xt as ia,Ku as ja,zu as ka,Tt as la,Ju as ma,Ho as na,Zu as oa,Vo as pa,Xo as qa,Sg as ra,Eg as sa,Cg as ta,xg as ua,Qo as va,el as wa,al as xa,$e as ya,zg as za,In as Aa,ul as Ba,ll as Ca,An as Da,re as Ea,Rn as Fa,Dn as Ga,Ln as Ha,ke as Ia,Ke as Ja,It as Ka,qg as La,uf as Ma,Hg as Na,hf as Oa,iy as Pa,oy as Qa,bf as Ra,sy as Sa,ay as Ta,py as Ua,ps as Va,hs as Wa,gs as Xa,My as Ya,Ry as Za,Ge as _a,We as $a,im as ab,bs as bb,zn as cb,qn as db,Hn as eb,Vn as fb,Bs as gb,Gs as hb,N_ as ib,$_ as jb,B_ as kb};
16
- //# sourceMappingURL=chunk-QQX5TDFT.js.map
@@ -1,2 +0,0 @@
1
- import{pa as b,qa as D,ra as T,sa as x}from"./chunk-WEH6NSL6.js";import{Ya as I,gb as _,ia as M,kb as g,qb as S}from"./chunk-6XYLENDV.js";import{F as w,L as h,Ra as A}from"./chunk-2RI2FESN.js";import{Y as m,Z as f}from"./chunk-CP4K4WFS.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]="13c02696-29a7-598e-888a-3502fd88bfbe")}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]="a2fad90a-3575-5f3e-8cbe-ac380ac45591")}catch{}})();var N=3,R=20,$=.8,z=100,E=1e3,C=1e6;function ce(e){return e===void 0?[]:[`likely_duplicates:${e.result.items.map(t=>t.id).join(",")}`]}function L(e){let t=e.limit??N,n=e.threshold??$;if(!Number.isSafeInteger(t)||t<0||t>R)throw new f(`Similarity limit must be an integer from 0 to ${R}.`,m.USAGE);if(!Number.isFinite(n)||n<0||n>1)throw new f("Similarity threshold must be a number from 0 to 1.",m.USAGE);return{limit:t,threshold:n}}function O(e){let t=e.limit??z;if(!Number.isSafeInteger(t)||t<0||t>E)throw new f(`Duplicate cluster limit must be an integer from 0 to ${E}.`,m.USAGE);let n=e.since===void 0?void 0:new Date(e.since);if(n&&Number.isNaN(n.getTime()))throw new f("Duplicate cluster --since must be a valid ISO timestamp.",m.USAGE);return{limit:t,since:n}}async function q(e,t){let n=h(e.cwd??process.cwd(),e.pmRoot),r=await I(n),a=w(r),i=e.statuses?.map(c=>c.trim().toLowerCase()).filter(Boolean);if(e.statuses!==void 0&&i?.length===0)throw new f("Duplicate cluster statuses must include at least one lifecycle status or all.",m.USAGE);let s=A(r.schema),l=i?.map(c=>{if(c==="all")return c;let p=M(c,s);if(!p)throw new f(`Unknown duplicate-cluster status "${c}". Allowed: all, ${s.definitions.map(y=>y.id).join(", ")}.`,m.USAGE);return p}),d=l?.includes("all")===!0;if(d&&l?.some(c=>c!=="all"))throw new f('The "all" status cannot be combined with other statuses.',m.USAGE);let o=d?void 0:l,u=o?new Set(o):void 0;return{items:(await S(n,r.item_format,a.type_to_folder,void 0,r.schema)).filter(c=>(!u||u.has(c.status))&&(!t||new Date(c.created_at).getTime()>=t.getTime())).sort((c,p)=>c.id.localeCompare(p.id)).map(c=>({item:c,prepared:D(c.title)})),statuses:o}}function U(e,t=C){let n=new Set,r=[new Map,new Map,new Map];for(let[a,i]of e.entries()){let s=[[i.prepared.normalized],i.prepared.issueCodes,i.prepared.tokens];for(let[l,d]of s.entries())for(let o of d){let u=r[l].get(o)??[];for(let c of u)n.add(`${c}:${a}`);if(n.size>t)throw new f(`Duplicate sweep exceeded ${C} candidate pairs; narrow it with statuses or since.`,m.CONFLICT,{code:"duplicate_sweep_cost_limit",required:"Narrow the batch duplicate query until its deterministic candidate set fits the disclosed safety bound."});u.push(a),r[l].set(o,u)}}return n}var ue={buildDuplicateClusters:k,collectDuplicateCandidatePairs:U,createDuplicateUnionFind:v};function v(e){let t=Array.from({length:e},(r,a)=>a);return{parent:t,findRoot:r=>{let a=r;for(;t[a]!==a;)a=t[a];for(;t[r]!==r;){let i=t[r];t[r]=a,r=i}return a}}}function F(e,t,n,r){let a=[];for(let i of t){let[s,l]=i.split(":").map(c=>Number.parseInt(c,10)),d=x(e[s].prepared,e[l].prepared);if(d.score<n)continue;let o=r.findRoot(s),u=r.findRoot(l);o!==u&&(r.parent[u]=o),a.push({left_id:e[s].item.id,right_id:e[l].item.id,...d})}return a}function k(e,t,n,r){let a=new Map;for(let i of e.keys()){let s=n.findRoot(i),l=a.get(s)??[];l.push(i),a.set(s,l)}return[...a.values()].filter(i=>i.length>1).map(i=>{let s=new Set(i.map(d=>e[d].item.id)),l=t.filter(d=>s.has(d.left_id)&&s.has(d.right_id)).sort((d,o)=>o.score-d.score||d.left_id.localeCompare(o.left_id)||d.right_id.localeCompare(o.right_id));return{id:e[i[0]].item.id,items:i.map(d=>{let o=e[d].item;return{id:o.id,title:o.title,status:o.status,type:o.type}}),matches:l,max_score:l[0]?.score??0}}).sort((i,s)=>s.max_score-i.max_score||i.id.localeCompare(s.id)).slice(0,r)}function G(e,t,n,r,a){return t.filter(i=>!n.has(i.id)).map(i=>({id:i.id,title:i.title,status:i.status,type:i.type,...T(e,i.title)})).filter(i=>i.score>=r).sort((i,s)=>s.score-i.score||i.id.localeCompare(s.id)).slice(0,a)}async function P(e,t={}){let n=e.title.trim();if(n.length===0)throw new f("Similarity candidate title must not be empty.",m.USAGE);let{limit:r,threshold:a}=L(t),i=h(t.cwd??process.cwd(),t.pmRoot),s=await I(i),l=w(s),d=await g(i,Object.values(l.type_to_folder)),o=b(n),u=d&&o.length>0?await _({pmRoot:i,expectedSourceCursor:d.source_cursor,query:o.map(y=>`"${y.replaceAll('"','""')}"`).join(" OR "),limit:Math.max(r*10,50)}):null,c=u===null?await S(i,s.item_format,l.type_to_folder,void 0,s.schema):u.items,p=G(n,c,new Set(e.excludeIds??[]),a,r);return{items:p,count:p.length,threshold:a,source:u?"persistent_index":"metadata_fallback"}}async function me(e={}){let{threshold:t}=L({...e,limit:void 0}),{limit:n,since:r}=O(e),{items:a,statuses:i}=await q(e,r),s=U(a),l=v(a.length),d=F(a,s,t,l),o=k(a,d,l,n);return{clusters:o,count:o.length,threshold:t,source:"metadata_scan",filters:{statuses:i??null,since:e.since??null},cost:{item_count:a.length,candidate_pairs:s.size,scored_pairs:s.size}}}async function fe(e,t){if(t.mode==="off")return;let n=await P(e,t);if(n.count===0)return;let r=t.mode==="strict"&&t.allowDuplicate===!0;if(t.mode==="strict"&&!r){let a=n.items.map(i=>`${i.id} (${i.status}): ${i.title}`).join("; ");throw new f(`Likely duplicate item(s) found: ${a}. Reuse the canonical item or pass --allow-duplicate with explicit intent.`,m.CONFLICT,{code:"likely_duplicate",required:"Reuse an existing item, or explicitly acknowledge the duplicate with --allow-duplicate.",recovery:{suggested_flags:["--allow-duplicate"]}})}return{mode:t.mode,bypassed:r,result: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]="412fc2d2-daee-5d87-82ab-5411a1503087")}catch{}})();function we(e,t){let n=t??{};return e.filter(r=>n[r.id]!==r.updated_at).map(r=>r.id).sort((r,a)=>r.localeCompare(a))}export{we as a,ce as b,ue as c,P as d,me as e,fe as f};
2
- //# sourceMappingURL=chunk-TEZIXMTH.js.map