@unbrained/pm-cli 2026.8.20 → 2026.8.22

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 (228) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +38 -0
  3. package/dist/cli/error-guidance.d.ts +29 -4
  4. package/dist/cli/error-guidance.js +43 -43
  5. package/dist/cli/main.d.ts +3 -0
  6. package/dist/cli/main.js +40 -7
  7. package/dist/cli-bundle/bundle-manifest.json +150 -150
  8. package/dist/cli-bundle/chunks/{chunk-L4LGPBJU.js → chunk-BWX4SK46.js} +58 -58
  9. package/dist/cli-bundle/chunks/chunk-EMWDM5FI.js +13 -0
  10. package/dist/cli-bundle/chunks/chunk-HYG6LRL4.js +200 -0
  11. package/dist/cli-bundle/chunks/{chunk-TSMWLCHS.js → chunk-MYYI3ZOA.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-4GB2LTOQ.js → chunk-MZTZQTMS.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-7BRF2BX2.js → chunk-QI2CT3IX.js} +2 -2
  14. package/dist/cli-bundle/chunks/chunk-SMWXHMVB.js +35 -0
  15. package/dist/cli-bundle/chunks/{chunk-US2ZQW2M.js → chunk-U6GQ4VMV.js} +47 -47
  16. package/dist/cli-bundle/chunks/{chunk-K3EN3LK2.js → chunk-VMMIL3SI.js} +2 -2
  17. package/dist/cli-bundle/chunks/chunk-WG4STC36.js +5 -0
  18. package/dist/cli-bundle/chunks/{chunk-XYDDWBZN.js → chunk-YBPJAOQQ.js} +3 -3
  19. package/dist/cli-bundle/chunks/{register-list-query-JSAQCVOC.js → register-list-query-HZKBQNWW.js} +2 -2
  20. package/dist/cli-bundle/chunks/{register-mutation-XJPAW63D.js → register-mutation-HTKEEGRD.js} +2 -2
  21. package/dist/cli-bundle/chunks/{register-operations-DSOSB2XQ.js → register-operations-6EMRWJJY.js} +2 -2
  22. package/dist/cli-bundle/chunks/{register-setup-QUR6QL2C.js → register-setup-QK4OTOXN.js} +2 -2
  23. package/dist/cli-bundle/focused-chunks/{chunk-TDR5OGG3.js → chunk-2ARQGDDW.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/{chunk-AZBACT5T.js → chunk-2AZT5WXZ.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/{chunk-M32HFIQB.js → chunk-2POVTNLY.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/chunk-3LKU6PTJ.js +4 -0
  27. package/dist/cli-bundle/focused-chunks/chunk-5SHSBMX2.js +2 -0
  28. package/dist/cli-bundle/focused-chunks/{chunk-UGSS4F5X.js → chunk-6S2MO3Q3.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-5L7M4AI7.js → chunk-A2BC5PQL.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/chunk-C4S4A4JJ.js +5 -0
  31. package/dist/cli-bundle/focused-chunks/{chunk-OM65KHGF.js → chunk-D6RBZEJJ.js} +2 -2
  32. package/dist/cli-bundle/focused-chunks/chunk-E2EWYPY6.js +16 -0
  33. package/dist/cli-bundle/focused-chunks/{chunk-G3C5ERXG.js → chunk-GMYPD4FX.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/chunk-L5LDSRO2.js +155 -0
  35. package/dist/cli-bundle/focused-chunks/{chunk-BLJCGGID.js → chunk-MB37AYN6.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/chunk-MCOR37QK.js +2 -0
  37. package/dist/cli-bundle/focused-chunks/{chunk-FUREQLQN.js → chunk-PH2OXXVZ.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/{chunk-325UXIO7.js → chunk-PMGJUFNQ.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/chunk-R6SR45XU.js +50 -0
  40. package/dist/cli-bundle/focused-chunks/chunk-WZE4LIPW.js +8 -0
  41. package/dist/cli-bundle/main.js +13 -13
  42. package/dist/cli-bundle/sdk-authoring.js +1 -1
  43. package/dist/cli-bundle/sdk-contracts.js +2 -2
  44. package/dist/cli-bundle/sdk-core.js +40 -40
  45. package/dist/cli-bundle/sdk-governance.js +1 -1
  46. package/dist/cli-bundle/sdk-graph.js +1 -1
  47. package/dist/cli-bundle/sdk-merge.js +32 -32
  48. package/dist/cli-bundle/sdk-query.js +1 -1
  49. package/dist/cli-bundle/sdk-runtime.js +1 -1
  50. package/dist/cli-bundle/sdk-testing.js +1 -1
  51. package/dist/cli-bundle/sdk.js +5 -5
  52. package/dist/core/extensions/extension-hook-runtime.js +22 -20
  53. package/dist/core/extensions/extension-types.d.ts +8 -1
  54. package/dist/core/extensions/extension-types.js +2 -2
  55. package/dist/core/extensions/loader.js +7 -3
  56. package/dist/core/extensions/service-ownership.d.ts +8 -0
  57. package/dist/core/extensions/service-ownership.js +20 -0
  58. package/dist/core/item/id.js +20 -5
  59. package/dist/core/item/item-format.js +27 -2
  60. package/dist/core/shared/errors.d.ts +20 -0
  61. package/dist/core/shared/errors.js +2 -2
  62. package/dist/core/store/item-store.js +6 -91
  63. package/dist/core/store/tracker-preflight.d.ts +7 -0
  64. package/dist/core/store/tracker-preflight.js +142 -0
  65. package/dist/sdk/agent/refusal-reachability.d.ts +1 -1
  66. package/dist/sdk/agent/tracker-preflight-contracts.d.ts +63 -0
  67. package/dist/sdk/agent/tracker-preflight-contracts.js +127 -0
  68. package/dist/sdk/annotations.js +6 -7
  69. package/dist/sdk/authoring.d.ts +1 -1
  70. package/dist/sdk/authoring.js +2 -2
  71. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +77 -0
  72. package/dist/sdk/cli-contracts/agent-output-contracts.js +324 -2
  73. package/dist/sdk/cli-contracts/commander-mutation-options.js +3 -3
  74. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +3 -1
  75. package/dist/sdk/cli-contracts/runtime-contracts.js +4 -3
  76. package/dist/sdk/cli-contracts.d.ts +1 -1
  77. package/dist/sdk/cli-contracts.js +3 -3
  78. package/dist/sdk/config.d.ts +5 -0
  79. package/dist/sdk/config.js +5 -5
  80. package/dist/sdk/context-intent-runtime.js +7 -4
  81. package/dist/sdk/contracts.d.ts +1 -0
  82. package/dist/sdk/contracts.js +3 -2
  83. package/dist/sdk/dependencies.js +5 -7
  84. package/dist/sdk/dependency-flag-validation.d.ts +1 -1
  85. package/dist/sdk/dependency-flag-validation.js +10 -4
  86. package/dist/sdk/environment/tracker-preflight.d.ts +6 -0
  87. package/dist/sdk/environment/tracker-preflight.js +10 -0
  88. package/dist/sdk/eval.js +5 -7
  89. package/dist/sdk/extension/install-sources.d.ts +1 -1
  90. package/dist/sdk/extension/install-sources.js +6 -3
  91. package/dist/sdk/extension/output-ownership.d.ts +1 -0
  92. package/dist/sdk/extension/output-ownership.js +3 -2
  93. package/dist/sdk/files.js +6 -10
  94. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +75 -15
  95. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +81 -8
  96. package/dist/sdk/governance/assurance.d.ts +36 -2
  97. package/dist/sdk/governance/assurance.js +184 -10
  98. package/dist/sdk/governance/gc.js +5 -6
  99. package/dist/sdk/governance/health.d.ts +3 -0
  100. package/dist/sdk/governance/health.js +42 -11
  101. package/dist/sdk/governance/hierarchy-validation.d.ts +29 -0
  102. package/dist/sdk/governance/hierarchy-validation.js +109 -0
  103. package/dist/sdk/governance/reindex.js +5 -6
  104. package/dist/sdk/governance/validate.d.ts +2 -9
  105. package/dist/sdk/governance/validate.js +51 -109
  106. package/dist/sdk/graph/assembly.d.ts +6 -1
  107. package/dist/sdk/graph/assembly.js +16 -22
  108. package/dist/sdk/graph/governance-contracts.d.ts +1 -1
  109. package/dist/sdk/graph/governance-contracts.js +8 -2
  110. package/dist/sdk/graph/governance.d.ts +7 -5
  111. package/dist/sdk/graph/governance.js +76 -16
  112. package/dist/sdk/graph/hierarchy-integrity.d.ts +94 -0
  113. package/dist/sdk/graph/hierarchy-integrity.js +311 -0
  114. package/dist/sdk/graph/index.d.ts +2 -1
  115. package/dist/sdk/graph/index.js +3 -2
  116. package/dist/sdk/graph/remediation.js +32 -2
  117. package/dist/sdk/graph/run.d.ts +31 -2
  118. package/dist/sdk/graph/run.js +83 -36
  119. package/dist/sdk/graph/traversal.js +14 -5
  120. package/dist/sdk/graph/workspace-relationship-kind-registry.d.ts +8 -0
  121. package/dist/sdk/graph/workspace-relationship-kind-registry.js +28 -0
  122. package/dist/sdk/history-compact.js +6 -9
  123. package/dist/sdk/history-read.js +5 -7
  124. package/dist/sdk/history-redact.js +5 -6
  125. package/dist/sdk/history-repair.js +6 -9
  126. package/dist/sdk/improvement-ledger.js +7 -10
  127. package/dist/sdk/index.d.ts +4 -2
  128. package/dist/sdk/index.js +5 -3
  129. package/dist/sdk/item-children.js +21 -8
  130. package/dist/sdk/lifecycle/append.d.ts +0 -5
  131. package/dist/sdk/lifecycle/append.js +5 -6
  132. package/dist/sdk/lifecycle/claim.d.ts +0 -5
  133. package/dist/sdk/lifecycle/claim.js +6 -9
  134. package/dist/sdk/lifecycle/close-many.d.ts +0 -5
  135. package/dist/sdk/lifecycle/close-many.js +5 -6
  136. package/dist/sdk/lifecycle/close.d.ts +0 -5
  137. package/dist/sdk/lifecycle/close.js +5 -6
  138. package/dist/sdk/lifecycle/copy.d.ts +0 -5
  139. package/dist/sdk/lifecycle/copy.js +5 -6
  140. package/dist/sdk/lifecycle/create.d.ts +0 -5
  141. package/dist/sdk/lifecycle/create.js +127 -102
  142. package/dist/sdk/lifecycle/delete.js +5 -6
  143. package/dist/sdk/lifecycle/focus.d.ts +0 -5
  144. package/dist/sdk/lifecycle/focus.js +5 -6
  145. package/dist/sdk/lifecycle/hierarchy-mutation-lock.d.ts +15 -0
  146. package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +25 -0
  147. package/dist/sdk/lifecycle/plan.d.ts +0 -5
  148. package/dist/sdk/lifecycle/plan.js +5 -6
  149. package/dist/sdk/lifecycle/restore.js +5 -6
  150. package/dist/sdk/lifecycle/update-many.d.ts +0 -5
  151. package/dist/sdk/lifecycle/update-many.js +5 -6
  152. package/dist/sdk/lifecycle/update.d.ts +2 -5
  153. package/dist/sdk/lifecycle/update.js +211 -84
  154. package/dist/sdk/linked-artifacts.js +6 -7
  155. package/dist/sdk/merge/install.js +5 -6
  156. package/dist/sdk/mutation-events.js +5 -7
  157. package/dist/sdk/package-import-adapters.js +6 -8
  158. package/dist/sdk/profile.js +6 -7
  159. package/dist/sdk/query/activity.js +5 -6
  160. package/dist/sdk/query/calendar.js +5 -6
  161. package/dist/sdk/query/complete-list.d.ts +3 -3
  162. package/dist/sdk/query/complete-list.js +46 -3
  163. package/dist/sdk/query/get.d.ts +0 -5
  164. package/dist/sdk/query/get.js +5 -6
  165. package/dist/sdk/query/history.d.ts +0 -5
  166. package/dist/sdk/query/history.js +5 -6
  167. package/dist/sdk/query/list.d.ts +4 -3
  168. package/dist/sdk/query/list.js +92 -54
  169. package/dist/sdk/query/search.js +5 -7
  170. package/dist/sdk/read-output-contracts.d.ts +5 -1
  171. package/dist/sdk/read-output-contracts.js +87 -22
  172. package/dist/sdk/relationship-context.js +3 -4
  173. package/dist/sdk/relationship-kinds/contract.d.ts +8 -0
  174. package/dist/sdk/relationship-kinds/contract.js +13 -13
  175. package/dist/sdk/relationships.d.ts +1 -1
  176. package/dist/sdk/relationships.js +27 -2
  177. package/dist/sdk/runtime.d.ts +3 -2
  178. package/dist/sdk/runtime.js +3 -2
  179. package/dist/sdk/schema-migration.js +6 -7
  180. package/dist/sdk/schema.js +5 -6
  181. package/dist/sdk/stats.js +5 -8
  182. package/dist/sdk/templates.js +5 -6
  183. package/dist/sdk/test/batch.js +15 -9
  184. package/dist/sdk/test/execution.js +12 -5
  185. package/dist/sdk/test/runs.js +5 -7
  186. package/dist/types.d.ts +11 -0
  187. package/dist/types.js +2 -2
  188. package/docs/AGENT_UX_CONTRACTS.md +24 -1
  189. package/docs/COMMANDS.md +29 -14
  190. package/docs/DEPENDENCY_KIND_CONTRACT.md +40 -1
  191. package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +98 -0
  192. package/docs/EXTENSIONS.md +2 -1
  193. package/docs/README.md +1 -0
  194. package/docs/READ_OUTPUT_CONTRACTS.md +9 -2
  195. package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +37 -0
  196. package/docs/RELATIONSHIP_GRAPH.md +97 -12
  197. package/docs/SDK_PRIMITIVE_INVENTORY.md +15 -1
  198. package/docs/TESTING.md +15 -0
  199. package/marketplace.json +2 -2
  200. package/package.json +1 -1
  201. package/packages/pm-beads/package.json +1 -1
  202. package/packages/pm-calendar/package.json +1 -1
  203. package/packages/pm-command-kit/package.json +1 -1
  204. package/packages/pm-digital-twin/package.json +1 -1
  205. package/packages/pm-governance-audit/package.json +1 -1
  206. package/packages/pm-guide-shell/package.json +1 -1
  207. package/packages/pm-kanban/package.json +1 -1
  208. package/packages/pm-lifecycle-hooks/package.json +1 -1
  209. package/packages/pm-linked-test-adapters/package.json +1 -1
  210. package/packages/pm-search-advanced/package.json +1 -1
  211. package/packages/pm-templates/package.json +1 -1
  212. package/packages/pm-todos/package.json +1 -1
  213. package/packages/pm-vcs/package.json +1 -1
  214. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  215. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  216. package/sdk/public-surface.json +848 -56
  217. package/dist/cli-bundle/chunks/chunk-2RDVGYWE.js +0 -13
  218. package/dist/cli-bundle/chunks/chunk-BLVQHFSY.js +0 -35
  219. package/dist/cli-bundle/chunks/chunk-CU25EQVV.js +0 -5
  220. package/dist/cli-bundle/chunks/chunk-RS3IV2R6.js +0 -197
  221. package/dist/cli-bundle/focused-chunks/chunk-6AHG2YW7.js +0 -50
  222. package/dist/cli-bundle/focused-chunks/chunk-GXWQBE3T.js +0 -8
  223. package/dist/cli-bundle/focused-chunks/chunk-JWKEDZJI.js +0 -4
  224. package/dist/cli-bundle/focused-chunks/chunk-KYZ6JGPL.js +0 -155
  225. package/dist/cli-bundle/focused-chunks/chunk-Q47EX4DI.js +0 -2
  226. package/dist/cli-bundle/focused-chunks/chunk-RIHDMCUM.js +0 -2
  227. package/dist/cli-bundle/focused-chunks/chunk-T4ZFY7ZJ.js +0 -16
  228. package/dist/cli-bundle/focused-chunks/chunk-Z3PLWSGM.js +0 -2
@@ -1,16 +0,0 @@
1
- import{a as on,b as sn,d as an,e as cn,f as dn,g as un,h as ln}from"./chunk-5L7M4AI7.js";import{C as Ei,D as Ce,Da as Mi,F as me,G as Ie,H as Te,Ha as Oi,I as xi,L as Ci,M as yt,N as Ii,O as hn,P as gn,Q as yn,R as Ti,V as Fi,W as _n,da as Ri,f as vi,g as ki,h as pn,i as Si,ma as Fe,va as Ai}from"./chunk-FUREQLQN.js";import{Ma as Ur,Ua as Br,t as jr}from"./chunk-TDR5OGG3.js";import{b as Di,e as wn,f as _t,g as Li}from"./chunk-G3C5ERXG.js";import{A as zr,Aa as ti,B as Wr,C as Vr,Ca as ni,D as Yr,Da as ri,E as Xr,Fa as Pe,Ha as ae,I as Ne,Ia as mn,Ja as ii,La as oi,Ma as si,N as Qr,Oa as je,Ra as ai,Sa as pt,Ta as ci,U as ee,Ua as di,V as A,X as S,Y as ft,Z as K,_ as mt,_a as ui,ab as R,cb as li,db as fi,fb as mi,gb as ht,ib as pi,ja as M,ka as O,l as F,la as H,mb as hi,nb as gi,o as fn,oa as Jr,ob as xe,pa as Zr,pb as yi,q as $e,qa as ei,qb as _i,r as Gr,ra as G,rb as z,sb as W,tb as gt,u as qr,ub as ce,vb as wi,xb as bi,ya as Ee}from"./chunk-KYZ6JGPL.js";import{$ as Or,Fa as Pr,G as L,H as dt,M as C,O as Lr,P as N,Q as De,S as fe,Sa as P,Ua as q,V as Le,W as $,a as Fr,aa as $r,h as Mr,q as D,r as at,s as Dr,t as ct,u as Z,x as rn}from"./chunk-JWKEDZJI.js";import{b as Se,c as Hr,e as lt}from"./chunk-UGSS4F5X.js";import{E as be,J as nn,K as st,Ra as ve,S as Rr,Sa as ke,Ta as Oe,W as Ar,Xa as ut,Y as m,Ya as Kr,Z as p,aa as Nr}from"./chunk-Q47EX4DI.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]="cc342d27-aa2d-5e84-8441-46a35c42dc00")}catch{}})();var nc=["invalid_envelope","source_incomplete","source_unchecked","filtered_corpus","terminal_items_excluded","strict_read_unproven","page_incomplete","count_mismatch","projection_incomplete","field_omission","budget_compaction","budget_omission","session_projection","invalid_item_id","duplicate_item_id"],bn=class extends Error{receipt;constructor(t){super(`Complete-list certification failed: ${t.map(n=>n.code).join(", ")}.`),this.name="PmCompleteListValidationError",this.receipt={contract_version:1,contract:"complete_list",findings:t,recovery:{suggested_retry:"pm list-all --full --strict-read --no-truncate --output-budget unbounded --json",sdk:"await client.listAllComplete()"}}}};function hh(e={}){return{excludeTerminal:!1,full:!0,...e.includeBody===void 0?{}:{includeBody:e.includeBody},noTruncate:!0,outputBudget:"unbounded",outputLimit:"unbounded",strictRead:!0}}function te(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function j(e,t,n,r){t&&e.push({code:n,message:r})}function rc(e,t){let n=te(e.completeness)?e.completeness:{};j(t,n.status==="partial","source_incomplete","The source scan reported unreadable tracker artifacts."),j(t,n.status!=="complete"&&n.status!=="partial","source_unchecked","The source scan did not prove completeness.");let r=te(e.filters)?e.filters:{},i=te(r.runtime_filters)?r.runtime_filters:{},o=new Set(["exclude_terminal","include_body","no_truncate","runtime_filters","status","strict_read"]);return j(t,r.status!=="all"||Object.keys(i).length>0||Object.keys(r).some(s=>!o.has(s)),"filtered_corpus","The list did not explicitly select every lifecycle status."),j(t,r.exclude_terminal===!0,"terminal_items_excluded","Terminal lifecycle states were explicitly excluded."),j(t,r.strict_read!==!0,"strict_read_unproven","The result does not echo strict source-read enforcement."),r}function ic(e,t,n){j(n,e.has_more!==!1||e.next_cursor!==null||e.truncated!==!1||e.applied_limit!==void 0||t.no_truncate!==!0,"page_incomplete","Pagination or a row ceiling may have withheld items."),j(n,e.count!==e.items.length||e.total!==e.items.length,"count_mismatch","Envelope counts do not equal the returned item count.");let r=te(e.projection)?e.projection:{};j(n,r.mode!=="full"||r.fields!==null,"projection_incomplete","The result is not the full metadata projection.");let i=te(e.omission_receipt)?e.omission_receipt:void 0;j(n,i?.has_omissions===!0,"field_omission","The omission receipt reports withheld field groups.")}function oc(e,t){let n=te(e.read_output)?e.read_output:void 0;j(t,n?.strings_compacted===!0||n?.rows_compacted===!0||e.output_budget_truncation!==void 0,"budget_compaction","Universal output shaping compacted the result.");let r=te(e.output_budget_exceeded)?e.output_budget_exceeded:void 0;j(t,n?.result_omitted===!0||r?.omitted_result===!0,"budget_omission","Universal output shaping omitted the useful result."),j(t,e.read_session!==void 0,"session_projection","A cross-call read session can suppress previously served facts.")}function sc(e,t){let n=e.map(r=>te(r)&&typeof r.id=="string"?r.id.trim():"");j(t,n.some(r=>r.length===0),"invalid_item_id","Every full item row must carry a non-empty string id."),j(t,new Set(n).size!==n.length,"duplicate_item_id","Every item id must occur exactly once.")}function ac(e){if(!te(e)||!Array.isArray(e.items))return{ok:!1,findings:[{code:nc[0],message:"The result must be an object with an items array."}]};let t=e,n=[],r=rc(t,n);return ic(t,r,n),oc(t,n),sc(t.items,n),{ok:n.length===0,findings:n}}function cc(e){let t=ac(e);if(!t.ok)throw new bn(t.findings);let n=e;return{...n,complete_list:{contract_version:1,item_count:n.items.length,unique_item_id_count:new Set(n.items.map(r=>r.id)).size,terminal_items_included:!0,source_complete:!0,full_projection:!0,no_omissions:!0,unbounded:!0}}}function gh(e){cc(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47c087c2-124a-58b7-a5c9-09403235f4a2")}catch{}})();function dc(e,t){let n=-1;return e.forEach((r,i)=>{let o=Date.parse(r.ts);if(!Number.isFinite(o))throw new p(`History for this item contains invalid timestamp at entry ${i+1}.`,m.GENERIC_FAILURE);o<=t&&(n=i)}),n}function uc(e){let t=e[0]?.ts??null,n=e.at(-1)?.ts??null,r={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:t,last_timestamp:n}};return n!==null&&(r.examples=["1",String(e.length),n],r.valid_range.first_version=1,r.valid_range.last_version=e.length),{guidance:r,lastTimestamp:n}}function $i(e,t){let n={};if(t instanceof Error&&t.message.trim().length>0&&(n.reason=t.message.trim()),typeof t!="object"||t===null)return n;let r=t;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let i=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(o=>{let s=i[o];return typeof s=="string"?[[o,s]]:[]})))}if(n.patchIndex!==void 0){let i=e[n.patchIndex];i&&(n.op??=i.op,n.path??=i.path,n.from??=i.from)}return n}function Ni(e,t,n={}){let r=e.trim(),i=n.errorSubject??"history",o=i==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=uc(t);if(!r)throw new p(`Missing ${i} target. Use a timestamp or version number.`,m.USAGE,s);if(/^\d+$/.test(r)){let l=Number(r);if(!Number.isSafeInteger(l)||l<1||l>t.length)throw new p(`${o} version must be between 1 and ${t.length} for this item.`,m.USAGE,s);return{kind:"version",raw:r,historyIndex:l-1}}let d=Date.parse(r);if(!Number.isFinite(d))throw new p(`Invalid ${i} target "${e}". Use a positive version number or ISO timestamp.`,m.USAGE,s);let c=dc(t,d);if(c<0||n.allowFutureTimestamp!==!0&&d>Date.parse(a))throw new p(i==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,m.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:c}}function Ue(e,t,n,r){let i=si(e,t);if(i.ok)return i.document;let o=$i(t,i.error),s=[`history_op=${r}`,o.patchIndex===void 0?null:`patch_index=${o.patchIndex}`,o.op?`op=${o.op}`:null,o.path?`path=${o.path}`:null,o.from?`from=${o.from}`:null].filter(a=>a!==null);throw new p(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${o.reason??String(i.error)}`,m.GENERIC_FAILURE)}function Pi(e,t){let n=structuredClone(Pe);for(let r=0;r<=t;r+=1){let i=e[r];if(!i)throw new p(`History target entry ${r+1} does not exist.`,m.USAGE);if(ae(n)!==i.before_hash)throw new p(`History hash mismatch before replay at entry ${r+1}.`,m.GENERIC_FAILURE);if(n=Ue(n,i.patch,r+1,i.op),ae(n)!==i.after_hash)throw new p(`History hash mismatch after replay at entry ${r+1}.`,m.GENERIC_FAILURE)}return n}function ji(e,t){if(Object.keys(e.metadata).length>0)return e;throw new p(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,m.USAGE)}import vn from"node:fs/promises";import lc 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]="a2ec9f1a-aae2-59d5-8c9a-7acd8bf5a7a2")}catch{}})();function fc(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=ui(e.settings);if(n.ownership_enforcement==="strict")throw new p(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,m.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function mc(e){let t=await ct(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new p(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,m.CONFLICT);let n=await z(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await W(n,{schema:e.settings.schema}):null;if((r?.raw??null)!==(e.currentItemRawBeforeLock??null))throw new p(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,m.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function Rh(e){let t=e.writeHistoryRaw??Z;try{await t(e.historyPath,e.nextHistoryRaw),await Ee(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await lc.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await Ee(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function Ui(e){let t=[...fc({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await mt(e.pmRoot,e.subject.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let r=await mc({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:e.operation});return await e.applyRewrite(r),e.applyPostRewrite&&t.push(...await e.applyPostRewrite(r)),t}finally{await 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]="cd2a27ec-0f12-591d-ab34-529ddda05063")}catch{}})();function Bi(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function pc(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function hc(e){let t=e.trim();if(t.length===0)throw new p("history-redact --regex requires a non-empty pattern.",m.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let i=t.lastIndexOf("/");i>0&&(n=t.slice(1,i),r=pc(t.slice(i+1)))}if(n.length===0)throw new p("history-redact --regex cannot use an empty pattern.",m.USAGE);try{new RegExp(n,r)}catch{throw new p("Invalid --regex value; provide a valid JavaScript regular expression.",m.USAGE)}return{kind:"regex",source:n,flags:r}}function gc(e,t){let n=[...new Set(Bi(e).map(o=>o.trim()))].filter(o=>o.length>0).map(o=>({kind:"literal",value:o})),r=[...new Set(Bi(t).map(o=>o.trim()))].filter(o=>o.length>0).map(hc),i=[...n,...r];if(i.length===0)throw new p("history-redact requires at least one matcher via --literal or --regex.",m.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return i}function yc(e,t,n){if(t.length===0)return{value:e,replacements:0};let r=0,i=0;for(;r<=e.length;){let o=e.indexOf(t,r);if(o===-1)break;i+=1,r=o+Math.max(1,t.length)}return i===0?{value:e,replacements:0}:{value:e.split(t).join(n),replacements:i}}function _c(e,t,n){let r=new RegExp(t.source,t.flags),i=[...e.matchAll(r)];return i.length===0?{value:e,replacements:0}:{value:e.replace(r,n),replacements:i.length}}function Ki(e,t,n){let r=e,i=0;for(let o of t){let s=o.kind==="literal"?yc(r,o.value,n):_c(r,o,n);r=s.value,i+=s.replacements}return{value:r,replacements:i}}function kn(e,t,n){if(typeof e=="string")return Ki(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(o=>{let s=kn(o,t,n);return r+=s.replacements,s.value}),replacements:r}}if(typeof e=="object"&&e!==null){let r=0,i={};for(let[o,s]of Object.entries(e)){let a=kn(s,t,n);r+=a.replacements,i[o]=a.value}return{value:i,replacements:r}}return{value:e,replacements:0}}function wc(e){let t=structuredClone(Pe),n=0,r=0;for(let i=0;i<e.length;i+=1){let o=e[i];ae(t)!==o.before_hash&&(n+=1),t=Ue(t,o.patch,i+1,o.op),ae(t)!==o.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function bc(e,t,n){let r=0,i=!1,o=e.message;if(typeof e.message=="string"){let a=Ki(e.message,t,n);o=a.value,r+=a.replacements,a.replacements>0&&(i=!0)}let s=e.patch.map(a=>{if(!Object.prototype.hasOwnProperty.call(a,"value"))return a;let d=kn(a.value,t,n);return r+=d.replacements,d.replacements>0?(i=!0,{...a,value:d.value}):a});return{entry:{...e,message:o,patch:s},replacements:r,changed:i}}function vc(e,t,n){let r=structuredClone(Pe),i=0,o=0,s=[];for(let a=0;a<e.length;a+=1){let d=bc(e[a],t,n);o+=d.replacements,d.changed&&(i+=1);let c=ae(r);r=Ue(r,d.entry.patch,a+1,d.entry.op);let l=ae(r);s.push({...d.entry,before_hash:c,after_hash:l})}return{entries:s,finalDocument:r,entriesChanged:i,replacements:o}}function kc(e){return Object.keys(e.metadata).length>0}async function Sc(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await W(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function Ec(e){if(!kc(e.finalDocument))return{raw:null,path:null,document:null};let t=ei(mn(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new p("history-redact would change the item id; narrow your patterns.",m.USAGE);return{document:t,path:De(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Zr(t,{format:"toon",schema:e.settings.schema})}}function xc(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:`history-redact replaced ${t.replacements} match(es) across ${t.entriesChanged} entr${t.entriesChanged===1?"y":"ies"}.`}function Cc(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??mn(e.rewritten.finalDocument);return t.push(ri({nowIso:A(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function Ic(e){let t=[];return Ui({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItem.raw,operation:"history-redact",author:e.author,force:e.force,itemDocument:e.currentItem.document,applyRewrite:async({historyRawUnderLock:n})=>{let r=await gi(e.pmRoot,e.author),i=new Set;e.currentItem.path&&i.add(e.currentItem.path),e.nextItem.path&&i.add(e.nextItem.path);let o=new Map;e.currentItem.path&&e.currentItem.raw!==null&&o.set(e.currentItem.path,e.currentItem.raw);let s=()=>{};try{try{e.nextItem.path&&e.nextItem.raw!==null&&e.nextItem.raw!==e.currentItem.raw&&await Z(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await vn.rm(e.currentItem.path,{force:!0}),await Z(e.subject.historyPath,ai(e.rewrittenEntries))}catch(d){try{await Tc(e.subject.historyPath,n,i,o)}finally{await Ee(e.subject.historyPath)}throw d}await Ee(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await yi({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:e.typeRegistry.type_to_folder,schema:e.settings.schema,itemPath:a,...e.currentItem.path?{previousItemPath:e.currentItem.path}:{},document:e.nextItem.document}))}finally{await r().catch(a=>{s=()=>{throw a}})}s()},applyPostRewrite:async()=>[...t,...await Fc(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function Tc(e,t,n,r){t===null?await vn.rm(e,{force:!0}):await Z(e,t);for(let i of n){let o=r.get(i);o===void 0?await vn.rm(i,{force:!0}):await Z(i,o)}}async function Fc(e,t){let n=[],r=new Set(t.filter(i=>i!==null));for(let i of r)n.push(...await fn({path:i,scope:"project",op:"history_redact"}));return n.push(...await fn({path:e,scope:"project",op:"history_redact:history"})),n}async function Sn(e,t,n,r){let i=await z(e,t,n.id_prefix,n.item_format,r);if(i)return{id:i.id,historyPath:fe(e,i.id),located:i};let o=ht(t,n.id_prefix),s=mi(t),a=o===s?[o]:[o,s];for(let d of a){let c=fe(e,d);if(await D(c))return{id:d,historyPath:c,located:null}}throw new p(`Item ${t} not found`,m.NOT_FOUND)}async function Jh(e,t,n){let r=C(process.cwd(),n.path);if(!await D(N(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await R(r),o=L(i,F()),s=t.replacement??"",a=s.length===0,d=a?"[redacted]":s,c=gc(t.literal,t.regex),l=await Sn(r,e,i,o.type_to_folder);if(!await D(l.historyPath))throw new p(`No history stream exists for ${l.id}.`,m.NOT_FOUND);let u=await ct(l.historyPath),f=await G(l.historyPath,l.id);if(f.length===0)throw new p(`No history entries exist for ${l.id}; nothing to redact.`,m.USAGE);let h=wc(f),y=vc(f,c,d),g=h.hashMismatchesBefore+h.hashMismatchesAfter,v=!!t.dryRun,_=y.replacements>0,w=[];g>0&&w.push(`history_redact_preexisting_hash_mismatches:${g}`),_||w.push("history_redact_no_matches");let b=await Sc(l,i),E=Ec({pmRoot:r,subject:l,settings:i,typeToFolder:o.type_to_folder,finalDocument:y.finalDocument}),T=(b.path??null)!==(E.path??null)||(b.raw??null)!==(E.raw??null),I=ee(t.author,i.author_default),x=xc(t,y),{rewrittenEntries:ue,auditEntryAdded:ye}=Cc({rewritten:y,dryRun:v,changed:_,nextItemDocument:E.document,author:I,message:x}),oe=je(ue);if(!oe.ok)throw new p(`history-redact produced an invalid rewritten chain (${oe.errors.join(", ")}).`,m.GENERIC_FAILURE);return!v&&_&&w.push(...await Ic({pmRoot:r,subject:l,settings:i,typeRegistry:o,historyRawBeforeLock:u,currentItem:b,nextItem:E,author:I,force:t.force,rewrittenEntries:ue})),{id:l.id,dry_run:v,changed:_,patterns:{literal_count:c.filter(B=>B.kind==="literal").length,regex_count:c.filter(B=>B.kind==="regex").length,total_count:c.length,replacement_is_default:a},history:{path:l.historyPath,entries_scanned:f.length,entries_changed:y.entriesChanged,replacements:y.replacements,hash_mismatches_before:h.hashMismatchesBefore,hash_mismatches_after:h.hashMismatchesAfter,preexisting_hash_mismatches:g,audit_entry_added:ye,verify_ok:oe.ok,verify_errors:oe.errors},item:{existed_before:b.path!==null,exists_after:E.path!==null,path_before:b.path,path_after:E.path,changed:T},warnings:[...new Set(w)].sort((B,se)=>B.localeCompare(se)),generated_at:A()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="04f5d4d2-4021-5ce2-b35a-2134d98d2ad7")}catch{}})();function Hi(e,t){let n=je(e),r=e.length>0?e[e.length-1].after_hash:ni(),i=t===void 0?void 0:ti(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 Gi(e,t,n={}){let r=C(n.cwd??process.cwd(),n.pmRoot);if(!await D(N(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await R(r),o=L(i,F()),s=await Sn(r,e,i,o.type_to_folder),a=await G(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=Ni(t,a),c=ji(Pi(a,d.historyIndex),d),l=ii(c,{schema:i.schema});if(l.metadata.id!==s.id)throw new p(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,m.GENERIC_FAILURE);let u=a[d.historyIndex];return{document:l,reconstructed:!0,as_of_version:d.historyIndex+1,as_of_timestamp:u.ts,target:d,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function U(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 wt(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 qi(e,t,n="--type"){if(e===void 0)return;let r=dt(e,t);if(!r)throw new p(`${n} filter must be one of ${t.types.join("|")}`,m.USAGE);return r}import Ac from"node:fs/promises";import Yi from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch{}})();var En={version:1,aliases:{}};function bt(e=[]){let t=new Set(Ne),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 zi(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 xn(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 Rc(e,t=Ne){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 vt(e,t=En,n={}){let r=xn(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 kt(e,t=En,n=Ne){let r=zi(e.harness),i=zi(e.agentInstance),o=Rc(e,n);return s=>{let d=xn(s,t).agent_harness;if(r&&(!d||!r.has(d))||i&&!i.has(s.agent_instance??""))return!1;for(let[c,l]of o){let u=s.agent_provenance?.[c];if(!u||!l.has(u.value))return!1}return!0}}function St(e,t=En,n=Ne){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);xn(s,t).agent_harness?o+=1:i.set(s.author,(i.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:o,unresolved:e.length-o,unresolved_authors:[...i].map(([s,a])=>({author:s,entries:a})).sort((s,a)=>a.entries-s.entries||s.author.localeCompare(a.author)).slice(0,20)},dimensions:[...r].sort().map(s=>{let a=0,d=0;for(let c of e){let l=c.agent_provenance?.[s];l===null?d+=1:l!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:d,legacy_missing:e.length-a-d}})}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="49304d18-d722-5413-8e4d-4f2c3df4a1ca")}catch{}})();var Mc=20,Dc=5,Lc=15,Oc="-24h";function Rg(e){let t={...e};return t.full===!0?(t.raw=!0,t.compact=!1):t.raw===!0&&t.compact===void 0&&(t.compact=!0),delete t.full,t}var $c={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function Cn(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 Wi(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 K(i,new Date(t),n)}function Nc(e,t,n){return!(e.ts.length===0&&(t||n)||t&&S(e.ts,t)<0||n&&S(e.ts,n)>=0)}function Vi(e,t){return t===void 0?e:e.slice(0,t)}function Be(e,t=""){return typeof e=="string"?e:t}function Pc(e,t){return{...t,id:e,ts:Be(t.ts),author:Be(t.author,"unknown"),op:Be(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Be(t.before_hash),after_hash:Be(t.after_hash)}}function jc(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 Uc(e){try{return(await Ac.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Dr(t))return[];throw t}}function Bc(e){return e.raw!==!0&&e.compact!==!0&&e.provenance!==!0?"digest":e.provenance===!0?"provenance":e.compact===!0||e.raw===!0&&e.compact!==!1?"compact":"full"}function Kc(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Lc:n==="compact"?Mc:Dc}function Hc(e,t){let n=A(),r=t==="digest",i=Wi(e.to??(r?n:void 0),n,"--to"),o=Wi(e.from??(r?Oc:void 0),e.from===void 0&&r?i:n,"--from");if(o&&i&&S(o,i)>=0)throw new p("Activity --from must be before --to",m.USAGE);let s=me(e.limit);if(e.unbounded===!0&&s!==void 0)throw new p("Activity --unbounded cannot be combined with --limit",m.USAGE);return{id:Cn(e.id,"Activity --id"),op:Cn(e.op,"Activity --op"),author:Cn(e.author,"Activity --author"),from:o,to:i,limit:Kc(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function Gc(e){let t=C(process.cwd(),e.path);if(!await D(N(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,m.NOT_FOUND);return{pmRoot:t,settings:await R(t)}}async function qc(e){let t=L(e.settings,F()),n=await ce(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await fi({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=Yi.join(e.pmRoot,"history");return await $e({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function zc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Nc(t,n.from,n.to)}async function Wc(e,t){let n=[];for(let r of await Uc(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await G(Yi.join(e,r),i);for(let s of o){let a=Pc(i,s);zc(s,a,t)&&n.push(a)}}return n}function Vc(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function Yc(e){let t=[...e.entries()].sort(([r,i],[o,s])=>s-i||r.localeCompare(o)),n=t.slice(0,4).map(([r,i])=>`${r}:${i}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function Xc(e,t){let n=new Map;for(let r of e){let i=n.get(r.id);if(i===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}i.eventCount+=1,S(r.ts,i.firstTs)<0&&(i.firstTs=r.ts),S(r.ts,i.lastTs)>0&&(i.lastTs=r.ts),i.operations.set(r.op,(i.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,i])=>{let o=t.get(r);return{id:r,type:o?.type??"unknown",status:o?.status??"unknown",title:(o?.title??"(item metadata unavailable)").slice(0,160),event_count:i.eventCount,first_ts:i.firstTs,last_ts:i.lastTs,operations:Yc(i.operations)}}).sort((r,i)=>S(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function Qc(e){let t=new Map;for(let i of e)t.set(i.op,(t.get(i.op)??0)+1);let n=[...t.entries()].sort((i,o)=>o[1]-i[1]||i[0].localeCompare(o[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((i,[,o])=>i+o,0)]),Object.fromEntries(r)}function Jc(e,t,n,r,i){if(e==="digest"){let s=Xc(t,r),a=Vi(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let o=Vi(t,n);return e==="compact"?{rows:{compact_activity:Vc(o)},compact:!0,totalRows:t.length,returnedRows:o.length}:e==="provenance"?{rows:{provenance_activity:o.map(i)},compact:!1,totalRows:t.length,returnedRows:o.length}:{rows:{activity:o},compact:!1,totalRows:t.length,returnedRows:o.length}}async function Xi(e,t){let n=await Gc(t),r=Bc(e),i=Hc(e,r),o=await qc(n),s=bt(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,d=kt({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),c=jc(await Wc(o.historyDir,i)).filter(d),l=Jc(r,c,i.limit,o.itemsById,f=>vt(f,a,{itemId:f.id})),u=l.totalRows-l.returnedRows;return{...l.rows,compact:l.compact,projection:{mode:r,row_key:$c[r]},omission_receipt:lt("activity",r),count:l.returnedRows,total_count:l.totalRows,limit:i.limit??null,omitted_count:u,has_more:u>0,...r==="digest"?{activity_summary:{window:{from:i.from,to:i.to},event_count:c.length,item_count:l.totalRows,author_count:new Set(c.map(f=>f.author)).size,operation_counts:Qc(c)}}:{},...e.provenanceSummary===!0?{provenance_summary:St(c,a,s)}:{},applied_bound:{kind:i.limit===void 0?"unbounded":"limit",source:i.limitSource,value:i.limit??null}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function In(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 V(e,t){let n=In(e,t);return n===void 0?void 0:new Set(n)}function Et(e,t,n="--type"){let r=In(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=dt(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 xt(e,t="--priority"){let n=In(e,{label:t});if(n!==void 0)return new Set(n.map(r=>wt(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 Qi(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Ct(e){return{isTerminal(t){return e.terminal_statuses.has(Qi(t,e))},classify(t){let n=Qi(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 Tn(e){return $(e.acceptance_criteria)===void 0}function Fn(e){return!Number.isFinite(e.estimated_minutes)}function to(e,t){return t.isTerminal(e.status)?$(e.resolution)===void 0:!1}function Zc(e){return $(e.reviewer)===void 0}function ed(e){return $(e.risk)===void 0}function td(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):$(e.confidence)===void 0}function nd(e){return $(e.sprint)===void 0}function rd(e){return $(e.release)===void 0}function Ke(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function id(e,t,n){return[[t.acMissing,Tn(e)],[t.estimatesMissing,Fn(e)],[t.resolutionMissing,to(e,n)],[t.reviewerMissing,Zc(e)],[t.riskMissing,ed(e)],[t.confidenceMissing,td(e)],[t.sprintMissing,nd(e)],[t.releaseMissing,rd(e)]].every(([i,o])=>i!==!0||o)}function od(e,t){return Tn(e)||Fn(e)||to(e,t)}function It(e,t,n){return Ke(t)?!(!id(e,t,n)||t.metadataMissing&&!od(e,n)):!0}var Rn=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function sd(e,t){switch(t){case"acceptance_criteria":return!Tn(e);case"estimated_minutes":return!Fn(e);case"resolution":return $(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return $(e.parent)!==void 0}}function ad(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function cd(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Ji(){let e={};for(let t of Rn)e[t]={present:0,applicable:0,percent:100};return e}function Zi(e,t,n){for(let r of Rn){if(!ad(t,r,n))continue;let i=e[r];i.applicable+=1,sd(t,r)&&(i.present+=1)}}function eo(e){for(let t of Rn){let n=e[t];n.percent=cd(n.present,n.applicable)}}function Pg(e,t){let n=Ji(),r={};for(let i of e){Zi(n,i,t);let o=r[i.type]??(r[i.type]=Ji());Zi(o,i,t)}eo(n);for(let i of Object.values(r))eo(i);return{overall:n,by_type:r}}var dd={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function ud(e){return dd[e]}function ld(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function fd(e,t,n){switch(t){case"assignee":return[$(e.assignee)??null];case"parent":return[$(e.parent)??null];case"type":return[$(e.type)??null];case"status":return[$(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 jg(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 fd(a,t,r)){let l=c??"\0empty",u=i.get(l);u||(u={label:c??ud(t),key:c,buckets:ld(),total:0},i.set(l,u)),u.buckets[d]+=1,u.total+=1}}let s=[...i.values()].sort((a,d)=>d.total!==a.total?d.total-a.total:a.key===null?1:d.key===null?-1:a.label.localeCompare(d.label));return{dimension:t,rows:s,total_items:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var Re=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function pe(e){return Array.isArray(e)&&e.length>0}function md(e){return typeof e=="string"&&e.trim().length>0}function pd(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 ro(e,t){switch(t){case"notes":return pe(e.notes);case"learnings":return pe(e.learnings);case"files":return pe(e.files);case"docs":return pe(e.docs);case"tests":return pe(e.tests);case"comments":return pe(e.comments);case"deps":return pe(e.dependencies);case"body":return md(e.body);case"linked_command":return pd(e.tests)}}function Tt(e){return Re.some(t=>e[t]!==void 0)}function Ft(e,t){for(let n of Re){let r=t[n];if(r===void 0)continue;let i=ro(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function io(e){return Re.some(t=>t!=="body"&&e[t]!==void 0)}function oo(e){return e.body!==void 0}function no(e,t){return t===0?100:Math.round(e/t*1e3)/10}function hd(){let e={};for(let t of Re)e[t]={present:0,total:0,percent:100};return e}function Bg(e){let t=hd(),n=e.length;for(let s of e)for(let a of Re)ro(s,a)&&(t[a].present+=1);for(let s of Re)t[s].total=n,t[s].percent=no(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:no(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]="67c5ff91-1c04-5506-ae5b-32f6552f1d07")}catch{}})();var Rt=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}),so=[{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"}],qe=e=>{let t=so.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(so.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},ao=["priority","deadline","updated_at","created_at","title","parent"],co=["asc","desc"],mo=new Set(hi);function gd(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 yd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var _d=[{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"}],wd=[{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 po(e,t){for(let n of _d)t[n.key]===!0&&(e[n.summaryKey]=!0)}function ho(e,t){for(let n of wd)t[n.key]===!0&&(e[n.summaryKey]=!0)}function An(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 ze(e){let t={};return po(t,e),t}function We(e){let t={};return ho(t,e),t}var bd=[{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"}],vd=[{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"}],kd=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Sd="-7d";function go(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"),An(d,n,bd),_o(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),ho(d,n),po(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),yd(a)&&(d.runtime_filters=a),d}function Mn(e,t,n){let r=H(e.status,n),i=H(t.status,n);if(r!==i)return r?1:-1;let o=e.priority-t.priority;if(o!==0)return o;let s=S(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function Ed(e,t){return[...e].sort((n,r)=>Mn(n,r,t))}function uo(e,t){if(e!==void 0)return K(e,new Date,t)}function He(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return K(n,new Date,t)}function yo(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?He(Sd,"recent"):He(e.updatedAfter,"updated-after")}function _o(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function wo(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 Dn(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 bo(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 vo(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,i=e.full===!0,o=bo(e.fields);if(Number(n)+Number(r)+Number(i)+ +(o!==void 0)>1)throw new p("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});return i?{mode:"full",fields:[]}:r?{mode:"brief",fields:[...sn]}:n?{mode:"compact",fields:[...on]}:o?{mode:"fields",fields:[...new Set(o.map(a=>de(a)))]}:{mode:"full",fields:[]}}function de(e){return e.startsWith("item.")?e.slice(5):e}function xd(e,t,n){if(e.mode!=="fields")return;let r=an(t),i=new Set(r.map(s=>de(s))),o=e.fields.filter(s=>!i.has(de(s)));if(o.length>0)throw new p(`Unknown list --fields value(s): ${o.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"],recovery:{allowed_values:r,suggested_retry:`pm ${n} --fields id,title,status --limit 10`,suggested_retry_args:[n,"--fields","id,title,status","--limit","10"]}})}var Cd=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function ko(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Cd.get(t);if(n)return n;if(!ao.includes(t))throw new p(`Sort field must be one of ${ao.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function So(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!co.includes(t))throw new p(`Sort order must be one of ${co.join("|")}`,m.USAGE);return t}function Id(e){return U(e,"--tree-depth")}function Eo(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 lo(e,t){return Ce(e,t,{strict:!0})}function xo(e){return V(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Td(e,t,n){let r=xo(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 Fd(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 Rd(e,t,n,r){let i=V(t.assignee,{label:"--assignee"}),o=Eo(t.assigneeFilter);Fd(i,o);let s=Rt(t),a=qe(t);return{idsFilter:wo(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Et(t.type,n),tagFilters:xo(t.tag),priorityFilter:xt(t.priority),deadlineBefore:uo(t.deadlineBefore,"deadline-before"),deadlineAfter:uo(t.deadlineAfter,"deadline-after"),updatedAfter:yo(t),updatedBefore:He(t.updatedBefore,"updated-before"),createdAfter:He(t.createdAfter,"created-after"),createdBefore:He(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:V(t.sprint,{label:"--sprint"}),releaseFilter:V(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:Ke(s),lifecycleClassifier:Ct(r),contentFieldFilters:a,contentFiltersActive:Tt(a)}}function Ad(e,t,n){return Md(e,t,n)&&Dd(e,t)&&Ld(e,t)&&Od(e,t)}function Md(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&H(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 Dd(e,t){return ft(e,t)}function Ld(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 Od(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 $d(e,t,n,r){return!(!Ad(e,t,n)||t.missingMetadataActive&&!It(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Ft(e,t.contentFieldFilters)||!Te(e,r))}function Co(e,t,n,r,i,o){let s=Rd(t,n,r,i);return e.filter(a=>$d(a,s,i,o))}function Ge(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Io(e,t,n){let r=e,i=typeof r.title=="string"?r.title:"",o=Ge(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 To(e,t,n){let r=new Map,i=new Map;for(let c of e){r.set(c.id,c);let l=Ge(c.parent);if(!l)continue;let u=i.get(l);u?u.push(c):i.set(l,[c])}let o=t?[...i.get(t)??[]]:e.filter(c=>{let l=Ge(c.parent);return!l||!r.has(l)}),s=[],a=new Set,d=(c,l)=>{if(a.has(c.id))return;a.add(c.id);let u=i.get(c.id)??[];if(s.push(Io(c,l,u.length)),!(n!==void 0&&l>=n))for(let f of u)d(f,l+1)};for(let c of o)d(c,0);return s}function Fo(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function Ro(e,t){return e===t?0:e===null?1:t===null?-1:S(e,t)}function Ao(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return Ro(e.deadline??null,t.deadline??null);case"updated_at":return S(e.updated_at,t.updated_at);case"created_at":return S(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Fo(e.parent??null,t.parent??null);default:return 0}}function Mo(e,t,n,r){return t?[...e].sort((i,o)=>{let s=Ao(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=Mn(i,o,r);return n==="desc"?-a:a}):Ed(e,r)}function Do(e,t,n=!1){let r=de(t.trim());if(r.length===0)return null;let i=e;return n&&r==="title"&&typeof i.tree_title=="string"?i.tree_title:Object.prototype.hasOwnProperty.call(i,r)?i[r]??null:null}function Ln(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=Do(r,o,n);return i})}function Lo(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Oo(e,t){if(e.noTruncate!==!0)return U(e.limit)??(t>=1e4?20:void 0)}function Nd(e,t,n){return t.after===void 0?Dn(t.offset)??0:ut(e,t.after,n,r=>r.id)}function $o(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function Pd(e,t){let n=C(process.cwd(),t.path);if(!await D(N(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await R(n),i=P(r.schema),o=q(r.schema),s=e.projectionCommand??"list",a=vo(e,s);return xd(a,Lo(o.definitions),s),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:Ie(e,o,"list"),typeRegistry:L(r,F()),projection:a}}async function jd(e,t,n){let r=t.projection.fields.some(d=>de(d)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(d=>mo.has(de(d))),o=qe(e),s=io(o),a=oo(o);return e.includeBody||r||a?await wi(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await gt(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await ce(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function Ud(e){let t=ko(e.sort),n=So(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?Id(e.treeDepth):void 0,parentRoot:r?Ge(e.parent):void 0}}function Bd(e,t,n){let r=lo(t.status,n),i=r??lo(e,n),o=Ei(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 Kd(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=Oo(t,e.length),s=Nd(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),d=Ln(a,n,r),c=e.length,l=a.length>0&&s+a.length<c,u=l&&a.length>0?Oe(i,a[a.length-1].id,s+a.length-1):void 0;return{projected:d,totalMatched:c,pageExtras:$o(o,l,u)}}function No(e,t,n){return ke("list",{status:e,options:ve(t,jr),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function Hd(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","dependencyBlocked","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),s=[n.projection.mode==="full",n.projection.fields.some(y=>{let g=de(y);return g==="body"||mo.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 xe(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!d)return null;let c=U(t.limit),l=Dn(t.offset)??0,u=await pi({pmRoot:n.pmRoot,expectedSourceCursor:d.source_cursor,query:{statuses:r.resolvedStatus,excludeStatuses:r.resolvedStatus===void 0&&r.effectiveOptions.excludeTerminal===!0?[...n.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...n.statusRegistry.terminal_statuses],limit:c,offset:l}});if(!u)return null;let f=u.items.length>0&&l+u.items.length<u.total,h=f?Oe(No(r.filtersStatus,t,i),u.items.at(-1).id,l+u.items.length-1):void 0;return{projected:Ln(u.items,n.projection,!1),totalMatched:u.total,pageExtras:$o(c,f,h)}}function Gd(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:i,treeDepth:o,sortField:s,sortOrder:a,runtimeFieldFilters:d}=e,c={};t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency");let l=n;for(let u of vd){let f=l[u.optionKey];f!=null&&(c[u.summaryKey]=f)}for(let u of kd)l[u.key]===!0&&(c[u.summaryKey]=!0);return Object.assign(c,We(n),ze(n)),_o(c,n),r&&(c.no_truncate=!0),n.strictRead===!0&&(c.strict_read=!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 ne(e,t,n){let r=await Pd(t,n),i=[],o=Ud(t),s=Bd(e,t,r.statusRegistry),a=t.noTruncate===!0,d=await Hd({options:t,runtime:r,statusSelection:s,ordering:o}),c=d;if(!c){let g=await jd(t,r,i);Td(g,t.tag,i);let v=Co(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),_=t.dependencyBlocked===!0?(()=>{let E=_t(g,r.statusRegistry);return v.filter(T=>E.has(T.id.trim().toLowerCase()))})():v,w=Mo(_,o.sortField,o.sortOrder,r.statusRegistry),b=o.treeEnabled?To(w,o.parentRoot,o.treeDepth):w;c=Kd(b,t,r.projection,o.treeEnabled,No(s.filtersStatus,t,o))}let l=A(),u=[...new Set(i)].sort((g,v)=>g.localeCompare(v)),f=gd(u,d!==null,t.strictRead===!0),h=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let g=go({filtersStatus:s.filtersStatus,options:t,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:c.projected,count:c.projected.length,total:c.totalMatched,...c.pageExtras,completeness:f,filters:g,projection:{mode:"compact",fields:h},...u.length>0?{warnings:u}:{}}}return{items:c.projected,count:c.projected.length,total:c.totalMatched,...c.pageExtras,completeness:f,filters:Gd({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:h},sorting:{sort:o.sortField??"default",order:o.sortField?o.sortOrder:"asc"},now:l,...u.length>0?{warnings:u}:{}}}var py={applyFilters:Co,buildCompactListFilterSummary:go,buildContentFilterEcho:ze,buildGovernanceMissingFilterEcho:We,resolveContentFieldFilters:qe,resolveMissingMetadataFilters:Rt,compareBySortField:Ao,compareDefaultSort:Mn,compareNullableString:Fo,compareNullableTimestamp:Ro,normalizeProjectionField:de,parseAssigneeFilter:Eo,parseFieldSelectors:bo,parseIdsFilter:wo,parseOffset:Dn,parseProjectionConfig:vo,resolveListUpdatedAfter:yo,resolveListPageLimit:Oo,parseSortField:ko,parseSortOrder:So,orderItemsAsTree:To,projectListItems:Ln,readListFieldValue:Do,runtimeMetadataKeysForProjection:Lo,sortItems:Mo,trimNonEmpty:Ge,withTreeMetadata:Io};(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 qd=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],zd=["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 Wd(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function yy(e,t,n={}){let r=n.includePagination!==!1;return[t,...qd.map(o=>e?.[o]),...r?[e?.limit,e?.offset]:[]].some(Wd)||zd.some(o=>e?.[o]===!0)}function Po(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 jo=["parent","type","priority","status","assignee","tags","sprint","release"];function Bo(e,t){let n=Ce(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function Ko(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 Ho(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=Ai(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(!jo.includes(r))throw new p(`Aggregate group fields must be one of ${jo.join("|")}; received "${r}"`,m.USAGE);return n}function Go(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 qo(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 Go(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function zo(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 Wo(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var Vd={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function Uo(e,t){return t==null||t===""?Vd[e]:String(t)}function Yd(e,t){return e.length===1?Uo(e[0],t[e[0]]):e.map(n=>`${n}=${Uo(n,t[n])}`).join(" | ")}function Vo(e,t,n){for(let r of n){let i=zo(e.group[r],t.group[r]);if(i!==0)return i}return 0}function Yo(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 Xo(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function On(e,t,n){let r=M(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 Xd(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 Qd(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function Jd(e){e.accumulator.row.count+=1,e.includeCompletion&&On(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&Qd(e.accumulator,e.numericValue)}function Zd(e,t){let n={};for(let r of e)n[r]=qo(r,t);return n}function eu(e,t,n,r){let i={...e.row,group_label:Yd(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=Xo(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 tu(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 ky(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 R(n),i=P(r.schema),o=["estimate","estimated_minutes","priority",...q(r.schema).definitions.filter(_=>_.type==="number").map(_=>_.metadata_key)],s=Ho(e.groupBy),a=Bo(e.status,i),d=Ko(e,[...new Set(o)].sort((_,w)=>_.localeCompare(w))),c=e.completion===!0,l=e.includeUnparented===!0,u=await ne(void 0,{...Po(e),status:e.status},t),f=new Map,h=0,y=0;for(let _ of u.items){let w=_,b=Zd(s,w);if(s.includes("parent")&&b.parent===null&&!l){h+=1;continue}let E=Wo(s,b),T=f.get(E),I=d===null?null:Yo(w,d.field);if(T)Jd({accumulator:T,item:w,statusRegistry:i,includeCompletion:c,numericAggregation:d,numericValue:I});else{let x=Xd(b,I);c&&On(x,w.status,i),f.set(E,x)}y+=1}let g=[...f.values()].map(_=>eu(_,s,c,d)).sort((_,w)=>Vo(_,w,s)),v=u.warnings&&u.warnings.length>0?u.warnings:void 0;return{groups:g,count:g.length,totals:{items_considered:u.items.length,items_grouped:y,items_skipped_unparented:h},filters:tu({groupBy:s,includeCompletion:c,includeUnparented:l,status:a,options:e,numericAggregation:d}),now:A(),...v?{warnings:v}:{}}}var Sy={buildGroupKey:Wo,compareAggregateRows:Vo,compareNullableGroupValue:zo,completionPct:Xo,normalizeTagGroupValue:Go,parseGroupBy:Ho,parseNumericAggregation:Ko,parseStatus:Bo,readNumericAggregateValue:Yo,resolveGroupValue:qo,updateCompletionCounts:On};import{encode as nu}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 $n=["agenda","day","week","month"],Nn=["markdown","toon","json"],ru=["sun","mon","tue","wed","thu","fri","sat"],iu=365,ou=365,Zo=28,su=1e3;function Pn(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 au(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 es(e,t){let n;for(let r of t){let i=Fr(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function cu(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!$n.includes(t)){let n=es(t,$n);throw new p(`Calendar view must be one of ${$n.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function du(e){if(!e)return;let t=e.trim().toLowerCase();if(!Nn.includes(t)){let n=es(t,Nn);throw new p(`Calendar format must be one of ${Nn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function Fy(e,t){let n=du(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 uu(e,t){if(e===void 0)return;let n=M(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 lu(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 At(e){return new Date(e).toISOString().slice(0,10)}function ts(e,t){if(!t||t==="UTC")return At(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 At(e)}function Kn(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function re(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function ns(e){let t=new Date(Kn(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return re(t.toISOString(),r)}function fu(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function mu(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function pu(e,t){return S(e,t)>=0?e:t}function Qo(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function Jo(e,t){e.set(t,(e.get(t)??0)+1)}function hu(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)=>be(r)-be(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 rs(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 is(e){return ru[new Date(e).getUTCDay()]}function gu(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function yu(e){let t=new Set;for(let n of e??[]){let r=gu(n);r&&t.add(r)}return t}function _u(e,t,n,r,i){let o=e??re(n,-(r??ou)),s=t??re(e??n,i??iu);return{start:o,end:S(s,o)>0?s:re(o,1)}}function wu(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[is(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??su,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:yu(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)=>be(s)-be(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function Mt(e,t){return S(t,e.startAt)<0?"continue":e.until&&S(t,e.until)>0||S(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,S(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function Dt(e,t){let n=is(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function bu(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(Dt(e,t)&&Mt(e,t)==="stop");n+=1)t=re(t,e.interval);return e.occurrences}function vu(e,t,n){let r=be(n),i=re(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 ku(e){let t=ns(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=re(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=vu(e,r,i);if(Dt(e,o)&&Mt(e,o)==="stop")return e.occurrences}}return e.occurrences}function Su(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=rs(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!Dt(e,s))&&Mt(e,s)==="stop")return e.occurrences}}return e.occurrences}function Eu(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=rs(i,n,o,e.startDate);if(!(!s||!Dt(e,s))&&Mt(e,s)==="stop")return e.occurrences}}return e.occurrences}function xu(e,t,n,r){let i=wu(e,t,n,r);return t.freq==="daily"?bu(i):t.freq==="weekly"?ku(i):t.freq==="monthly"?Su(i):Eu(i)}function os(e){return[...e].sort((t,n)=>{let r=S(t.at,n.at);if(r!==0)return r;let i=t.item_priority-n.item_priority;if(i!==0)return i;let o=t.item_id.localeCompare(n.item_id);if(o!==0)return o;let s=t.kind.localeCompare(n.kind);if(s!==0)return s;let a=String(t.event_title).localeCompare(String(n.event_title));return a!==0?a:String(t.reminder_text).localeCompare(String(n.reminder_text))})}function Hn(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 Cu(e){return e.deadline?{at:e.deadline,date:At(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,...Hn(e),item_deadline:e.deadline}:null}function Iu(e){return(e.reminders??[]).map(t=>({at:t.at,date:At(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,...Hn(e)}))}function Tu(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Fu(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Ru(e,t,n,r){let i=hu(t.recurrence),o=Tu(t.start_at,t.end_at);return(t.recurrence?xu(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):ts(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Fu(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,...Hn(e)}))}function Au(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?Cu(o):null;s&&i.push(s),n.has("reminders")&&i.push(...Iu(o));for(let a of n.has("events")?o.events??[]:[])i.push(...Ru(o,a,t,r))}return os(i)}function Mu(e,t,n,r,i){let o=qi(t.type,n),s=t.tag?.trim().toLowerCase(),a=wt(t.priority),d=uu(t.status,r),c=t.assignee?.trim(),l=lu(t.assigneeFilter),u=t.sprint?.trim(),f=t.release?.trim();if(c&&(c.toLowerCase()==="none"||c.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(c!==void 0&&l==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE);return e.filter(h=>Du(h,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:d,assigneeFilter:c,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:i}))}function Du(e,t){return Lu(e,t)&&Ou(e,t)&&Te(e,t.runtimeFieldFilters)}function Lu(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 Ou(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 $u(e,t,n){return!(t&&S(e.at,t)<0||n&&S(e.at,n)>=0)}function jn(e,t,n){return e.trim().toLowerCase()==="today"?Kn(t):K(e,new Date(t),n)}function Nu(e,t,n){let r=t.date?jn(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?jn(t.from,n,"--from"):void 0,a=t.to?jn(t.to,n,"--to"):void 0;if(s&&a&&S(s,a)>=0)throw new p("Calendar --from must be before --to",m.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new p("--from and --to are only supported for --view agenda",m.USAGE);if(e==="agenda")return Pu(r,t,n,i,o,s,a);if(e==="day"){let c=Kn(r);return Un(r,n,i,o,c,re(c,1))}if(e==="week"){let c=ns(r);return Un(r,n,i,o,c,re(c,7))}let d=fu(r);return Un(r,n,i,o,d,mu(r))}function Pu(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 Un(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:pu(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function ju(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:os(r)}))}function Uu(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),Jo(n,d.item_type),Jo(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:Qo(n),by_status:Qo(r),recurring_events:a}}function Bu(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function ss(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 Bn(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Ku(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===ts(e.event_end,e.event_timezone)?ss(e.event_end,e.event_timezone):e.event_end:null}function Hu(e){let t=`${ss(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=Ku(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 Ry(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Bu(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: ${Bn(e.summary.by_kind)}`),t.push(`- by-type: ${Bn(e.summary.by_type)}`),t.push(`- by-status: ${Bn(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(`- ${Hu(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 Gu(t.join(`
3
- `))}function Ay(e){return nu(e)}function Gu(e){let t=e.length;for(;t>0&&e[t-1]===`
4
- `;)t-=1;return e.slice(0,t)}function qu(e){let t=A(),n=cu(e.view),r=Nu(n,e,t),i=U(e.limit),o=au(e.include),s=Pn(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Pn(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),d=Pn(e.occurrenceLimit,"Calendar occurrence limit");if(d!==void 0&&d<1)throw new p("Calendar occurrence limit must be >= 1",m.USAGE);let c=o.has("events")&&!o.has("deadlines")&&!o.has("reminders"),l=e.to!==void 0||s!==void 0||a!==void 0||d!==void 0,u=c&&!l;return{nowValue:t,view:n,rangeBounds:r,limit:i,includeSources:o,occurrenceLimit:d,recurrenceLookaheadDays:u?Zo:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function zu(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${Zo}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Wu(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 Vu(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 as(e,t){let n=C(process.cwd(),t.path);if(!await D(N(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=qu(e),i=await R(n),o=P(i.schema),s=q(i.schema),a=Ie(e,s,"calendar"),d=L(i,F()),c=[];zu(c,r.eventsOnlyCapApplied);let l=await ce(n,i.item_format,d.type_to_folder,c,i.schema),u=Mu(l,e,d,o,a),f=_u(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),y=Au(u,f,r.includeSources,r.occurrenceLimit).filter(w=>$u(w,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?y:y.slice(0,r.limit),v=ju(g),_=[...new Set(c)].sort((w,b)=>w.localeCompare(b));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:Vu(e,r.rangeBounds),filters:Wu(e,a),summary:Uu(g),events:g,days:v,..._.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]="7eefe5f0-364d-559a-b365-0e7d539ee19e")}catch{}})();var Gn=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Yu=Symbol("no-context-author"),Xu=Symbol("no-item-assignee");function cs(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function Qu(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 Ju(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 Zu(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 Lt(e,t,n){return e?.[t]??n}function Ot(e,t){let n=c=>{if(typeof c!="string")return"";try{return K(c,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((c,l)=>{let u=n(c.updated_at),f=n(l.updated_at);return S(f,u)||c.id.localeCompare(l.id)}),i=new Map(r.map((c,l)=>[c.id,l])),o=Math.max(e.length-1,1),s=cs(t.author,Yu),a=M("in_progress",t.statusRegistry),d=Date.parse(t.now);return e.map(c=>{let l=cs(c.assignee,Xu)===s,u=(c.comments?.length??0)+(c.notes?.length??0)+(c.learnings?.length??0);return{id:c.id,item:c,signals:{recency:e.length===1?1:1-i.get(c.id)/o,activity_density:t.activityDensity?.[c.id],graph_proximity:Lt(t.graphProximity,c.id,c.parent?.3:0),claim_focus:Lt(t.claimFocus,c.id,O(c.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:Qu(c.priority,4),risk_pressure:Zu(c.risk),deadline_pressure:Ju(c.deadline,d),knowledge_density:Lt(t.knowledgeDensity,c.id,Math.min(u/5,1)),author_affinity:Lt(t.authorAffinity,c.id,l?1:0),usage_affinity:t.usageAffinity?.[c.id],semantic_similarity:t.semanticSimilarity?.[c.id]}}})}var el="context_relevance",tl={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},nl=new TextEncoder;function rl(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"||!Gn.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 il(e){let t={...tl};for(let[n,r]of Object.entries(e??{}))r!==void 0&&Gn.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 us(e,t={}){rl(e);let n=il(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=Gn.filter(a=>i.has(a)),s=e.map((a,d)=>{let c={structural:e.length===1?1:1-d/r,...a.signals},l={},u=0,f=0;for(let h of o){let y=c[h];if(y===void 0)continue;let g=y*n[h];l[h]=g,u+=g,f+=n[h]}return{...a,baseline_rank:d+1,rank:0,score:f===0?0:u/f,contributions:l}});return s.sort((a,d)=>d.score-a.score||a.baseline_rank-d.baseline_rank),s.forEach((a,d)=>{a.rank=d+1}),{model:"default-weighted-v1",available_signals:o,ranked:s}}async function ol(e,t={}){let n=us(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 $t(e,t,n={}){let r=us(t,n),i=await qr(el,{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 ol(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 sl=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function ds(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function al(e){if(!Number.isFinite(e.actual_tokens)||e.actual_tokens<0||!Number.isFinite(e.token_budget)||e.token_budget<=0)throw new TypeError("Context ranking token counts require actual_tokens >= 0 and token_budget > 0");let t=e.judgments??{},n=e.ranked_ids.map(c=>Math.max(0,t[c]??0)),r=Object.values(t).map(c=>Math.max(0,c)).sort((c,l)=>l-c).slice(0,n.length||1),i=c=>c.reduce((l,u,f)=>l+(2**u-1)/Math.log2(f+2),0),o=i(r),s=n.findIndex(c=>c>0),a=new Set(e.ranked_ids),d=e.actual_tokens<=e.token_budget;return{ndcg:o===0?1:i(n)/o,reciprocal_rank:s<0?0:1/(s+1),required_recall:ds(e.required_ids??[],a),continuity_coverage:ds(e.continuity_ids??[],a),token_budget_adherence:d?1:e.token_budget/e.actual_tokens,within_token_budget:d}}function cl(e){return Math.ceil(nl.encode(JSON.stringify(e)).byteLength/4)}function dl(e){return Math.round(e*1e4)/1e4}function ul(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 ll(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,outputBudget:"unbounded"}):await t.next({...e.options,explainRanking:!0,outputBudget:"unbounded"}),{rankedIds:r,attribution:i}=ul(n,e.surface),o={...n,ranking:void 0},s=cl(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:al({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 fl(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=sl;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,dl(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 $y(e,t,n){let r=[];for(let i of e)r.push(await ll(i,t));return fl(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 ml={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},pl=["identity","summary","full"];function hl(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=pl.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 gl(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=ml[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 yl(e){let t=new Set;for(let n of e){if(hl(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 _l(e,t,n,r,i){let o=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&i()>=r)return{index:o,evaluated:s,timedOut:!0};let d=e[a];if(d.token_costs.identity>t)continue;s+=1;let c=o<0?void 0:e[o],l=n(d)/d.token_costs.identity,u=c===void 0?Number.NEGATIVE_INFINITY:n(c)/c.token_costs.identity;(l>u||l===u&&c!==void 0&&(d.rank<c.rank||d.rank===c.rank&&d.id.localeCompare(c.id)<0))&&(o=a)}return{index:o,evaluated:s,timedOut:!1}}function wl(e){let t=new Set,n=[],r=e.tokenBudget,i=c=>{let l=c.lineage??c.cluster,u=l&&t.has(l)?1-e.redundancyPenalty:1;return Math.max(0,(c.score-e.uncertaintyPenalty*(c.uncertainty??0))*u)},o=c=>{let l=c.token_costs.identity;n.push({...c,projection:"identity",tokens:l,marginal_value:i(c)}),r-=l;let u=c.lineage??c.cluster;u&&t.add(u)};for(let c of e.ordered.filter(l=>l.required))c.token_costs.identity<=r&&o(c);let s=e.ordered.filter(c=>!c.required),a=!0,d=0;for(;s.length>0;){let c=_l(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 bl(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 ls(e,t){let n=gl(t),r=yl(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=wl({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,d=bl(a,s.remaining);a.sort((l,u)=>l.rank-u.rank||l.id.localeCompare(u.id));let c=new Set(a.map(l=>l.id));return{included:a,omitted_ids:r.filter(l=>!c.has(l.id)).map(l=>l.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-d,remaining_tokens:d,complete:s.selectionComplete&&a.length===e.length&&a.every(l=>l.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import{randomUUID as vl}from"node:crypto";import{appendFile as kl,mkdir as Sl,readFile as El,rename as xl,stat as Cl,writeFile as Il}from"node:fs/promises";import fs 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 ms=2048,ps=30,hs=864e5,Tl=262144,Fl="context-usage-ledger",Y=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function gs(e){return fs.join(e,"runtime","context-usage.jsonl")}function Ve(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new Y("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function ys(e){try{let n=(await El(gs(e.pmRoot),"utf8")).split(`
5
- `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??ms,i=e.retentionDays??ps,o=Ve(e).ms-i*hs;return n.filter(s=>Date.parse(s.at)>=o).slice(-r)}catch{return[]}}async function _s(e,t){let n=e.maxEvents??ms,r=e.retentionDays??ps;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new Y("Context usage retention requires positive maxEvents and retentionDays");let i=gs(e.pmRoot),o=fs.dirname(i),s=await mt(e.pmRoot,Fl,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await Sl(o,{recursive:!0}),await kl(i,t.map(l=>`${JSON.stringify(l)}
6
- `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await Cl(i)).size<=Tl)return;let d=await ys(e),c=`${i}.${process.pid}.${vl()}.tmp`;await Il(c,`${d.map(l=>JSON.stringify(l)).join(`
7
- `)}
8
- `,"utf8"),await xl(c,i)}finally{await s()}}async function ws(e,t){await _s(e,[t])}async function Nt(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 Y("Context usage serving requires an author and valid ranked rows");await ws(e,{kind:"serve",at:Ve(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function Hy(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new Y("Context usage touch requires author, itemId, and intent");await ws(e,{kind:"touch",at:Ve(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function bs(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 Y("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new Y("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new Y("Context usage touch requires non-empty itemId");r.add(a)}let i=Ve(e).iso,o=[...r].map(s=>({kind:"touch",at:i,author:t,item_id:s,intent:n}));await _s(e,o)}function Rl(e,t,n,r){return e.find(({entry:i,time:o})=>i.item_id===t&&o>=n&&o-n<=r)?.time}async function Pt(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await ys(e),n=Ve(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new Y("Context usage horizonHours must be positive");let i=e.author.trim(),o=t.filter(u=>u.kind==="touch"&&u.author===i).map(u=>({entry:u,time:Date.parse(u.at)})),s=new Map,a=0,d=0;for(let u of t){if(u.kind!=="serve"||u.author!==i)continue;a+=1;let f=Date.parse(u.at);for(let h of u.rows){if(!h.included)continue;let y=Rl(o,h.id,f,r);if(y===void 0)continue;d+=1;let g=Math.max(0,(n-y)/hs);s.set(h.id,(s.get(h.id)??0)+Math.exp(-g/14))}}let c=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([u,f])=>[u,.05+.95*(c>0?f/c:0)])),positive_judgments:d,serving_events:a}}import Ye from"node:fs/promises";import Xe from"node:path";import{createHash as Al,randomUUID as Ml}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3d0a558b-6a01-5bca-a2f7-21766be6d67c")}catch{}})();var qn=1,zn=1,vs=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Dl={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 jt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ks(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Ll(e){let t={};for(let n of vs){let r=e[n];if(r!==void 0){if(!ks(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Ol(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 $l(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 Nl(e,t){return{...t,activityDensity:t.activityDensity??Ol(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??$l(e)}}function Pl(e){if(!jt(e)||typeof e.id!="string"||!jt(e.signals))return null;let t={},n=new Set(vs);for(let[r,i]of Object.entries(e.signals)){if(!n.has(r)||!ks(i))return null;t[r]=i}return{id:e.id,signals:t}}function jl(e){if(!jt(e)||e.format_version!==qn||e.signal_set_version!==zn||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(Pl);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:qn,signal_set_version:zn,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,i)=>r.id.localeCompare(i.id))}}function Ul(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=Ot(e,Nl(e,t)).map(({id:r,signals:i})=>({id:r,signals:Ll(i)})).sort((r,i)=>r.id.localeCompare(i.id));return Object.freeze({format_version:qn,signal_set_version:zn,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var Wn=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=Xe.resolve(t)}async read(){try{return JSON.parse(await Ye.readFile(this.filePath,"utf8"))}catch(t){if(jt(t)&&at(t))return null;throw t}}async write(t){let n=Xe.dirname(this.filePath);await Ye.mkdir(n,{recursive:!0});let r=Xe.join(n,`.${Xe.basename(this.filePath)}.${Ml()}.tmp`);try{await Ye.writeFile(r,`${JSON.stringify(t)}
9
- `,{encoding:"utf8",flag:"wx"}),await Ye.rename(r,this.filePath)}finally{try{await Ye.rm(r,{force:!0})}catch{}}}},Vn=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],i=null;try{let u=await this.adapter.read();i=jl(u),u!==null&&i===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let o=t.map(u=>u.id).sort((u,f)=>u.localeCompare(f)),s=i?.items.map(u=>u.id)??[],a=i!==null&&i.source_cursor===n.sourceCursor&&i.source===n.source&&s.length===o.length&&s.every((u,f)=>u===o[f]),d;if(a&&i!==null)d=i;else{i!==null&&r.push("context_signal_store_stale"),d=Ul(t,n);try{await this.adapter.write(d)}catch{r.push("context_signal_store_write_failed")}}let c=new Map(d.items.map(u=>[u.id,u.signals])),l=Ot(t,n);return{snapshot:d,candidates:l.map(u=>({...u,signals:{...u.signals,...c.get(u.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r,warning_details:r.map(u=>Dl[u])}}};function Bl(e){let t=Al("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 Ut(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 xe(t.pmRoot),o=t.sourceCursor??i?.source_cursor??Bl(e),s=t.source??(i===null?"scan_fallback":"derived_index");return new Vn(new Wn(Xe.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:o,source:s})}import Kl from"node:path";import{createHash as Hl}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 Ss(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 Gl from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ad77a79d-54da-55f1-8ac8-935366880d90")}catch{}})();var Es=1,ql=1e4,xs=12;function zl(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Wl(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 Vl(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 Yl(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(O(o.status,t.statusRegistry))).map(o=>{let s=Ss(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=zl(a.timestamp),c=`epoch:${d}`,l=i.get(c)??{kind:"epoch",key:d,label:d,items:[]};l.items.push(o),i.set(c,l);let u=Wl(s,r);if(u){let f=`epic:${u.id}`,h=i.get(f)??{kind:"epic",key:u.id,label:u.title,items:[]};h.items.push(o),i.set(f,h)}}return{format_version:Es,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(Vl).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function Xl(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 Ql(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(Xl)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function Jl(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==Es||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(Ql)?t:null}function Zl(e){return`scan:${Hl("sha256").update(Nr(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function ef(e,t,n){return n!==void 0?n:(await xe(t))?.source_cursor??Zl(e)}async function tf(e){try{let t=Jl(JSON.parse(await Gl.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&at(t))}}}async function Bt(e,t){let n=Math.max(1,Math.floor(t.minimumItems??ql));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await ef(e,t.pmRoot,t.sourceCursor),i=Kl.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await tf(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=Yl(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await Z(i,`${JSON.stringify(d)}
10
- `)}catch{o.push("workspace_memory_write_failed")}return{snapshot:d,cache_status:"rebuilt",warnings:o}}function nf(e,t,n=xs){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 Cs(e,t,n=xs){if(e.snapshot===null)return;let r=nf(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 rf(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 Is(e,t,n=5){let r=rf(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",matches:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="97c1e310-3cd9-5846-a54c-d019b0351541")}catch{}})();var Ts=16;async function Fs(e,t,n){let r=L(t,F()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<Ts;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let d=await z(e,s,t.id_prefix,t.item_format,r);if(!d)break;let c=await W(d,{schema:t.schema});i.push(c.document.metadata.id),s=c.document.metadata.parent}return i}async function f_(e){await Vr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Fs(e.pmRoot,e.settings,e.itemId)})}async function m_(e){await Yr(e)}async function p_(e){await Xr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Fs(e.pmRoot,e.settings,e.itemId)}:{}})}var h_={lineage_depth:Ts,active_items:64,evidence_rows:32};function Rs(e){if(!e)return;let t={};for(let n of e.active_item_ids)t[n]=1;e.focused_item_id&&(t[e.focused_item_id]=1);for(let n of e.evidence){let r=/^lineage:(.+)$/u.exec(n)?.[1];r&&t[r]===void 0&&(t[r]=.75)}return Object.keys(t).length>0?t:void 0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ee5279f2-7489-59fb-8f96-f2e035434cce")}catch{}})();var of=["markdown","toon","json","ndjson"],Je=new Set(["Epic","Feature"]),$s=10,Ns=1e4,Ps=["hierarchy","activity","progress","recently_created","unparented","workload"],sf=[...Ps,"blockers","files","staleness","tests"],af=/^(\d{4})-(\d{2})-(\d{2})/,cf=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,df=/^(\d{4})(\d{2})(\d{2})$/,uf=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function lf(e){if(!e)return;let t=e.trim().toLowerCase();if(!of.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var As=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 ff(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!As.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[...As].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 Qe(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function L_(e,t){let n=lf(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 mf(e,t){return U(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:$s)}function Qn(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 pf(e,t){return t>=Ns&&e===Number.MAX_SAFE_INTEGER?$s:e}function hf(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!nn.includes(n))throw new p(`Context --depth must be one of ${nn.join("|")}`,m.USAGE);return n}function gf(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!st.includes(s))throw new p(`Context --section must be one of ${st.join("|")}`,m.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...st]:(t==="deep"?sf:Ps).filter(i=>n.sections[i])}function yf(e,t){return e?U(e,"--activity-limit")??t.activity_limit:t.activity_limit}function _f(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 Ms(e,t){let n=O(e,t),r=M("in_progress",t),i=M("open",t),o=M("blocked",t),s=M("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 Ze(e,t){let n=M("closed",t);return O(e,t)===n}function Jn(e,t){let n=M("in_progress",t);return O(e,t)===n}function js(e,t){let n=M("open",t);return O(e,t)===n}function wf(e,t){return t.blocked_statuses.has(O(e,t))}var bf=["compact","brief","fields","includeBody","include_body","parent"];function vf(e){let t={...e};for(let n of bf)delete t[n];return t}function Zn(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=Ae(e),o=et(r.id,i);return{ids:new Set([r.id,...o.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function kf(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 Sf(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Ef(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:S(n,r)}function xf(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Cf(e){let t=af.exec(e)??cf.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<=xf(n,r-1)}function If(e){let t=df.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=uf.exec(e);if(n){let[,r,i,o,s,a,d,c]=n,l=d?`:${d}`:"",u=c&&c.length===5&&c!=="Z"?`${c.slice(0,3)}:${c.slice(3)}`:c??"";return`${r}-${i}-${o}T${s}:${a}${l}${u}`}return e}function Us(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Cf(t))return Number.NaN;let n=Date.parse(If(t));return Number.isFinite(n)?n:Number.NaN}function Xn(e){let t=Us(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Tf(e){let t=Us(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function er(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function he(e,t,n){let r=Ms(e.status,n)-Ms(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=Sf(e.order,t.order);if(o!==0)return o;let s=Ef(e.deadline,t.deadline);if(s!==0)return s;let a=S(Xn(t.updated_at),Xn(e.updated_at)),d=e.id.localeCompare(t.id);return a!==0?a:d}function Yn(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function tr(e,t,n=new Set,r="context"){return ls(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:Yn({id:i.id,title:i.item.title}),summary:Yn({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:Yn(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function nr(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function rr(e,t,n){let r=n===void 0?e.ranked:e.ranked.filter(i=>n.has(i.id));return{model:e.model,available_signals:e.available_signals,items:r.map(i=>({id:i.id,rank:i.rank,baseline_rank:i.baseline_rank,score:i.score,contributions:i.contributions})),candidate_count:e.ranked.length,omitted_count:e.ranked.length-r.length,...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 Bs(e,t){return t>0?Math.round(e/t*100):0}function Ae(e){let t=new Map;for(let n of e){let r=er(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function tt(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:er(e.parent)};if(t&&n){let i=et(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>Ze(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=Bs(s,o)}}return r}function Ff(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 Kt(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Rf(e,t){return e.filter(n=>!t.terminal_statuses.has(O(n.item_status,t)))}function Af(e,t,n,r){let i=new Map;for(let d of e)i.set(d.id,d);let o=Ae(e),s=new Set(t.filter(d=>Je.has(d.type)).map(d=>d.id)),a=[];for(let d of s){let c=i.get(d);if(!c)continue;let l=et(d,o),u=o.get(d)??[],f=0,h=0,y=0,g=0;for(let _ of l)Ze(_.status,n)?f++:Jn(_.status,n)?y++:wf(_.status,n)?g++:js(_.status,n)&&h++;let v=u.sort((_,w)=>he(_,w,n)).slice(0,r).map(_=>{let w=et(_.id,o),b=w.filter(E=>Ze(E.status,n)).length;return{id:_.id,title:_.title,type:_.type,status:_.status,children_total:w.length,children_closed:b}});a.push({id:c.id,title:c.title,type:c.type,status:c.status,children_total:l.length,children_closed:f,children_open:h,children_in_progress:y,children_blocked:g,children:v})}return a.sort((d,c)=>{let l=i.get(d.id),u=i.get(c.id);return he(l,u,n)}).slice(0,r)}function et(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 Mf(e,t){return(await Xi({compact:!0,limit:String(e)},t)).compact_activity??[]}function Df(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=>Je.has(d.type)),a=[];for(let d of s){let c=et(d.id,o),l=c.length;if(l===0)continue;let u=0,f=0,h=0,y=0;for(let g of c)Ze(g.status,r)?u++:n.has(g.id.trim().toLowerCase())?y++:Jn(g.status,r)?h++:js(g.status,r)&&f++;a.push({id:d.id,title:d.title,type:d.type,total:l,closed:u,open:f,in_progress:h,blocked:y,completion_pct:Bs(u,l)})}return a.sort((d,c)=>d.completion_pct-c.completion_pct).slice(0,i)}function Lf(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=wn(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 Of(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 $f(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=>Jn(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function Nf(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 Pf(e,t,n,r){return e.map(i=>({item:i,sortKey:Xn(i.created_at)})).sort((i,o)=>{let s=S(o.sortKey,i.sortKey);return s!==0?s:i.item.id.localeCompare(o.item.id)}).slice(0,r).map(({item:i})=>({...tt(i,t,n),created_at:i.created_at}))}function jf(e,t,n,r){return e.filter(i=>!er(i.parent)&&!Je.has(i.type)).sort((i,o)=>he(i,o,t)).slice(0,r).map(i=>tt(i,t,n))}function Uf(e){let t=0,n=0,r=0,i=0,o=0,s=[];for(let a of e){(a.tests??[]).length>0&&t++;let d=a.test_runs??[];if(d.length>0){n++;let c=!1;for(let l of d)r+=l.passed??0,i+=l.failed??0,o+=l.skipped??0,(l.failed??0)>0&&(c=!0);c&&s.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:i,skipped:o},items_failing:s.sort()}}function Ds(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Ks(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 Bf(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function Kf(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`${Ds(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Ds(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 Ls(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 Hf(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 Gf(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(`- ${Kf(n)}`);e.push("")}function qf(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 zf(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 Wf(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)}`:`- ${Tf(i.created_at)} ${Ks(i)}`);e.push("")}}function Vf(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 Yf(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 Xf(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 Qf(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 Jf(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 Zf(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 em(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 tm(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 O_(e){let t=[],n=e.focus_fields,r=o=>n?Bf(o,n):Ks(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(""),Ls(t,"High-level focus",e.high_level,"No high-level active items.",r),Ls(t,"Low-level focus",e.low_level,"No low-level active items.",r),Hf(t,e,r),Gf(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 qf(t,e),zf(t,e),Wf(t,e,n,r),Vf(t,e,r),Yf(t,e),Xf(t,e),Qf(t,e),Jf(t,e),Zf(t,e),em(t,e),tm(t,e),t.join(`
11
- `)}async function nm(e,t){let n=C(process.cwd(),t.path),r=await R(n),i=r.context??Ar.context,o=P(r.schema),s=hf(e.depth,i),a=mf(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:gf(e.section,s,i),activityLimit:yf(e.activityLimit,i),staleThresholdDays:_f(e.staleThreshold,i),parentScope:kf(e.parent),focusFields:ff(e.fields),baseListOptions:vf(e)}}function ir(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function rm(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function im(e,t){let n=ir(t.sectionsIncluded),r=await ne(void 0,rm(t.baseListOptions,{excludeTerminal:!1}),e),i=r.items,o=i.filter(d=>!H(d.status,t.statusRegistry)),s=n||t.parentScope!==void 0?i:o,a=om(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 om(e,t){if(e===void 0)return;let n=Zn(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}async function sm(e,t,n,r,i,o,s,a,d,c,l,u,f,h,y){let g=[...e].sort((k,we)=>he(k,we,i)),v=await Pt({pmRoot:f,author:d,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),_=await Ut(g,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:d,usageAffinity:v.affinity,claimFocus:y}),w=await $t("context",_.candidates),b=w.ranked.map(k=>k.item),E=i.active_statuses,T=b.filter(k=>E.has(O(k.status,i))),I=u?ut(T,c,l,k=>k.id):0,x=u?T.slice(I,I+s):T,ue=u&&x.length>0&&I+x.length<T.length,ye=ue&&x.length>0?Oe(l,x[x.length-1].id,I+x.length-1):void 0,oe=b.filter(k=>r.has(k.id.trim().toLowerCase())),B=new Set([...x.map(k=>k.id),...oe.slice(0,s).map(k=>k.id)]),se=tr({...w,ranked:w.ranked.filter(k=>B.has(k.id))},h,new Set(Object.entries(y??{}).filter(([,k])=>k>=1).map(([k])=>k))),_e=se.included.map(k=>k.item),le=_e.filter(k=>E.has(O(k.status,i))),ot=_e.filter(k=>r.has(k.id.trim().toLowerCase())),Zt=Ae(t),Q=ir(o)?Zt:void 0,J=new Map(n.map(k=>[k.id.trim().toLowerCase(),k])),en=k=>{let we=tt(k,i,Q);return r.has(k.id.trim().toLowerCase())&&(we.blocked=!0,we.blocker_ids=wn(k,J,i).filter(tn=>!tn.resolved).map(tn=>tn.id)),we},ec=le.filter(k=>Je.has(k.type)).slice(0,u?x.length:s).map(en),tc=le.filter(k=>!Je.has(k.type)).slice(0,u?x.length:s).map(en),Tr=T.length===0;return{activeItems:le,blockedItems:ot,highLevel:ec,lowLevel:tc,blockedFallback:Tr?ot.slice(0,s).map(en):[],blockedFallbackUsed:Tr,ranking:w,packing:se,featureStore:_,pageExtras:{...u?{applied_limit:s}:{},...ue?{has_more:!0,truncated:!0}:{},...ye?{next_cursor:ye}:{}}}}function am(e){return ke("context",ve(e,Ur))}function cm(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Ns}async function dm(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await as(i,e),s=n===void 0?o.events:o.events.filter(c=>n.has(c.item_id.trim().toLowerCase())),a=Rf(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:Ff(a)}}function Os(e,t,n){let r=String(t);return e.filter(i=>O(i.status,n)===r).length}async function um(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,d=Ae(n),c=n.filter(u=>!H(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?Af(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await Mf(t.activityLimit,a):void 0,progress:l("progress")?Df(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?Lf(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?Pf(c,t.statusRegistry,d,t.limit):void 0,unparented:l("unparented")?jf(c,t.statusRegistry,d,t.limit):void 0,filesSection:l("files")?Of(o.activeItems,t.limit):void 0,workload:l("workload")?$f(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?Nf(c,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?Uf(o.activeItems):void 0}}function lm(e,t,n){if(!e)return{};let r=M("canceled",n);return{total_items:t.length,closed:t.filter(i=>Ze(i.status,n)).length,canceled:t.filter(i=>O(i.status,n)===r).length}}function fm(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 mm(e,t){t&&(e.focus_fields=t,e.high_level=Qe(e.high_level,t),e.low_level=Qe(e.low_level,t),e.blocked_fallback=Qe(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Qe(e.recently_created,t)),e.unparented&&(e.unparented=Qe(e.unparented,t)))}function pm(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 hm(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 gm(e,t,n,r){try{let i=new Set(t.packing.included.map(o=>o.id));await Nt({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=Kt(e.warnings,["context_usage_feedback_write_failed"])}}async function ym(e,t,n){if(e)return{};let i=(await Pr({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 _m(e,t){let n=Qr(),r=await zr(e),i=n.instance||Wr(t);return Rs(r.semantic_attribution?.[i])}async function $_(e,t){let n=C(process.cwd(),t.path),r=await nm(e,t),i=await im(t,r),o=pf(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:Qn(e.tokenBudget,Math.max(256,o*160))},a=ee(void 0,s.settings.author_default),d=await _m(n,a),c=ym(e.noExtensionHealth===!0,n,s.settings),l=_t(i.fullCorpus,s.statusRegistry),u=await sm(i.listedItemMetadata,i.allItems,i.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,A(),a,e.after,am(e),cm(e,i.fullCorpus.length),n,s.tokenBudget,d),f=await dm(t,s,i.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),h=await Bt(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),y=Kt(i.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],h.warnings),g=Os(u.activeItems,M("in_progress",s.statusRegistry),s.statusRegistry),v=Os(u.activeItems,M("open",s.statusRegistry),s.statusRegistry),_=await um({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),w=lm(ir(s.sectionsIncluded),i.allItems,s.statusRegistry),b={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:i.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{active_items:u.activeItems.length,in_progress:g,open:v,blocked:u.blockedItems.length,blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:f.agendaSummary.events,...w},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...u.pageExtras};return b.workspace_memory=Cs(h,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(b,await c),fm(b,_,u.featureStore.warning_details),pm(b,e.noTags===!0),e.explainRanking===!0&&(b.ranking=rr(u.ranking,u.featureStore,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),b.packing=nr(u.packing)),mm(b,s.focusFields),y.length>0&&(b.warnings=y),hm(b,u.activeItems,u.blockedItems),await gm(b,u,n,a),b}(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 wm=["markdown","toon","json"],bm=5,vm=1440*60*1e3;function km(e){if(!e)return;let t=e.trim().toLowerCase();if(!wm.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function W_(e,t){let n=km(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 Hs(e,t,n){let r=U(e,t);return r===void 0||r<=0?n:r}function or(e,t,n,r){return{...tt(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 Sm(e,t,n,r){let i=e.item,o=[],s=M("in_progress",t);return o.push(O(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(xm(i.deadline,n)),o.push(Di(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 qs(e,t,n){let r=ee(n,t),i=[],o=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?o.push({id:s.item.id,assignee:a}):i.push(s)}return{available:i,held:o}}var V_={partitionCallerOwnedReady:qs,resolveNextCallerAuthor:(e,t)=>zs(e,t)};function Em(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 xm(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))/vm);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function Cm(e,t){let n=M("in_progress",t);return e.filter(r=>O(r.status,t)===n).length}function sr(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Im(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 Gs(e,t,n){return[...e].sort((r,i)=>{let o=sr(r.item,t),s=sr(i.item,t);return o!==s?Number(o)-Number(s):he(r.item,i.item,n)})}function Tm(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Sm(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Fm(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 Rm(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 Am(e){try{let t=new Set(e.packing.included.map(n=>n.id));await Nt({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=Kt(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Mm(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=rr(e.readyRanking,e.featureStore),e.result.packing=nr(e.packing)),e.result.suggestions=Fm(e.recommended,e.blockedRows),await Am({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Dm(e,t,n){if(!n)return e;let r=Zn(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 Lm(e,t,n,r,i,o,s){let a=e.filter(g=>!sr(g.item,t)),d=a.length>0?a:e,c=await Pt({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),l=await Ut(d.map(g=>g.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:c.affinity}),u=await $t("next",l.candidates),f=tr(u,s,new Set,"next"),h=new Map(d.map(g=>[g.item.id,g]));return{projectedReady:u.ranked.map(g=>h.get(g.id)).filter(g=>g!==void 0),ranking:u,completedContainer:a.length===0,packing:f,featureStore:l}}function zs(e,t){let n=e.assignee?.trim();return ee(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function Y_(e,t){let n=C(process.cwd(),t.path),r=await R(n),i=zs(e,r.author_default),o=P(r.schema),s=A(),a=Hs(e.limit,"--limit",bm),d=Qn(e.tokenBudget,Math.max(192,a*128)),c=Hs(e.blockedLimit,"--blocked-limit",a),l=e.readyOnly===!0,u=typeof e.parent=="string"?e.parent.trim():"",f=await ne(void 0,Im(e,{excludeTerminal:!0}),t),h=await ne(void 0,{excludeTerminal:!1,noTruncate:!0},t),y=Dm(f.items,h.items,u),g=h.items,v=Li(y,g,o),_=Ae(g),w=Em(v.ready,e.includeDecisions===!0),b=qs(w.agent,r.author_default,i),E=Gs(b.available,_,o),T=[...v.blocked].sort((Q,J)=>he(Q.item,J.item,o)),{projectedReady:I,ranking:x,completedContainer:ue,packing:ye,featureStore:oe}=await Lm(E,_,o,s,i,n,d),B=I.map((Q,J)=>or(Q,o,_,J+1)),se=T.map((Q,J)=>or(Q,o,_,J+1)),_e=Gs(w.decisions,_,o).map((Q,J)=>or(Q,o,_,J+1)),le=Tm({projectedReady:I,readyRows:B,statusRegistry:o,now:s,completedContainer:ue}),ot=Rm(_e.length,b.held.length,a),Zt={output_default:"toon",now:s,recommended:le,ready:B.slice(1,a+1),decision_needed:_e.slice(0,a),blocked:l?[]:se.slice(0,c),held_by_others:b.held.slice(0,a),summary:{recommended:le!==null,ready:B.length,blocked:se.length,in_progress:Cm(B,o),candidates:v.active_count,containers:v.container_count,decision_needed:_e.length,held_by_others:b.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:u.length>0?u:null,limit:a,blocked_limit:c,ready_only:l,include_decisions:e.includeDecisions===!0,token_budget:d},truncation:ot};return Mm({result:Zt,recommended:le,blockedRows:se,candidatesWarnings:f.warnings,corpusWarnings:h.warnings,readyRanking:x,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:ye,featureStore:oe})}function X_(e){let t=["# pm next","",...Om(e)];if(t.push(...Ht("Recommended",$m(e.recommended),"No ready work.")),t.push(...Ht("Decision needed",(e.decision_needed??[]).map(n=>`- ${Gt(n)}`),"No human-gated decisions.")),t.push(...Ht("Ready",e.ready.map(n=>`- ${Gt(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Ht("Blocked",e.blocked.map(n=>`- ${Nm(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 Om(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 $m(e){return e?[`- ${Gt(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Ht(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Nm(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${Gt(e)} blocked_by:${t}`}function Gt(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]="f18d7526-01eb-593b-bf50-788c08a35e5d")}catch{}})();function Pm(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function jm(e,t){return e.map((n,r)=>{let i=new Set,o=oi(n.patch);for(let s of o)i.add(pn(s.path)),s.from&&i.add(pn(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 Um(e,t){let n=C(process.cwd(),t.path);if(!await D(N(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await R(n),i=L(r,F()),o=e.trim()===pt,s=o?pt:ht(e,r.id_prefix),a=await z(n,s,r.id_prefix,r.item_format,i.type_to_folder),d=a?.id??s,c=o?ci(n):fe(n,d);if(!a&&!await D(c))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await li({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:c,located:a,resolvedId:d,settings:r}}async function rw(e,t,n){let r=me(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await Um(e,n),d=await G(i,s),c=a.agent_identity.identity_vocabulary,l=bt(a.agent_identity.harness_signals),u=kt({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},c,l),f=d.map((I,x)=>({entry:I,version:x+1})).filter(({entry:I})=>u(I)),h=Pm(f,r),y=h.map(({entry:I})=>I),g=t.compact===!0,v=g?jm(y,Math.max(0,d.length-y.length)):void 0,_=t.provenance===!0?h.map(({entry:I,version:x})=>vt(I,c,{itemId:s,version:x})):void 0,w=t.provenance===!0?"provenance":g?"compact":"full",b={compact:{compact_history:v},provenance:{provenance_history:_},full:{history:y}}[w],T={id:s,...b,compact:g,projection:{mode:w,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[w]},omission_receipt:lt("history",w),count:y.length,limit:r??null,...t.provenanceSummary===!0?{provenance_summary:St(f.map(({entry:I})=>I),c,l)}:{}};if((t.diff||t.field!==void 0)&&(T.diff=Si(d,{windowStartIndex:Math.max(0,d.length-y.length),field:t.field})),t.verify){let I=o?(await W(o,{schema:a.schema})).document:void 0;if(T.verification=Hi(d,I),s===pt&&T.verification.ok){let x=await di(C(process.cwd(),n.path));T.verification={...T.verification,ok:x.ok,errors:x.ok?T.verification.errors:[...T.verification.errors,"verify_failed:workspace_state_mismatch"],workspace_state_matches_latest:x.ok,workspace_state_mismatches:x.mismatched_documents,workspace_state_missing:x.missing_documents,workspace_state_unreadable:x.unreadable_documents}}}return 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]="2e14b978-95c9-5922-b8cb-c49d24e6f8c4")}catch{}})();var Ws=1e6,Vs=20;function Ys(e,t,n,r=Vs){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>Ws)throw new p(`Child projection exceeded the ${Ws.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,H(h,n)||(a+=1)}s.sort((f,h)=>f.id.localeCompare(h.id));let c=s.slice(0,r).map(f=>({id:f.id,title:f.title,type:f.type,status:f.status,priority:f.priority})),l=s.length>c.length,u=r===0?Vs:r;return{count:s.length,active:a,by_status:Object.fromEntries(Object.entries(o).sort(([f],[h])=>f.localeCompare(h))),sample:c,sample_limit:r,truncated:l,next_offset:l?c.length:null,continuation:l?`pm list --status all --parent ${e} --offset ${c.length} --limit ${u}`:null,scanned:d}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="80981c24-3442-57a2-8c35-e0e00d5425d6")}catch{}})();var Bm=new Set(["event","meeting","reminder"]);function Km(e){return Bm.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function ar(e){if(!Km(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]="16d0a1cf-467d-5041-ab36-e2a9033a9342")}catch{}})();var Hm=new Set(["epic","feature","milestone","plan"]),Gm=new Set(Object.keys(Rr).map(e=>e.toLowerCase()));function dr(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(n=>[n,e[n]?.length??0]))}function qm(e,t){let n=dr(e);return[...t.length>0?["body"]:[],...Object.entries(n).flatMap(([r,i])=>i>0?[r]:[]),...n.files+n.tests+n.docs>0?["linked"]:[],"children",...typeof e.assignee=="string"&&e.assignee.trim().length>0?["claim_state"]:[],...ar(e)?["schedule"]:[]]}function Qs(e){let t=e.trim().toLowerCase();return t.length>0&&(Hm.has(t)||!Gm.has(t))}function Xs(e){return{ts:e.ts,author:e.author,message:e.message??null}}function zm(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?Xs(i):null,last_release:o?Xs(o):null}}function Wm(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(cn.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function Vm(e,t){let n=dr(e);if(t==="deep")return{...e,comments:e.comments??[],notes:e.notes??[],learnings:e.learnings??[],files:e.files??[],tests:e.tests??[],docs:e.docs??[],reminders:e.reminders??[],events:e.events??[],notes_count:n.notes,tests_count:n.tests,collection_counts:n};let{comments:r,notes:i,learnings:o,files:s,tests:a,docs:d,reminders:c,events:l,...u}=e;return{...u,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:n}}function Ym(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 zt(e){return e.startsWith("item.")?e.slice(5):e}function Xm(e,t,n){if(e===null)return;let r=dn(t),i=new Set(r),o=e.filter(s=>{let a=zt(s);return!i.has(s)&&!i.has(a)});if(o.length>0){let s=["get",n,"--fields","id,title,status"];throw new p(`Unknown get --fields value(s): ${o.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"],recovery:{allowed_values:r,suggested_retry:Se(s),suggested_retry_args:s}})}}var Qm=new Set(["comments","notes","learnings","files","tests","test_runs","docs","reminders","events","dependencies","plan_steps","plan_decisions","plan_discoveries","plan_validation"]);function Jm(e,t,n){return Object.hasOwn(t,n)?t[n]:e[n]!==void 0?e[n]:Qm.has(n)?[]:void 0}function Zm(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:dr(e)},i={id:e.id};for(let o of t){let s=zt(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]=Jm(n,r,s))}return i}function nt(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function qt(e,t){return e.some(n=>{let r=zt(n);return r===t||r.startsWith(`${t}.`)})}function ep(e,t){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,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:Se(["get",t,"--full"]),suggested_retry_args:["get",t,"--full"]}});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":Wm(e.depth),treeDepth:e.tree===!0?U(e.treeDepth,"--tree-depth"):void 0,fields:Ym(e.fields),fieldProjection:e.fields!==void 0}}async function tp(e,t,n){let r=C(process.cwd(),t.path);if(!await D(N(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await R(r),o=L(i,F());if(n!==void 0){let d=await Gi(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 z(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await bi(r,e,i.id_prefix,o.type_to_folder);let a=await W(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 np(e,t,n,r){let i=q(t.schema).definitions.map(o=>o.metadata_key);if(Xm(e,i,r),n&&qt(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function cr(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?nt(r,i):qt(r,i):n!=="brief"}async function rp(e,t){if(!t)return;let n=fe(e.pmRoot,e.locatedId),r=await G(n,e.locatedId);return zm(e.metadata.assignee,e.historical?r.slice(0,e.historical.as_of_version):r)}function ip(e,t,n,r){let i=r||nt(n,"linked.files"),o=r||nt(n,"linked.tests"),s=r||nt(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 op(e,t,n,r){if(!t)return;let i=P(e.settings.schema),o=await ce(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=Ys(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function sp(e,t,n,r){if(!r)return;let i=ar(t.metadata);if(i){if(n===null||nt(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>zt(s)===`schedule.${o}`)))}}async function ap(e,t,n,r){if(t.tree!==!0)return;let i=await ne(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 kw(e,t,n={}){let r=ep(n,e),i=await tp(e,t,n.at);np(r.fields,i.settings,i.historical!==void 0,i.locatedId);let o=cr({...r,field:"body"}),s=cr({...r,field:"linked"}),a=cr({...r,field:"claim_state"}),d=i.historical===void 0&&(r.fieldProjection?qt(r.fields,"children"):r.depth!=="brief"&&Qs(i.metadata.type)),c=r.fieldProjection?qt(r.fields,"schedule"):r.depth!=="brief",l=await rp(i,a),u={item:r.fieldProjection?Zm(i.metadata,r.fields):Vm(i.metadata,r.depth)};o&&(u.item.body=i.body),ip(u,i,r.fields,s),l&&(u.claim_state=l),sp(u,i,r.fields,c);let f=await op(i,d,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(u.children=f);let h=await ap(i,n,r.treeDepth,t);if(h!==void 0&&(u.tree=h),i.historical&&(u.reconstructed=!0,u.as_of_version=i.historical.as_of_version,u.as_of_timestamp=i.historical.as_of_timestamp),i.historical===void 0)try{await bs({pmRoot:i.pmRoot,author:ee(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return Hr(u,qm(i.metadata,i.body)),u}var Sw={shouldAutoIncludeGetChildren:Qs};(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 Js(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 cp=[{optionKey:"status",summaryKey:"status",normalize:e=>Js(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 rt(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,runtimeFieldFilters:c}=e,l={};return An(l,r,cp),Object.assign(l,We(r)),Object.assign(l,ze(r)),n!==void 0&&n!=="or"&&(l.match_mode=n),i&&(l.include_linked=!0),o&&(l.title_exact=!0),s&&(l.phrase_exact=!0),a>0&&(l.score_threshold=a),t==="hybrid"&&r.semanticWeight!==void 0&&(l.hybrid_semantic_weight=d),r.limit!==void 0&&(l.limit=r.limit),c&&Object.keys(c).length>0&&(l.runtime_filters=c),l}function it(e){let{effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,queryExpansion:c,rerank:l,runtimeFieldFilters:u}=e,f=h=>h??null;return{mode:t,match_mode:n,status:r.status===void 0||Js(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),...We(r),...ze(r),include_linked:i,title_exact:o,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?d:null,query_expansion_enabled:c.enabled,query_expansion_provider:c.provider,rerank_enabled:l.enabled,rerank_model:l.model,rerank_top_k:l.top_k,limit:f(r.limit),runtime_filters:u}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1")}catch{}})();function dp(e){return ke("search",{query:e.query.trim(),mode:e.mode,options:ve(e.searchOptions,Br)})}function Zs(e){let t=Kr(e.sorted,{cursor:e.searchOptions.after,fingerprint:dp(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]="d20ab01b-a8ae-5fe8-988a-d05fe87951f6")}catch{}})();function ea(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 Wt(e){return e===!0}function ta(e){return $r(e,0,1)??void 0}function na(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 ra(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 Me(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return K(n,new Date,t)}function ie(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function ur(e,t){if(e!==void 0)return K(e,new Date,t)}function up(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 lr(e,t="<query>"){let n=e.compact===!0,r=e.full===!0,i=up(e.fields);if(Number(n)+Number(r)+ +(i!==void 0)>1)throw new p("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:Se(["search",t,"--full"]),suggested_retry_args:["search",t,"--full"]}});return n?{mode:"compact",fields:[...un]}:r?{mode:"full",fields:[]}:i?{mode:"fields",fields:i}:{mode:"full",fields:[]}}function fr(e,t,n="<query>"){if(e.mode!=="fields")return;let r=ln(t.definitions.flatMap(s=>[s.key,s.metadata_key])),i=new Set(r),o=e.fields.filter(s=>{let a=s.trim();return!i.has(a)});if(o.length>0){let s=["search",n,"--fields","id,title,status,score"];throw new p(`Unknown search --fields value(s): ${o.join(", ")}`,m.USAGE,{code:"unknown_field_projection",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."],recovery:{allowed_values:r,suggested_retry:Se(s),suggested_retry_args:s}})}}function mr(e){let t=ie(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function pr(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function hr(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function gr(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function yr(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 Yt from"node:fs/promises";import Sr 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 _r=4,lp=20,fp=200,mp=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function wr(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 pp(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 hp(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 ia(e,t=_r){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=Fe(n);if(r.length===0)return[n];let i=r.filter(a=>!mp.has(a.toLowerCase())),o=r.map(a=>pp(a)),s=i.map(a=>hp(a));return wr([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function oa(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?wr(t.filter(n=>typeof n=="string"),_r):[]}function sa(e,t,n){return wr([...e,...t],Math.max(1,n))}function aa(e,t){let r=e.search?.query_expansion,i=Le(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:_r}}function ca(e,t){let r=e.search?.rerank,i=Le(r?.model),s=Or(r?.top_k)??lp;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(fp,s)}}function da(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=Le(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 gp(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function ua(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function yp(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=gp(e,t),i=ua(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 la(e,t,n,r,i){if(r.length===0)return new Map;let o=Le(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],d=await yt(s,a,i?{timeout_ms:i}:{}),c=d[0];if(!c)return new Map;let l=ua(c),u=new Map;for(let f=0;f<r.length;f+=1){let h=r[f],y=d[f+1];if(!y)continue;let g=yp(c,y,l);u.set(h.id,Math.max(0,Math.min(1,(g+1)/2)))}return u}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3fd6ed70-6633-5886-90a6-3d4cc16b3ef0")}catch{}})();var _p=1.2,wp=.75;function br(e){return Fe(e)}function bp(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function ma(e){let t=[],n=new Map,r=0;for(let o of e){let s=br(o.text),a=bp(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 vp(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function pa(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,vp(e.documentCount,a))}if(o.size===0)return r;for(let s of e.documents){let a=0;for(let[d,c]of o){let l=s.termFrequencies.get(d);if(l===void 0)continue;let u=1-n.b+n.b*s.length/e.averageDocumentLength,f=l+n.k1*u;a+=c*(l*(n.k1+1)/f)}a>0&&r.set(s.id,a)}return r}function fa(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function ha(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 ga(e){let t=e?.search?.bm25;return{k1:fa(t?.k1,_p,0,1e3),b:fa(t?.b,wp,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]="c650f22f-5fcd-5489-aa9b-da11c2d1db63")}catch{}})();var kp=2,Sp=120,Ep=6,xp=40,Cp=1e3,Ip=900,Tp="\xAB",Fp="\xBB",ya=60,ba=["tag","status","type","priority"];function va(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 ka(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=va(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 Sa(e,t){let n=ka(t);return`search_${e}_fallback:${n}:using_keyword_mode`}function Rp(e){return e?.commands?.some(n=>n.command.trim()==="reindex")===!0?{command:"pm reindex --mode hybrid",args:["reindex","--mode","hybrid"]}:{command:"pm install search-advanced --project",args:["install","search-advanced","--project"],follow_up_command:"pm reindex --mode hybrid",follow_up_args:["reindex","--mode","hybrid"]}}async function Ea(e,t,n){try{let r=await Ri(e);r.warnings.length>0&&n.push(...r.warnings);let i=Mi(t.map(s=>({id:s.metadata.id,updated_at:s.metadata.updated_at})),r.entries);if(i.length===0)return;let o=Rp(F());n.push(...Ap(i.length,o)),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 run '${o.command}'${o.follow_up_command?`, then '${o.follow_up_command}'`:""}. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
13
- `)}catch{}}function Ap(e,t){return[`vector_index_stale:${e}`,`vector_index_recovery:${t.args.join(" ")}`,...t.follow_up_args?[`vector_index_recovery_follow_up:${t.follow_up_args.join(" ")}`]:[]]}var Mb={applyFilters:Ra,applyExactQueryFilters:Fa,applyInlineQueryFilters:Ca,buildHitHighlights:Na,buildVerboseSearchFilters:it,buildExplicitSemanticFallbackWarning:Sa,buildCompactSearchFilterSummary:rt,buildHybridLexicalScore:Ua,buildRerankCorpus:Ya,buildSemanticHits:qa,classifyImplicitSemanticFallbackReason:ka,collectErrorCauseCodes:va,collectExactPhraseFields:Ia,collectLinkedPaths:Aa,combineHybridHits:Ir,computeBuiltInBm25Hits:Wa,computeSemanticOrHybridHits:Xa,resolveBuiltInBm25Mode:za,countOccurrences:xr,dependencyEntries:Er,documentContainsExactPhrase:Ta,emptySearchResult:Ba,highlightFieldSnippet:$a,loadDocuments:Qa,markTokenRuns:Oa,parseInlineQueryFilters:xa,maybeEmitVectorIndexStaleWarning:Ea,loadLinkedCorpus:Da,mergeVectorHitsById:Va,normalizeExtensionProviderHits:Ga,normalizeScoreMap:vr,parseProjectionConfig:lr,parseTimestampWindow:Me,parseTokens:mr,projectSearchHits:Za,readSearchFieldValue:Ja,requireSemanticDependencies:Cr,resolveExtensionSearchProvider:Ka,resolveExtensionSearchProviderByName:Jt,resolveExtensionVectorAdapter:Ha,resolveLinkedCorpusRoots:Ma,scoreDocument:Pa,sortHits:ja,stringArray:Qt,textEntries:ge,validateSearchProjectionFields:fr};function xa(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=ba.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 Ca(e,t,n){let r={...e};for(let i of ba){let o=t[i];if(o!==void 0){if($(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function Qt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function ge(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function Er(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function Ia(e){let t=e.metadata;return[t.title,t.description,t.status,Qt(t.tags).join(" "),e.body,ge(t.comments).map(n=>n.text).join(" "),ge(t.notes).map(n=>n.text).join(" "),ge(t.learnings).map(n=>n.text).join(" "),hn(t).join(" "),gn(t).join(" "),Er(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),yn(t)]}function Ta(e,t){return Ia(e).some(n=>ie(n).includes(t))}function Fa(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&ie(r.metadata.title)!==t||n.phraseExact&&!Ta(r,t)))}function Mp(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 Dp(e,t,n){let r=V(e.assignee,{label:"--assignee"});Mp(r);let i=Rt(e),o=qe(e);return{typeFilter:Et(e.type,t),tagFilter:V(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:xt(e.priority),deadlineBefore:ur(e.deadlineBefore,"deadline-before"),deadlineAfter:ur(e.deadlineAfter,"deadline-after"),updatedAfter:Me(e.updatedAfter,"updated-after"),updatedBefore:Me(e.updatedBefore,"updated-before"),createdAfter:Me(e.createdAfter,"created-after"),createdBefore:Me(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:V(e.sprint,{label:"--sprint"}),releaseFilter:V(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:Ke(i),contentFieldFilters:o,contentFiltersActive:Tt(o)}}function Lp(e,t){return Op(e,t)&&$p(e,t)&&Np(e,t)}function Op(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&&!Qt(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function $p(e,t){return ft(e,t)}function Np(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 Pp(e,t,n,r){let i=e.metadata;return!(!Lp(i,t)||!Te(i,n)||t.missingMetadataActive&&!It(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!Ft(i,t.contentFieldFilters))}function Ra(e,t,n,r,i,o){let s=Dp(t,n,i);return e.filter(a=>Pp(a,s,r,o))}function xr(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 jp(e){return Fe(e)}function Aa(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 _a(e){let t=Sr.resolve(e);try{let n=await Yt.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function Ma(e,t){let[n,r]=await Promise.all([_a(e),_a(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function Da(e,t){let n=Aa(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=Sr.resolve(o.resolved,i.path);if(!rn(o.resolved,s))continue;let a;try{a=await Yt.realpath(s)}catch{continue}if(rn(o.realpath,a))try{await $e({path:s,scope:i.scope}),r.push(await Yt.readFile(s,"utf8"))}catch{}}return r.join(`
14
- `)}var La=[{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=>Qt(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=>ge(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>ge(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>ge(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>hn(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>gn(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>Er(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>yn(e.metadata)}],Up=new Map(La.map(e=>[e.name,e]));function Bp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Oa(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map(Bp);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${Tp}${i}${Fp}`)}function $a(e,t){if(e.length===0)return null;let n=e.toLowerCase(),r=-1,i=0;for(let l of t){if(l.length===0)continue;let u=n.indexOf(l);u>=0&&(r<0||u<r)&&(r=u,i=l.length)}if(r<0)return null;let o=Math.max(0,r-ya),s=Math.min(e.length,r+i+ya),a=Oa(e.slice(o,s),t),d=o>0?"\u2026":"",c=s<e.length?"\u2026":"";return`${d}${a}${c}`}function Na(e,t,n){let r=[];for(let i of t){let o=Up.get(i);if(o===void 0)continue;let s=$a(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function Kp(e,t,n){return[...La.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function Hp(e,t,n){let r=ie(e.id),i=typeof n=="string"?n.trim().toLowerCase():"",o=ie(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?Cp:Ip,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function Gp(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=xr(a.value.toLowerCase(),o);d>0&&(i.score+=d*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function qp(e,t,n,r){ie(e.title)===t&&(r.score+=Sp,r.matched.add("title"));for(let o of n){let s=xr(ie(o.value),t);s>0&&(r.score+=s*o.weight*Ep,r.matched.add(o.name))}}function Pa(e,t,n,r,i,o,s=!1){let a=e.metadata,d=Hp(a,n,o);if(d)return d;let c=new Map;for(let g of jp(a.title))c.set(g,(c.get(g)??0)+1);let l=Kp(e,r,i),u={score:0,matched:new Set,matchedTokens:new Set};Gp(t,c,l,i,u);let f=new Set(t),h=f.size>0&&u.matchedTokens.size===f.size;return s&&f.size>1&&h&&(u.score+=xp),t.length>=kp&&n.includes(" ")&&qp(a,n,l,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((g,v)=>g.localeCompare(v)),matched_all_terms:h}}function ja(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=H(n.item.status,t),s=H(r.item.status,t);if(o!==s)return o?1:-1;let a=n.item.priority-r.item.priority;if(a!==0)return a;let d=S(r.item.updated_at,n.item.updated_at);return d!==0?d:n.item.id.localeCompare(r.item.id)})}function Ua(e,t,n,r,i,o,s,a=!1){return Pa(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function vr(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 Ba(e,t,n,r,i,o,s,a,d,c,l,u,f=!1){let h=f?{total:0,count_only:!0}:{};if(c.mode==="compact"&&r.compact===!0){let v=rt({mode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,runtimeFieldFilters:u});return{query:e.trim(),mode:t,items:[],count:0,...h,filters:v,...l.length>0?{warnings:l}:{}}}let g=c.mode==="full"?null:[...c.fields];return{query:e.trim(),mode:t,items:[],count:0,...h,filters:it({effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,queryExpansion:a,rerank:d,runtimeFieldFilters:u??{}}),projection:{mode:c.mode,fields:g},now:A(),...l.length>0?{warnings:l}:{}}}function Cr(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 X=$;function Jt(e){let t=F(),n=vi(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=X(r.name)??X(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 Ka(e){let t=X(e.search?.provider),n=Jt(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function Ha(e){let t=F(),n=X(e.vector_store?.adapter),r=ki(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:X(i.name)??X(r.definition.name)??n??"extension",query:o,...typeof s=="function"?{upsert:s}:{}}}function Ga(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=X(s.id),d=s.score;if(!a||typeof d!="number"||!Number.isFinite(d)||i.has(a))continue;let c=n.get(a);if(!c)continue;let l=s.matched_fields,u=Array.isArray(l)&&l.every(f=>typeof f=="string")?[...new Set(l.map(f=>f.trim()).filter(f=>f.length>0))].sort((f,h)=>f.localeCompare(h)):[`provider:${e}`];i.add(a),o.push({item:c.metadata,score:d,matched_fields:u})}return o}function qa(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 Xt(e,t){let n=t.filter(c=>c.exact_id_match===!0);if(n.length===0)return e;let r=new Set(n.map(c=>c.item.id)),i=e.filter(c=>!r.has(c.item.id)),o=i.reduce((c,l)=>Math.max(c,l.score),0),s=n.sort((c,l)=>l.score-c.score),a=o+s.length+1;return[...s.map((c,l)=>({...c,score:a-l,matched_fields:["id"]})),...i]}function Ir(e,t,n,r,i="semantic"){let o=new Map(n.map(u=>[u.item.id,u.score])),s=new Map(n.map(u=>[u.item.id,u.matched_fields])),a=vr(t),d=vr(o),c=new Set([...t.keys(),...o.keys()]),l=1-r;return[...c].map(u=>{let f=e.get(u),h=a.get(u)??0,y=d.get(u)??0,g=h*r+y*l;if(g<=0)return null;let v=new Set;t.has(u)&&v.add(i);for(let _ of s.get(u)??[])v.add(_);return{item:f.metadata,score:g,matched_fields:[...v].sort((_,w)=>_.localeCompare(w))}}).filter(u=>u!==null)}function za(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function Wa(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:ha(Ti(s,{fields:e.corpusFields}))})),n=ma(t),r=pa(n,br(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 Xt(s,e.keywordHits)}let o=Ir(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return Xt(o,e.keywordHits)}function Va(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 Ya(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 zp(e,t){let n=e.queryExpansion.enabled?ia(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 sa(r,oa(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 Wp(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 _n(e.vectorStore,t,n,r)}if(e.vectorStore)return await _n(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 Vp(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:Ya(o)}:null}).filter(i=>i!==null)}async function Yp(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=da(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 Xp(e,t,n){let r=await Yp(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await la(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function Qp(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 Jp(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=Vp(n,r,e.rerank.top_k),o=await Xp(e,t,i);return o&&o.size>0?Qp(n,o):n}async function Xa(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 zp(e,i),s=await yt(e.provider,o,n),a=await Promise.all(s.map(async y=>await Wp(e,y,t,r))),d=Va(a),c=new Map(e.filteredDocuments.map(y=>[y.metadata.id,y])),{semanticHits:l,semanticScores:u}=qa(d,c),f=u.size;if(e.requestedMode==="semantic")return{hits:Xt(l,e.keywordHits),vectorMatchCount:f};let h=await Jp(e,i,Ir(c,u,e.keywordHits,e.hybridSemanticWeight),c);return{hits:Xt(h,e.keywordHits),vectorMatchCount:f}}async function Qa(e,t,n,r){let i=Mr(F()),o=async(c,l,u)=>{let f=async(h,y)=>{await $e({path:h,scope:"project"});let g=await Yt.readFile(h,"utf8");return Jr(g,{format:y,schema:r,extensionFieldNames:i,onWarning:_=>s.push(_)}).body};try{return await f(l,u)}catch{let h=u==="toon"?"json_markdown":"toon",y=De(e,c.type,c.id,h,n);try{return await f(y,h)}catch{return s.push(`item_list_item_read_failed:${Sr.relative(e,y)}`),""}}},s=[],a=await _i(e,t,n,s,r),d=[];if(a.length===0){let c=await gt(e,t,n,s,r);for(let l of c){let u=De(e,l.type,l.id,t,n),f=await o(l,u,t);d.push({metadata:l,body:f})}return{documents:d,warnings:[...new Set(s)].sort((l,u)=>l.localeCompare(u))}}for(let c of a){if(typeof c.body=="string"){d.push({metadata:c.metadata,body:c.body});continue}let l=await o(c.metadata,c.item_path,c.item_format);d.push({metadata:c.metadata,body:l})}return{documents:d,warnings:[...new Set(s)].sort((c,l)=>c.localeCompare(l))}}function Ja(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 Za(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]=Ja(n,i);return r})}function Zp(e){let t=Jt(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function eh(e){let t=Jt(X(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function th(e,t){let n=[],r=xa(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=Ca(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:Wt(s.includeLinked),titleExact:Wt(s.titleExact),phraseExact:Wt(s.phraseExact),matchMode:na(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:ra(s.minScore),countOnly:s.count===!0,tokens:mr(o),normalizedQuery:ie(o),limit:me(s.limit),projection:lr(s,e),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function nh(e,t){let n=C(process.cwd(),t.path);if(!await D(N(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await R(n),i=xi(r).settings,o=P(i.schema),s=q(i.schema);fr(e.projection,s,e.query);let a=Ie(e.options,s,"search"),d=L(i,F()),c=Ci(i),l=Fi(i,n),u=Ka(i),f=Ha(i),h=ta(e.options.semanticWeight),y=aa(i,c.active?.name??null),g=ca(i,c.active?.model??X(i.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:i,statusRegistry:o,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:d,maxResults:pr(i),scoreThreshold:e.minScoreOverride??hr(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:h,hybridSemanticWeight:h??gr(i),tuning:yr(i),providerResolution:c,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:f,bm25Mode:za({configuredProvider:X(i.search?.provider),hasEmbeddingProvider:c.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:y,queryExpansionExtension:Zp(y),rerank:g,rerankExtension:eh(i),effectiveMode:ea(e.options.mode)}}async function rh(e,t){let n=await Qa(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=Ce(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),i=Ct(t.statusRegistry),o=Ra(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:Fa(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function ih(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await Ma(i,Lr(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await Da(a,o)]));for(let[a,d]of s)r.set(a,d);return r}async function oh(e,t,n){let r=await ih(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>Ua(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 wa(e,t){return Ba(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 sh(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=Wa({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:Ii(t.settings),bm25Params:ga(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 ah(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 Ga(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 ch(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 dh(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await Ea(e.pmRoot,n,r),e.extensionSearchProvider||Cr(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function uh(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,d=await sh(t,n,r,i,o),c=n.effectiveMode;if(d!==null||c==="keyword")return{effectiveMode:n.effectiveMode,hits:d??a};try{if(await dh(n,c,r,o,s),r.length===0||t.limit===0)return{effectiveMode:n.effectiveMode,hits:[]};let l=new Map(r.map(u=>[u.metadata.id,u]));if(a=await ah(t,n,r,l)??a,a===i){let{provider:u,vectorStore:f}=Cr(c,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),h=await Xa({requestedMode:c,query:t.query,filteredDocuments:r,keywordHits:i,hybridSemanticWeight:n.hybridSemanticWeight,limit:t.limit,maxResults:n.maxResults,provider:u,vectorStore:f,extensionVectorAdapter:n.extensionVectorAdapter,queryExpansion:n.queryExpansion,queryExpansionExtension:n.queryExpansionExtension,rerank:n.rerank,rerankExtension:n.rerankExtension,warnings:o,settings:n.settings});a=ch(c,h,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(l){return o.push(Sa(n.effectiveMode,l)),{effectiveMode:"keyword",hits:i}}}function lh(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return kr({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:rt({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 kr({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:it({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:A()},e.warnings)}function kr(e,t){return t.length===0?e:{...e,warnings:t}}function Vt(e,t){return t?{...e,workspace_memory:t}:e}function fh(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:Na(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 mh(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return kr({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:rt({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:it({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:A(),...e.warnings.length>0?{warnings:e.warnings}:{}}}function ph(e){if(e.after!==void 0&&e.count===!0)throw new p("Search --after cannot be combined with --count.",m.USAGE)}async function Db(e,t,n){ph(t);let r=th(e,t),i=await nh(r,n),o=await rh(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await Bt(o.allDocuments.map(E=>E.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:A()});s.push(...a.warnings);let d=Is(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 Vt(wa({...c,effectiveMode:i.effectiveMode},r.countOnly),d);let l=await oh(r,i,o.filteredDocuments),u=await uh({prepared:r,runtime:i,filteredDocuments:o.filteredDocuments,keywordHits:l,warnings:s,modeWasExplicit:r.modeWasExplicit});if(u.effectiveMode!=="keyword"&&u.hits.length===0&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return Vt(wa({...c,effectiveMode:u.effectiveMode},r.countOnly),d);let f=u.hits.filter(E=>E.exact_id_match===!0||E.score>=i.scoreThreshold),h=ja(f,i.statusRegistry),y=h.length,g=Zs({sorted:h,query:r.query,mode:u.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),v={...c,effectiveMode:u.effectiveMode};if(r.countOnly)return Vt(lh(v,y),d);let{hits:_,projection:w}=fh(r,o.filteredDocuments,g.limited),b=Za(_,w);return Vt(mh(v,b,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 Pb(e,t={}){let n=await Oi({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{nc as a,bn as b,hh as c,ac as d,cc as e,gh as f,Ni as g,Ue as h,Pi as i,ji as j,Rh as k,Ui as l,Sn as m,Jh as n,Gi as o,U as p,wt as q,qi as r,bt as s,Rc as t,vt as u,St as v,Rg as w,Xi as x,yy as y,In as z,V as A,Et as B,xt as C,Ct as D,Pg as E,jg as F,Bg as G,Rt as H,qe as I,ao as J,co as K,An as L,ze as M,We as N,ne as O,py as P,ky as Q,Sy as R,Fy as S,Ry as T,Ay as U,as as V,Gn as W,Ot as X,el as Y,us as Z,ol as _,$t as $,sl as aa,al as ba,ll as ca,fl as da,$y as ea,ml as fa,ls as ga,Y as ha,Nt as ia,Hy as ja,bs as ka,Pt as la,qn as ma,zn as na,Dl as oa,jl as pa,Ul as qa,Wn as ra,Vn as sa,Ut as ta,ql as ua,Yl as va,Bt as wa,nf as xa,Cs as ya,rf as za,Is as Aa,Fs as Ba,f_ as Ca,m_ as Da,p_ as Ea,h_ as Fa,Rs as Ga,of as Ha,ff as Ia,Qe as Ja,L_ as Ka,Qn as La,hf as Ma,gf as Na,Zn as Oa,he as Pa,tr as Qa,nr as Ra,rr as Sa,Ae as Ta,tt as Ua,Kt as Va,O_ as Wa,pm as Xa,$_ as Ya,wm as Za,W_ as _a,V_ as $a,Em as ab,Y_ as bb,X_ as cb,rw as db,Ws as eb,Vs as fb,Ys as gb,kw as hb,Sw as ib,rt as jb,it as kb,dp as lb,Zs as mb,pr as nb,hr as ob,gr as pb,yr as qb,va as rb,ka as sb,Rp as tb,Ap as ub,Mb as vb,Db as wb,Pb as xb};
16
- //# sourceMappingURL=chunk-T4ZFY7ZJ.js.map