@unbrained/pm-cli 2026.8.17 → 2026.8.18

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 (157) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/AGENTS.md +4 -3
  3. package/CHANGELOG.md +35 -3
  4. package/README.md +3 -3
  5. package/dist/cli/error-guidance.js +7 -4
  6. package/dist/cli/register-list-query.js +132 -51
  7. package/dist/cli-bundle/bundle-manifest.json +146 -146
  8. package/dist/cli-bundle/chunks/chunk-5UZZAJKR.js +3 -0
  9. package/dist/cli-bundle/chunks/{chunk-YM2YAMF7.js → chunk-ALDJGKAK.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-HBJAS566.js → chunk-BSK2IN3C.js} +2 -2
  11. package/dist/cli-bundle/chunks/chunk-DY4DMUMC.js +197 -0
  12. package/dist/cli-bundle/chunks/{chunk-JOKATURE.js → chunk-GNFAFIJI.js} +9 -9
  13. package/dist/cli-bundle/chunks/chunk-L5Q2CLPE.js +35 -0
  14. package/dist/cli-bundle/chunks/{chunk-TPXZIBIV.js → chunk-PVRUN5ZS.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-7IBRGCHX.js → chunk-RZQTVMRQ.js} +2 -2
  16. package/dist/cli-bundle/chunks/chunk-SARFF5H5.js +3 -0
  17. package/dist/cli-bundle/chunks/chunk-UYCLQVL2.js +13 -0
  18. package/dist/cli-bundle/chunks/{chunk-3UEGXBMR.js → chunk-YRGOLZA7.js} +58 -54
  19. package/dist/cli-bundle/chunks/register-list-query-I23LALEE.js +11 -0
  20. package/dist/cli-bundle/chunks/{register-mutation-4WBRPXLV.js → register-mutation-6YGU3GPH.js} +2 -2
  21. package/dist/cli-bundle/chunks/{register-operations-SSENDH5B.js → register-operations-4HTFC6J7.js} +2 -2
  22. package/dist/cli-bundle/chunks/{register-setup-DOSFBGKE.js → register-setup-PPPEF3SN.js} +2 -2
  23. package/dist/cli-bundle/focused-chunks/chunk-2PN4TJXH.js +2 -0
  24. package/dist/cli-bundle/focused-chunks/{chunk-ZQPGZZWQ.js → chunk-3TKWMNKF.js} +3 -3
  25. package/dist/cli-bundle/focused-chunks/chunk-5AF3ZBNB.js +155 -0
  26. package/dist/cli-bundle/focused-chunks/chunk-C5IW2NDA.js +2 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-SYZENPIT.js → chunk-EUEGXZ2A.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/{chunk-XKAMP5OU.js → chunk-EX6MKP2X.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-CYFK5UPB.js → chunk-K43KKAFS.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/{chunk-ATEY76SX.js → chunk-M62NO7EI.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/{chunk-SALH6B6K.js → chunk-ODOVCP45.js} +5 -5
  32. package/dist/cli-bundle/focused-chunks/chunk-RNDNMARJ.js +16 -0
  33. package/dist/cli-bundle/focused-chunks/chunk-TN4AE665.js +26 -0
  34. package/dist/cli-bundle/focused-chunks/chunk-TVV2DONO.js +2 -0
  35. package/dist/cli-bundle/focused-chunks/chunk-UI6AJ5TD.js +4 -0
  36. package/dist/cli-bundle/focused-chunks/{chunk-MHPIL773.js → chunk-V5XTGLK7.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-KP2VQQVQ.js → chunk-WGHQVU6P.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/chunk-XYNBXTDQ.js +2 -0
  39. package/dist/cli-bundle/focused-chunks/chunk-Z56ECT7I.js +2 -0
  40. package/dist/cli-bundle/main.js +7 -7
  41. package/dist/cli-bundle/sdk-authoring.js +1 -1
  42. package/dist/cli-bundle/sdk-contracts.js +1 -1
  43. package/dist/cli-bundle/sdk-core.js +31 -31
  44. package/dist/cli-bundle/sdk-governance.js +1 -1
  45. package/dist/cli-bundle/sdk-graph.js +1 -1
  46. package/dist/cli-bundle/sdk-merge.js +32 -32
  47. package/dist/cli-bundle/sdk-query.js +1 -1
  48. package/dist/cli-bundle/sdk-runtime.js +1 -1
  49. package/dist/cli-bundle/sdk-testing.js +1 -1
  50. package/dist/cli-bundle/sdk.js +4 -4
  51. package/dist/core/config/nested-settings.js +8 -2
  52. package/dist/core/extensions/exporter-output-contract.d.ts +12 -0
  53. package/dist/core/extensions/exporter-output-contract.js +67 -0
  54. package/dist/core/extensions/extension-types.d.ts +36 -1
  55. package/dist/core/extensions/extension-types.js +2 -2
  56. package/dist/core/extensions/loader.js +35 -44
  57. package/dist/core/history/event-index.d.ts +5 -0
  58. package/dist/core/history/event-index.js +133 -27
  59. package/dist/core/sentry/helpers.js +3 -3
  60. package/dist/core/shared/constants.js +5 -2
  61. package/dist/core/store/settings-validator.d.ts +4 -0
  62. package/dist/core/store/settings-validator.js +3 -2
  63. package/dist/core/store/settings.js +8 -2
  64. package/dist/mcp/tool-definitions.js +12 -7
  65. package/dist/sdk/agent/refusal-reachability.js +4 -4
  66. package/dist/sdk/authoring.d.ts +1 -1
  67. package/dist/sdk/authoring.js +2 -2
  68. package/dist/sdk/cli-bootstrap.d.ts +2 -2
  69. package/dist/sdk/cli-bootstrap.js +4 -4
  70. package/dist/sdk/cli-contracts/command-aliases.d.ts +34 -2
  71. package/dist/sdk/cli-contracts/command-aliases.js +64 -13
  72. package/dist/sdk/cli-contracts/enum-contracts.d.ts +4 -0
  73. package/dist/sdk/cli-contracts/enum-contracts.js +9 -2
  74. package/dist/sdk/cli-contracts/flag-contracts.js +11 -7
  75. package/dist/sdk/cli-contracts/grammar-contracts.d.ts +70 -0
  76. package/dist/sdk/cli-contracts/grammar-contracts.js +345 -0
  77. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +19 -2
  78. package/dist/sdk/cli-contracts/runtime-contracts.js +61 -14
  79. package/dist/sdk/cli-contracts/tool-parameter-tables.js +7 -2
  80. package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
  81. package/dist/sdk/cli-contracts/tool-schema.js +20 -11
  82. package/dist/sdk/cli-contracts.d.ts +2 -2
  83. package/dist/sdk/cli-contracts.js +4 -4
  84. package/dist/sdk/completion.js +13 -15
  85. package/dist/sdk/compose.d.ts +3 -3
  86. package/dist/sdk/compose.js +2 -2
  87. package/dist/sdk/contracts.d.ts +1 -0
  88. package/dist/sdk/contracts.js +3 -2
  89. package/dist/sdk/core.d.ts +1 -1
  90. package/dist/sdk/core.js +3 -3
  91. package/dist/sdk/environment/host-environment-errors.js +3 -3
  92. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +54 -14
  93. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +50 -14
  94. package/dist/sdk/guide-topics.js +5 -5
  95. package/dist/sdk/index.d.ts +4 -3
  96. package/dist/sdk/index.js +6 -5
  97. package/dist/sdk/init-agent-guidance.js +3 -3
  98. package/dist/sdk/mutation-events.d.ts +18 -2
  99. package/dist/sdk/mutation-events.js +59 -16
  100. package/dist/sdk/output.d.ts +44 -0
  101. package/dist/sdk/output.js +28 -2
  102. package/dist/sdk/query/complete-list.d.ts +94 -0
  103. package/dist/sdk/query/complete-list.js +173 -0
  104. package/dist/sdk/query/list.js +5 -2
  105. package/dist/sdk/query.d.ts +1 -0
  106. package/dist/sdk/query.js +3 -2
  107. package/dist/sdk/read-output-contracts.d.ts +2 -2
  108. package/dist/sdk/read-output-contracts.js +36 -9
  109. package/dist/sdk/runtime-extended-actions.js +10 -2
  110. package/dist/sdk/runtime.d.ts +8 -2
  111. package/dist/sdk/runtime.js +11 -8
  112. package/dist/types.d.ts +5 -0
  113. package/dist/types.js +2 -2
  114. package/docs/AGENT_GUIDE.md +25 -9
  115. package/docs/CLI_GRAMMAR.md +106 -0
  116. package/docs/COMMANDS.md +23 -23
  117. package/docs/ONBOARDING.md +4 -4
  118. package/docs/QUICKSTART.md +1 -1
  119. package/docs/README.md +2 -0
  120. package/docs/RELEASING.md +30 -6
  121. package/docs/SDK.md +36 -2
  122. package/docs/SDK_ARTIFACT_OUTPUT.md +72 -0
  123. package/docs/SDK_CONTEXT_COORDINATION.md +46 -12
  124. package/docs/agent-task-token-baseline.json +5 -5
  125. package/marketplace.json +2 -2
  126. package/package.json +3 -2
  127. package/packages/pm-beads/package.json +1 -1
  128. package/packages/pm-calendar/package.json +1 -1
  129. package/packages/pm-command-kit/package.json +1 -1
  130. package/packages/pm-digital-twin/package.json +1 -1
  131. package/packages/pm-governance-audit/package.json +1 -1
  132. package/packages/pm-guide-shell/package.json +1 -1
  133. package/packages/pm-kanban/package.json +1 -1
  134. package/packages/pm-lifecycle-hooks/package.json +1 -1
  135. package/packages/pm-linked-test-adapters/package.json +1 -1
  136. package/packages/pm-search-advanced/package.json +1 -1
  137. package/packages/pm-templates/package.json +1 -1
  138. package/packages/pm-todos/package.json +1 -1
  139. package/packages/pm-vcs/package.json +1 -1
  140. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  141. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  142. package/sdk/public-surface.json +652 -31
  143. package/dist/cli-bundle/chunks/chunk-2QLOXC3V.js +0 -3
  144. package/dist/cli-bundle/chunks/chunk-4JPYF536.js +0 -35
  145. package/dist/cli-bundle/chunks/chunk-6VDLG2FC.js +0 -13
  146. package/dist/cli-bundle/chunks/chunk-ION3E43Q.js +0 -197
  147. package/dist/cli-bundle/chunks/chunk-OAC5NIV4.js +0 -3
  148. package/dist/cli-bundle/chunks/register-list-query-Q7KII4G5.js +0 -10
  149. package/dist/cli-bundle/focused-chunks/chunk-267MUUS6.js +0 -16
  150. package/dist/cli-bundle/focused-chunks/chunk-2NNFLLNG.js +0 -2
  151. package/dist/cli-bundle/focused-chunks/chunk-2QSAKMIH.js +0 -2
  152. package/dist/cli-bundle/focused-chunks/chunk-BUCG4ZI2.js +0 -2
  153. package/dist/cli-bundle/focused-chunks/chunk-EHXIKD6K.js +0 -2
  154. package/dist/cli-bundle/focused-chunks/chunk-KGEXTMPG.js +0 -2
  155. package/dist/cli-bundle/focused-chunks/chunk-POEEAD2V.js +0 -4
  156. package/dist/cli-bundle/focused-chunks/chunk-XPIC53VA.js +0 -26
  157. package/dist/cli-bundle/focused-chunks/chunk-ZT2DJS27.js +0 -155
@@ -1,16 +0,0 @@
1
- import{C as pi,D as ve,Da as vi,F as ue,G as Se,H as Ee,Ha as xi,I as hi,L as gi,M as ht,N as yi,O as sn,P as an,Q as cn,R as _i,V as wi,W as dn,da as bi,f as li,g as fi,h as on,i as mi,ma as xe,va as ki}from"./chunk-ZQPGZZWQ.js";import{Fa as Ar,f as Fr,xa as Rr}from"./chunk-2QSAKMIH.js";import{b as Si,e as un,f as gt,g as Ei}from"./chunk-ATEY76SX.js";import{$a as F,A as Nr,B as $r,Ba as zr,C as Pr,Ca as Wr,D as jr,E as Ur,Ea as Oe,Ga as oe,Ha as rn,I as Le,Ia as Vr,Ka as Yr,La as Xr,N as Kr,Na as Ne,Qa as Qr,Ra as ft,Sa as Jr,Ta as Zr,U as Z,V as A,X as S,Y as ut,Z as K,Za as ei,_ as lt,bb as ti,cb as ni,eb as ri,fb as mt,hb as ii,ja as M,ka as O,l as R,la as B,lb as oi,mb as si,nb as ke,o as nn,oa as Br,ob as ai,pa as Hr,pb as ci,q as De,qa as Gr,qb as q,r as Lr,ra as H,rb as z,sb as pt,tb as se,u as Or,ub as di,wb as ui,xa as be,za as qr}from"./chunk-ZT2DJS27.js";import{$ as xr,Fa as Tr,G as L,H as at,M as C,O as Er,P as $,Q as Re,S as de,Sa as P,Ua as G,V as Ae,W as N,a as wr,aa as Cr,h as vr,q as D,r as ot,s as Sr,t as st,u as J,x as tn}from"./chunk-POEEAD2V.js";import{a as Dr,c as dt}from"./chunk-KP2VQQVQ.js";import{E as ye,J as en,K as rt,Ka as _e,La as we,Ma as Me,Qa as ct,R as br,Ra as Mr,S as it,W as kr,Y as m,Z as p,aa as Ir}from"./chunk-EHXIKD6K.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]="47c087c2-124a-58b7-a5c9-09403235f4a2")}catch{}})();function za(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 Wa(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 Ci(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 Ii(e,t,n={}){let r=e.trim(),i=n.errorSubject??"history",o=i==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=Wa(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=za(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 $e(e,t,n,r){let i=Xr(e,t);if(i.ok)return i.document;let o=Ci(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 Ti(e,t){let n=structuredClone(Oe);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(oe(n)!==i.before_hash)throw new p(`History hash mismatch before replay at entry ${r+1}.`,m.GENERIC_FAILURE);if(n=$e(n,i.patch,r+1,i.op),oe(n)!==i.after_hash)throw new p(`History hash mismatch after replay at entry ${r+1}.`,m.GENERIC_FAILURE)}return n}function Fi(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 ln from"node:fs/promises";import Va 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 Ya(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=ei(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 Xa(e){let t=await st(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 q(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await z(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 hh(e){let t=e.writeHistoryRaw??J;try{await t(e.historyPath,e.nextHistoryRaw),await be(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await Va.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await be(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function Ri(e){let t=[...Ya({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await lt(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 Xa({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 Ai(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function Qa(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function Ja(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=Qa(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 Za(e,t){let n=[...new Set(Ai(e).map(o=>o.trim()))].filter(o=>o.length>0).map(o=>({kind:"literal",value:o})),r=[...new Set(Ai(t).map(o=>o.trim()))].filter(o=>o.length>0).map(Ja),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 ec(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 tc(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 Mi(e,t,n){let r=e,i=0;for(let o of t){let s=o.kind==="literal"?ec(r,o.value,n):tc(r,o,n);r=s.value,i+=s.replacements}return{value:r,replacements:i}}function fn(e,t,n){if(typeof e=="string")return Mi(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(o=>{let s=fn(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=fn(s,t,n);r+=a.replacements,i[o]=a.value}return{value:i,replacements:r}}return{value:e,replacements:0}}function nc(e){let t=structuredClone(Oe),n=0,r=0;for(let i=0;i<e.length;i+=1){let o=e[i];oe(t)!==o.before_hash&&(n+=1),t=$e(t,o.patch,i+1,o.op),oe(t)!==o.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function rc(e,t,n){let r=0,i=!1,o=e.message;if(typeof e.message=="string"){let a=Mi(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=fn(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 ic(e,t,n){let r=structuredClone(Oe),i=0,o=0,s=[];for(let a=0;a<e.length;a+=1){let d=rc(e[a],t,n);o+=d.replacements,d.changed&&(i+=1);let c=oe(r);r=$e(r,d.entry.patch,a+1,d.entry.op);let l=oe(r);s.push({...d.entry,before_hash:c,after_hash:l})}return{entries:s,finalDocument:r,entriesChanged:i,replacements:o}}function oc(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 z(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function ac(e){if(!oc(e.finalDocument))return{raw:null,path:null,document:null};let t=Gr(rn(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:Re(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Hr(t,{format:"toon",schema:e.settings.schema})}}function cc(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 dc(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??rn(e.rewritten.finalDocument);return t.push(Wr({nowIso:A(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function uc(e){let t=[];return Ri({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 si(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 J(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await ln.rm(e.currentItem.path,{force:!0}),await J(e.subject.historyPath,Qr(e.rewrittenEntries))}catch(d){try{await lc(e.subject.historyPath,n,i,o)}finally{await be(e.subject.historyPath)}throw d}await be(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await ai({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 lc(e,t,n,r){t===null?await ln.rm(e,{force:!0}):await J(e,t);for(let i of n){let o=r.get(i);o===void 0?await ln.rm(i,{force:!0}):await J(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 nn({path:i,scope:"project",op:"history_redact"}));return n.push(...await nn({path:e,scope:"project",op:"history_redact:history"})),n}async function mn(e,t,n,r){let i=await q(e,t,n.id_prefix,n.item_format,r);if(i)return{id:i.id,historyPath:de(e,i.id),located:i};let o=mt(t,n.id_prefix),s=ri(t),a=o===s?[o]:[o,s];for(let d of a){let c=de(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 $h(e,t,n){let r=C(process.cwd(),n.path);if(!await D($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await F(r),o=L(i,R()),s=t.replacement??"",a=s.length===0,d=a?"[redacted]":s,c=Za(t.literal,t.regex),l=await mn(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 st(l.historyPath),f=await H(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=nc(f),y=ic(f,c,d),g=h.hashMismatchesBefore+h.hashMismatchesAfter,k=!!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=ac({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=Z(t.author,i.author_default),x=cc(t,y),{rewrittenEntries:ae,auditEntryAdded:pe}=dc({rewritten:y,dryRun:k,changed:_,nextItemDocument:E.document,author:I,message:x}),re=Ne(ae);if(!re.ok)throw new p(`history-redact produced an invalid rewritten chain (${re.errors.join(", ")}).`,m.GENERIC_FAILURE);return!k&&_&&w.push(...await uc({pmRoot:r,subject:l,settings:i,typeRegistry:o,historyRawBeforeLock:u,currentItem:b,nextItem:E,author:I,force:t.force,rewrittenEntries:ae})),{id:l.id,dry_run:k,changed:_,patterns:{literal_count:c.filter(U=>U.kind==="literal").length,regex_count:c.filter(U=>U.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:pe,verify_ok:re.ok,verify_errors:re.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((U,ie)=>U.localeCompare(ie)),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 Di(e,t){let n=Ne(e),r=e.length>0?e[e.length-1].after_hash:zr(),i=t===void 0?void 0:qr(t),o=i===void 0?void 0:i===r,s=[...n.errors];return o===!1&&s.push("verify_failed:current_item_hash_mismatch"),{ok:s.length===0,entries:e.length,errors:s,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:i,current_matches_latest:o}}async function Li(e,t,n={}){let r=C(n.cwd??process.cwd(),n.pmRoot);if(!await D($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await F(r),o=L(i,R()),s=await mn(r,e,i,o.type_to_folder),a=await H(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=Ii(t,a),c=Fi(Ti(a,d.historyIndex),d),l=Vr(c,{schema:i.schema});if(l.metadata.id!==s.id)throw new p(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,m.GENERIC_FAILURE);let u=a[d.historyIndex];return{document:l,reconstructed:!0,as_of_version:d.historyIndex+1,as_of_timestamp:u.ts,target:d,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function j(e,t="--limit"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0)throw new p(`${t} must be a non-negative integer`,m.USAGE);return r}function yt(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 Oi(e,t,n="--type"){if(e===void 0)return;let r=at(e,t);if(!r)throw new p(`${n} filter must be one of ${t.types.join("|")}`,m.USAGE);return r}import pc from"node:fs/promises";import ji 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 pn={version:1,aliases:{}};function _t(e=[]){let t=new Set(Le),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 Ni(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 hn(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 mc(e,t=Le){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 wt(e,t=pn,n={}){let r=hn(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 bt(e,t=pn,n=Le){let r=Ni(e.harness),i=Ni(e.agentInstance),o=mc(e,n);return s=>{let d=hn(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 kt(e,t=pn,n=Le){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);hn(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 hc=20,gc=5,yc=15,_c="-24h";function hg(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 wc={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function gn(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 $i(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 bc(e,t,n){return!(e.ts.length===0&&(t||n)||t&&S(e.ts,t)<0||n&&S(e.ts,n)>=0)}function Pi(e,t){return t===void 0?e:e.slice(0,t)}function Pe(e,t=""){return typeof e=="string"?e:t}function kc(e,t){return{...t,id:e,ts:Pe(t.ts),author:Pe(t.author,"unknown"),op:Pe(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Pe(t.before_hash),after_hash:Pe(t.after_hash)}}function vc(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 Sc(e){try{return(await pc.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Sr(t))return[];throw t}}function Ec(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 xc(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?yc:n==="compact"?hc:gc}function Cc(e,t){let n=A(),r=t==="digest",i=$i(e.to??(r?n:void 0),n,"--to"),o=$i(e.from??(r?_c: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=ue(e.limit);if(e.unbounded===!0&&s!==void 0)throw new p("Activity --unbounded cannot be combined with --limit",m.USAGE);return{id:gn(e.id,"Activity --id"),op:gn(e.op,"Activity --op"),author:gn(e.author,"Activity --author"),from:o,to:i,limit:xc(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function Ic(e){let t=C(process.cwd(),e.path);if(!await D($(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,m.NOT_FOUND);return{pmRoot:t,settings:await F(t)}}async function Tc(e){let t=L(e.settings,R()),n=await se(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await ni({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=ji.join(e.pmRoot,"history");return await De({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function Fc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:bc(t,n.from,n.to)}async function Rc(e,t){let n=[];for(let r of await Sc(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await H(ji.join(e,r),i);for(let s of o){let a=kc(i,s);Fc(s,a,t)&&n.push(a)}}return n}function Ac(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function Mc(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 Dc(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:Mc(i.operations)}}).sort((r,i)=>S(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function Lc(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 Oc(e,t,n,r,i){if(e==="digest"){let s=Dc(t,r),a=Pi(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let o=Pi(t,n);return e==="compact"?{rows:{compact_activity:Ac(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 Ui(e,t){let n=await Ic(t),r=Ec(e),i=Cc(e,r),o=await Tc(n),s=_t(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,d=bt({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),c=vc(await Rc(o.historyDir,i)).filter(d),l=Oc(r,c,i.limit,o.itemsById,f=>wt(f,a,{itemId:f.id})),u=l.totalRows-l.returnedRows;return{...l.rows,compact:l.compact,projection:{mode:r,row_key:wc[r]},omission_receipt:dt("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:Lc(c)}}:{},...e.provenanceSummary===!0?{provenance_summary:kt(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 yn(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 W(e,t){let n=yn(e,t);return n===void 0?void 0:new Set(n)}function vt(e,t,n="--type"){let r=yn(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=at(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 St(e,t="--priority"){let n=yn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>yt(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 Ki(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Et(e){return{isTerminal(t){return e.terminal_statuses.has(Ki(t,e))},classify(t){let n=Ki(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 _n(e){return N(e.acceptance_criteria)===void 0}function wn(e){return!Number.isFinite(e.estimated_minutes)}function qi(e,t){return t.isTerminal(e.status)?N(e.resolution)===void 0:!1}function Nc(e){return N(e.reviewer)===void 0}function $c(e){return N(e.risk)===void 0}function Pc(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):N(e.confidence)===void 0}function jc(e){return N(e.sprint)===void 0}function Uc(e){return N(e.release)===void 0}function je(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Kc(e,t,n){return[[t.acMissing,_n(e)],[t.estimatesMissing,wn(e)],[t.resolutionMissing,qi(e,n)],[t.reviewerMissing,Nc(e)],[t.riskMissing,$c(e)],[t.confidenceMissing,Pc(e)],[t.sprintMissing,jc(e)],[t.releaseMissing,Uc(e)]].every(([i,o])=>i!==!0||o)}function Bc(e,t){return _n(e)||wn(e)||qi(e,t)}function xt(e,t,n){return je(t)?!(!Kc(e,t,n)||t.metadataMissing&&!Bc(e,n)):!0}var bn=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Hc(e,t){switch(t){case"acceptance_criteria":return!_n(e);case"estimated_minutes":return!wn(e);case"resolution":return N(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return N(e.parent)!==void 0}}function Gc(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function qc(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Bi(){let e={};for(let t of bn)e[t]={present:0,applicable:0,percent:100};return e}function Hi(e,t,n){for(let r of bn){if(!Gc(t,r,n))continue;let i=e[r];i.applicable+=1,Hc(t,r)&&(i.present+=1)}}function Gi(e){for(let t of bn){let n=e[t];n.percent=qc(n.present,n.applicable)}}function Sg(e,t){let n=Bi(),r={};for(let i of e){Hi(n,i,t);let o=r[i.type]??(r[i.type]=Bi());Hi(o,i,t)}Gi(n);for(let i of Object.values(r))Gi(i);return{overall:n,by_type:r}}var zc={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function Wc(e){return zc[e]}function Vc(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function Yc(e,t,n){switch(t){case"assignee":return[N(e.assignee)??null];case"parent":return[N(e.parent)??null];case"type":return[N(e.type)??null];case"status":return[N(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 Eg(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 Yc(a,t,r)){let l=c??"\0empty",u=i.get(l);u||(u={label:c??Wc(t),key:c,buckets:Vc(),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 Ce=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function le(e){return Array.isArray(e)&&e.length>0}function Xc(e){return typeof e=="string"&&e.trim().length>0}function Qc(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 Wi(e,t){switch(t){case"notes":return le(e.notes);case"learnings":return le(e.learnings);case"files":return le(e.files);case"docs":return le(e.docs);case"tests":return le(e.tests);case"comments":return le(e.comments);case"deps":return le(e.dependencies);case"body":return Xc(e.body);case"linked_command":return Qc(e.tests)}}function Ct(e){return Ce.some(t=>e[t]!==void 0)}function It(e,t){for(let n of Ce){let r=t[n];if(r===void 0)continue;let i=Wi(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function Vi(e){return Ce.some(t=>t!=="body"&&e[t]!==void 0)}function Yi(e){return e.body!==void 0}function zi(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Jc(){let e={};for(let t of Ce)e[t]={present:0,total:0,percent:100};return e}function Cg(e){let t=Jc(),n=e.length;for(let s of e)for(let a of Ce)Wi(s,a)&&(t[a].present+=1);for(let s of Ce)t[s].total=n,t[s].percent=zi(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:zi(i,n)};return{total_items:n,fields:t,body_populated:r,empty_body:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ec0c4c57-e3c2-54b3-bcf4-b4ab3b1d964e")}catch{}})();var Tt=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}),Xi=[{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"}],Be=e=>{let t=Xi.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(Xi.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Qi=["priority","deadline","updated_at","created_at","title","parent"],Ji=["asc","desc"],Zc=["id","title","status","type","priority","parent","updated_at"],ed=["id","status","type","title"],Qg={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},td=["tree_depth","tree_parent","tree_children","tree_title"],no=new Set(oi);function nd(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 rd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var id=[{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"}],od=[{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 ro(e,t){for(let n of id)t[n.key]===!0&&(e[n.summaryKey]=!0)}function io(e,t){for(let n of od)t[n.key]===!0&&(e[n.summaryKey]=!0)}function kn(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 He(e){let t={};return ro(t,e),t}function Ge(e){let t={};return io(t,e),t}var sd=[{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"}],ad=[{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"}],cd=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],dd="-7d";function oo(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"),kn(d,n,sd),ao(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),io(d,n),ro(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),rd(a)&&(d.runtime_filters=a),d}function vn(e,t,n){let r=B(e.status,n),i=B(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 ud(e,t){return[...e].sort((n,r)=>vn(n,r,t))}function Zi(e,t){if(e!==void 0)return K(e,new Date,t)}function Ue(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return K(n,new Date,t)}function so(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?Ue(dd,"recent"):Ue(e.updatedAfter,"updated-after")}function ao(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function co(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 Sn(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 uo(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 lo(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,i=uo(e.fields);if(Number(t)+Number(n)+Number(r)+ +(i!==void 0)>1)throw new p("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE);return r?{mode:"full",fields:[]}:n?{mode:"brief",fields:[...ed]}:t?{mode:"compact",fields:[...Zc]}:i?{mode:"fields",fields:i}:{mode:"full",fields:[]}}function Ie(e){return e.startsWith("item.")?e.slice(5):e}function ld(e,t){if(e.mode!=="fields")return;let n=new Set([...it,"body",...td,...t]),r=e.fields.filter(i=>!n.has(Ie(i)));if(r.length>0)throw new p(`Unknown list --fields value(s): ${r.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"]})}var fd=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function fo(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=fd.get(t);if(n)return n;if(!Qi.includes(t))throw new p(`Sort field must be one of ${Qi.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function mo(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!Ji.includes(t))throw new p(`Sort order must be one of ${Ji.join("|")}`,m.USAGE);return t}function md(e){return j(e,"--tree-depth")}function po(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 eo(e,t){return ve(e,t,{strict:!0})}function ho(e){return W(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function pd(e,t,n){let r=ho(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 hd(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 gd(e,t,n,r){let i=W(t.assignee,{label:"--assignee"}),o=po(t.assigneeFilter);hd(i,o);let s=Tt(t),a=Be(t);return{idsFilter:co(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:vt(t.type,n),tagFilters:ho(t.tag),priorityFilter:St(t.priority),deadlineBefore:Zi(t.deadlineBefore,"deadline-before"),deadlineAfter:Zi(t.deadlineAfter,"deadline-after"),updatedAfter:so(t),updatedBefore:Ue(t.updatedBefore,"updated-before"),createdAfter:Ue(t.createdAfter,"created-after"),createdBefore:Ue(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:W(t.sprint,{label:"--sprint"}),releaseFilter:W(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:je(s),lifecycleClassifier:Et(r),contentFieldFilters:a,contentFiltersActive:Ct(a)}}function yd(e,t,n){return _d(e,t,n)&&wd(e,t)&&bd(e,t)&&kd(e,t)}function _d(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&B(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 wd(e,t){return ut(e,t)}function bd(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 kd(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 vd(e,t,n,r){return!(!yd(e,t,n)||t.missingMetadataActive&&!xt(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!It(e,t.contentFieldFilters)||!Ee(e,r))}function go(e,t,n,r,i,o){let s=gd(t,n,r,i);return e.filter(a=>vd(a,s,i,o))}function Ke(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function yo(e,t,n){let r=e,i=typeof r.title=="string"?r.title:"",o=Ke(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 _o(e,t,n){let r=new Map,i=new Map;for(let c of e){r.set(c.id,c);let l=Ke(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=Ke(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(yo(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 wo(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function bo(e,t){return e===t?0:e===null?1:t===null?-1:S(e,t)}function ko(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return bo(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 wo(e.parent??null,t.parent??null);default:return 0}}function vo(e,t,n,r){return t?[...e].sort((i,o)=>{let s=ko(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=vn(i,o,r);return n==="desc"?-a:a}):ud(e,r)}function So(e,t,n=!1){let r=Ie(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 En(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=So(r,o,n);return i})}function Eo(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function xo(e,t){if(e.noTruncate!==!0)return j(e.limit)??(t>=1e4?20:void 0)}function Sd(e,t,n){return t.after===void 0?Sn(t.offset)??0:ct(e,t.after,n,r=>r.id)}function Co(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function Ed(e,t){let n=C(process.cwd(),t.path);if(!await D($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await F(n),i=P(r.schema),o=G(r.schema),s=lo(e);return ld(s,Eo(o.definitions)),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:Se(e,o,"list"),typeRegistry:L(r,R()),projection:s}}async function xd(e,t,n){let r=t.projection.fields.some(d=>Ie(d)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(d=>no.has(Ie(d))),o=Be(e),s=Vi(o),a=Yi(o);return e.includeBody||r||a?await di(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await pt(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await se(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function Cd(e){let t=fo(e.sort),n=mo(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?md(e.treeDepth):void 0,parentRoot:r?Ke(e.parent):void 0}}function Id(e,t,n){let r=eo(t.status,n),i=r??eo(e,n),o=pi(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 Td(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=xo(t,e.length),s=Sd(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),d=En(a,n,r),c=e.length,l=a.length>0&&s+a.length<c,u=l&&a.length>0?Me(i,a[a.length-1].id,s+a.length-1):void 0;return{projected:d,totalMatched:c,pageExtras:Co(o,l,u)}}function Io(e,t,n){return we("list",{status:e,options:_e(t,Fr),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function Fd(e){let{options:t,runtime:n,statusSelection:r,ordering:i}=e,o=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","noTruncate"]),s=[n.projection.mode==="full",n.projection.fields.some(y=>{let g=Ie(y);return g==="body"||no.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,Lr(),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 ke(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!d)return null;let c=j(t.limit),l=Sn(t.offset)??0,u=await ii({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?Me(Io(r.filtersStatus,t,i),u.items.at(-1).id,l+u.items.length-1):void 0;return{projected:En(u.items,n.projection,!1),totalMatched:u.total,pageExtras:Co(c,f,h)}}function Rd(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 ad){let f=l[u.optionKey];f!=null&&(c[u.summaryKey]=f)}for(let u of cd)l[u.key]===!0&&(c[u.summaryKey]=!0);return Object.assign(c,Ge(n),He(n)),ao(c,n),r&&(c.no_truncate=!0),i&&(c.tree=!0,o!==void 0&&(c.tree_depth=o)),s!==void 0&&(c.sort=s,c.order=a),c.runtime_filters=d,c}async function ee(e,t,n){let r=await Ed(t,n),i=[],o=Cd(t),s=Id(e,t,r.statusRegistry),a=t.noTruncate===!0,d=await Fd({options:t,runtime:r,statusSelection:s,ordering:o}),c=d;if(!c){let g=await xd(t,r,i);pd(g,t.tag,i);let k=go(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),_=t.dependencyBlocked===!0?(()=>{let E=gt(g,r.statusRegistry);return k.filter(T=>E.has(T.id.trim().toLowerCase()))})():k,w=vo(_,o.sortField,o.sortOrder,r.statusRegistry),b=o.treeEnabled?_o(w,o.parentRoot,o.treeDepth):w;c=Td(b,t,r.projection,o.treeEnabled,Io(s.filtersStatus,t,o))}let l=A(),u=[...new Set(i)].sort((g,k)=>g.localeCompare(k)),f=nd(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=oo({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:Rd({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 Jg={applyFilters:go,buildCompactListFilterSummary:oo,buildContentFilterEcho:He,buildGovernanceMissingFilterEcho:Ge,resolveContentFieldFilters:Be,resolveMissingMetadataFilters:Tt,compareBySortField:ko,compareDefaultSort:vn,compareNullableString:wo,compareNullableTimestamp:bo,normalizeProjectionField:Ie,parseAssigneeFilter:po,parseFieldSelectors:uo,parseIdsFilter:co,parseOffset:Sn,parseProjectionConfig:lo,resolveListUpdatedAfter:so,resolveListPageLimit:xo,parseSortField:fo,parseSortOrder:mo,orderItemsAsTree:_o,projectListItems:En,readListFieldValue:So,runtimeMetadataKeysForProjection:Eo,sortItems:vo,trimNonEmpty:Ke,withTreeMetadata:yo};(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 Ad=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],Md=["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 Dd(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function ey(e,t,n={}){let r=n.includePagination!==!1;return[t,...Ad.map(o=>e?.[o]),...r?[e?.limit,e?.offset]:[]].some(Dd)||Md.some(o=>e?.[o]===!0)}function To(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 Fo=["parent","type","priority","status","assignee","tags","sprint","release"];function Ao(e,t){let n=ve(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function Mo(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 Do(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=ki(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(!Fo.includes(r))throw new p(`Aggregate group fields must be one of ${Fo.join("|")}; received "${r}"`,m.USAGE);return n}function Lo(e){let t=[...new Set(e.map(n=>n.trim().toLowerCase()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length===0?null:t.join(",")}function Oo(e,t){switch(e){case"parent":return t.parent??null;case"type":return t.type;case"priority":return t.priority;case"status":return t.status;case"assignee":return t.assignee??null;case"tags":return Lo(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function No(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 $o(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var Ld={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function Ro(e,t){return t==null||t===""?Ld[e]:String(t)}function Od(e,t){return e.length===1?Ro(e[0],t[e[0]]):e.map(n=>`${n}=${Ro(n,t[n])}`).join(" | ")}function Po(e,t,n){for(let r of n){let i=No(e.group[r],t.group[r]);if(i!==0)return i}return 0}function jo(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 Uo(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function xn(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 Nd(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 $d(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function Pd(e){e.accumulator.row.count+=1,e.includeCompletion&&xn(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&$d(e.accumulator,e.numericValue)}function jd(e,t){let n={};for(let r of e)n[r]=Oo(r,t);return n}function Ud(e,t,n,r){let i={...e.row,group_label:Od(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=Uo(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 Kd(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 oy(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 F(n),i=P(r.schema),o=["estimate","estimated_minutes","priority",...G(r.schema).definitions.filter(_=>_.type==="number").map(_=>_.metadata_key)],s=Do(e.groupBy),a=Ao(e.status,i),d=Mo(e,[...new Set(o)].sort((_,w)=>_.localeCompare(w))),c=e.completion===!0,l=e.includeUnparented===!0,u=await ee(void 0,{...To(e),status:e.status},t),f=new Map,h=0,y=0;for(let _ of u.items){let w=_,b=jd(s,w);if(s.includes("parent")&&b.parent===null&&!l){h+=1;continue}let E=$o(s,b),T=f.get(E),I=d===null?null:jo(w,d.field);if(T)Pd({accumulator:T,item:w,statusRegistry:i,includeCompletion:c,numericAggregation:d,numericValue:I});else{let x=Nd(b,I);c&&xn(x,w.status,i),f.set(E,x)}y+=1}let g=[...f.values()].map(_=>Ud(_,s,c,d)).sort((_,w)=>Po(_,w,s)),k=u.warnings&&u.warnings.length>0?u.warnings:void 0;return{groups:g,count:g.length,totals:{items_considered:u.items.length,items_grouped:y,items_skipped_unparented:h},filters:Kd({groupBy:s,includeCompletion:c,includeUnparented:l,status:a,options:e,numericAggregation:d}),now:A(),...k?{warnings:k}:{}}}var sy={buildGroupKey:$o,compareAggregateRows:Po,compareNullableGroupValue:No,completionPct:Uo,normalizeTagGroupValue:Lo,parseGroupBy:Do,parseNumericAggregation:Mo,parseStatus:Ao,readNumericAggregateValue:jo,resolveGroupValue:Oo,updateCompletionCounts:xn};import{encode as Bd}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 Cn=["agenda","day","week","month"],In=["markdown","toon","json"],Hd=["sun","mon","tue","wed","thu","fri","sat"],Gd=365,qd=365,Ho=28,zd=1e3;function Tn(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 Wd(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 Go(e,t){let n;for(let r of t){let i=wr(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function Vd(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Cn.includes(t)){let n=Go(t,Cn);throw new p(`Calendar view must be one of ${Cn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function Yd(e){if(!e)return;let t=e.trim().toLowerCase();if(!In.includes(t)){let n=Go(t,In);throw new p(`Calendar format must be one of ${In.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function fy(e,t){let n=Yd(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 Xd(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 Qd(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 Ft(e){return new Date(e).toISOString().slice(0,10)}function qo(e,t){if(!t||t==="UTC")return Ft(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 Ft(e)}function Mn(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function te(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function zo(e){let t=new Date(Mn(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return te(t.toISOString(),r)}function Jd(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Zd(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function eu(e,t){return S(e,t)>=0?e:t}function Ko(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function Bo(e,t){e.set(t,(e.get(t)??0)+1)}function tu(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)=>ye(r)-ye(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 Wo(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 Vo(e){return Hd[new Date(e).getUTCDay()]}function nu(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function ru(e){let t=new Set;for(let n of e??[]){let r=nu(n);r&&t.add(r)}return t}function iu(e,t,n,r,i){let o=e??te(n,-(r??qd)),s=t??te(e??n,i??Gd);return{start:o,end:S(s,o)>0?s:te(o,1)}}function ou(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[Vo(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??zd,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:ru(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)=>ye(s)-ye(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function Rt(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 At(e,t){let n=Vo(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function su(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(At(e,t)&&Rt(e,t)==="stop");n+=1)t=te(t,e.interval);return e.occurrences}function au(e,t,n){let r=ye(n),i=te(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 cu(e){let t=zo(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=te(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=au(e,r,i);if(At(e,o)&&Rt(e,o)==="stop")return e.occurrences}}return e.occurrences}function du(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=Wo(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!At(e,s))&&Rt(e,s)==="stop")return e.occurrences}}return e.occurrences}function uu(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=Wo(i,n,o,e.startDate);if(!(!s||!At(e,s))&&Rt(e,s)==="stop")return e.occurrences}}return e.occurrences}function lu(e,t,n,r){let i=ou(e,t,n,r);return t.freq==="daily"?su(i):t.freq==="weekly"?cu(i):t.freq==="monthly"?du(i):uu(i)}function Yo(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 Dn(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 fu(e){return e.deadline?{at:e.deadline,date:Ft(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,...Dn(e),item_deadline:e.deadline}:null}function mu(e){return(e.reminders??[]).map(t=>({at:t.at,date:Ft(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,...Dn(e)}))}function pu(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function hu(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function gu(e,t,n,r){let i=tu(t.recurrence),o=pu(t.start_at,t.end_at);return(t.recurrence?lu(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):qo(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:hu(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,...Dn(e)}))}function yu(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?fu(o):null;s&&i.push(s),n.has("reminders")&&i.push(...mu(o));for(let a of n.has("events")?o.events??[]:[])i.push(...gu(o,a,t,r))}return Yo(i)}function _u(e,t,n,r,i){let o=Oi(t.type,n),s=t.tag?.trim().toLowerCase(),a=yt(t.priority),d=Xd(t.status,r),c=t.assignee?.trim(),l=Qd(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=>wu(h,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:d,assigneeFilter:c,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:i}))}function wu(e,t){return bu(e,t)&&ku(e,t)&&Ee(e,t.runtimeFieldFilters)}function bu(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 ku(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 vu(e,t,n){return!(t&&S(e.at,t)<0||n&&S(e.at,n)>=0)}function Fn(e,t,n){return e.trim().toLowerCase()==="today"?Mn(t):K(e,new Date(t),n)}function Su(e,t,n){let r=t.date?Fn(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?Fn(t.from,n,"--from"):void 0,a=t.to?Fn(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 Eu(r,t,n,i,o,s,a);if(e==="day"){let c=Mn(r);return Rn(r,n,i,o,c,te(c,1))}if(e==="week"){let c=zo(r);return Rn(r,n,i,o,c,te(c,7))}let d=Jd(r);return Rn(r,n,i,o,d,Zd(r))}function Eu(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 Rn(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:eu(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function xu(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:Yo(r)}))}function Cu(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),Bo(n,d.item_type),Bo(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:Ko(n),by_status:Ko(r),recurring_events:a}}function Iu(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Xo(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 An(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Tu(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===qo(e.event_end,e.event_timezone)?Xo(e.event_end,e.event_timezone):e.event_end:null}function Fu(e){let t=`${Xo(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=Tu(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 my(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Iu(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: ${An(e.summary.by_kind)}`),t.push(`- by-type: ${An(e.summary.by_type)}`),t.push(`- by-status: ${An(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(`- ${Fu(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 Ru(t.join(`
3
- `))}function py(e){return Bd(e)}function Ru(e){let t=e.length;for(;t>0&&e[t-1]===`
4
- `;)t-=1;return e.slice(0,t)}function Au(e){let t=A(),n=Vd(e.view),r=Su(n,e,t),i=j(e.limit),o=Wd(e.include),s=Tn(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Tn(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),d=Tn(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?Ho:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function Mu(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${Ho}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Du(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 Lu(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 Qo(e,t){let n=C(process.cwd(),t.path);if(!await D($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=Au(e),i=await F(n),o=P(i.schema),s=G(i.schema),a=Se(e,s,"calendar"),d=L(i,R()),c=[];Mu(c,r.eventsOnlyCapApplied);let l=await se(n,i.item_format,d.type_to_folder,c,i.schema),u=_u(l,e,d,o,a),f=iu(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),y=yu(u,f,r.includeSources,r.occurrenceLimit).filter(w=>vu(w,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?y:y.slice(0,r.limit),k=xu(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:Lu(e,r.rangeBounds),filters:Du(e,a),summary:Cu(g),events:g,days:k,..._.length>0?{warnings:_}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7eefe5f0-364d-559a-b365-0e7d539ee19e")}catch{}})();var Ln=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Ou=Symbol("no-context-author"),Nu=Symbol("no-item-assignee");function Jo(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function $u(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 Pu(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 ju(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 Mt(e,t,n){return e?.[t]??n}function Dt(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=Jo(t.author,Ou),a=M("in_progress",t.statusRegistry),d=Date.parse(t.now);return e.map(c=>{let l=Jo(c.assignee,Nu)===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:Mt(t.graphProximity,c.id,c.parent?.3:0),claim_focus:Mt(t.claimFocus,c.id,O(c.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:$u(c.priority,4),risk_pressure:ju(c.risk),deadline_pressure:Pu(c.deadline,d),knowledge_density:Mt(t.knowledgeDensity,c.id,Math.min(u/5,1)),author_affinity:Mt(t.authorAffinity,c.id,l?1:0),usage_affinity:t.usageAffinity?.[c.id],semantic_similarity:t.semanticSimilarity?.[c.id]}}})}var Uu="context_relevance",Ku={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},Bu=new TextEncoder;function Hu(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"||!Ln.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 Gu(e){let t={...Ku};for(let[n,r]of Object.entries(e??{}))r!==void 0&&Ln.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 es(e,t={}){Hu(e);let n=Gu(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=Ln.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 qu(e,t={}){let n=es(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 Lt(e,t,n={}){let r=es(t,n),i=await Or(Uu,{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 qu(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 zu=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Zo(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function Wu(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:Zo(e.required_ids??[],a),continuity_coverage:Zo(e.continuity_ids??[],a),token_budget_adherence:d?1:e.token_budget/e.actual_tokens,within_token_budget:d}}function Vu(e){return Math.ceil(Bu.encode(JSON.stringify(e)).byteLength/4)}function Yu(e){return Math.round(e*1e4)/1e4}function Xu(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 Qu(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}=Xu(n,e.surface),o={...n,ranking:void 0},s=Vu(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:Wu({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 Ju(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=zu;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,Yu(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 wy(e,t,n){let r=[];for(let i of e)r.push(await Qu(i,t));return Ju(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 Zu={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},el=["identity","summary","full"];function tl(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=el.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 nl(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=Zu[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 rl(e){let t=new Set;for(let n of e){if(tl(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 il(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 ol(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=il(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 sl(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 ts(e,t){let n=nl(t),r=rl(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=ol({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,d=sl(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 al}from"node:crypto";import{appendFile as cl,mkdir as dl,readFile as ul,rename as ll,stat as fl,writeFile as ml}from"node:fs/promises";import ns 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 rs=2048,is=30,os=864e5,pl=262144,hl="context-usage-ledger",V=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function ss(e){return ns.join(e,"runtime","context-usage.jsonl")}function qe(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new V("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function as(e){try{let n=(await ul(ss(e.pmRoot),"utf8")).split(`
5
- `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??rs,i=e.retentionDays??is,o=qe(e).ms-i*os;return n.filter(s=>Date.parse(s.at)>=o).slice(-r)}catch{return[]}}async function cs(e,t){let n=e.maxEvents??rs,r=e.retentionDays??is;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new V("Context usage retention requires positive maxEvents and retentionDays");let i=ss(e.pmRoot),o=ns.dirname(i),s=await lt(e.pmRoot,hl,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await dl(o,{recursive:!0}),await cl(i,t.map(l=>`${JSON.stringify(l)}
6
- `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await fl(i)).size<=pl)return;let d=await as(e),c=`${i}.${process.pid}.${al()}.tmp`;await ml(c,`${d.map(l=>JSON.stringify(l)).join(`
7
- `)}
8
- `,"utf8"),await ll(c,i)}finally{await s()}}async function ds(e,t){await cs(e,[t])}async function Ot(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 V("Context usage serving requires an author and valid ranked rows");await ds(e,{kind:"serve",at:qe(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function Cy(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new V("Context usage touch requires author, itemId, and intent");await ds(e,{kind:"touch",at:qe(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function us(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 V("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new V("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new V("Context usage touch requires non-empty itemId");r.add(a)}let i=qe(e).iso,o=[...r].map(s=>({kind:"touch",at:i,author:t,item_id:s,intent:n}));await cs(e,o)}function gl(e,t,n,r){return e.find(({entry:i,time:o})=>i.item_id===t&&o>=n&&o-n<=r)?.time}async function Nt(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await as(e),n=qe(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new V("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=gl(o,h.id,f,r);if(y===void 0)continue;d+=1;let g=Math.max(0,(n-y)/os);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 ze from"node:fs/promises";import We from"node:path";import{createHash as yl,randomUUID as _l}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 On=1,Nn=1,ls=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],wl={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 $t(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function fs(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function bl(e){let t={};for(let n of ls){let r=e[n];if(r!==void 0){if(!fs(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function kl(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 vl(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 Sl(e,t){return{...t,activityDensity:t.activityDensity??kl(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??vl(e)}}function El(e){if(!$t(e)||typeof e.id!="string"||!$t(e.signals))return null;let t={},n=new Set(ls);for(let[r,i]of Object.entries(e.signals)){if(!n.has(r)||!fs(i))return null;t[r]=i}return{id:e.id,signals:t}}function xl(e){if(!$t(e)||e.format_version!==On||e.signal_set_version!==Nn||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(El);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:On,signal_set_version:Nn,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,i)=>r.id.localeCompare(i.id))}}function Cl(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=Dt(e,Sl(e,t)).map(({id:r,signals:i})=>({id:r,signals:bl(i)})).sort((r,i)=>r.id.localeCompare(i.id));return Object.freeze({format_version:On,signal_set_version:Nn,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var $n=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=We.resolve(t)}async read(){try{return JSON.parse(await ze.readFile(this.filePath,"utf8"))}catch(t){if($t(t)&&ot(t))return null;throw t}}async write(t){let n=We.dirname(this.filePath);await ze.mkdir(n,{recursive:!0});let r=We.join(n,`.${We.basename(this.filePath)}.${_l()}.tmp`);try{await ze.writeFile(r,`${JSON.stringify(t)}
9
- `,{encoding:"utf8",flag:"wx"}),await ze.rename(r,this.filePath)}finally{try{await ze.rm(r,{force:!0})}catch{}}}},Pn=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],i=null;try{let u=await this.adapter.read();i=xl(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=Cl(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=Dt(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=>wl[u])}}};function Il(e){let t=yl("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 Pt(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 ke(t.pmRoot),o=t.sourceCursor??i?.source_cursor??Il(e),s=t.source??(i===null?"scan_fallback":"derived_index");return new Pn(new $n(We.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:o,source:s})}import Tl from"node:path";import{createHash as Fl}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 ms(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 Rl 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 ps=1,Al=1e4,hs=12;function Ml(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Dl(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 Ll(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 Ol(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=ms(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=Ml(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=Dl(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:ps,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(Ll).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function Nl(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 $l(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(Nl)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function Pl(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==ps||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($l)?t:null}function jl(e){return`scan:${Fl("sha256").update(Ir(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function Ul(e,t,n){return n!==void 0?n:(await ke(t))?.source_cursor??jl(e)}async function Kl(e){try{let t=Pl(JSON.parse(await Rl.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&ot(t))}}}async function jt(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Al));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await Ul(e,t.pmRoot,t.sourceCursor),i=Tl.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await Kl(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=Ol(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await J(i,`${JSON.stringify(d)}
10
- `)}catch{o.push("workspace_memory_write_failed")}return{snapshot:d,cache_status:"rebuilt",warnings:o}}function Bl(e,t,n=hs){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 gs(e,t,n=hs){if(e.snapshot===null)return;let r=Bl(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 Hl(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 ys(e,t,n=5){let r=Hl(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 _s=16;async function ws(e,t,n){let r=L(t,R()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<_s;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let d=await q(e,s,t.id_prefix,t.item_format,r);if(!d)break;let c=await z(d,{schema:t.schema});i.push(c.document.metadata.id),s=c.document.metadata.parent}return i}async function Yy(e){await Pr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await ws(e.pmRoot,e.settings,e.itemId)})}async function Xy(e){await jr(e)}async function Qy(e){await Ur({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await ws(e.pmRoot,e.settings,e.itemId)}:{}})}var Jy={lineage_depth:_s,active_items:64,evidence_rows:32};function bs(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 Gl=["markdown","toon","json","ndjson"],Ye=new Set(["Epic","Feature"]),Cs=10,Is=1e4,Ts=["hierarchy","activity","progress","recently_created","unparented","workload"],ql=[...Ts,"blockers","files","staleness","tests"],zl=/^(\d{4})-(\d{2})-(\d{2})/,Wl=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,Vl=/^(\d{4})(\d{2})(\d{2})$/,Yl=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function Xl(e){if(!e)return;let t=e.trim().toLowerCase();if(!Gl.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var ks=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 Ql(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!ks.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[...ks].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 Ve(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function y_(e,t){let n=Xl(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 Jl(e,t){return j(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Cs)}function Kn(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 Zl(e,t){return t>=Is&&e===Number.MAX_SAFE_INTEGER?Cs:e}function ef(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!en.includes(n))throw new p(`Context --depth must be one of ${en.join("|")}`,m.USAGE);return n}function tf(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!rt.includes(s))throw new p(`Context --section must be one of ${rt.join("|")}`,m.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...rt]:(t==="deep"?ql:Ts).filter(i=>n.sections[i])}function nf(e,t){return e?j(e,"--activity-limit")??t.activity_limit:t.activity_limit}function rf(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 vs(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 Xe(e,t){let n=M("closed",t);return O(e,t)===n}function Bn(e,t){let n=M("in_progress",t);return O(e,t)===n}function Fs(e,t){let n=M("open",t);return O(e,t)===n}function of(e,t){return t.blocked_statuses.has(O(e,t))}var sf=["compact","brief","fields","includeBody","include_body","parent"];function af(e){let t={...e};for(let n of sf)delete t[n];return t}function Hn(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=Te(e),o=Qe(r.id,i);return{ids:new Set([r.id,...o.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function cf(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 df(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function uf(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 lf(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function ff(e){let t=zl.exec(e)??Wl.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<=lf(n,r-1)}function mf(e){let t=Vl.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=Yl.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 Rs(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!ff(t))return Number.NaN;let n=Date.parse(mf(t));return Number.isFinite(n)?n:Number.NaN}function Un(e){let t=Rs(e);return Number.isFinite(t)?new Date(t).toISOString():""}function pf(e){let t=Rs(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function Gn(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function fe(e,t,n){let r=vs(e.status,n)-vs(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=df(e.order,t.order);if(o!==0)return o;let s=uf(e.deadline,t.deadline);if(s!==0)return s;let a=S(Un(t.updated_at),Un(e.updated_at)),d=e.id.localeCompare(t.id);return a!==0?a:d}function jn(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function qn(e,t,n=new Set,r="context"){return ts(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:jn({id:i.id,title:i.item.title}),summary:jn({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:jn(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function zn(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Wn(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 As(e,t){return t>0?Math.round(e/t*100):0}function Te(e){let t=new Map;for(let n of e){let r=Gn(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function Je(e,t,n){let r={id:e.id,title:e.title,type:e.type,status:e.status,priority:e.priority,order:e.order??null,deadline:e.deadline??null,assignee:e.assignee??null,tags:Array.isArray(e.tags)?[...e.tags]:[],updated_at:e.updated_at,parent:Gn(e.parent)};if(t&&n){let i=Qe(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>Xe(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=As(s,o)}}return r}function hf(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 Ut(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function gf(e,t){return e.filter(n=>!t.terminal_statuses.has(O(n.item_status,t)))}function yf(e,t,n,r){let i=new Map;for(let d of e)i.set(d.id,d);let o=Te(e),s=new Set(t.filter(d=>Ye.has(d.type)).map(d=>d.id)),a=[];for(let d of s){let c=i.get(d);if(!c)continue;let l=Qe(d,o),u=o.get(d)??[],f=0,h=0,y=0,g=0;for(let _ of l)Xe(_.status,n)?f++:Bn(_.status,n)?y++:of(_.status,n)?g++:Fs(_.status,n)&&h++;let k=u.sort((_,w)=>fe(_,w,n)).slice(0,r).map(_=>{let w=Qe(_.id,o),b=w.filter(E=>Xe(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:k})}return a.sort((d,c)=>{let l=i.get(d.id),u=i.get(c.id);return fe(l,u,n)}).slice(0,r)}function Qe(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 _f(e,t){return(await Ui({compact:!0,limit:String(e)},t)).compact_activity??[]}function wf(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=>Ye.has(d.type)),a=[];for(let d of s){let c=Qe(d.id,o),l=c.length;if(l===0)continue;let u=0,f=0,h=0,y=0;for(let g of c)Xe(g.status,r)?u++:n.has(g.id.trim().toLowerCase())?y++:Bn(g.status,r)?h++:Fs(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:As(u,l)})}return a.sort((d,c)=>d.completion_pct-c.completion_pct).slice(0,i)}function bf(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=un(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 kf(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 vf(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=>Bn(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function Sf(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 Ef(e,t,n,r){return e.map(i=>({item:i,sortKey:Un(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})=>({...Je(i,t,n),created_at:i.created_at}))}function xf(e,t,n,r){return e.filter(i=>!Gn(i.parent)&&!Ye.has(i.type)).sort((i,o)=>fe(i,o,t)).slice(0,r).map(i=>Je(i,t,n))}function Cf(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 Ss(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Ms(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 If(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function Tf(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`${Ss(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Ss(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 Es(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 Ff(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 Rf(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(`- ${Tf(n)}`);e.push("")}function Af(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 Mf(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 Df(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)}`:`- ${pf(i.created_at)} ${Ms(i)}`);e.push("")}}function Lf(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 Of(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 Nf(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 $f(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 Pf(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 jf(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 Uf(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 Kf(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 __(e){let t=[],n=e.focus_fields,r=o=>n?If(o,n):Ms(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(""),Es(t,"High-level focus",e.high_level,"No high-level active items.",r),Es(t,"Low-level focus",e.low_level,"No low-level active items.",r),Ff(t,e,r),Rf(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 Af(t,e),Mf(t,e),Df(t,e,n,r),Lf(t,e,r),Of(t,e),Nf(t,e),$f(t,e),Pf(t,e),jf(t,e),Uf(t,e),Kf(t,e),t.join(`
11
- `)}async function Bf(e,t){let n=C(process.cwd(),t.path),r=await F(n),i=r.context??kr.context,o=P(r.schema),s=ef(e.depth,i),a=Jl(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:tf(e.section,s,i),activityLimit:nf(e.activityLimit,i),staleThresholdDays:rf(e.staleThreshold,i),parentScope:cf(e.parent),focusFields:Ql(e.fields),baseListOptions:af(e)}}function Vn(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function Hf(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function Gf(e,t){let n=Vn(t.sectionsIncluded),r=await ee(void 0,Hf(t.baseListOptions,{excludeTerminal:!1}),e),i=r.items,o=i.filter(d=>!B(d.status,t.statusRegistry)),s=n||t.parentScope!==void 0?i:o,a=qf(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 qf(e,t){if(e===void 0)return;let n=Hn(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}async function zf(e,t,n,r,i,o,s,a,d,c,l,u,f,h,y){let g=[...e].sort((v,ge)=>fe(v,ge,i)),k=await Nt({pmRoot:f,author:d,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),_=await Pt(g,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:d,usageAffinity:k.affinity,claimFocus:y}),w=await Lt("context",_.candidates),b=w.ranked.map(v=>v.item),E=i.active_statuses,T=b.filter(v=>E.has(O(v.status,i))),I=u?ct(T,c,l,v=>v.id):0,x=u?T.slice(I,I+s):T,ae=u&&x.length>0&&I+x.length<T.length,pe=ae&&x.length>0?Me(l,x[x.length-1].id,I+x.length-1):void 0,re=b.filter(v=>r.has(v.id.trim().toLowerCase())),U=new Set([...x.map(v=>v.id),...re.slice(0,s).map(v=>v.id)]),ie=qn({...w,ranked:w.ranked.filter(v=>U.has(v.id))},h,new Set(Object.entries(y??{}).filter(([,v])=>v>=1).map(([v])=>v))),he=ie.included.map(v=>v.item),ce=he.filter(v=>E.has(O(v.status,i))),nt=he.filter(v=>r.has(v.id.trim().toLowerCase())),Qt=Te(t),X=Vn(o)?Qt:void 0,Q=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),Jt=v=>{let ge=Je(v,i,X);return r.has(v.id.trim().toLowerCase())&&(ge.blocked=!0,ge.blocker_ids=un(v,Q,i).filter(Zt=>!Zt.resolved).map(Zt=>Zt.id)),ge},Ga=ce.filter(v=>Ye.has(v.type)).slice(0,u?x.length:s).map(Jt),qa=ce.filter(v=>!Ye.has(v.type)).slice(0,u?x.length:s).map(Jt),_r=T.length===0;return{activeItems:ce,blockedItems:nt,highLevel:Ga,lowLevel:qa,blockedFallback:_r?nt.slice(0,s).map(Jt):[],blockedFallbackUsed:_r,ranking:w,packing:ie,featureStore:_,pageExtras:{...u?{applied_limit:s}:{},...ae?{has_more:!0,truncated:!0}:{},...pe?{next_cursor:pe}:{}}}}function Wf(e){return we("context",_e(e,Rr))}function Vf(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Is}async function Yf(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await Qo(i,e),s=n===void 0?o.events:o.events.filter(c=>n.has(c.item_id.trim().toLowerCase())),a=gf(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:hf(a)}}function xs(e,t,n){let r=String(t);return e.filter(i=>O(i.status,n)===r).length}async function Xf(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,d=Te(n),c=n.filter(u=>!B(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?yf(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await _f(t.activityLimit,a):void 0,progress:l("progress")?wf(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?bf(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?Ef(c,t.statusRegistry,d,t.limit):void 0,unparented:l("unparented")?xf(c,t.statusRegistry,d,t.limit):void 0,filesSection:l("files")?kf(o.activeItems,t.limit):void 0,workload:l("workload")?vf(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?Sf(c,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?Cf(o.activeItems):void 0}}function Qf(e,t,n){if(!e)return{};let r=M("canceled",n);return{total_items:t.length,closed:t.filter(i=>Xe(i.status,n)).length,canceled:t.filter(i=>O(i.status,n)===r).length}}function Jf(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 Zf(e,t){t&&(e.focus_fields=t,e.high_level=Ve(e.high_level,t),e.low_level=Ve(e.low_level,t),e.blocked_fallback=Ve(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Ve(e.recently_created,t)),e.unparented&&(e.unparented=Ve(e.unparented,t)))}function em(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 tm(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 nm(e,t,n,r){try{let i=new Set(t.packing.included.map(o=>o.id));await Ot({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=Ut(e.warnings,["context_usage_feedback_write_failed"])}}async function rm(e,t,n){if(e)return{};let i=(await Tr({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 im(e,t){let n=Kr(),r=await Nr(e),i=n.instance||$r(t);return bs(r.semantic_attribution?.[i])}async function w_(e,t){let n=C(process.cwd(),t.path),r=await Bf(e,t),i=await Gf(t,r),o=Zl(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:Kn(e.tokenBudget,Math.max(256,o*160))},a=Z(void 0,s.settings.author_default),d=await im(n,a),c=rm(e.noExtensionHealth===!0,n,s.settings),l=gt(i.fullCorpus,s.statusRegistry),u=await zf(i.listedItemMetadata,i.allItems,i.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,A(),a,e.after,Wf(e),Vf(e,i.fullCorpus.length),n,s.tokenBudget,d),f=await Yf(t,s,i.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),h=await jt(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),y=Ut(i.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],h.warnings),g=xs(u.activeItems,M("in_progress",s.statusRegistry),s.statusRegistry),k=xs(u.activeItems,M("open",s.statusRegistry),s.statusRegistry),_=await Xf({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),w=Qf(Vn(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:k,blocked:u.blockedItems.length,blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:f.agendaSummary.events,...w},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...u.pageExtras};return b.workspace_memory=gs(h,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(b,await c),Jf(b,_,u.featureStore.warning_details),em(b,e.noTags===!0),e.explainRanking===!0&&(b.ranking=Wn(u.ranking,u.featureStore,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),b.packing=zn(u.packing)),Zf(b,s.focusFields),y.length>0&&(b.warnings=y),tm(b,u.activeItems,u.blockedItems),await nm(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 om=["markdown","toon","json"],sm=5,am=1440*60*1e3;function cm(e){if(!e)return;let t=e.trim().toLowerCase();if(!om.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function R_(e,t){let n=cm(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 Ds(e,t,n){let r=j(e,t);return r===void 0||r<=0?n:r}function Yn(e,t,n,r){return{...Je(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(i=>({id:i.id,title:i.title,status:i.status})),unblocks:e.unblocks,rank:r}}function dm(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(lm(i.deadline,n)),o.push(Si(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 Os(e,t,n){let r=Z(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 A_={partitionCallerOwnedReady:Os,resolveNextCallerAuthor:(e,t)=>Ns(e,t)};function um(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 lm(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))/am);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function fm(e,t){let n=M("in_progress",t);return e.filter(r=>O(r.status,t)===n).length}function Xn(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function mm(e,t){return{type:e.type,tag:e.tag,priority:typeof e.priority=="number"?String(e.priority):e.priority,assignee:e.assignee,assigneeFilter:e.assigneeFilter,sprint:e.sprint,release:e.release,noTruncate:!0,...t}}function Ls(e,t,n){return[...e].sort((r,i)=>{let o=Xn(r.item,t),s=Xn(i.item,t);return o!==s?Number(o)-Number(s):fe(r.item,i.item,n)})}function pm(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:dm(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function hm(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 gm(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 ym(e){try{let t=new Set(e.packing.included.map(n=>n.id));await Ot({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=Ut(e.result.warnings,["context_usage_feedback_write_failed"])}}async function _m(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=Wn(e.readyRanking,e.featureStore),e.result.packing=zn(e.packing)),e.result.suggestions=hm(e.recommended,e.blockedRows),await ym({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function wm(e,t,n){if(!n)return e;let r=Hn(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 bm(e,t,n,r,i,o,s){let a=e.filter(g=>!Xn(g.item,t)),d=a.length>0?a:e,c=await Nt({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),l=await Pt(d.map(g=>g.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:c.affinity}),u=await Lt("next",l.candidates),f=qn(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 Ns(e,t){let n=e.assignee?.trim();return Z(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function M_(e,t){let n=C(process.cwd(),t.path),r=await F(n),i=Ns(e,r.author_default),o=P(r.schema),s=A(),a=Ds(e.limit,"--limit",sm),d=Kn(e.tokenBudget,Math.max(192,a*128)),c=Ds(e.blockedLimit,"--blocked-limit",a),l=e.readyOnly===!0,u=typeof e.parent=="string"?e.parent.trim():"",f=await ee(void 0,mm(e,{excludeTerminal:!0}),t),h=await ee(void 0,{excludeTerminal:!1,noTruncate:!0},t),y=wm(f.items,h.items,u),g=h.items,k=Ei(y,g,o),_=Te(g),w=um(k.ready,e.includeDecisions===!0),b=Os(w.agent,r.author_default,i),E=Ls(b.available,_,o),T=[...k.blocked].sort((X,Q)=>fe(X.item,Q.item,o)),{projectedReady:I,ranking:x,completedContainer:ae,packing:pe,featureStore:re}=await bm(E,_,o,s,i,n,d),U=I.map((X,Q)=>Yn(X,o,_,Q+1)),ie=T.map((X,Q)=>Yn(X,o,_,Q+1)),he=Ls(w.decisions,_,o).map((X,Q)=>Yn(X,o,_,Q+1)),ce=pm({projectedReady:I,readyRows:U,statusRegistry:o,now:s,completedContainer:ae}),nt=gm(he.length,b.held.length,a),Qt={output_default:"toon",now:s,recommended:ce,ready:U.slice(1,a+1),decision_needed:he.slice(0,a),blocked:l?[]:ie.slice(0,c),held_by_others:b.held.slice(0,a),summary:{recommended:ce!==null,ready:U.length,blocked:ie.length,in_progress:fm(U,o),candidates:k.active_count,containers:k.container_count,decision_needed:he.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:nt};return _m({result:Qt,recommended:ce,blockedRows:ie,candidatesWarnings:f.warnings,corpusWarnings:h.warnings,readyRanking:x,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:pe,featureStore:re})}function D_(e){let t=["# pm next","",...km(e)];if(t.push(...Kt("Recommended",vm(e.recommended),"No ready work.")),t.push(...Kt("Decision needed",(e.decision_needed??[]).map(n=>`- ${Bt(n)}`),"No human-gated decisions.")),t.push(...Kt("Ready",e.ready.map(n=>`- ${Bt(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Kt("Blocked",e.blocked.map(n=>`- ${Sm(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 km(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 vm(e){return e?[`- ${Bt(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Kt(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Sm(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${Bt(e)} blocked_by:${t}`}function Bt(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 Em(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function xm(e,t){return e.map((n,r)=>{let i=new Set,o=Yr(n.patch);for(let s of o)i.add(on(s.path)),s.from&&i.add(on(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 Cm(e,t){let n=C(process.cwd(),t.path);if(!await D($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await F(n),i=L(r,R()),o=e.trim()===ft,s=o?ft:mt(e,r.id_prefix),a=await q(n,s,r.id_prefix,r.item_format,i.type_to_folder),d=a?.id??s,c=o?Jr(n):de(n,d);if(!a&&!await D(c))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await ti({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:c,located:a,resolvedId:d,settings:r}}async function U_(e,t,n){let r=ue(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await Cm(e,n),d=await H(i,s),c=a.agent_identity.identity_vocabulary,l=_t(a.agent_identity.harness_signals),u=bt({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=Em(f,r),y=h.map(({entry:I})=>I),g=t.compact===!0,k=g?xm(y,Math.max(0,d.length-y.length)):void 0,_=t.provenance===!0?h.map(({entry:I,version:x})=>wt(I,c,{itemId:s,version:x})):void 0,w=t.provenance===!0?"provenance":g?"compact":"full",b={compact:{compact_history:k},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:dt("history",w),count:y.length,limit:r??null,...t.provenanceSummary===!0?{provenance_summary:kt(f.map(({entry:I})=>I),c,l)}:{}};if((t.diff||t.field!==void 0)&&(T.diff=mi(d,{windowStartIndex:Math.max(0,d.length-y.length),field:t.field})),t.verify){let I=o?(await z(o,{schema:a.schema})).document:void 0;if(T.verification=Di(d,I),s===ft&&T.verification.ok){let x=await Zr(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 $s=1e6,Ps=20;function js(e,t,n,r=Ps){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>$s)throw new p(`Child projection exceeded the ${$s.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,B(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?Ps: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 Im=new Set(["event","meeting","reminder"]);function Tm(e){return Im.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function Qn(e){if(!Tm(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]="c35e787c-a9a1-5ffa-9dcf-62780fceed4c")}catch{}})();var Fm=["brief","standard","deep"],Rm=new Set(["epic","feature","milestone","plan"]),Am=new Set(Object.keys(br).map(e=>e.toLowerCase()));function Zn(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(n=>[n,e[n]?.length??0]))}function Mm(e,t){let n=Zn(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"]:[],...Qn(e)?["schedule"]:[]]}function Ks(e){let t=e.trim().toLowerCase();return t.length>0&&(Rm.has(t)||!Am.has(t))}function Us(e){return{ts:e.ts,author:e.author,message:e.message??null}}function Dm(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?Us(i):null,last_release:o?Us(o):null}}function Lm(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(Fm.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function Om(e,t){let n=Zn(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 Nm(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 Gt(e){return e.startsWith("item.")?e.slice(5):e}function $m(e,t){if(e===null)return;let n=new Set([...it,...t,"notes_count","tests_count","collection_counts"]),r=new Set(["body","linked","claim_state","children","schedule"]),i=new Set(["linked.files","linked.tests","linked.docs"]),o=new Set(["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"]),s=new Set(["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"]),a=e.filter(d=>{let c=Gt(d);return!n.has(c)&&!r.has(c)&&!i.has(c)&&!o.has(c)&&!s.has(c)});if(a.length>0)throw new p(`Unknown get --fields value(s): ${a.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm get <id> --fields id,title,status,type,updated_at","pm get <id> --fields id,title,claim_state","pm get <id> --fields id,title,body,linked.files"]})}var Pm=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]:Pm.has(n)?[]:void 0}function Um(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:Zn(e)},i={id:e.id};for(let o of t){let s=Gt(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 Ze(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function Ht(e,t){return e.some(n=>{let r=Gt(n);return r===t||r.startsWith(`${t}.`)})}function Km(e){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new p("Get projection options are mutually exclusive; remove the extra projection flag and retry.",m.USAGE);if(e.tree!==!0&&e.treeDepth!==void 0)throw new p("Get --tree-depth requires --tree",m.USAGE);if(e.at!==void 0&&e.tree===!0)throw new p("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",m.USAGE);return{depth:e.full?"deep":Lm(e.depth),treeDepth:e.tree===!0?j(e.treeDepth,"--tree-depth"):void 0,fields:Nm(e.fields),fieldProjection:e.fields!==void 0}}async function Bm(e,t,n){let r=C(process.cwd(),t.path);if(!await D($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await F(r),o=L(i,R());if(n!==void 0){let d=await Li(e,n,{pmRoot:t.path});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:d.document.metadata.id,metadata:d.document.metadata,body:d.document.body,historical:d}}let s=await q(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await ui(r,e,i.id_prefix,o.type_to_folder);let a=await z(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 Hm(e,t,n){let r=G(t.schema).definitions.map(i=>i.metadata_key);if($m(e,r),n&&Ht(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function Jn(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?Ze(r,i):Ht(r,i):n!=="brief"}async function Gm(e,t){if(!t)return;let n=de(e.pmRoot,e.locatedId),r=await H(n,e.locatedId);return Dm(e.metadata.assignee,e.historical?r.slice(0,e.historical.as_of_version):r)}function qm(e,t,n,r){let i=r||Ze(n,"linked.files"),o=r||Ze(n,"linked.tests"),s=r||Ze(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 zm(e,t,n,r){if(!t)return;let i=P(e.settings.schema),o=await se(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=js(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function Wm(e,t,n,r){if(!r)return;let i=Qn(t.metadata);if(i){if(n===null||Ze(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>Gt(s)===`schedule.${o}`)))}}async function Vm(e,t,n,r){if(t.tree!==!0)return;let i=await ee(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 rw(e,t,n={}){let r=Km(n),i=await Bm(e,t,n.at);Hm(r.fields,i.settings,i.historical!==void 0);let o=Jn({...r,field:"body"}),s=Jn({...r,field:"linked"}),a=Jn({...r,field:"claim_state"}),d=i.historical===void 0&&(r.fieldProjection?Ht(r.fields,"children"):r.depth!=="brief"&&Ks(i.metadata.type)),c=r.fieldProjection?Ht(r.fields,"schedule"):r.depth!=="brief",l=await Gm(i,a),u={item:r.fieldProjection?Um(i.metadata,r.fields):Om(i.metadata,r.depth)};o&&(u.item.body=i.body),qm(u,i,r.fields,s),l&&(u.claim_state=l),Wm(u,i,r.fields,c);let f=await zm(i,d,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(u.children=f);let h=await Vm(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 us({pmRoot:i.pmRoot,author:Z(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return Dr(u,Mm(i.metadata,i.body)),u}var iw={shouldAutoIncludeGetChildren:Ks};(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 Bs(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 Ym=[{optionKey:"status",summaryKey:"status",normalize:e=>Bs(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 et(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,runtimeFieldFilters:c}=e,l={};return kn(l,r,Ym),Object.assign(l,Ge(r)),Object.assign(l,He(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 tt(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||Bs(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),...Ge(r),...He(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 Xm(e){return we("search",{query:e.query.trim(),mode:e.mode,options:_e(e.searchOptions,Ar)})}function Hs(e){let t=Mr(e.sorted,{cursor:e.searchOptions.after,fingerprint:Xm(e),limit:e.limit,readId:n=>n.item.id});return{limited:t.rows,pageExtras:{applied_limit:e.limit,...t.has_more?{has_more:!0,truncated:!0}:{},...t.next_cursor?{next_cursor:t.next_cursor}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47576eb5-4ddf-5e04-9e1d-c961da39b754")}catch{}})();var Qm=["id","title","status","type","priority","updated_at","score","matched_fields"],Jm=new Set(["score","matched_fields","highlights"]),Zm=new Set(["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"]);function Gs(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 qt(e){return e===!0}function qs(e){return Cr(e,0,1)??void 0}function zs(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 Ws(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 Fe(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return K(n,new Date,t)}function ne(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function er(e,t){if(e!==void 0)return K(e,new Date,t)}function ep(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 tr(e){let t=e.compact===!0,n=e.full===!0,r=ep(e.fields);if(Number(t)+Number(n)+ +(r!==void 0)>1)throw new p("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",m.USAGE);return t?{mode:"compact",fields:[...Qm]}:n?{mode:"full",fields:[]}:r?{mode:"fields",fields:r}:{mode:"full",fields:[]}}function nr(e,t){if(e.mode!=="fields")return;let n=new Set(t.definitions.flatMap(i=>[i.key,i.metadata_key])),r=e.fields.filter(i=>{let o=i.trim(),s=o.startsWith("item.")?o.slice(5):o;return!Jm.has(o)&&!Zm.has(s)&&!n.has(s)});if(r.length>0)throw new p(`Unknown search --fields value(s): ${r.join(", ")}`,m.USAGE,{examples:["pm search <query> --fields id,title,status,score","pm search <query> --fields id,title,item.description,matched_fields"],nextSteps:["Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples."]})}function rr(e){let t=ne(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function ir(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function or(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function sr(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function ar(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 Wt from"node:fs/promises";import mr 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 cr=4,tp=20,np=200,rp=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function dr(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 ip(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 op(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 Vs(e,t=cr){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=xe(n);if(r.length===0)return[n];let i=r.filter(a=>!rp.has(a.toLowerCase())),o=r.map(a=>ip(a)),s=i.map(a=>op(a));return dr([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function Ys(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?dr(t.filter(n=>typeof n=="string"),cr):[]}function Xs(e,t,n){return dr([...e,...t],Math.max(1,n))}function Qs(e,t){let r=e.search?.query_expansion,i=Ae(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:cr}}function Js(e,t){let r=e.search?.rerank,i=Ae(r?.model),s=xr(r?.top_k)??tp;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(np,s)}}function Zs(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=Ae(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 sp(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function ea(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function ap(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=sp(e,t),i=ea(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 ta(e,t,n,r,i){if(r.length===0)return new Map;let o=Ae(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],d=await ht(s,a,i?{timeout_ms:i}:{}),c=d[0];if(!c)return new Map;let l=ea(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=ap(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 cp=1.2,dp=.75;function ur(e){return xe(e)}function up(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function ra(e){let t=[],n=new Map,r=0;for(let o of e){let s=ur(o.text),a=up(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 lp(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function ia(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,lp(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 na(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function oa(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 sa(e){let t=e?.search?.bm25;return{k1:na(t?.k1,cp,0,1e3),b:na(t?.b,dp,0,1)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1750b332-dd40-5497-b410-26c8c7436329")}catch{}})();var fp=2,mp=120,pp=6,hp=40,gp=1e3,yp=900,_p="\xAB",wp="\xBB",aa=60,ua=["tag","status","type","priority"];function la(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 fa(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=la(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 ma(e,t){let n=fa(t);return`search_${e}_fallback:${n}:using_keyword_mode`}async function pa(e,t,n){try{let r=await bi(e);r.warnings.length>0&&n.push(...r.warnings);let i=vi(t.map(o=>({id:o.metadata.id,updated_at:o.metadata.updated_at})),r.entries);if(i.length===0)return;n.push(`vector_index_stale:${i.length}`),process.stderr.write(`[pm] warning: ${i.length} item${i.length===1?" is":"s are"} new or modified since the last reindex and ${i.length===1?"is":"are"} NOT in the semantic index yet \u2014 they will be missing from semantic/hybrid results until you run 'pm reindex --mode hybrid'. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
13
- `)}catch{}}var cb={applyFilters:ba,applyExactQueryFilters:wa,applyInlineQueryFilters:ga,buildHitHighlights:Ia,buildVerboseSearchFilters:tt,buildExplicitSemanticFallbackWarning:ma,buildCompactSearchFilterSummary:et,buildHybridLexicalScore:Ra,buildRerankCorpus:ja,buildSemanticHits:Oa,classifyImplicitSemanticFallbackReason:fa,collectErrorCauseCodes:la,collectExactPhraseFields:ya,collectLinkedPaths:ka,combineHybridHits:yr,computeBuiltInBm25Hits:$a,computeSemanticOrHybridHits:Ua,resolveBuiltInBm25Mode:Na,countOccurrences:hr,dependencyEntries:pr,documentContainsExactPhrase:_a,emptySearchResult:Aa,highlightFieldSnippet:Ca,loadDocuments:Ka,markTokenRuns:xa,parseInlineQueryFilters:ha,maybeEmitVectorIndexStaleWarning:pa,loadLinkedCorpus:Sa,mergeVectorHitsById:Pa,normalizeExtensionProviderHits:La,normalizeScoreMap:lr,parseProjectionConfig:tr,parseTimestampWindow:Fe,parseTokens:rr,projectSearchHits:Ha,readSearchFieldValue:Ba,requireSemanticDependencies:gr,resolveExtensionSearchProvider:Ma,resolveExtensionSearchProviderByName:Xt,resolveExtensionVectorAdapter:Da,resolveLinkedCorpusRoots:va,scoreDocument:Ta,sortHits:Fa,stringArray:Yt,textEntries:me,validateSearchProjectionFields:nr};function ha(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=ua.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 ga(e,t,n){let r={...e};for(let i of ua){let o=t[i];if(o!==void 0){if(N(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function Yt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function me(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function pr(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function ya(e){let t=e.metadata;return[t.title,t.description,t.status,Yt(t.tags).join(" "),e.body,me(t.comments).map(n=>n.text).join(" "),me(t.notes).map(n=>n.text).join(" "),me(t.learnings).map(n=>n.text).join(" "),sn(t).join(" "),an(t).join(" "),pr(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),cn(t)]}function _a(e,t){return ya(e).some(n=>ne(n).includes(t))}function wa(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&ne(r.metadata.title)!==t||n.phraseExact&&!_a(r,t)))}function bp(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 kp(e,t,n){let r=W(e.assignee,{label:"--assignee"});bp(r);let i=Tt(e),o=Be(e);return{typeFilter:vt(e.type,t),tagFilter:W(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:St(e.priority),deadlineBefore:er(e.deadlineBefore,"deadline-before"),deadlineAfter:er(e.deadlineAfter,"deadline-after"),updatedAfter:Fe(e.updatedAfter,"updated-after"),updatedBefore:Fe(e.updatedBefore,"updated-before"),createdAfter:Fe(e.createdAfter,"created-after"),createdBefore:Fe(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:W(e.sprint,{label:"--sprint"}),releaseFilter:W(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:je(i),contentFieldFilters:o,contentFiltersActive:Ct(o)}}function vp(e,t){return Sp(e,t)&&Ep(e,t)&&xp(e,t)}function Sp(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&&!Yt(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function Ep(e,t){return ut(e,t)}function xp(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 Cp(e,t,n,r){let i=e.metadata;return!(!vp(i,t)||!Ee(i,n)||t.missingMetadataActive&&!xt(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!It(i,t.contentFieldFilters))}function ba(e,t,n,r,i,o){let s=kp(t,n,i);return e.filter(a=>Cp(a,s,r,o))}function hr(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 Ip(e){return xe(e)}function ka(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 ca(e){let t=mr.resolve(e);try{let n=await Wt.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function va(e,t){let[n,r]=await Promise.all([ca(e),ca(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function Sa(e,t){let n=ka(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=mr.resolve(o.resolved,i.path);if(!tn(o.resolved,s))continue;let a;try{a=await Wt.realpath(s)}catch{continue}if(tn(o.realpath,a))try{await De({path:s,scope:i.scope}),r.push(await Wt.readFile(s,"utf8"))}catch{}}return r.join(`
14
- `)}var Ea=[{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=>Yt(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=>me(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>me(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>me(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>sn(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>an(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>pr(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>cn(e.metadata)}],Tp=new Map(Ea.map(e=>[e.name,e]));function Fp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function xa(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map(Fp);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${_p}${i}${wp}`)}function Ca(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-aa),s=Math.min(e.length,r+i+aa),a=xa(e.slice(o,s),t),d=o>0?"\u2026":"",c=s<e.length?"\u2026":"";return`${d}${a}${c}`}function Ia(e,t,n){let r=[];for(let i of t){let o=Tp.get(i);if(o===void 0)continue;let s=Ca(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function Rp(e,t,n){return[...Ea.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function Ap(e,t,n){let r=ne(e.id),i=typeof n=="string"?n.trim().toLowerCase():"",o=ne(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?gp:yp,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function Mp(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=hr(a.value.toLowerCase(),o);d>0&&(i.score+=d*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function Dp(e,t,n,r){ne(e.title)===t&&(r.score+=mp,r.matched.add("title"));for(let o of n){let s=hr(ne(o.value),t);s>0&&(r.score+=s*o.weight*pp,r.matched.add(o.name))}}function Ta(e,t,n,r,i,o,s=!1){let a=e.metadata,d=Ap(a,n,o);if(d)return d;let c=new Map;for(let g of Ip(a.title))c.set(g,(c.get(g)??0)+1);let l=Rp(e,r,i),u={score:0,matched:new Set,matchedTokens:new Set};Mp(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+=hp),t.length>=fp&&n.includes(" ")&&Dp(a,n,l,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((g,k)=>g.localeCompare(k)),matched_all_terms:h}}function Fa(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=B(n.item.status,t),s=B(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 Ra(e,t,n,r,i,o,s,a=!1){return Ta(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function lr(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 Aa(e,t,n,r,i,o,s,a,d,c,l,u,f=!1){let h=f?{total:0,count_only:!0}:{};if(c.mode==="compact"&&r.compact===!0){let k=et({mode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,runtimeFieldFilters:u});return{query:e.trim(),mode:t,items:[],count:0,...h,filters:k,...l.length>0?{warnings:l}:{}}}let g=c.mode==="full"?null:[...c.fields];return{query:e.trim(),mode:t,items:[],count:0,...h,filters:tt({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 gr(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 Y=N;function Xt(e){let t=R(),n=li(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=Y(r.name)??Y(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 Ma(e){let t=Y(e.search?.provider),n=Xt(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function Da(e){let t=R(),n=Y(e.vector_store?.adapter),r=fi(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:Y(i.name)??Y(r.definition.name)??n??"extension",query:o,...typeof s=="function"?{upsert:s}:{}}}function La(e,t,n){let r=Array.isArray(t)?t:t?.hits;if(!Array.isArray(r))throw new p(`Extension search provider "${e}" must return an array of hits or { hits: [...] }`,m.GENERIC_FAILURE);let i=new Set,o=[];for(let s of r){if(typeof s!="object"||s===null)continue;let a=Y(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 Oa(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 Vt(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 yr(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=lr(t),d=lr(o),c=new Set([...t.keys(),...o.keys()]),l=1-r;return[...c].map(u=>{let f=e.get(u),h=a.get(u)??0,y=d.get(u)??0,g=h*r+y*l;if(g<=0)return null;let k=new Set;t.has(u)&&k.add(i);for(let _ of s.get(u)??[])k.add(_);return{item:f.metadata,score:g,matched_fields:[...k].sort((_,w)=>_.localeCompare(w))}}).filter(u=>u!==null)}function Na(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function $a(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:oa(_i(s,{fields:e.corpusFields}))})),n=ra(t),r=ia(n,ur(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 Vt(s,e.keywordHits)}let o=yr(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return Vt(o,e.keywordHits)}function Pa(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 ja(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 Lp(e,t){let n=e.queryExpansion.enabled?Vs(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 Xs(r,Ys(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 Op(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 dn(e.vectorStore,t,n,r)}if(e.vectorStore)return await dn(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 Np(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:ja(o)}:null}).filter(i=>i!==null)}async function $p(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=Zs(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 Pp(e,t,n){let r=await $p(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await ta(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function jp(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 Up(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=Np(n,r,e.rerank.top_k),o=await Pp(e,t,i);return o&&o.size>0?jp(n,o):n}async function Ua(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 Lp(e,i),s=await ht(e.provider,o,n),a=await Promise.all(s.map(async y=>await Op(e,y,t,r))),d=Pa(a),c=new Map(e.filteredDocuments.map(y=>[y.metadata.id,y])),{semanticHits:l,semanticScores:u}=Oa(d,c),f=u.size;if(e.requestedMode==="semantic")return{hits:Vt(l,e.keywordHits),vectorMatchCount:f};let h=await Up(e,i,yr(c,u,e.keywordHits,e.hybridSemanticWeight),c);return{hits:Vt(h,e.keywordHits),vectorMatchCount:f}}async function Ka(e,t,n,r){let i=vr(R()),o=async(c,l,u)=>{let f=async(h,y)=>{await De({path:h,scope:"project"});let g=await Wt.readFile(h,"utf8");return Br(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=Re(e,c.type,c.id,h,n);try{return await f(y,h)}catch{return s.push(`item_list_item_read_failed:${mr.relative(e,y)}`),""}}},s=[],a=await ci(e,t,n,s,r),d=[];if(a.length===0){let c=await pt(e,t,n,s,r);for(let l of c){let u=Re(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 Ba(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 Ha(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]=Ba(n,i);return r})}function Kp(e){let t=Xt(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function Bp(e){let t=Xt(Y(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function Hp(e,t){let n=[],r=ha(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=ga(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:qt(s.includeLinked),titleExact:qt(s.titleExact),phraseExact:qt(s.phraseExact),matchMode:zs(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:Ws(s.minScore),countOnly:s.count===!0,tokens:rr(o),normalizedQuery:ne(o),limit:ue(s.limit),projection:tr(s),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function Gp(e,t){let n=C(process.cwd(),t.path);if(!await D($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await F(n),i=hi(r).settings,o=P(i.schema),s=G(i.schema);nr(e.projection,s);let a=Se(e.options,s,"search"),d=L(i,R()),c=gi(i),l=wi(i,n),u=Ma(i),f=Da(i),h=qs(e.options.semanticWeight),y=Qs(i,c.active?.name??null),g=Js(i,c.active?.model??Y(i.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:i,statusRegistry:o,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:d,maxResults:ir(i),scoreThreshold:e.minScoreOverride??or(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:h,hybridSemanticWeight:h??sr(i),tuning:ar(i),providerResolution:c,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:f,bm25Mode:Na({configuredProvider:Y(i.search?.provider),hasEmbeddingProvider:c.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:y,queryExpansionExtension:Kp(y),rerank:g,rerankExtension:Bp(i),effectiveMode:Gs(e.options.mode)}}async function qp(e,t){let n=await Ka(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=ve(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),i=Et(t.statusRegistry),o=ba(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:wa(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function zp(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await va(i,Er(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await Sa(a,o)]));for(let[a,d]of s)r.set(a,d);return r}async function Wp(e,t,n){let r=await zp(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>Ra(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 da(e,t){return Aa(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 Vp(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=$a({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:yi(t.settings),bm25Params:sa(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 Yp(e,t,n,r){if(!t.extensionSearchProvider)return null;let i=t.providerResolution.active!==null&&(t.vectorResolution.active!==null||t.extensionVectorAdapter!==null);try{let o=await Promise.resolve(t.extensionSearchProvider.query({query:e.query,mode:t.effectiveMode,tokens:e.tokens,options:e.options,settings:t.settings,documents:n}));return La(t.extensionSearchProvider.providerName,o,r)}catch(o){if(!i)throw new p(`Extension search provider "${t.extensionSearchProvider.providerName}" failed: ${o instanceof Error?o.message:String(o)}`,m.GENERIC_FAILURE);return null}}function Xp(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 Qp(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await pa(e.pmRoot,n,r),e.extensionSearchProvider||gr(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function Jp(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,d=await Vp(t,n,r,i,o),c=n.effectiveMode;if(d!==null||c==="keyword")return{effectiveMode:n.effectiveMode,hits:d??a};try{if(await Qp(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 Yp(t,n,r,l)??a,a===i){let{provider:u,vectorStore:f}=gr(c,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),h=await Ua({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=Xp(c,h,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(l){return o.push(ma(n.effectiveMode,l)),{effectiveMode:"keyword",hits:i}}}function Zp(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return fr({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:et({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 fr({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:tt({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 fr(e,t){return t.length===0?e:{...e,warnings:t}}function zt(e,t){return t?{...e,workspace_memory:t}:e}function eh(e,t,n){if(!e.highlight)return{hits:n,projection:e.projection};let r=new Map(t.map(o=>[o.metadata.id,o])),i=n.map(o=>({...o,highlights:Ia(r.get(o.item.id),o.matched_fields,e.tokens)}));return e.projection.mode==="full"||e.projection.fields.includes("highlights")?{hits:i,projection:e.projection}:{hits:i,projection:{mode:e.projection.mode,fields:[...e.projection.fields,"highlights"]}}}function th(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return fr({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:et({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:tt({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 nh(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){nh(t);let r=Hp(e,t),i=await Gp(r,n),o=await qp(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await jt(o.allDocuments.map(E=>E.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:A()});s.push(...a.warnings);let d=ys(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 zt(da({...c,effectiveMode:i.effectiveMode},r.countOnly),d);let l=await Wp(r,i,o.filteredDocuments),u=await Jp({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 zt(da({...c,effectiveMode:u.effectiveMode},r.countOnly),d);let f=u.hits.filter(E=>E.exact_id_match===!0||E.score>=i.scoreThreshold),h=Fa(f,i.statusRegistry),y=h.length,g=Hs({sorted:h,query:r.query,mode:u.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),k={...c,effectiveMode:u.effectiveMode};if(r.countOnly)return zt(Zp(k,y),d);let{hits:_,projection:w}=eh(r,o.filteredDocuments,g.limited),b=Ha(_,w);return zt(th(k,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 xi({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{Ii as a,$e as b,Ti as c,Fi as d,hh as e,Ri as f,mn as g,$h as h,Li as i,j,yt as k,Oi as l,_t as m,mc as n,wt as o,kt as p,hg as q,Ui as r,ey as s,yn as t,W as u,vt as v,St as w,Et as x,Sg as y,Eg as z,Cg as A,Tt as B,Be as C,Qi as D,Ji as E,Zc as F,ed as G,Qg as H,kn as I,He as J,Ge as K,ee as L,Jg as M,oy as N,sy as O,fy as P,my as Q,py as R,Qo as S,Ln as T,Dt as U,Uu as V,es as W,qu as X,Lt as Y,zu as Z,Wu as _,Qu as $,Ju as aa,wy as ba,Zu as ca,ts as da,V as ea,Ot as fa,Cy as ga,us as ha,Nt as ia,On as ja,Nn as ka,wl as la,xl as ma,Cl as na,$n as oa,Pn as pa,Pt as qa,Al as ra,Ol as sa,jt as ta,Bl as ua,gs as va,Hl as wa,ys as xa,ws as ya,Yy as za,Xy as Aa,Qy as Ba,Jy as Ca,bs as Da,Gl as Ea,Ql as Fa,Ve as Ga,y_ as Ha,Kn as Ia,ef as Ja,tf as Ka,Hn as La,fe as Ma,qn as Na,zn as Oa,Wn as Pa,Te as Qa,Je as Ra,Ut as Sa,__ as Ta,em as Ua,w_ as Va,om as Wa,R_ as Xa,A_ as Ya,um as Za,M_ as _a,D_ as $a,U_ as ab,$s as bb,Ps as cb,js as db,rw as eb,iw as fb,et as gb,tt as hb,Xm as ib,Hs as jb,ir as kb,or as lb,sr as mb,ar as nb,la as ob,fa as pb,cb as qb,db as rb,pb as sb};
16
- //# sourceMappingURL=chunk-267MUUS6.js.map