@unbrained/pm-cli 2026.8.9 → 2026.8.10

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 (172) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +40 -0
  3. package/dist/cli/commander-usage.js +17 -12
  4. package/dist/cli/help-json-payload.js +51 -16
  5. package/dist/cli/main.js +7 -6
  6. package/dist/cli-bundle/bundle-manifest.json +165 -165
  7. package/dist/cli-bundle/chunks/chunk-2QYH4QMI.js +30 -0
  8. package/dist/cli-bundle/chunks/{chunk-YC3UF2IO.js → chunk-EBO7OUUE.js} +57 -57
  9. package/dist/cli-bundle/chunks/{chunk-GMX5YOI3.js → chunk-ETML5C6H.js} +48 -48
  10. package/dist/cli-bundle/chunks/chunk-JUDU4RO4.js +194 -0
  11. package/dist/cli-bundle/chunks/{chunk-PYO5GZU6.js → chunk-JZSNADRR.js} +5 -5
  12. package/dist/cli-bundle/chunks/{chunk-EF43KODO.js → chunk-MENWVGJW.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-5JO6R4BS.js → chunk-S4EITGLA.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-2DTCZXSD.js → chunk-TIGKWVLA.js} +9 -9
  15. package/dist/cli-bundle/chunks/{chunk-RJC7TPF4.js → chunk-TRWXF476.js} +2 -2
  16. package/dist/cli-bundle/chunks/chunk-TSLDTJLQ.js +2 -0
  17. package/dist/cli-bundle/chunks/{register-list-query-BUE7PTCU.js → register-list-query-OJ6ZXKV4.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-mutation-FC3XLVIK.js → register-mutation-DKI7QC7O.js} +2 -2
  19. package/dist/cli-bundle/chunks/register-operations-P5OGMT6I.js +2 -0
  20. package/dist/cli-bundle/chunks/{register-setup-UQDTNTLJ.js → register-setup-S3KT2LTH.js} +2 -2
  21. package/dist/cli-bundle/focused-chunks/{chunk-6DO4YQWZ.js → chunk-2COZ67XT.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/chunk-2EXI2DKR.js +4 -0
  23. package/dist/cli-bundle/focused-chunks/{chunk-KNEHLPBF.js → chunk-34SX654S.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/chunk-36FTZ2NT.js +2 -0
  25. package/dist/cli-bundle/focused-chunks/chunk-3CQECMKR.js +16 -0
  26. package/dist/cli-bundle/focused-chunks/chunk-75774JWP.js +6 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-MRWVJ3ZG.js → chunk-7UN6BHHO.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/{chunk-VRXJSGIT.js → chunk-CHIBMEZR.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/chunk-DZGAHZZV.js +3 -0
  30. package/dist/cli-bundle/focused-chunks/chunk-FF4MNAYB.js +153 -0
  31. package/dist/cli-bundle/focused-chunks/{chunk-ZG54B4XG.js → chunk-GHTN2ILR.js} +2 -2
  32. package/dist/cli-bundle/focused-chunks/chunk-I4YM2I7S.js +2 -0
  33. package/dist/cli-bundle/focused-chunks/chunk-IMDTEN7K.js +2 -0
  34. package/dist/cli-bundle/focused-chunks/chunk-IW43E4XL.js +2 -0
  35. package/dist/cli-bundle/focused-chunks/{chunk-3WVHTUAW.js → chunk-JMVA4HKR.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/{chunk-C3GCHDSQ.js → chunk-KR5RVXLQ.js} +31 -31
  37. package/dist/cli-bundle/focused-chunks/chunk-KSNJG4KI.js +16 -0
  38. package/dist/cli-bundle/focused-chunks/{chunk-73FIJONU.js → chunk-M6RPIXKC.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/chunk-MXYSIQ56.js +18 -0
  40. package/dist/cli-bundle/focused-chunks/chunk-RIIN5V4N.js +2 -0
  41. package/dist/cli-bundle/focused-chunks/{chunk-U46GQJNY.js → chunk-RKWSCYYN.js} +2 -2
  42. package/dist/cli-bundle/main.js +13 -13
  43. package/dist/cli-bundle/sdk-authoring.js +1 -1
  44. package/dist/cli-bundle/sdk-contracts.js +1 -1
  45. package/dist/cli-bundle/sdk-core.js +38 -38
  46. package/dist/cli-bundle/sdk-governance.js +1 -1
  47. package/dist/cli-bundle/sdk-graph.js +1 -1
  48. package/dist/cli-bundle/sdk-merge.js +1 -1
  49. package/dist/cli-bundle/sdk-query.js +1 -1
  50. package/dist/cli-bundle/sdk-runtime.js +1 -1
  51. package/dist/cli-bundle/sdk-testing.js +1 -1
  52. package/dist/cli-bundle/sdk.js +2 -2
  53. package/dist/core/diagnostics/remediation.js +9 -9
  54. package/dist/core/fs/fs-utils.d.ts +10 -0
  55. package/dist/core/fs/fs-utils.js +16 -4
  56. package/dist/core/item/item-format.js +3 -32
  57. package/dist/core/schema/fields-file.d.ts +1 -2
  58. package/dist/core/schema/fields-file.js +4 -11
  59. package/dist/core/schema/runtime-schema.js +3 -10
  60. package/dist/core/schema/status-defs-file.d.ts +1 -2
  61. package/dist/core/schema/status-defs-file.js +4 -32
  62. package/dist/core/schema/status-token.d.ts +2 -0
  63. package/dist/core/schema/status-token.js +32 -0
  64. package/dist/core/schema/type-workflows.d.ts +1 -2
  65. package/dist/core/schema/type-workflows.js +4 -11
  66. package/dist/core/shared/author.d.ts +1 -1
  67. package/dist/core/shared/author.js +21 -8
  68. package/dist/core/shared/errors.d.ts +4 -0
  69. package/dist/core/shared/errors.js +2 -2
  70. package/dist/core/shared/text-normalization.d.ts +1 -1
  71. package/dist/core/shared/text-normalization.js +2 -2
  72. package/dist/sdk/agent/command-recovery.d.ts +4 -0
  73. package/dist/sdk/agent/command-recovery.js +52 -0
  74. package/dist/sdk/agent/command-suggestions.d.ts +4 -0
  75. package/dist/sdk/agent/command-suggestions.js +67 -0
  76. package/dist/sdk/agent/create-option-policy.d.ts +12 -0
  77. package/dist/sdk/agent/create-option-policy.js +32 -0
  78. package/dist/sdk/agent/item-addressing.d.ts +19 -0
  79. package/dist/sdk/agent/item-addressing.js +208 -0
  80. package/dist/sdk/cli-bootstrap.d.ts +1 -1
  81. package/dist/sdk/cli-bootstrap.js +20 -5
  82. package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -4
  83. package/dist/sdk/cli-contracts/flag-contracts.js +62 -21
  84. package/dist/sdk/cli-contracts/registration-helpers.js +10 -2
  85. package/dist/sdk/cli-contracts/runtime-contracts.js +5 -3
  86. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +6 -0
  87. package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
  88. package/dist/sdk/cli-contracts/tool-parameter-tables.js +19 -4
  89. package/dist/sdk/cli-contracts/tool-schema.js +17 -4
  90. package/dist/sdk/context-intent-runtime.js +8 -5
  91. package/dist/sdk/context-signal-store.d.ts +34 -0
  92. package/dist/sdk/context-signal-store.js +24 -2
  93. package/dist/sdk/dependency-flag-validation.d.ts +15 -1
  94. package/dist/sdk/dependency-flag-validation.js +54 -2
  95. package/dist/sdk/generated-error-code-catalog.js +74 -2
  96. package/dist/sdk/governance/health.js +14 -7
  97. package/dist/sdk/governance/provenance-health.d.ts +13 -0
  98. package/dist/sdk/governance/provenance-health.js +63 -17
  99. package/dist/sdk/governance/validate-item-reader.d.ts +13 -0
  100. package/dist/sdk/governance/validate-item-reader.js +18 -0
  101. package/dist/sdk/governance/validate.d.ts +2 -2
  102. package/dist/sdk/governance/validate.js +15 -6
  103. package/dist/sdk/index.d.ts +4 -0
  104. package/dist/sdk/index.js +6 -2
  105. package/dist/sdk/lifecycle/close.js +17 -14
  106. package/dist/sdk/lifecycle/create.d.ts +2 -0
  107. package/dist/sdk/lifecycle/create.js +62 -9
  108. package/dist/sdk/lifecycle/update-many.js +39 -27
  109. package/dist/sdk/lifecycle/update.d.ts +6 -1
  110. package/dist/sdk/lifecycle/update.js +47 -10
  111. package/dist/sdk/merge/index.d.ts +1 -1
  112. package/dist/sdk/merge/index.js +3 -3
  113. package/dist/sdk/merge/install.d.ts +4 -0
  114. package/dist/sdk/merge/install.js +28 -16
  115. package/dist/sdk/merge/receipts.d.ts +3 -0
  116. package/dist/sdk/merge/receipts.js +81 -17
  117. package/dist/sdk/output-projection.js +24 -4
  118. package/dist/sdk/query/context.d.ts +2 -0
  119. package/dist/sdk/query/context.js +7 -4
  120. package/dist/sdk/query/light-metadata.d.ts +3 -0
  121. package/dist/sdk/query/light-metadata.js +19 -0
  122. package/dist/sdk/runtime.d.ts +4 -1
  123. package/dist/sdk/runtime.js +8 -3
  124. package/dist/sdk/schema-migration.js +7 -9
  125. package/dist/sdk/similarity-scoring.d.ts +1 -2
  126. package/dist/sdk/similarity-scoring.js +4 -16
  127. package/dist/sdk/workspace-snapshot.d.ts +4 -0
  128. package/dist/sdk/workspace-snapshot.js +24 -11
  129. package/docs/AGENT_GUIDE.md +3 -1
  130. package/docs/COMMANDS.md +8 -5
  131. package/docs/MERGE_SAFETY.md +7 -5
  132. package/docs/README.md +2 -5
  133. package/docs/READ_OUTPUT_CONTRACTS.md +2 -2
  134. package/docs/SDK.md +33 -8
  135. package/docs/SDK_AGENT_SESSION_CONTEXT.md +3 -2
  136. package/docs/SDK_CONTEXT.md +97 -0
  137. package/docs/SDK_CONTEXT_INTEGRITY.md +18 -3
  138. package/docs/agent-task-token-baseline.json +2 -2
  139. package/marketplace.json +2 -2
  140. package/package.json +5 -4
  141. package/packages/pm-beads/package.json +1 -1
  142. package/packages/pm-calendar/package.json +1 -1
  143. package/packages/pm-command-kit/package.json +1 -1
  144. package/packages/pm-digital-twin/package.json +1 -1
  145. package/packages/pm-governance-audit/package.json +1 -1
  146. package/packages/pm-guide-shell/package.json +1 -1
  147. package/packages/pm-kanban/package.json +1 -1
  148. package/packages/pm-lifecycle-hooks/package.json +1 -1
  149. package/packages/pm-linked-test-adapters/package.json +1 -1
  150. package/packages/pm-search-advanced/package.json +1 -1
  151. package/packages/pm-templates/package.json +1 -1
  152. package/packages/pm-todos/package.json +1 -1
  153. package/packages/pm-vcs/package.json +1 -1
  154. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  155. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  156. package/sdk/public-surface.json +194 -26
  157. package/dist/cli-bundle/chunks/chunk-5KN4DZYV.js +0 -194
  158. package/dist/cli-bundle/chunks/chunk-HUV2Z7IS.js +0 -28
  159. package/dist/cli-bundle/chunks/chunk-MHBVCUF2.js +0 -2
  160. package/dist/cli-bundle/chunks/register-operations-YH2WAOXU.js +0 -2
  161. package/dist/cli-bundle/focused-chunks/chunk-2VVP5RAA.js +0 -153
  162. package/dist/cli-bundle/focused-chunks/chunk-3GSFUDAI.js +0 -2
  163. package/dist/cli-bundle/focused-chunks/chunk-4H6MVCK3.js +0 -16
  164. package/dist/cli-bundle/focused-chunks/chunk-54TZJ4BM.js +0 -2
  165. package/dist/cli-bundle/focused-chunks/chunk-5NK5TJ5D.js +0 -2
  166. package/dist/cli-bundle/focused-chunks/chunk-JGRSQZJT.js +0 -18
  167. package/dist/cli-bundle/focused-chunks/chunk-NL57J7BZ.js +0 -4
  168. package/dist/cli-bundle/focused-chunks/chunk-P6BBIQRG.js +0 -6
  169. package/dist/cli-bundle/focused-chunks/chunk-PZAGVQNN.js +0 -3
  170. package/dist/cli-bundle/focused-chunks/chunk-QDAO3XEK.js +0 -14
  171. package/dist/cli-bundle/focused-chunks/chunk-T4IGQCSY.js +0 -2
  172. package/dist/cli-bundle/focused-chunks/chunk-XC2ZW3CJ.js +0 -2
@@ -0,0 +1,16 @@
1
+ import{d as Xr,f as Qr}from"./chunk-RKWSCYYN.js";import{b as Vr,e as Qt,f as tt,g as Yr}from"./chunk-7UN6BHHO.js";import{a as Dr,c as Lr,d as Or,g as Nr}from"./chunk-34SX654S.js";import{B as Ur,C as me,E as ne,F as pe,G as he,H as Kr,K as Br,L as et,M as Gr,N as Wt,O as Vt,P as Yt,Q as qr,U as Hr,V as Xt,ca as zr,e as $r,f as Pr,g as zt,h as jr,oa as ge,xa as Wr}from"./chunk-MXYSIQ56.js";import{Ea as pr,f as fr,wa as mr}from"./chunk-36FTZ2NT.js";import{$ as T,Aa as qt,Da as Ht,Ea as Er,L as te,M as R,Ma as I,N as v,O as Xe,Oa as Cr,P as j,Pa as xr,Q as _r,Sa as Tr,Ua as Ir,Ya as Fr,_a as fe,aa as F,ab as Ar,ba as U,bb as Qe,cb as Je,db as Ze,ea as wr,eb as J,fb as Mr,ha as V,hb as Rr,k as M,oa as br,p as Se,pa as kr,q as gr,t as yr,wa as vr,ya as Sr,z as Ee}from"./chunk-FF4MNAYB.js";import{Da as lr,E as O,F as ze,K as C,M as ar,N,O as Gt,Q as We,Qa as $,Sa as G,T as ke,U as A,Z as cr,_ as dr,a as nr,h as or,p as L,s as sr,v as Bt}from"./chunk-2EXI2DKR.js";import{j as Ve,l as ue,m as le,n as ve,q as Ye,r as hr}from"./chunk-RIIN5V4N.js";import{E as de,J as Kt,K as qe,R as rr,S as He,W as ir,Y as m,Z as p,aa as ur}from"./chunk-GHTN2ILR.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 Jr(e,t){let n=qt(e),r=e.length>0?e[e.length-1].after_hash:kr(),i=t===void 0?void 0:br(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 Zr(e,t,n={}){let r=C(n.cwd??process.cwd(),n.pmRoot);if(!await L(N(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await I(r),o=O(i,M()),s=await Nr(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=Dr(t,a),c=Or(Lr(a,d.historyIndex),d),u=vr(c,{schema:i.schema});if(u.metadata.id!==s.id)throw new p(`History target resolved to item ${u.metadata.id}, expected ${s.id}.`,m.GENERIC_FAILURE);let l=a[d.historyIndex];return{document:u,reconstructed:!0,as_of_version:d.historyIndex+1,as_of_timestamp:l.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 P(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 nt(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 ei(e,t,n="--type"){if(e===void 0)return;let r=ze(e,t);if(!r)throw new p(`${n} filter must be one of ${t.types.join("|")}`,m.USAGE);return r}import ua from"node:fs/promises";import ri 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 Jt={version:1,aliases:{}};function rt(e=[]){let t=new Set(Ee),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 ti(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 Zt(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 da(e,t=Ee){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 it(e,t=Jt,n={}){let r=Zt(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 ot(e,t=Jt,n=Ee){let r=ti(e.harness),i=ti(e.agentInstance),o=da(e,n);return s=>{let d=Zt(s,t).agent_harness;if(r&&(!d||!r.has(d))||i&&!i.has(s.agent_instance??""))return!1;for(let[c,u]of o){let l=s.agent_provenance?.[c];if(!l||!u.has(l.value))return!1}return!0}}function st(e,t=Jt,n=Ee){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);Zt(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 u=c.agent_provenance?.[s];u===null?d+=1:u!==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]="a7efa5e0-5610-51ca-8288-4f5410dbcf51")}catch{}})();var la=20,fa=5;function en(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 ni(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 j(i,new Date(t),n)}function ma(e,t,n){return!(e.ts.length===0&&(t||n)||t&&v(e.ts,t)<0||n&&v(e.ts,n)>=0)}function pa(e,t){return t===void 0?e:e.slice(0,t)}function Ce(e,t=""){return typeof e=="string"?e:t}function ha(e,t){return{...t,id:e,ts:Ce(t.ts),author:Ce(t.author,"unknown"),op:Ce(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Ce(t.before_hash),after_hash:Ce(t.after_hash)}}function ga(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 ya(e){try{return(await ua.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(t.code==="ENOENT")return[];throw t}}function _a(e){let t=R(),n=ni(e.from,t,"--from"),r=ni(e.to,t,"--to");if(n&&r&&v(n,r)>=0)throw new p("Activity --from must be before --to",m.USAGE);let i=ne(e.limit);if(e.unbounded===!0&&i!==void 0)throw new p("Activity --unbounded cannot be combined with --limit",m.USAGE);return{id:en(e.id,"Activity --id"),op:en(e.op,"Activity --op"),author:en(e.author,"Activity --author"),from:n,to:r,limit:e.unbounded===!0?void 0:i??(e.compact===!0?la:fa),limitSource:e.unbounded===!0||i!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function wa(e){let t=C(process.cwd(),e.path);if(!await L(N(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,m.NOT_FOUND);return{pmRoot:t,settings:await I(t)}}async function ba(e){let t=O(e.settings,M()),n=await J(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await xr({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=ri.join(e.pmRoot,"history");return await Se({path:r,scope:"project"}),r}function ka(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:ma(t,n.from,n.to)}async function va(e,t){let n=[];for(let r of await ya(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await V(ri.join(e,r),i);for(let s of o){let a=ha(i,s);ka(s,a,t)&&n.push(a)}}return n}function Sa(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}async function ii(e,t){let n=await wa(t),r=_a(e),i=await ba(n),o=rt(n.settings.agent_identity.harness_signals),s=n.settings.agent_identity.identity_vocabulary,a=ot({harness:r.harness,agentInstance:r.agentInstance,provenance:r.provenance},s,o),d=ga(await va(i,r)).filter(a),c=pa(d,r.limit),u=e.compact===!0,l=u?Sa(c):void 0,f=e.provenance===!0?c.map(b=>it(b,s,{itemId:b.id})):void 0,h=d.length-c.length,y=e.provenance===!0?"provenance":u?"compact":"full";return{...{compact:{compact_activity:l},provenance:{provenance_activity:f},full:{activity:c}}[y],compact:u,projection:{mode:y,row_key:y==="compact"?"compact_activity":y==="provenance"?"provenance_activity":"activity"},omission_receipt:Ve("activity",y),count:c.length,total_count:d.length,limit:r.limit??null,omitted_count:h,has_more:h>0,...e.provenanceSummary===!0?{provenance_summary:st(d,s,o)}:{},applied_bound:{kind:r.limit===void 0?"unbounded":"limit",source:r.limitSource,value:r.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 tn(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 q(e,t){let n=tn(e,t);return n===void 0?void 0:new Set(n)}function at(e,t,n="--type"){let r=tn(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=ze(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 ct(e,t="--priority"){let n=tn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>nt(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 oi(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function dt(e){return{isTerminal(t){return e.terminal_statuses.has(oi(t,e))},classify(t){let n=oi(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 nn(e){return A(e.acceptance_criteria)===void 0}function rn(e){return!Number.isFinite(e.estimated_minutes)}function di(e,t){return t.isTerminal(e.status)?A(e.resolution)===void 0:!1}function Ea(e){return A(e.reviewer)===void 0}function Ca(e){return A(e.risk)===void 0}function xa(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):A(e.confidence)===void 0}function Ta(e){return A(e.sprint)===void 0}function Ia(e){return A(e.release)===void 0}function xe(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Fa(e,t,n){return[[t.acMissing,nn(e)],[t.estimatesMissing,rn(e)],[t.resolutionMissing,di(e,n)],[t.reviewerMissing,Ea(e)],[t.riskMissing,Ca(e)],[t.confidenceMissing,xa(e)],[t.sprintMissing,Ta(e)],[t.releaseMissing,Ia(e)]].every(([i,o])=>i!==!0||o)}function Aa(e,t){return nn(e)||rn(e)||di(e,t)}function ut(e,t,n){return xe(t)?!(!Fa(e,t,n)||t.metadataMissing&&!Aa(e,n)):!0}var on=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Ma(e,t){switch(t){case"acceptance_criteria":return!nn(e);case"estimated_minutes":return!rn(e);case"resolution":return A(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return A(e.parent)!==void 0}}function Ra(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function Da(e,t){return t===0?100:Math.round(e/t*1e3)/10}function si(){let e={};for(let t of on)e[t]={present:0,applicable:0,percent:100};return e}function ai(e,t,n){for(let r of on){if(!Ra(t,r,n))continue;let i=e[r];i.applicable+=1,Ma(t,r)&&(i.present+=1)}}function ci(e){for(let t of on){let n=e[t];n.percent=Da(n.present,n.applicable)}}function Cp(e,t){let n=si(),r={};for(let i of e){ai(n,i,t);let o=r[i.type]??(r[i.type]=si());ai(o,i,t)}ci(n);for(let i of Object.values(r))ci(i);return{overall:n,by_type:r}}var La={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function Oa(e){return La[e]}function Na(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function $a(e,t,n){switch(t){case"assignee":return[A(e.assignee)??null];case"parent":return[A(e.parent)??null];case"type":return[A(e.type)??null];case"status":return[A(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 xp(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 $a(a,t,r)){let u=c??"\0empty",l=i.get(u);l||(l={label:c??Oa(t),key:c,buckets:Na(),total:0},i.set(u,l)),l.buckets[d]+=1,l.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 ye=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function re(e){return Array.isArray(e)&&e.length>0}function Pa(e){return typeof e=="string"&&e.trim().length>0}function ja(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 li(e,t){switch(t){case"notes":return re(e.notes);case"learnings":return re(e.learnings);case"files":return re(e.files);case"docs":return re(e.docs);case"tests":return re(e.tests);case"comments":return re(e.comments);case"deps":return re(e.dependencies);case"body":return Pa(e.body);case"linked_command":return ja(e.tests)}}function lt(e){return ye.some(t=>e[t]!==void 0)}function ft(e,t){for(let n of ye){let r=t[n];if(r===void 0)continue;let i=li(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function fi(e){return ye.some(t=>t!=="body"&&e[t]!==void 0)}function mi(e){return e.body!==void 0}function ui(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Ua(){let e={};for(let t of ye)e[t]={present:0,total:0,percent:100};return e}function Ip(e){let t=Ua(),n=e.length;for(let s of e)for(let a of ye)li(s,a)&&(t[a].present+=1);for(let s of ye)t[s].total=n,t[s].percent=ui(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:ui(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 mt=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}),pi=[{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"}],Fe=e=>{let t=pi.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(pi.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},hi=["priority","deadline","updated_at","created_at","title","parent"],gi=["asc","desc"],Ka=["id","title","status","type","priority","parent","updated_at"],Ba=["id","status","type","title"],Zp={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},Ga=["tree_depth","tree_parent","tree_children","tree_title"],bi=new Set(Fr);function qa(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 Ha(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var za=[{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"}],Wa=[{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 ki(e,t){for(let n of za)t[n.key]===!0&&(e[n.summaryKey]=!0)}function vi(e,t){for(let n of Wa)t[n.key]===!0&&(e[n.summaryKey]=!0)}function sn(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 Ae(e){let t={};return ki(t,e),t}function Me(e){let t={};return vi(t,e),t}var Va=[{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"}],Ya=[{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"}],Xa=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Qa="-7d";function Si(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"),sn(d,n,Va),Ci(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),vi(d,n),ki(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),Ha(a)&&(d.runtime_filters=a),d}function an(e,t,n){let r=U(e.status,n),i=U(t.status,n);if(r!==i)return r?1:-1;let o=e.priority-t.priority;if(o!==0)return o;let s=v(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function Ja(e,t){return[...e].sort((n,r)=>an(n,r,t))}function yi(e,t){if(e!==void 0)return j(e,new Date,t)}function Te(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return j(n,new Date,t)}function Ei(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?Te(Qa,"recent"):Te(e.updatedAfter,"updated-after")}function Ci(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function xi(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 cn(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 Ti(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 Ii(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,i=Ti(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:[...Ba]}:t?{mode:"compact",fields:[...Ka]}:i?{mode:"fields",fields:i}:{mode:"full",fields:[]}}function _e(e){return e.startsWith("item.")?e.slice(5):e}function Za(e,t){if(e.mode!=="fields")return;let n=new Set([...He,"body",...Ga,...t]),r=e.fields.filter(i=>!n.has(_e(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 ec=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Fi(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=ec.get(t);if(n)return n;if(!hi.includes(t))throw new p(`Sort field must be one of ${hi.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function Ai(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!gi.includes(t))throw new p(`Sort order must be one of ${gi.join("|")}`,m.USAGE);return t}function tc(e){return P(e,"--tree-depth")}function Mi(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 _i(e,t){return me(e,t,{strict:!0})}function Ri(e){return q(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function nc(e,t,n){let r=Ri(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 rc(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 ic(e,t,n,r){let i=q(t.assignee,{label:"--assignee"}),o=Mi(t.assigneeFilter);rc(i,o);let s=mt(t),a=Fe(t);return{idsFilter:xi(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:at(t.type,n),tagFilters:Ri(t.tag),priorityFilter:ct(t.priority),deadlineBefore:yi(t.deadlineBefore,"deadline-before"),deadlineAfter:yi(t.deadlineAfter,"deadline-after"),updatedAfter:Ei(t),updatedBefore:Te(t.updatedBefore,"updated-before"),createdAfter:Te(t.createdAfter,"created-after"),createdBefore:Te(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:q(t.sprint,{label:"--sprint"}),releaseFilter:q(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:xe(s),lifecycleClassifier:dt(r),contentFieldFilters:a,contentFiltersActive:lt(a)}}function oc(e,t,n){return sc(e,t,n)&&ac(e,t)&&cc(e,t)&&dc(e,t)}function sc(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&U(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 ac(e,t){return Xe(e,t)}function cc(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 dc(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 uc(e,t,n,r){return!(!oc(e,t,n)||t.missingMetadataActive&&!ut(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!ft(e,t.contentFieldFilters)||!he(e,r))}function Di(e,t,n,r,i,o){let s=ic(t,n,r,i);return e.filter(a=>uc(a,s,i,o))}function Ie(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Li(e,t,n){let r=e,i=typeof r.title=="string"?r.title:"",o=Ie(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 Oi(e,t,n){let r=new Map,i=new Map;for(let c of e){r.set(c.id,c);let u=Ie(c.parent);if(!u)continue;let l=i.get(u);l?l.push(c):i.set(u,[c])}let o=t?[...i.get(t)??[]]:e.filter(c=>{let u=Ie(c.parent);return!u||!r.has(u)}),s=[],a=new Set,d=(c,u)=>{if(a.has(c.id))return;a.add(c.id);let l=i.get(c.id)??[];if(s.push(Li(c,u,l.length)),!(n!==void 0&&u>=n))for(let f of l)d(f,u+1)};for(let c of o)d(c,0);return s}function Ni(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function $i(e,t){return e===t?0:e===null?1:t===null?-1:v(e,t)}function Pi(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return $i(e.deadline??null,t.deadline??null);case"updated_at":return v(e.updated_at,t.updated_at);case"created_at":return v(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Ni(e.parent??null,t.parent??null);default:return 0}}function ji(e,t,n,r){return t?[...e].sort((i,o)=>{let s=Pi(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=an(i,o,r);return n==="desc"?-a:a}):Ja(e,r)}function Ui(e,t,n=!1){let r=_e(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 dn(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=Ui(r,o,n);return i})}function Ki(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Bi(e,t){if(e.noTruncate!==!0)return P(e.limit)??(t>=1e4?20:void 0)}function lc(e,t,n){return t.after===void 0?cn(t.offset)??0:Ye(e,t.after,n,r=>r.id)}function Gi(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function fc(e,t){let n=C(process.cwd(),t.path);if(!await L(N(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await I(n),i=$(r.schema),o=G(r.schema),s=Ii(e);return Za(s,Ki(o.definitions)),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:pe(e,o,"list"),typeRegistry:O(r,M()),projection:s}}async function mc(e,t,n){let r=t.projection.fields.some(d=>_e(d)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(d=>bi.has(_e(d))),o=Fe(e),s=fi(o),a=mi(o);return e.includeBody||r||a?await Mr(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await Ze(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 pc(e){let t=Fi(e.sort),n=Ai(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?tc(e.treeDepth):void 0,parentRoot:r?Ie(e.parent):void 0}}function hc(e,t,n){let r=_i(t.status,n),i=r??_i(e,n),o=Ur(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 gc(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=Bi(t,e.length),s=lc(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),d=dn(a,n,r),c=e.length,u=a.length>0&&s+a.length<c,l=u&&a.length>0?ve(i,a[a.length-1].id,s+a.length-1):void 0;return{projected:d,totalMatched:c,pageExtras:Gi(o,u,l)}}function qi(e,t,n){return le("list",{status:e,options:ue(t,fr),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function yc(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=_e(y);return g==="body"||bi.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,gr(),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=P(t.limit),u=cn(t.offset)??0,l=await Ir({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:u}});if(!l)return null;let f=l.items.length>0&&u+l.items.length<l.total,h=f?ve(qi(r.filtersStatus,t,i),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:dn(l.items,n.projection,!1),totalMatched:l.total,pageExtras:Gi(c,f,h)}}function _c(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 u=n;for(let l of Ya){let f=u[l.optionKey];f!=null&&(c[l.summaryKey]=f)}for(let l of Xa)u[l.key]===!0&&(c[l.summaryKey]=!0);return Object.assign(c,Me(n),Ae(n)),Ci(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 fc(t,n),i=[],o=pc(t),s=hc(e,t,r.statusRegistry),a=t.noTruncate===!0,d=await yc({options:t,runtime:r,statusSelection:s,ordering:o}),c=d;if(!c){let g=await mc(t,r,i);nc(g,t.tag,i);let b=Di(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),_=t.dependencyBlocked===!0?(()=>{let x=tt(g,r.statusRegistry);return b.filter(D=>x.has(D.id.trim().toLowerCase()))})():b,w=ji(_,o.sortField,o.sortOrder,r.statusRegistry),E=o.treeEnabled?Oi(w,o.parentRoot,o.treeDepth):w;c=gc(E,t,r.projection,o.treeEnabled,qi(s.filtersStatus,t,o))}let u=R(),l=[...new Set(i)].sort((g,b)=>g.localeCompare(b)),f=qa(l,d!==null,t.strictRead===!0),h=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let g=Si({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},...l.length>0?{warnings:l}:{}}}return{items:c.projected,count:c.projected.length,total:c.totalMatched,...c.pageExtras,completeness:f,filters:_c({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:u,...l.length>0?{warnings:l}:{}}}var eh={applyFilters:Di,buildCompactListFilterSummary:Si,buildContentFilterEcho:Ae,buildGovernanceMissingFilterEcho:Me,resolveContentFieldFilters:Fe,resolveMissingMetadataFilters:mt,compareBySortField:Pi,compareDefaultSort:an,compareNullableString:Ni,compareNullableTimestamp:$i,normalizeProjectionField:_e,parseAssigneeFilter:Mi,parseFieldSelectors:Ti,parseIdsFilter:xi,parseOffset:cn,parseProjectionConfig:Ii,resolveListUpdatedAfter:Ei,resolveListPageLimit:Bi,parseSortField:Fi,parseSortOrder:Ai,orderItemsAsTree:Oi,projectListItems:dn,readListFieldValue:Ui,runtimeMetadataKeysForProjection:Ki,sortItems:ji,trimNonEmpty:Ie,withTreeMetadata:Li};(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 wc=["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 kc(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function nh(e,t,n={}){let r=n.includePagination!==!1;return[t,...wc.map(o=>e?.[o]),...r?[e?.limit,e?.offset]:[]].some(kc)||bc.some(o=>e?.[o]===!0)}function Hi(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 zi=["parent","type","priority","status","assignee","tags","sprint","release"];function Vi(e,t){let n=me(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function Yi(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 Xi(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=Wr(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(!zi.includes(r))throw new p(`Aggregate group fields must be one of ${zi.join("|")}; received "${r}"`,m.USAGE);return n}function Qi(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 Ji(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 Qi(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function Zi(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 eo(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var vc={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function Wi(e,t){return t==null||t===""?vc[e]:String(t)}function Sc(e,t){return e.length===1?Wi(e[0],t[e[0]]):e.map(n=>`${n}=${Wi(n,t[n])}`).join(" | ")}function to(e,t,n){for(let r of n){let i=Zi(e.group[r],t.group[r]);if(i!==0)return i}return 0}function no(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 ro(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function un(e,t,n){let r=T(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 Ec(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 Cc(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function xc(e){e.accumulator.row.count+=1,e.includeCompletion&&un(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&Cc(e.accumulator,e.numericValue)}function Tc(e,t){let n={};for(let r of e)n[r]=Ji(r,t);return n}function Ic(e,t,n,r){let i={...e.row,group_label:Sc(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=ro(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 Fc(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 ah(e,t){if(e.count===!1)throw new p("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let n=C(process.cwd(),t.path),r=await I(n),i=$(r.schema),o=["estimate","estimated_minutes","priority",...G(r.schema).definitions.filter(_=>_.type==="number").map(_=>_.metadata_key)],s=Xi(e.groupBy),a=Vi(e.status,i),d=Yi(e,[...new Set(o)].sort((_,w)=>_.localeCompare(w))),c=e.completion===!0,u=e.includeUnparented===!0,l=await Y(void 0,{...Hi(e),status:e.status},t),f=new Map,h=0,y=0;for(let _ of l.items){let w=_,E=Tc(s,w);if(s.includes("parent")&&E.parent===null&&!u){h+=1;continue}let x=eo(s,E),D=f.get(x),S=d===null?null:no(w,d.field);if(D)xc({accumulator:D,item:w,statusRegistry:i,includeCompletion:c,numericAggregation:d,numericValue:S});else{let K=Ec(E,S);c&&un(K,w.status,i),f.set(x,K)}y+=1}let g=[...f.values()].map(_=>Ic(_,s,c,d)).sort((_,w)=>to(_,w,s)),b=l.warnings&&l.warnings.length>0?l.warnings:void 0;return{groups:g,count:g.length,totals:{items_considered:l.items.length,items_grouped:y,items_skipped_unparented:h},filters:Fc({groupBy:s,includeCompletion:c,includeUnparented:u,status:a,options:e,numericAggregation:d}),now:R(),...b?{warnings:b}:{}}}var ch={buildGroupKey:eo,compareAggregateRows:to,compareNullableGroupValue:Zi,completionPct:ro,normalizeTagGroupValue:Qi,parseGroupBy:Xi,parseNumericAggregation:Yi,parseStatus:Vi,readNumericAggregateValue:no,resolveGroupValue:Ji,updateCompletionCounts:un};import{encode as Ac}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 ln=["agenda","day","week","month"],fn=["markdown","toon","json"],Mc=["sun","mon","tue","wed","thu","fri","sat"],Rc=365,Dc=365,so=28,Lc=1e3;function mn(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 Oc(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 ao(e,t){let n;for(let r of t){let i=nr(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function Nc(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!ln.includes(t)){let n=ao(t,ln);throw new p(`Calendar view must be one of ${ln.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function $c(e){if(!e)return;let t=e.trim().toLowerCase();if(!fn.includes(t)){let n=ao(t,fn);throw new p(`Calendar format must be one of ${fn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function ph(e,t){let n=$c(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 Pc(e,t){if(e===void 0)return;let n=T(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 jc(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 pt(e){return new Date(e).toISOString().slice(0,10)}function co(e,t){if(!t||t==="UTC")return pt(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 pt(e)}function yn(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 uo(e){let t=new Date(yn(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return X(t.toISOString(),r)}function Uc(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Kc(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Bc(e,t){return v(e,t)>=0?e:t}function io(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function oo(e,t){e.set(t,(e.get(t)??0)+1)}function Gc(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 lo(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 fo(e){return Mc[new Date(e).getUTCDay()]}function qc(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Hc(e){let t=new Set;for(let n of e??[]){let r=qc(n);r&&t.add(r)}return t}function zc(e,t,n,r,i){let o=e??X(n,-(r??Dc)),s=t??X(e??n,i??Rc);return{start:o,end:v(s,o)>0?s:X(o,1)}}function Wc(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[fo(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??Lc,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Hc(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 ht(e,t){return v(t,e.startAt)<0?"continue":e.until&&v(t,e.until)>0||v(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,v(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function gt(e,t){let n=fo(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function Vc(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(gt(e,t)&&ht(e,t)==="stop");n+=1)t=X(t,e.interval);return e.occurrences}function Yc(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 Xc(e){let t=uo(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=Yc(e,r,i);if(gt(e,o)&&ht(e,o)==="stop")return e.occurrences}}return e.occurrences}function Qc(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=lo(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!gt(e,s))&&ht(e,s)==="stop")return e.occurrences}}return e.occurrences}function Jc(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=lo(i,n,o,e.startDate);if(!(!s||!gt(e,s))&&ht(e,s)==="stop")return e.occurrences}}return e.occurrences}function Zc(e,t,n,r){let i=Wc(e,t,n,r);return t.freq==="daily"?Vc(i):t.freq==="weekly"?Xc(i):t.freq==="monthly"?Qc(i):Jc(i)}function mo(e){return[...e].sort((t,n)=>{let r=v(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 _n(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 ed(e){return e.deadline?{at:e.deadline,date:pt(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,..._n(e),item_deadline:e.deadline}:null}function td(e){return(e.reminders??[]).map(t=>({at:t.at,date:pt(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,..._n(e)}))}function nd(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function rd(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function id(e,t,n,r){let i=Gc(t.recurrence),o=nd(t.start_at,t.end_at);return(t.recurrence?Zc(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):co(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:rd(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,..._n(e)}))}function od(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?ed(o):null;s&&i.push(s),n.has("reminders")&&i.push(...td(o));for(let a of n.has("events")?o.events??[]:[])i.push(...id(o,a,t,r))}return mo(i)}function sd(e,t,n,r,i){let o=ei(t.type,n),s=t.tag?.trim().toLowerCase(),a=nt(t.priority),d=Pc(t.status,r),c=t.assignee?.trim(),u=jc(t.assigneeFilter),l=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&&u==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE);return e.filter(h=>ad(h,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:d,assigneeFilter:c,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:i}))}function ad(e,t){return cd(e,t)&&dd(e,t)&&he(e,t.runtimeFieldFilters)}function cd(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 dd(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 ud(e,t,n){return!(t&&v(e.at,t)<0||n&&v(e.at,n)>=0)}function pn(e,t,n){return e.trim().toLowerCase()==="today"?yn(t):j(e,new Date(t),n)}function ld(e,t,n){let r=t.date?pn(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?pn(t.from,n,"--from"):void 0,a=t.to?pn(t.to,n,"--to"):void 0;if(s&&a&&v(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 fd(r,t,n,i,o,s,a);if(e==="day"){let c=yn(r);return hn(r,n,i,o,c,X(c,1))}if(e==="week"){let c=uo(r);return hn(r,n,i,o,c,X(c,7))}let d=Uc(r);return hn(r,n,i,o,d,Kc(r))}function fd(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 hn(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:Bc(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function md(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:mo(r)}))}function pd(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),oo(n,d.item_type),oo(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:io(n),by_status:io(r),recurring_events:a}}function hd(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function po(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 gn(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function gd(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===co(e.event_end,e.event_timezone)?po(e.event_end,e.event_timezone):e.event_end:null}function yd(e){let t=`${po(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=gd(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 hh(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${hd(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: ${gn(e.summary.by_kind)}`),t.push(`- by-type: ${gn(e.summary.by_type)}`),t.push(`- by-status: ${gn(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(`- ${yd(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 _d(t.join(`
3
+ `))}function gh(e){return Ac(e)}function _d(e){let t=e.length;for(;t>0&&e[t-1]===`
4
+ `;)t-=1;return e.slice(0,t)}function wd(e){let t=R(),n=Nc(e.view),r=ld(n,e,t),i=P(e.limit),o=Oc(e.include),s=mn(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=mn(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),d=mn(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"),u=e.to!==void 0||s!==void 0||a!==void 0||d!==void 0,l=c&&!u;return{nowValue:t,view:n,rangeBounds:r,limit:i,includeSources:o,occurrenceLimit:d,recurrenceLookaheadDays:l?so:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function bd(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${so}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function kd(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 vd(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 ho(e,t){let n=C(process.cwd(),t.path);if(!await L(N(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=wd(e),i=await I(n),o=$(i.schema),s=G(i.schema),a=pe(e,s,"calendar"),d=O(i,M()),c=[];bd(c,r.eventsOnlyCapApplied);let u=await J(n,i.item_format,d.type_to_folder,c,i.schema),l=sd(u,e,d,o,a),f=zc(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),y=od(l,f,r.includeSources,r.occurrenceLimit).filter(w=>ud(w,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?y:y.slice(0,r.limit),b=md(g),_=[...new Set(c)].sort((w,E)=>w.localeCompare(E));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:vd(e,r.rangeBounds),filters:kd(e,a),summary:pd(g),events:g,days:b,..._.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 wn=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Sd=Symbol("no-context-author"),Ed=Symbol("no-item-assignee");function go(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function Cd(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 xd(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 Td(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 yt(e,t,n){return e?.[t]??n}function _t(e,t){let n=c=>{if(typeof c!="string")return"";try{return j(c,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((c,u)=>{let l=n(c.updated_at),f=n(u.updated_at);return v(f,l)||c.id.localeCompare(u.id)}),i=new Map(r.map((c,u)=>[c.id,u])),o=Math.max(e.length-1,1),s=go(t.author,Sd),a=T("in_progress",t.statusRegistry),d=Date.parse(t.now);return e.map(c=>{let u=go(c.assignee,Ed)===s,l=(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:yt(t.graphProximity,c.id,c.parent?.3:0),claim_focus:yt(t.claimFocus,c.id,F(c.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:Cd(c.priority,4),risk_pressure:Td(c.risk),deadline_pressure:xd(c.deadline,d),knowledge_density:yt(t.knowledgeDensity,c.id,Math.min(l/5,1)),author_affinity:yt(t.authorAffinity,c.id,u?1:0),usage_affinity:t.usageAffinity?.[c.id],semantic_similarity:t.semanticSimilarity?.[c.id]}}})}var Id="context_relevance",Fd={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},Ad=new TextEncoder;function Md(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"||!wn.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 Rd(e){let t={...Fd};for(let[n,r]of Object.entries(e??{}))r!==void 0&&wn.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 _o(e,t={}){Md(e);let n=Rd(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=wn.filter(a=>i.has(a)),s=e.map((a,d)=>{let c={structural:e.length===1?1:1-d/r,...a.signals},u={},l=0,f=0;for(let h of o){let y=c[h];if(y===void 0)continue;let g=y*n[h];u[h]=g,l+=g,f+=n[h]}return{...a,baseline_rank:d+1,rank:0,score:f===0?0:l/f,contributions:u}});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 Dd(e,t={}){let n=_o(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 wt(e,t,n={}){let r=_o(t,n),i=await yr(Id,{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 Dd(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 Ld=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function yo(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function Od(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,u)=>u-c).slice(0,n.length||1),i=c=>c.reduce((u,l,f)=>u+(2**l-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:yo(e.required_ids??[],a),continuity_coverage:yo(e.continuity_ids??[],a),token_budget_adherence:d?1:e.token_budget/e.actual_tokens,within_token_budget:d}}function Nd(e){return Math.ceil(Ad.encode(JSON.stringify(e)).byteLength/4)}function $d(e){return Math.round(e*1e4)/1e4}function Pd(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 jd(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}=Pd(n,e.surface),o={...n,ranking:void 0},s=Nd(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:Od({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 Ud(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=Ld;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,$d(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 kh(e,t,n){let r=[];for(let i of e)r.push(await jd(i,t));return Ud(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 Kd={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},Bd=["identity","summary","full"];function Gd(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=Bd.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 qd(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=Kd[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 Hd(e){let t=new Set;for(let n of e){if(Gd(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 zd(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],u=n(d)/d.token_costs.identity,l=c===void 0?Number.NEGATIVE_INFINITY:n(c)/c.token_costs.identity;(u>l||u===l&&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 Wd(e){let t=new Set,n=[],r=e.tokenBudget,i=c=>{let u=c.lineage??c.cluster,l=u&&t.has(u)?1-e.redundancyPenalty:1;return Math.max(0,(c.score-e.uncertaintyPenalty*(c.uncertainty??0))*l)},o=c=>{let u=c.token_costs.identity;n.push({...c,projection:"identity",tokens:u,marginal_value:i(c)}),r-=u;let l=c.lineage??c.cluster;l&&t.add(l)};for(let c of e.ordered.filter(u=>u.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=zd(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 Vd(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 wo(e,t){let n=qd(t),r=Hd(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=Wd({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,d=Vd(a,s.remaining);a.sort((u,l)=>u.rank-l.rank||u.id.localeCompare(l.id));let c=new Set(a.map(u=>u.id));return{included:a,omitted_ids:r.filter(u=>!c.has(u.id)).map(u=>u.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-d,remaining_tokens:d,complete:s.selectionComplete&&a.length===e.length&&a.every(u=>u.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 Yd}from"node:crypto";import{appendFile as Xd,mkdir as Qd,readFile as Jd,rename as Zd,stat as eu,writeFile as tu}from"node:fs/promises";import bo 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 ko=2048,vo=30,So=864e5,nu=262144,ru="context-usage-ledger",H=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function Eo(e){return bo.join(e,"runtime","context-usage.jsonl")}function Re(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new H("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function Co(e){try{let n=(await Jd(Eo(e.pmRoot),"utf8")).split(`
5
+ `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??ko,i=e.retentionDays??vo,o=Re(e).ms-i*So;return n.filter(s=>Date.parse(s.at)>=o).slice(-r)}catch{return[]}}async function xo(e,t){let n=e.maxEvents??ko,r=e.retentionDays??vo;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new H("Context usage retention requires positive maxEvents and retentionDays");let i=Eo(e.pmRoot),o=bo.dirname(i),s=await _r(e.pmRoot,ru,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await Qd(o,{recursive:!0}),await Xd(i,t.map(u=>`${JSON.stringify(u)}
6
+ `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await eu(i)).size<=nu)return;let d=await Co(e),c=`${i}.${process.pid}.${Yd()}.tmp`;await tu(c,`${d.map(u=>JSON.stringify(u)).join(`
7
+ `)}
8
+ `,"utf8"),await Zd(c,i)}finally{await s()}}async function To(e,t){await xo(e,[t])}async function bt(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 H("Context usage serving requires an author and valid ranked rows");await To(e,{kind:"serve",at:Re(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function Ih(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new H("Context usage touch requires author, itemId, and intent");await To(e,{kind:"touch",at:Re(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function Io(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 H("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new H("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new H("Context usage touch requires non-empty itemId");r.add(a)}let i=Re(e).iso,o=[...r].map(s=>({kind:"touch",at:i,author:t,item_id:s,intent:n}));await xo(e,o)}function iu(e,t,n,r){return e.find(({entry:i,time:o})=>i.item_id===t&&o>=n&&o-n<=r)?.time}async function kt(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await Co(e),n=Re(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new H("Context usage horizonHours must be positive");let i=e.author.trim(),o=t.filter(l=>l.kind==="touch"&&l.author===i).map(l=>({entry:l,time:Date.parse(l.at)})),s=new Map,a=0,d=0;for(let l of t){if(l.kind!=="serve"||l.author!==i)continue;a+=1;let f=Date.parse(l.at);for(let h of l.rows){if(!h.included)continue;let y=iu(o,h.id,f,r);if(y===void 0)continue;d+=1;let g=Math.max(0,(n-y)/So);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(([l,f])=>[l,.05+.95*(c>0?f/c:0)])),positive_judgments:d,serving_events:a}}import De from"node:fs/promises";import Le from"node:path";import{createHash as ou,randomUUID as su}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]="2a0f64cf-f6a4-5304-921d-c83b98d3a31f")}catch{}})();var bn=1,kn=1,Fo=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],au={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 vt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ao(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function cu(e){let t={};for(let n of Fo){let r=e[n];if(r!==void 0){if(!Ao(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function du(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 uu(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 lu(e,t){return{...t,activityDensity:t.activityDensity??du(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??uu(e)}}function fu(e){if(!vt(e)||typeof e.id!="string"||!vt(e.signals))return null;let t={},n=new Set(Fo);for(let[r,i]of Object.entries(e.signals)){if(!n.has(r)||!Ao(i))return null;t[r]=i}return{id:e.id,signals:t}}function mu(e){if(!vt(e)||e.format_version!==bn||e.signal_set_version!==kn||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(fu);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:bn,signal_set_version:kn,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,i)=>r.id.localeCompare(i.id))}}function pu(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=_t(e,lu(e,t)).map(({id:r,signals:i})=>({id:r,signals:cu(i)})).sort((r,i)=>r.id.localeCompare(i.id));return Object.freeze({format_version:bn,signal_set_version:kn,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var vn=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=Le.resolve(t)}async read(){try{return JSON.parse(await De.readFile(this.filePath,"utf8"))}catch(t){if(vt(t)&&t.code==="ENOENT")return null;throw t}}async write(t){let n=Le.dirname(this.filePath);await De.mkdir(n,{recursive:!0});let r=Le.join(n,`.${Le.basename(this.filePath)}.${su()}.tmp`);try{await De.writeFile(r,`${JSON.stringify(t)}
9
+ `,{encoding:"utf8",flag:"wx"}),await De.rename(r,this.filePath)}finally{try{await De.rm(r,{force:!0})}catch{}}}},Sn=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],i=null;try{let l=await this.adapter.read();i=mu(l),l!==null&&i===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let o=t.map(l=>l.id).sort((l,f)=>l.localeCompare(f)),s=i?.items.map(l=>l.id)??[],a=i!==null&&i.source_cursor===n.sourceCursor&&i.source===n.source&&s.length===o.length&&s.every((l,f)=>l===o[f]),d;if(a&&i!==null)d=i;else{i!==null&&r.push("context_signal_store_stale"),d=pu(t,n);try{await this.adapter.write(d)}catch{r.push("context_signal_store_write_failed")}}let c=new Map(d.items.map(l=>[l.id,l.signals])),u=_t(t,n);return{snapshot:d,candidates:u.map(l=>({...l,signals:{...l.signals,...c.get(l.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r,warning_details:r.map(l=>au[l])}}};function hu(e){let t=ou("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 St(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??hu(e),s=t.source??(i===null?"scan_fallback":"derived_index");return new Sn(new vn(Le.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:o,source:s})}import gu from"node:path";import{createHash as yu}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 Mo(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 _u 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]="2e225010-1b53-59e9-8188-dcbe4a4f7eb7")}catch{}})();var Ro=1,wu=1e4,Do=12;function bu(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function ku(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 vu(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 Su(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(F(o.status,t.statusRegistry))).map(o=>{let s=Mo(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}`,u=i.get(c)??{kind:"epoch",key:d,label:d,items:[]};u.items.push(o),i.set(c,u);let l=ku(s,r);if(l){let f=`epic:${l.id}`,h=i.get(f)??{kind:"epic",key:l.id,label:l.title,items:[]};h.items.push(o),i.set(f,h)}}return{format_version:Ro,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(vu).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function Eu(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 Cu(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(Eu)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function xu(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==Ro||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(Cu)?t:null}function Tu(e){return`scan:${yu("sha256").update(ur(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function Iu(e,t,n){return n!==void 0?n:(await fe(t))?.source_cursor??Tu(e)}async function Fu(e){try{let t=xu(JSON.parse(await _u.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&t.code==="ENOENT")}}}async function Et(e,t){let n=Math.max(1,Math.floor(t.minimumItems??wu));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await Iu(e,t.pmRoot,t.sourceCursor),i=gu.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await Fu(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=Su(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await sr(i,`${JSON.stringify(d)}
10
+ `)}catch{o.push("workspace_memory_write_failed")}return{snapshot:d,cache_status:"rebuilt",warnings:o}}function Au(e,t,n=Do){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 Lo(e,t,n=Do){if(e.snapshot===null)return;let r=Au(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 Mu(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 Oo(e,t,n=5){let r=Mu(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]="161507f0-b1a7-59a6-9a60-d8f09806ed3f")}catch{}})();var Ru=["markdown","toon","json","ndjson"],Ne=new Set(["Epic","Feature"]),Ko=10,Bo=1e4,Go=["hierarchy","activity","progress","recently_created","unparented","workload"],Du=[...Go,"blockers","files","staleness","tests"],Lu=/^(\d{4})-(\d{2})-(\d{2})/,Ou=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,Nu=/^(\d{4})(\d{2})(\d{2})$/,$u=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function Pu(e){if(!e)return;let t=e.trim().toLowerCase();if(!Ru.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var No=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 ju(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!No.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[...No].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 Oe(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function sg(e,t){let n=Pu(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 Uu(e,t){return P(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Ko)}function xn(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 Ku(e,t){return t>=Bo&&e===Number.MAX_SAFE_INTEGER?Ko:e}function Bu(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Kt.includes(n))throw new p(`Context --depth must be one of ${Kt.join("|")}`,m.USAGE);return n}function Gu(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!qe.includes(s))throw new p(`Context --section must be one of ${qe.join("|")}`,m.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...qe]:(t==="deep"?Du:Go).filter(i=>n.sections[i])}function qu(e,t){return e?P(e,"--activity-limit")??t.activity_limit:t.activity_limit}function Hu(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 $o(e,t){let n=F(e,t),r=T("in_progress",t),i=T("open",t),o=T("blocked",t),s=T("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 $e(e,t){let n=T("closed",t);return F(e,t)===n}function Tn(e,t){let n=T("in_progress",t);return F(e,t)===n}function qo(e,t){let n=T("open",t);return F(e,t)===n}function zu(e,t){return t.blocked_statuses.has(F(e,t))}var Wu=["compact","brief","fields","includeBody","include_body","parent"];function Vu(e){let t={...e};for(let n of Wu)delete t[n];return t}function In(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=we(e),o=Pe(r.id,i);return{ids:new Set([r.id,...o.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function Yu(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 Xu(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Qu(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:v(n,r)}function Ju(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Zu(e){let t=Lu.exec(e)??Ou.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<=Ju(n,r-1)}function el(e){let t=Nu.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=$u.exec(e);if(n){let[,r,i,o,s,a,d,c]=n,u=d?`:${d}`:"",l=c&&c.length===5&&c!=="Z"?`${c.slice(0,3)}:${c.slice(3)}`:c??"";return`${r}-${i}-${o}T${s}:${a}${u}${l}`}return e}function Ho(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Zu(t))return Number.NaN;let n=Date.parse(el(t));return Number.isFinite(n)?n:Number.NaN}function Cn(e){let t=Ho(e);return Number.isFinite(t)?new Date(t).toISOString():""}function tl(e){let t=Ho(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function Fn(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function ie(e,t,n){let r=$o(e.status,n)-$o(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=Xu(e.order,t.order);if(o!==0)return o;let s=Qu(e.deadline,t.deadline);if(s!==0)return s;let a=v(Cn(t.updated_at),Cn(e.updated_at)),d=e.id.localeCompare(t.id);return a!==0?a:d}function En(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function An(e,t,n=new Set,r="context"){return wo(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:En({id:i.id,title:i.item.title}),summary:En({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:En(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function Mn(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Rn(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 zo(e,t){return t>0?Math.round(e/t*100):0}function we(e){let t=new Map;for(let n of e){let r=Fn(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function je(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:Fn(e.parent)};if(t&&n){let i=Pe(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>$e(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=zo(s,o)}}return r}function nl(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 Ct(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function rl(e,t){return e.filter(n=>!t.terminal_statuses.has(F(n.item_status,t)))}function il(e,t,n,r){let i=new Map;for(let d of e)i.set(d.id,d);let o=we(e),s=new Set(t.filter(d=>Ne.has(d.type)).map(d=>d.id)),a=[];for(let d of s){let c=i.get(d);if(!c)continue;let u=Pe(d,o),l=o.get(d)??[],f=0,h=0,y=0,g=0;for(let _ of u)$e(_.status,n)?f++:Tn(_.status,n)?y++:zu(_.status,n)?g++:qo(_.status,n)&&h++;let b=l.sort((_,w)=>ie(_,w,n)).slice(0,r).map(_=>{let w=Pe(_.id,o),E=w.filter(x=>$e(x.status,n)).length;return{id:_.id,title:_.title,type:_.type,status:_.status,children_total:w.length,children_closed:E}});a.push({id:c.id,title:c.title,type:c.type,status:c.status,children_total:u.length,children_closed:f,children_open:h,children_in_progress:y,children_blocked:g,children:b})}return a.sort((d,c)=>{let u=i.get(d.id),l=i.get(c.id);return ie(u,l,n)}).slice(0,r)}function Pe(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 ol(e,t){return(await ii({compact:!0,limit:String(e)},t)).compact_activity??[]}function sl(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=>Ne.has(d.type)),a=[];for(let d of s){let c=Pe(d.id,o),u=c.length;if(u===0)continue;let l=0,f=0,h=0,y=0;for(let g of c)$e(g.status,r)?l++:n.has(g.id.trim().toLowerCase())?y++:Tn(g.status,r)?h++:qo(g.status,r)&&f++;a.push({id:d.id,title:d.title,type:d.type,total:u,closed:l,open:f,in_progress:h,blocked:y,completion_pct:zo(l,u)})}return a.sort((d,c)=>d.completion_pct-c.completion_pct).slice(0,i)}function al(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=Qt(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 cl(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 dl(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=>Tn(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function ul(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 ll(e,t,n,r){return e.map(i=>({item:i,sortKey:Cn(i.created_at)})).sort((i,o)=>{let s=v(o.sortKey,i.sortKey);return s!==0?s:i.item.id.localeCompare(o.item.id)}).slice(0,r).map(({item:i})=>({...je(i,t,n),created_at:i.created_at}))}function fl(e,t,n,r){return e.filter(i=>!Fn(i.parent)&&!Ne.has(i.type)).sort((i,o)=>ie(i,o,t)).slice(0,r).map(i=>je(i,t,n))}function ml(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 u of d)r+=u.passed??0,i+=u.failed??0,o+=u.skipped??0,(u.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 Po(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Wo(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 pl(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function hl(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`${Po(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Po(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 jo(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 gl(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 yl(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(`- ${hl(n)}`);e.push("")}function _l(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 wl(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)}`:`- ${tl(i.created_at)} ${Wo(i)}`);e.push("")}}function kl(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 vl(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 Sl(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 El(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 Cl(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 xl(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 Tl(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 Il(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 ag(e){let t=[],n=e.focus_fields,r=o=>n?pl(o,n):Wo(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(""),jo(t,"High-level focus",e.high_level,"No high-level active items.",r),jo(t,"Low-level focus",e.low_level,"No low-level active items.",r),gl(t,e,r),yl(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 _l(t,e),wl(t,e),bl(t,e,n,r),kl(t,e,r),vl(t,e),Sl(t,e),El(t,e),Cl(t,e),xl(t,e),Tl(t,e),Il(t,e),t.join(`
11
+ `)}async function Fl(e,t){let n=C(process.cwd(),t.path),r=await I(n),i=r.context??ir.context,o=$(r.schema),s=Bu(e.depth,i),a=Uu(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:Gu(e.section,s,i),activityLimit:qu(e.activityLimit,i),staleThresholdDays:Hu(e.staleThreshold,i),parentScope:Yu(e.parent),focusFields:ju(e.fields),baseListOptions:Vu(e)}}function Dn(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function Al(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function Ml(e,t){let n=Dn(t.sectionsIncluded),r=await Y(void 0,Al(t.baseListOptions,{excludeTerminal:!1}),e),i=r.items,o=i.filter(d=>!U(d.status,t.statusRegistry)),s=n||t.parentScope!==void 0?i:o,a=Rl(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 Rl(e,t){if(e===void 0)return;let n=In(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}async function Dl(e,t,n,r,i,o,s,a,d,c,u,l,f,h){let y=[...e].sort((k,ce)=>ie(k,ce,i)),g=await kt({pmRoot:f,author:d,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),b=await St(y,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:d,usageAffinity:g.affinity}),_=await wt("context",b.candidates),w=_.ranked.map(k=>k.item),E=i.active_statuses,x=w.filter(k=>E.has(F(k.status,i))),D=l?Ye(x,c,u,k=>k.id):0,S=l?x.slice(D,D+s):x,K=l&&S.length>0&&D+S.length<x.length,Ge=K&&S.length>0?ve(u,S[S.length-1].id,D+S.length-1):void 0,Nt=w.filter(k=>r.has(k.id.trim().toLowerCase())),$t=new Set([...S.map(k=>k.id),...Nt.slice(0,s).map(k=>k.id)]),Z=An({..._,ranked:_.ranked.filter(k=>$t.has(k.id))},h),se=Z.included.map(k=>k.item),ee=se.filter(k=>E.has(F(k.status,i))),ae=se.filter(k=>r.has(k.id.trim().toLowerCase())),Pt=we(t),jt=Dn(o)?Pt:void 0,W=new Map(n.map(k=>[k.id.trim().toLowerCase(),k])),B=k=>{let ce=je(k,i,jt);return r.has(k.id.trim().toLowerCase())&&(ce.blocked=!0,ce.blocker_ids=Qt(k,W,i).filter(Ut=>!Ut.resolved).map(Ut=>Ut.id)),ce},aa=ee.filter(k=>Ne.has(k.type)).slice(0,l?S.length:s).map(B),ca=ee.filter(k=>!Ne.has(k.type)).slice(0,l?S.length:s).map(B),tr=x.length===0;return{activeItems:ee,blockedItems:ae,highLevel:aa,lowLevel:ca,blockedFallback:tr?ae.slice(0,s).map(B):[],blockedFallbackUsed:tr,ranking:_,packing:Z,featureStore:b,pageExtras:{...l?{applied_limit:s}:{},...K?{has_more:!0,truncated:!0}:{},...Ge?{next_cursor:Ge}:{}}}}function Ll(e){return le("context",ue(e,mr))}function Ol(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Bo}async function Nl(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await ho(i,e),s=n===void 0?o.events:o.events.filter(c=>n.has(c.item_id.trim().toLowerCase())),a=rl(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:nl(a)}}function Uo(e,t,n){let r=String(t);return e.filter(i=>F(i.status,n)===r).length}async function $l(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,d=we(n),c=n.filter(l=>!U(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?il(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await ol(t.activityLimit,a):void 0,progress:u("progress")?sl(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?al(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?ll(c,t.statusRegistry,d,t.limit):void 0,unparented:u("unparented")?fl(c,t.statusRegistry,d,t.limit):void 0,filesSection:u("files")?cl(o.activeItems,t.limit):void 0,workload:u("workload")?dl(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?ul(c,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?ml(o.activeItems):void 0}}function Pl(e,t,n){if(!e)return{};let r=T("canceled",n);return{total_items:t.length,closed:t.filter(i=>$e(i.status,n)).length,canceled:t.filter(i=>F(i.status,n)===r).length}}function jl(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 Ul(e,t){t&&(e.focus_fields=t,e.high_level=Oe(e.high_level,t),e.low_level=Oe(e.low_level,t),e.blocked_fallback=Oe(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Oe(e.recently_created,t)),e.unparented&&(e.unparented=Oe(e.unparented,t)))}function Kl(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 Bl(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 Gl(e,t,n,r){try{let i=new Set(t.packing.included.map(o=>o.id));await bt({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=Ct(e.warnings,["context_usage_feedback_write_failed"])}}async function ql(e,t,n){if(e)return{};let i=(await lr({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 cg(e,t){let n=C(process.cwd(),t.path),r=await Fl(e,t),i=await Ml(t,r),o=Ku(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:xn(e.tokenBudget,Math.max(256,o*160))},a=te(void 0,s.settings.author_default),d=ql(e.noExtensionHealth===!0,n,s.settings),c=tt(i.fullCorpus,s.statusRegistry),u=await Dl(i.listedItemMetadata,i.allItems,i.fullCorpus,c,s.statusRegistry,s.sectionsIncluded,s.limit,R(),a,e.after,Ll(e),Ol(e,i.fullCorpus.length),n,s.tokenBudget),l=await Nl(t,s,i.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),f=await Et(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:l.agenda.now}),h=Ct(i.listed.warnings,l.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],f.warnings),y=Uo(u.activeItems,T("in_progress",s.statusRegistry),s.statusRegistry),g=Uo(u.activeItems,T("open",s.statusRegistry),s.statusRegistry),b=await $l({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:c,focusGroups:u,now:l.agenda.now,global:t}),_=Pl(Dn(s.sectionsIncluded),i.allItems,s.statusRegistry),w={output_default:"toon",now:l.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:l.agenda.anchor,start:l.agenda.range.start,end:l.agenda.range.end,past:l.agenda.range.past,from:l.agenda.range.from,to:l.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??l.agenda.filters.runtime_filters??{}},summary:{active_items:u.activeItems.length,in_progress:y,open:g,blocked:u.blockedItems.length,blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:l.agendaSummary.events,..._},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:l.agendaSummary,events:l.agendaEvents},...u.pageExtras};return w.workspace_memory=Lo(f,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(w,await d),jl(w,b,u.featureStore.warning_details),Kl(w,e.noTags===!0),e.explainRanking===!0&&(w.ranking=Rn(u.ranking,u.featureStore),w.packing=Mn(u.packing)),Ul(w,s.focusFields),h.length>0&&(w.warnings=h),Bl(w,u.activeItems,u.blockedItems),await Gl(w,u,n,a),w}(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 Hl=["markdown","toon","json"],zl=5,Wl=1440*60*1e3;function Vl(e){if(!e)return;let t=e.trim().toLowerCase();if(!Hl.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function wg(e,t){let n=Vl(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 Vo(e,t,n){let r=P(e,t);return r===void 0||r<=0?n:r}function Ln(e,t,n,r){return{...je(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 Yl(e,t,n,r){let i=e.item,o=[],s=T("in_progress",t);return o.push(F(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(Ql(i.deadline,n)),o.push(Vr(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 Xo(e,t,n){let r=te(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 bg={partitionCallerOwnedReady:Xo,resolveNextCallerAuthor:(e,t)=>Qo(e,t)};function Xl(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 Ql(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))/Wl);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function Jl(e,t){let n=T("in_progress",t);return e.filter(r=>F(r.status,t)===n).length}function On(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Zl(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 Yo(e,t,n){return[...e].sort((r,i)=>{let o=On(r.item,t),s=On(i.item,t);return o!==s?Number(o)-Number(s):ie(r.item,i.item,n)})}function ef(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Yl(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function tf(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 nf(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 rf(e){try{let t=new Set(e.packing.included.map(n=>n.id));await bt({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=Ct(e.result.warnings,["context_usage_feedback_write_failed"])}}async function of(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=Rn(e.readyRanking,e.featureStore),e.result.packing=Mn(e.packing)),e.result.suggestions=tf(e.recommended,e.blockedRows),await rf({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function sf(e,t,n){if(!n)return e;let r=In(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=>!On(g.item,t)),d=a.length>0?a:e,c=await kt({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await St(d.map(g=>g.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:c.affinity}),l=await wt("next",u.candidates),f=An(l,s,new Set,"next"),h=new Map(d.map(g=>[g.item.id,g]));return{projectedReady:l.ranked.map(g=>h.get(g.id)).filter(g=>g!==void 0),ranking:l,completedContainer:a.length===0,packing:f,featureStore:u}}function Qo(e,t){let n=e.assignee?.trim();return te(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function kg(e,t){let n=C(process.cwd(),t.path),r=await I(n),i=Qo(e,r.author_default),o=$(r.schema),s=R(),a=Vo(e.limit,"--limit",zl),d=xn(e.tokenBudget,Math.max(192,a*128)),c=Vo(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await Y(void 0,Zl(e,{excludeTerminal:!0}),t),h=await Y(void 0,{excludeTerminal:!1,noTruncate:!0},t),y=sf(f.items,h.items,l),g=h.items,b=Yr(y,g,o),_=we(g),w=Xl(b.ready,e.includeDecisions===!0),E=Xo(w.agent,r.author_default,i),x=Yo(E.available,_,o),D=[...b.blocked].sort((W,B)=>ie(W.item,B.item,o)),{projectedReady:S,ranking:K,completedContainer:Ge,packing:Nt,featureStore:$t}=await af(x,_,o,s,i,n,d),Z=S.map((W,B)=>Ln(W,o,_,B+1)),se=D.map((W,B)=>Ln(W,o,_,B+1)),ee=Yo(w.decisions,_,o).map((W,B)=>Ln(W,o,_,B+1)),ae=ef({projectedReady:S,readyRows:Z,statusRegistry:o,now:s,completedContainer:Ge}),Pt=nf(ee.length,E.held.length,a),jt={output_default:"toon",now:s,recommended:ae,ready:Z.slice(1,a+1),decision_needed:ee.slice(0,a),blocked:u?[]:se.slice(0,c),held_by_others:E.held.slice(0,a),summary:{recommended:ae!==null,ready:Z.length,blocked:se.length,in_progress:Jl(Z,o),candidates:b.active_count,containers:b.container_count,decision_needed:ee.length,held_by_others:E.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:l.length>0?l:null,limit:a,blocked_limit:c,ready_only:u,include_decisions:e.includeDecisions===!0,token_budget:d},truncation:Pt};return of({result:jt,recommended:ae,blockedRows:se,candidatesWarnings:f.warnings,corpusWarnings:h.warnings,readyRanking:K,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:Nt,featureStore:$t})}function vg(e){let t=["# pm next","",...cf(e)];if(t.push(...xt("Recommended",df(e.recommended),"No ready work.")),t.push(...xt("Decision needed",(e.decision_needed??[]).map(n=>`- ${Tt(n)}`),"No human-gated decisions.")),t.push(...xt("Ready",e.ready.map(n=>`- ${Tt(n)}`),"No ready items.")),e.filters.ready_only||t.push(...xt("Blocked",e.blocked.map(n=>`- ${uf(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 cf(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 df(e){return e?[`- ${Tt(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function xt(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function uf(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${Tt(e)} blocked_by:${t}`}function Tt(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 ff(e,t){return e.map((n,r)=>{let i=new Set,o=Sr(n.patch);for(let s of o)i.add(zt(s.path)),s.from&&i.add(zt(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 mf(e,t){let n=C(process.cwd(),t.path);if(!await L(N(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await I(n),i=O(r,M()),o=e.trim()===Ht,s=o?Ht:Tr(e,r.id_prefix),a=await Qe(n,s,r.id_prefix,r.item_format,i.type_to_folder),d=a?.id??s,c=o?Er(n):We(n,d);if(!a&&!await L(c))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await Cr({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:c,located:a,resolvedId:d,settings:r}}async function Fg(e,t,n){let r=ne(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await mf(e,n),d=await V(i,s),c=a.agent_identity.identity_vocabulary,u=rt(a.agent_identity.harness_signals),l=ot({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},c,u),f=d.map((S,K)=>({entry:S,version:K+1})).filter(({entry:S})=>l(S)),h=lf(f,r),y=h.map(({entry:S})=>S),g=t.compact===!0,b=g?ff(y,Math.max(0,d.length-y.length)):void 0,_=t.provenance===!0?h.map(({entry:S,version:K})=>it(S,c,{itemId:s,version:K})):void 0,w=t.provenance===!0?"provenance":g?"compact":"full",E={compact:{compact_history:b},provenance:{provenance_history:_},full:{history:y}}[w],D={id:s,...E,compact:g,projection:{mode:w,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[w]},omission_receipt:Ve("history",w),count:y.length,limit:r??null,...t.provenanceSummary===!0?{provenance_summary:st(f.map(({entry:S})=>S),c,u)}:{}};if((t.diff||t.field!==void 0)&&(D.diff=jr(d,{windowStartIndex:Math.max(0,d.length-y.length),field:t.field})),t.verify){let S=o?(await Je(o,{schema:a.schema})).document:void 0;D.verification=Jr(d,S)}return 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]="2e14b978-95c9-5922-b8cb-c49d24e6f8c4")}catch{}})();var Jo=1e6,Zo=20;function es(e,t,n,r=Zo){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>Jo)throw new p(`Child projection exceeded the ${Jo.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,U(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})),u=s.length>c.length,l=r===0?Zo: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:u,next_offset:u?c.length:null,continuation:u?`pm list --status all --parent ${e} --offset ${c.length} --limit ${l}`: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 pf=new Set(["event","meeting","reminder"]);function hf(e){return pf.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function ts(e){if(!hf(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]="f68f4074-51ba-5065-8cca-fe16acd48927")}catch{}})();var gf=["brief","standard","deep"],yf=new Set(["epic","feature","milestone","plan"]),_f=new Set(Object.keys(rr).map(e=>e.toLowerCase()));function rs(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(n=>[n,e[n]?.length??0]))}function is(e){let t=e.trim().toLowerCase();return t.length>0&&(yf.has(t)||!_f.has(t))}function ns(e){return{ts:e.ts,author:e.author,message:e.message??null}}function wf(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?ns(i):null,last_release:o?ns(o):null}}function bf(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(gf.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function kf(e,t){let n=rs(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:u,...l}=e;return{...l,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:n}}function vf(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 Ft(e){return e.startsWith("item.")?e.slice(5):e}function Sf(e,t){if(e===null)return;let n=new Set([...He,...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=Ft(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 Ef(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:rs(e)},i={};for(let o of t){let s=Ft(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 Ue(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function It(e,t){return e.some(n=>{let r=Ft(n);return r===t||r.startsWith(`${t}.`)})}function Cf(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":bf(e.depth),treeDepth:e.tree===!0?P(e.treeDepth,"--tree-depth"):void 0,fields:vf(e.fields),fieldProjection:e.fields!==void 0}}async function xf(e,t,n){let r=C(process.cwd(),t.path);if(!await L(N(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await I(r),o=O(i,M());if(n!==void 0){let d=await Zr(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 Qe(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await Rr(r,e,i.id_prefix,o.type_to_folder);let a=await Je(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 Tf(e,t,n){let r=G(t.schema).definitions.map(i=>i.metadata_key);if(Sf(e,r),n&&It(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function Nn(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?Ue(r,i):It(r,i):n!=="brief"}async function If(e,t){if(!t)return;let n=We(e.pmRoot,e.locatedId),r=await V(n,e.locatedId);return wf(e.metadata.assignee,e.historical?r.slice(0,e.historical.as_of_version):r)}function Ff(e,t,n,r){let i=r||Ue(n,"linked.files"),o=r||Ue(n,"linked.tests"),s=r||Ue(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 Af(e,t,n,r){if(!t)return;let i=$(e.settings.schema),o=await J(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=es(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function Mf(e,t,n,r){if(!r)return;let i=ts(t.metadata);if(i){if(n===null||Ue(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>Ft(s)===`schedule.${o}`)))}}async function Rf(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 Hg(e,t,n={}){let r=Cf(n),i=await xf(e,t,n.at);Tf(r.fields,i.settings,i.historical!==void 0);let o=Nn({...r,field:"body"}),s=Nn({...r,field:"linked"}),a=Nn({...r,field:"claim_state"}),d=i.historical===void 0&&(r.fieldProjection?It(r.fields,"children"):r.depth!=="brief"&&is(i.metadata.type)),c=r.fieldProjection?It(r.fields,"schedule"):r.depth!=="brief",u=await If(i,a),l={item:r.fieldProjection?Ef(i.metadata,r.fields):kf(i.metadata,r.depth)};o&&(l.item.body=i.body),Ff(l,i,r.fields,s),u&&(l.claim_state=u),Mf(l,i,r.fields,c);let f=await Af(i,d,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(l.children=f);let h=await Rf(i,n,r.treeDepth,t);if(h!==void 0&&(l.tree=h),i.historical&&(l.reconstructed=!0,l.as_of_version=i.historical.as_of_version,l.as_of_timestamp=i.historical.as_of_timestamp),i.historical===void 0)try{await Io({pmRoot:i.pmRoot,author:te(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return l}var zg={shouldAutoIncludeGetChildren:is};(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 os(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 Df=[{optionKey:"status",summaryKey:"status",normalize:e=>os(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 Ke(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,runtimeFieldFilters:c}=e,u={};return sn(u,r,Df),Object.assign(u,Me(r)),Object.assign(u,Ae(r)),n!==void 0&&n!=="or"&&(u.match_mode=n),i&&(u.include_linked=!0),o&&(u.title_exact=!0),s&&(u.phrase_exact=!0),a>0&&(u.score_threshold=a),t==="hybrid"&&r.semanticWeight!==void 0&&(u.hybrid_semantic_weight=d),r.limit!==void 0&&(u.limit=r.limit),c&&Object.keys(c).length>0&&(u.runtime_filters=c),u}function Be(e){let{effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,queryExpansion:c,rerank:u,runtimeFieldFilters:l}=e,f=h=>h??null;return{mode:t,match_mode:n,status:r.status===void 0||os(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),...Me(r),...Ae(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:u.enabled,rerank_model:u.model,rerank_top_k:u.top_k,limit:f(r.limit),runtime_filters: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]="0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1")}catch{}})();function Lf(e){return le("search",{query:e.query.trim(),mode:e.mode,options:ue(e.searchOptions,pr)})}function ss(e){let t=hr(e.sorted,{cursor:e.searchOptions.after,fingerprint:Lf(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 Of=["id","title","status","type","priority","updated_at","score","matched_fields"],Nf=new Set(["score","matched_fields","highlights"]),$f=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 as(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 At(e){return e===!0}function cs(e){return dr(e,0,1)??void 0}function ds(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 us(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 be(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return j(n,new Date,t)}function Q(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function $n(e,t){if(e!==void 0)return j(e,new Date,t)}function Pf(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 Pn(e){let t=e.compact===!0,n=e.full===!0,r=Pf(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:[...Of]}:n?{mode:"full",fields:[]}:r?{mode:"fields",fields:r}:{mode:"full",fields:[]}}function jn(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!Nf.has(o)&&!$f.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 Un(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 Kn(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function Bn(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function Gn(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function qn(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 Rt from"node:fs/promises";import Xn 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 Hn=4,jf=20,Uf=200,Kf=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function zn(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 Bf(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 Gf(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 ls(e,t=Hn){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=ge(n);if(r.length===0)return[n];let i=r.filter(a=>!Kf.has(a.toLowerCase())),o=r.map(a=>Bf(a)),s=i.map(a=>Gf(a));return zn([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function fs(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?zn(t.filter(n=>typeof n=="string"),Hn):[]}function ms(e,t,n){return zn([...e,...t],Math.max(1,n))}function ps(e,t){let r=e.search?.query_expansion,i=ke(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:Hn}}function hs(e,t){let r=e.search?.rerank,i=ke(r?.model),s=cr(r?.top_k)??jf;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(Uf,s)}}function gs(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=ke(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 qf(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function ys(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function Hf(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=qf(e,t),i=ys(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 _s(e,t,n,r,i){if(r.length===0)return new Map;let o=ke(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],d=await et(s,a,i?{timeout_ms:i}:{}),c=d[0];if(!c)return new Map;let u=ys(c),l=new Map;for(let f=0;f<r.length;f+=1){let h=r[f],y=d[f+1];if(!y)continue;let g=Hf(c,y,u);l.set(h.id,Math.max(0,Math.min(1,(g+1)/2)))}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]="3fd6ed70-6633-5886-90a6-3d4cc16b3ef0")}catch{}})();var zf=1.2,Wf=.75;function Wn(e){return ge(e)}function Vf(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function bs(e){let t=[],n=new Map,r=0;for(let o of e){let s=Wn(o.text),a=Vf(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 Yf(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function ks(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,Yf(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 u=s.termFrequencies.get(d);if(u===void 0)continue;let l=1-n.b+n.b*s.length/e.averageDocumentLength,f=u+n.k1*l;a+=c*(u*(n.k1+1)/f)}a>0&&r.set(s.id,a)}return r}function ws(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function vs(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 Ss(e){let t=e?.search?.bm25;return{k1:ws(t?.k1,zf,0,1e3),b:ws(t?.b,Wf,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 Xf=2,Qf=120,Jf=6,Zf=40,em=1e3,tm=900,nm="\xAB",rm="\xBB",Es=60,Ts=["tag","status","type","priority"];function Is(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 Fs(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=Is(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 As(e,t){let n=Fs(t);return`search_${e}_fallback:${n}:using_keyword_mode`}async function Ms(e,t,n){try{let r=await zr(e);r.warnings.length>0&&n.push(...r.warnings);let i=Qr(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 Xy={applyFilters:$s,applyExactQueryFilters:Ns,applyInlineQueryFilters:Ds,buildHitHighlights:qs,buildVerboseSearchFilters:Be,buildExplicitSemanticFallbackWarning:As,buildCompactSearchFilterSummary:Ke,buildHybridLexicalScore:Ws,buildRerankCorpus:na,buildSemanticHits:Js,classifyImplicitSemanticFallbackReason:Fs,collectErrorCauseCodes:Is,collectExactPhraseFields:Ls,collectLinkedPaths:Ps,combineHybridHits:er,computeBuiltInBm25Hits:ea,computeSemanticOrHybridHits:ra,resolveBuiltInBm25Mode:Zs,countOccurrences:Jn,dependencyEntries:Qn,documentContainsExactPhrase:Os,emptySearchResult:Vs,highlightFieldSnippet:Gs,loadDocuments:ia,markTokenRuns:Bs,parseInlineQueryFilters:Rs,maybeEmitVectorIndexStaleWarning:Ms,loadLinkedCorpus:Us,mergeVectorHitsById:ta,normalizeExtensionProviderHits:Qs,normalizeScoreMap:Vn,parseProjectionConfig:Pn,parseTimestampWindow:be,parseTokens:Un,projectSearchHits:sa,readSearchFieldValue:oa,requireSemanticDependencies:Zn,resolveExtensionSearchProvider:Ys,resolveExtensionSearchProviderByName:Ot,resolveExtensionVectorAdapter:Xs,resolveLinkedCorpusRoots:js,scoreDocument:Hs,sortHits:zs,stringArray:Lt,textEntries:oe,validateSearchProjectionFields:jn};function Rs(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=Ts.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 Ds(e,t,n){let r={...e};for(let i of Ts){let o=t[i];if(o!==void 0){if(A(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function Lt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function oe(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function Qn(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function Ls(e){let t=e.metadata;return[t.title,t.description,t.status,Lt(t.tags).join(" "),e.body,oe(t.comments).map(n=>n.text).join(" "),oe(t.notes).map(n=>n.text).join(" "),oe(t.learnings).map(n=>n.text).join(" "),Wt(t).join(" "),Vt(t).join(" "),Qn(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),Yt(t)]}function Os(e,t){return Ls(e).some(n=>Q(n).includes(t))}function Ns(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&Q(r.metadata.title)!==t||n.phraseExact&&!Os(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 om(e,t,n){let r=q(e.assignee,{label:"--assignee"});im(r);let i=mt(e),o=Fe(e);return{typeFilter:at(e.type,t),tagFilter:q(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:ct(e.priority),deadlineBefore:$n(e.deadlineBefore,"deadline-before"),deadlineAfter:$n(e.deadlineAfter,"deadline-after"),updatedAfter:be(e.updatedAfter,"updated-after"),updatedBefore:be(e.updatedBefore,"updated-before"),createdAfter:be(e.createdAfter,"created-after"),createdBefore:be(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:q(e.sprint,{label:"--sprint"}),releaseFilter:q(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:xe(i),contentFieldFilters:o,contentFiltersActive:lt(o)}}function sm(e,t){return am(e,t)&&cm(e,t)&&dm(e,t)}function am(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&&!Lt(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function cm(e,t){return Xe(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 um(e,t,n,r){let i=e.metadata;return!(!sm(i,t)||!he(i,n)||t.missingMetadataActive&&!ut(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!ft(i,t.contentFieldFilters))}function $s(e,t,n,r,i,o){let s=om(t,n,i);return e.filter(a=>um(a,s,r,o))}function Jn(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 lm(e){return ge(e)}function Ps(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 Cs(e){let t=Xn.resolve(e);try{let n=await Rt.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function js(e,t){let[n,r]=await Promise.all([Cs(e),Cs(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function Us(e,t){let n=Ps(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=Xn.resolve(o.resolved,i.path);if(!Bt(o.resolved,s))continue;let a;try{a=await Rt.realpath(s)}catch{continue}if(Bt(o.realpath,a))try{await Se({path:s,scope:i.scope}),r.push(await Rt.readFile(s,"utf8"))}catch{}}return r.join(`
14
+ `)}var Ks=[{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=>Lt(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=>oe(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>oe(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>oe(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>Wt(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>Vt(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>Qn(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>Yt(e.metadata)}],fm=new Map(Ks.map(e=>[e.name,e]));function mm(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Bs(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map(mm);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${nm}${i}${rm}`)}function Gs(e,t){if(e.length===0)return null;let n=e.toLowerCase(),r=-1,i=0;for(let u of t){if(u.length===0)continue;let l=n.indexOf(u);l>=0&&(r<0||l<r)&&(r=l,i=u.length)}if(r<0)return null;let o=Math.max(0,r-Es),s=Math.min(e.length,r+i+Es),a=Bs(e.slice(o,s),t),d=o>0?"\u2026":"",c=s<e.length?"\u2026":"";return`${d}${a}${c}`}function qs(e,t,n){let r=[];for(let i of t){let o=fm.get(i);if(o===void 0)continue;let s=Gs(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function pm(e,t,n){return[...Ks.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function hm(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:tm,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function gm(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=Jn(a.value.toLowerCase(),o);d>0&&(i.score+=d*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function ym(e,t,n,r){Q(e.title)===t&&(r.score+=Qf,r.matched.add("title"));for(let o of n){let s=Jn(Q(o.value),t);s>0&&(r.score+=s*o.weight*Jf,r.matched.add(o.name))}}function Hs(e,t,n,r,i,o,s=!1){let a=e.metadata,d=hm(a,n,o);if(d)return d;let c=new Map;for(let g of lm(a.title))c.set(g,(c.get(g)??0)+1);let u=pm(e,r,i),l={score:0,matched:new Set,matchedTokens:new Set};gm(t,c,u,i,l);let f=new Set(t),h=f.size>0&&l.matchedTokens.size===f.size;return s&&f.size>1&&h&&(l.score+=Zf),t.length>=Xf&&n.includes(" ")&&ym(a,n,u,l),l.score<=0?null:{item:a,score:l.score,matched_fields:[...l.matched].sort((g,b)=>g.localeCompare(b)),matched_all_terms:h}}function zs(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=U(n.item.status,t),s=U(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=v(r.item.updated_at,n.item.updated_at);return d!==0?d:n.item.id.localeCompare(r.item.id)})}function Ws(e,t,n,r,i,o,s,a=!1){return Hs(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function Vn(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 Vs(e,t,n,r,i,o,s,a,d,c,u,l,f=!1){let h=f?{total:0,count_only:!0}:{};if(c.mode==="compact"&&r.compact===!0){let b=Ke({mode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,runtimeFieldFilters:l});return{query:e.trim(),mode:t,items:[],count:0,...h,filters:b,...u.length>0?{warnings:u}:{}}}let g=c.mode==="full"?null:[...c.fields];return{query:e.trim(),mode:t,items:[],count:0,...h,filters:Be({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:l??{}}),projection:{mode:c.mode,fields:g},now:R(),...u.length>0?{warnings:u}:{}}}function Zn(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=A;function Ot(e){let t=M(),n=$r(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 Ys(e){let t=z(e.search?.provider),n=Ot(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function Xs(e){let t=M(),n=z(e.vector_store?.adapter),r=Pr(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 Qs(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 u=s.matched_fields,l=Array.isArray(u)&&u.every(f=>typeof f=="string")?[...new Set(u.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:l})}return o}function Js(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 Dt(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,u)=>Math.max(c,u.score),0),s=n.sort((c,u)=>u.score-c.score),a=o+s.length+1;return[...s.map((c,u)=>({...c,score:a-u,matched_fields:["id"]})),...i]}function er(e,t,n,r,i="semantic"){let o=new Map(n.map(l=>[l.item.id,l.score])),s=new Map(n.map(l=>[l.item.id,l.matched_fields])),a=Vn(t),d=Vn(o),c=new Set([...t.keys(),...o.keys()]),u=1-r;return[...c].map(l=>{let f=e.get(l),h=a.get(l)??0,y=d.get(l)??0,g=h*r+y*u;if(g<=0)return null;let b=new Set;t.has(l)&&b.add(i);for(let _ of s.get(l)??[])b.add(_);return{item:f.metadata,score:g,matched_fields:[...b].sort((_,w)=>_.localeCompare(w))}}).filter(l=>l!==null)}function Zs(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function ea(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:vs(qr(s,{fields:e.corpusFields}))})),n=bs(t),r=ks(n,Wn(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 Dt(s,e.keywordHits)}let o=er(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return Dt(o,e.keywordHits)}function ta(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 na(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 _m(e,t){let n=e.queryExpansion.enabled?ls(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 ms(r,fs(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 wm(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 Xt(e.vectorStore,t,n,r)}if(e.vectorStore)return await Xt(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 bm(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:na(o)}:null}).filter(i=>i!==null)}async function km(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=gs(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 vm(e,t,n){let r=await km(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await _s(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function Sm(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 Em(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=bm(n,r,e.rerank.top_k),o=await vm(e,t,i);return o&&o.size>0?Sm(n,o):n}async function ra(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 _m(e,i),s=await et(e.provider,o,n),a=await Promise.all(s.map(async y=>await wm(e,y,t,r))),d=ta(a),c=new Map(e.filteredDocuments.map(y=>[y.metadata.id,y])),{semanticHits:u,semanticScores:l}=Js(d,c),f=l.size;if(e.requestedMode==="semantic")return{hits:Dt(u,e.keywordHits),vectorMatchCount:f};let h=await Em(e,i,er(c,l,e.keywordHits,e.hybridSemanticWeight),c);return{hits:Dt(h,e.keywordHits),vectorMatchCount:f}}async function ia(e,t,n,r){let i=or(M()),o=async(c,u,l)=>{let f=async(h,y)=>{await Se({path:h,scope:"project"});let g=await Rt.readFile(h,"utf8");return wr(g,{format:y,schema:r,extensionFieldNames:i,onWarning:_=>s.push(_)}).body};try{return await f(u,l)}catch{let h=l==="toon"?"json_markdown":"toon",y=Gt(e,c.type,c.id,h,n);try{return await f(y,h)}catch{return s.push(`item_list_item_read_failed:${Xn.relative(e,y)}`),""}}},s=[],a=await Ar(e,t,n,s,r),d=[];if(a.length===0){let c=await Ze(e,t,n,s,r);for(let u of c){let l=Gt(e,u.type,u.id,t,n),f=await o(u,l,t);d.push({metadata:u,body:f})}return{documents:d,warnings:[...new Set(s)].sort((u,l)=>u.localeCompare(l))}}for(let c of a){if(typeof c.body=="string"){d.push({metadata:c.metadata,body:c.body});continue}let u=await o(c.metadata,c.item_path,c.item_format);d.push({metadata:c.metadata,body:u})}return{documents:d,warnings:[...new Set(s)].sort((c,u)=>c.localeCompare(u))}}function oa(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 sa(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]=oa(n,i);return r})}function Cm(e){let t=Ot(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function xm(e){let t=Ot(z(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function Tm(e,t){let n=[],r=Rs(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=Ds(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:At(s.includeLinked),titleExact:At(s.titleExact),phraseExact:At(s.phraseExact),matchMode:ds(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:us(s.minScore),countOnly:s.count===!0,tokens:Un(o),normalizedQuery:Q(o),limit:ne(s.limit),projection:Pn(s),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function Im(e,t){let n=C(process.cwd(),t.path);if(!await L(N(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await I(n),i=Kr(r).settings,o=$(i.schema),s=G(i.schema);jn(e.projection,s);let a=pe(e.options,s,"search"),d=O(i,M()),c=Br(i),u=Hr(i,n),l=Ys(i),f=Xs(i),h=cs(e.options.semanticWeight),y=ps(i,c.active?.name??null),g=hs(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:Kn(i),scoreThreshold:e.minScoreOverride??Bn(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:h,hybridSemanticWeight:h??Gn(i),tuning:qn(i),providerResolution:c,vectorResolution:u,extensionSearchProvider:l,extensionVectorAdapter:f,bm25Mode:Zs({configuredProvider:z(i.search?.provider),hasEmbeddingProvider:c.active!==null,hasExtensionSearchProvider:l!==null}),queryExpansion:y,queryExpansionExtension:Cm(y),rerank:g,rerankExtension:xm(i),effectiveMode:as(e.options.mode)}}async function Fm(e,t){let n=await ia(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=me(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),i=dt(t.statusRegistry),o=$s(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:Ns(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function Am(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await js(i,ar(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await Us(a,o)]));for(let[a,d]of s)r.set(a,d);return r}async function Mm(e,t,n){let r=await Am(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>Ws(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 xs(e,t){return Vs(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 Rm(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=ea({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:Gr(t.settings),bm25Params:Ss(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 Dm(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 Qs(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 Lm(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 Om(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await Ms(e.pmRoot,n,r),e.extensionSearchProvider||Zn(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function Nm(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,d=await Rm(t,n,r,i,o),c=n.effectiveMode;if(d!==null||c==="keyword")return{effectiveMode:n.effectiveMode,hits:d??a};try{if(await Om(n,c,r,o,s),r.length===0||t.limit===0)return{effectiveMode:n.effectiveMode,hits:[]};let u=new Map(r.map(l=>[l.metadata.id,l]));if(a=await Dm(t,n,r,u)??a,a===i){let{provider:l,vectorStore:f}=Zn(c,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),h=await ra({requestedMode:c,query:t.query,filteredDocuments:r,keywordHits:i,hybridSemanticWeight:n.hybridSemanticWeight,limit:t.limit,maxResults:n.maxResults,provider:l,vectorStore:f,extensionVectorAdapter:n.extensionVectorAdapter,queryExpansion:n.queryExpansion,queryExpansionExtension:n.queryExpansionExtension,rerank:n.rerank,rerankExtension:n.rerankExtension,warnings:o,settings:n.settings});a=Lm(c,h,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(u){return o.push(As(n.effectiveMode,u)),{effectiveMode:"keyword",hits:i}}}function $m(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return Yn({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:Ke({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 Yn({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:Be({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:R()},e.warnings)}function Yn(e,t){return t.length===0?e:{...e,warnings:t}}function Mt(e,t){return t?{...e,workspace_memory:t}:e}function Pm(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:qs(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 jm(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return Yn({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:Ke({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:Be({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:R(),...e.warnings.length>0?{warnings:e.warnings}:{}}}function Um(e){if(e.after!==void 0&&e.count===!0)throw new p("Search --after cannot be combined with --count.",m.USAGE)}async function Qy(e,t,n){Um(t);let r=Tm(e,t),i=await Im(r,n),o=await Fm(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await Et(o.allDocuments.map(x=>x.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:R()});s.push(...a.warnings);let d=Oo(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 Mt(xs({...c,effectiveMode:i.effectiveMode},r.countOnly),d);let u=await Mm(r,i,o.filteredDocuments),l=await Nm({prepared:r,runtime:i,filteredDocuments:o.filteredDocuments,keywordHits:u,warnings:s,modeWasExplicit:r.modeWasExplicit});if(l.effectiveMode!=="keyword"&&l.hits.length===0&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return Mt(xs({...c,effectiveMode:l.effectiveMode},r.countOnly),d);let f=l.hits.filter(x=>x.exact_id_match===!0||x.score>=i.scoreThreshold),h=zs(f,i.statusRegistry),y=h.length,g=ss({sorted:h,query:r.query,mode:l.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),b={...c,effectiveMode:l.effectiveMode};if(r.countOnly)return Mt($m(b,y),d);let{hits:_,projection:w}=Pm(r,o.filteredDocuments,g.limited),E=sa(_,w);return Mt(jm(b,E,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 n_(e,t={}){let n=await Xr({pmRoot:C(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{Zr as a,P as b,nt as c,ei as d,rt as e,da as f,it as g,st as h,ii as i,nh as j,tn as k,q as l,at as m,ct as n,dt as o,Cp as p,xp as q,Ip as r,mt as s,Fe as t,hi as u,gi as v,Ka as w,Ba as x,Zp as y,sn as z,Ae as A,Me as B,Y as C,eh as D,ah as E,ch as F,ph as G,hh as H,gh as I,ho as J,wn as K,_t as L,Id as M,_o as N,Dd as O,wt as P,Ld as Q,Od as R,jd as S,Ud as T,kh as U,Kd as V,wo as W,H as X,bt as Y,Ih as Z,Io as _,kt as $,bn as aa,kn as ba,au as ca,mu as da,pu as ea,vn as fa,Sn as ga,St as ha,wu as ia,Su as ja,Et as ka,Au as la,Lo as ma,Mu as na,Oo as oa,Ru as pa,ju as qa,Oe as ra,sg as sa,xn as ta,Bu as ua,Gu as va,In as wa,ie as xa,An as ya,Mn as za,Rn as Aa,we as Ba,je as Ca,Ct as Da,ag as Ea,Kl as Fa,cg as Ga,Hl as Ha,wg as Ia,bg as Ja,Xl as Ka,kg as La,vg as Ma,Fg as Na,Jo as Oa,Zo as Pa,es as Qa,Hg as Ra,zg as Sa,Ke as Ta,Be as Ua,Lf as Va,ss as Wa,Kn as Xa,Bn as Ya,Gn as Za,qn as _a,Is as $a,Fs as ab,Xy as bb,Qy as cb,n_ as db};
16
+ //# sourceMappingURL=chunk-KSNJG4KI.js.map
@@ -1,2 +1,2 @@
1
- import{Sa as D,k as I}from"./chunk-2VVP5RAA.js";import{ba as h,ga as L}from"./chunk-NL57J7BZ.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="1b2f1ac3-82b3-58a2-9f40-2dd95ab1b2bc")}catch{}})();var x="global",v="external";function u(t){let e=t?.trim().toLowerCase();return e===x||e===v}function j(t){let e=t?.trim();if(e)return u(e)?x:e}function G(t,e,r){let n=t.trim();return u(r)?n:D(n,e)}(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="62ec8e0e-658e-5a32-b458-439d5ffd1229")}catch{}})();function y(t){if(typeof t!="string")return;let e=t.trim();if(!(!e||["none","null","n/a","na"].includes(e.toLowerCase())))return e}function b(t){let e=y(t);return e?.toLowerCase()==="no-active-blocker"?void 0:e}function E(){let t=h();for(let e of I()?.relationship_kinds??[])for(let r of e.definitions)t.register(r);return t}function k(t,e){let r=t.toLowerCase(),n=e.toLowerCase();return r!==n?r<n?-1:1:t!==e?t<e?-1:1:0}function z(t){let e=new Map;for(let r of t.dependencies??[]){if(typeof r!="object"||r===null)continue;let n=r,i=y(n.id);if(!i)continue;let c=typeof n.kind=="string"?n.kind:"related",a=`${c}\0${i.toLowerCase()}`,f=e.get(a);f?f.count+=1:e.set(a,{target_id:i,kind:c,count:1})}return e}function S(t,e=r=>r==="closed"||r==="canceled"){let r=[];for(let n of t)if(!(typeof n?.id!="string"||n.id.trim().length===0))for(let i of z(n).values())i.count<2||r.push({holder_id:n.id.trim(),target_id:i.target_id,kind:i.kind,occurrences:i.count,holder_status:n.status,legacy_terminal:e(n.status)});return r.sort((n,i)=>{let c=k(n.holder_id,i.holder_id);if(c!==0)return c;let a=k(n.target_id,i.target_id);return a!==0?a:k(n.kind,i.kind)})}function T(t,e=r=>r==="closed"||r==="canceled"){let r=t.filter(s=>typeof s?.id=="string"&&s.id.trim().length>0),n=new Set(r.map(s=>s.id.trim().toLowerCase())),i=new Map,c=(s,l,p,m)=>{let o=y(l);if(!o||n.has(o.toLowerCase()))return;let d={holder_id:s.id.trim(),target_id:o,kind:p,source:m,holder_status:s.status,legacy_terminal:e(s.status),no_active_blocker_sentinel:o.toLowerCase()==="no-active-blocker"};i.set(`${d.holder_id}::${d.target_id}::${d.kind}::${d.source}`,d)};for(let s of r){c(s,s.parent,"parent","parent"),c(s,s.blocked_by,"blocked_by","blocked_by");for(let l of s.dependencies??[]){if(typeof l!="object"||l===null)continue;let p=l;u(p.source_kind)||c(s,p.id,typeof p.kind=="string"?p.kind:"related","dependency")}}let a=[...i.values()].sort((s,l)=>s.holder_id.localeCompare(l.holder_id)||s.target_id.localeCompare(l.target_id)||s.kind.localeCompare(l.kind)||s.source.localeCompare(l.source)),f=a.filter(s=>s.legacy_terminal);return{active:a.filter(s=>!s.legacy_terminal),legacy_terminal:f,no_active_blocker_sentinels:a.filter(s=>s.no_active_blocker_sentinel)}}function $(t){let e=new Map;for(let r of[...t.active,...t.legacy_terminal]){if(r.no_active_blocker_sentinel)continue;let n=r.target_id.trim(),i=n.toLowerCase();e.has(i)||e.set(i,n)}return[...e.values()].sort((r,n)=>r.localeCompare(n))}function A(t){let e=new Map;for(let r of t)for(let n of r.dependencies??[]){if(typeof n!="object"||n===null||!u(n.source_kind))continue;let i=y(n.id);i&&!e.has(i.toLowerCase())&&e.set(i.toLowerCase(),i)}return[...e.values()].sort((r,n)=>r.localeCompare(n))}function K(t,e=E()){let r={};for(let n of t)for(let i of n.dependencies??[]){if(typeof i!="object"||i===null)continue;let c=i.kind;if(typeof c!="string")continue;let a=c.trim().toLowerCase().replaceAll("-","_"),f=e.resolve(c);f&&a!==f.kind&&(r[a]=(r[a]??0)+1)}return Object.fromEntries(Object.entries(r).sort(([n],[i])=>n.localeCompare(i)))}function X(t,e,r){let n=r??E(),i=t.filter(o=>typeof o?.id=="string"&&o.id.trim().length>0),c=new Map(i.map(o=>[o.id.trim().toLowerCase(),o.id.trim()])),a=T(i,e),f=$(a);for(let o of f)c.set(o.toLowerCase(),o);let s=A(i),l=new Set(c.keys()),p=new Map;for(let o of s){let d=o;for(;l.has(d.toLowerCase());)d=`external:${d}`;p.set(o.toLowerCase(),d),l.add(d.toLowerCase())}let m=i.map(o=>{let d=b(o.parent),C=b(o.blocked_by),R=(o.dependencies??[]).flatMap(_=>{if(typeof _!="object"||_===null)return[];let g=_,w=b(g.id);return w?[{id:u(g.source_kind)?p.get(w.toLowerCase()):c.get(w.toLowerCase()),kind:typeof g.kind=="string"?g.kind:"related"}]:[]});return{id:o.id.trim(),...d?{parent:c.get(d.toLowerCase())}:{},...C?{blocked_by:c.get(C.toLowerCase())}:{},dependencies:R}});return{graph:L.fromItems([...m,...f.map(o=>({id:o})),...s.map(o=>({id:p.get(o.toLowerCase())}))],n),details:[...i.map(o=>({id:o.id.trim(),title:o.title,status:o.status,...typeof o.type=="string"&&o.type.trim().length>0?{type:o.type.trim()}:{}})),...f.map(o=>({id:o,title:`[missing] ${o}`,status:"missing"})),...s.map(o=>({id:p.get(o.toLowerCase()),title:`[external] ${o}`,status:"external"}))],missingIdSet:new Set(f.map(o=>o.toLowerCase())),dangling:a,duplicateRows:S(i,e),legacyAliasCounts:K(i,n)}}export{j as a,G as b,b as c,E as d,S as e,T as f,$ as g,X as h};
2
- //# sourceMappingURL=chunk-73FIJONU.js.map
1
+ import{Sa as D,k as I}from"./chunk-FF4MNAYB.js";import{ca as h,ha as L}from"./chunk-2EXI2DKR.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="1b2f1ac3-82b3-58a2-9f40-2dd95ab1b2bc")}catch{}})();var x="global",v="external";function u(t){let e=t?.trim().toLowerCase();return e===x||e===v}function j(t){let e=t?.trim();if(e)return u(e)?x:e}function G(t,e,r){let n=t.trim();return u(r)?n:D(n,e)}(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="62ec8e0e-658e-5a32-b458-439d5ffd1229")}catch{}})();function y(t){if(typeof t!="string")return;let e=t.trim();if(!(!e||["none","null","n/a","na"].includes(e.toLowerCase())))return e}function b(t){let e=y(t);return e?.toLowerCase()==="no-active-blocker"?void 0:e}function E(){let t=h();for(let e of I()?.relationship_kinds??[])for(let r of e.definitions)t.register(r);return t}function k(t,e){let r=t.toLowerCase(),n=e.toLowerCase();return r!==n?r<n?-1:1:t!==e?t<e?-1:1:0}function z(t){let e=new Map;for(let r of t.dependencies??[]){if(typeof r!="object"||r===null)continue;let n=r,i=y(n.id);if(!i)continue;let c=typeof n.kind=="string"?n.kind:"related",a=`${c}\0${i.toLowerCase()}`,f=e.get(a);f?f.count+=1:e.set(a,{target_id:i,kind:c,count:1})}return e}function S(t,e=r=>r==="closed"||r==="canceled"){let r=[];for(let n of t)if(!(typeof n?.id!="string"||n.id.trim().length===0))for(let i of z(n).values())i.count<2||r.push({holder_id:n.id.trim(),target_id:i.target_id,kind:i.kind,occurrences:i.count,holder_status:n.status,legacy_terminal:e(n.status)});return r.sort((n,i)=>{let c=k(n.holder_id,i.holder_id);if(c!==0)return c;let a=k(n.target_id,i.target_id);return a!==0?a:k(n.kind,i.kind)})}function T(t,e=r=>r==="closed"||r==="canceled"){let r=t.filter(s=>typeof s?.id=="string"&&s.id.trim().length>0),n=new Set(r.map(s=>s.id.trim().toLowerCase())),i=new Map,c=(s,l,p,m)=>{let o=y(l);if(!o||n.has(o.toLowerCase()))return;let d={holder_id:s.id.trim(),target_id:o,kind:p,source:m,holder_status:s.status,legacy_terminal:e(s.status),no_active_blocker_sentinel:o.toLowerCase()==="no-active-blocker"};i.set(`${d.holder_id}::${d.target_id}::${d.kind}::${d.source}`,d)};for(let s of r){c(s,s.parent,"parent","parent"),c(s,s.blocked_by,"blocked_by","blocked_by");for(let l of s.dependencies??[]){if(typeof l!="object"||l===null)continue;let p=l;u(p.source_kind)||c(s,p.id,typeof p.kind=="string"?p.kind:"related","dependency")}}let a=[...i.values()].sort((s,l)=>s.holder_id.localeCompare(l.holder_id)||s.target_id.localeCompare(l.target_id)||s.kind.localeCompare(l.kind)||s.source.localeCompare(l.source)),f=a.filter(s=>s.legacy_terminal);return{active:a.filter(s=>!s.legacy_terminal),legacy_terminal:f,no_active_blocker_sentinels:a.filter(s=>s.no_active_blocker_sentinel)}}function $(t){let e=new Map;for(let r of[...t.active,...t.legacy_terminal]){if(r.no_active_blocker_sentinel)continue;let n=r.target_id.trim(),i=n.toLowerCase();e.has(i)||e.set(i,n)}return[...e.values()].sort((r,n)=>r.localeCompare(n))}function A(t){let e=new Map;for(let r of t)for(let n of r.dependencies??[]){if(typeof n!="object"||n===null||!u(n.source_kind))continue;let i=y(n.id);i&&!e.has(i.toLowerCase())&&e.set(i.toLowerCase(),i)}return[...e.values()].sort((r,n)=>r.localeCompare(n))}function K(t,e=E()){let r={};for(let n of t)for(let i of n.dependencies??[]){if(typeof i!="object"||i===null)continue;let c=i.kind;if(typeof c!="string")continue;let a=c.trim().toLowerCase().replaceAll("-","_"),f=e.resolve(c);f&&a!==f.kind&&(r[a]=(r[a]??0)+1)}return Object.fromEntries(Object.entries(r).sort(([n],[i])=>n.localeCompare(i)))}function X(t,e,r){let n=r??E(),i=t.filter(o=>typeof o?.id=="string"&&o.id.trim().length>0),c=new Map(i.map(o=>[o.id.trim().toLowerCase(),o.id.trim()])),a=T(i,e),f=$(a);for(let o of f)c.set(o.toLowerCase(),o);let s=A(i),l=new Set(c.keys()),p=new Map;for(let o of s){let d=o;for(;l.has(d.toLowerCase());)d=`external:${d}`;p.set(o.toLowerCase(),d),l.add(d.toLowerCase())}let m=i.map(o=>{let d=b(o.parent),C=b(o.blocked_by),R=(o.dependencies??[]).flatMap(_=>{if(typeof _!="object"||_===null)return[];let g=_,w=b(g.id);return w?[{id:u(g.source_kind)?p.get(w.toLowerCase()):c.get(w.toLowerCase()),kind:typeof g.kind=="string"?g.kind:"related"}]:[]});return{id:o.id.trim(),...d?{parent:c.get(d.toLowerCase())}:{},...C?{blocked_by:c.get(C.toLowerCase())}:{},dependencies:R}});return{graph:L.fromItems([...m,...f.map(o=>({id:o})),...s.map(o=>({id:p.get(o.toLowerCase())}))],n),details:[...i.map(o=>({id:o.id.trim(),title:o.title,status:o.status,...typeof o.type=="string"&&o.type.trim().length>0?{type:o.type.trim()}:{}})),...f.map(o=>({id:o,title:`[missing] ${o}`,status:"missing"})),...s.map(o=>({id:p.get(o.toLowerCase()),title:`[external] ${o}`,status:"external"}))],missingIdSet:new Set(f.map(o=>o.toLowerCase())),dangling:a,duplicateRows:S(i,e),legacyAliasCounts:K(i,n)}}export{u as a,j as b,G as c,b as d,E as e,S as f,T as g,$ as h,X as i};
2
+ //# sourceMappingURL=chunk-M6RPIXKC.js.map