@unbrained/pm-cli 2026.8.19 → 2026.8.20

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 (146) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +19 -0
  3. package/dist/cli/register-list-query.js +12 -10
  4. package/dist/cli/register-structured-mutation.d.ts +2 -0
  5. package/dist/cli/register-structured-mutation.js +29 -6
  6. package/dist/cli-bundle/bundle-manifest.json +151 -143
  7. package/dist/cli-bundle/chunks/{chunk-4THEB6PD.js → chunk-2RDVGYWE.js} +12 -12
  8. package/dist/cli-bundle/chunks/{chunk-BHYMXLAE.js → chunk-4GB2LTOQ.js} +2 -2
  9. package/dist/cli-bundle/chunks/{chunk-TOXJM4WA.js → chunk-7BRF2BX2.js} +2 -2
  10. package/dist/cli-bundle/chunks/chunk-BLVQHFSY.js +35 -0
  11. package/dist/cli-bundle/chunks/chunk-CU25EQVV.js +5 -0
  12. package/dist/cli-bundle/chunks/{chunk-4NRRH7AM.js → chunk-K3EN3LK2.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-OIOKV6NO.js → chunk-L4LGPBJU.js} +49 -49
  14. package/dist/cli-bundle/chunks/chunk-RS3IV2R6.js +197 -0
  15. package/dist/cli-bundle/chunks/chunk-TSMWLCHS.js +3 -0
  16. package/dist/cli-bundle/chunks/chunk-US2ZQW2M.js +77 -0
  17. package/dist/cli-bundle/chunks/{chunk-QXSH7BLM.js → chunk-XYDDWBZN.js} +2 -2
  18. package/dist/cli-bundle/chunks/register-list-query-JSAQCVOC.js +11 -0
  19. package/dist/cli-bundle/chunks/{register-mutation-AUWVCW4M.js → register-mutation-XJPAW63D.js} +20 -20
  20. package/dist/cli-bundle/chunks/{register-operations-PZQPHXW5.js → register-operations-DSOSB2XQ.js} +2 -2
  21. package/dist/cli-bundle/chunks/{register-setup-I4LUHGVW.js → register-setup-QUR6QL2C.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/{chunk-DKPLYW3L.js → chunk-325UXIO7.js} +2 -2
  23. package/dist/cli-bundle/focused-chunks/chunk-5L7M4AI7.js +2 -0
  24. package/dist/cli-bundle/focused-chunks/{chunk-EF6ZS5GH.js → chunk-6AHG2YW7.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/{chunk-MCZXYZAF.js → chunk-AZBACT5T.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/{chunk-VXDSU5MC.js → chunk-BLJCGGID.js} +2 -2
  27. package/dist/cli-bundle/focused-chunks/chunk-FUREQLQN.js +18 -0
  28. package/dist/cli-bundle/focused-chunks/{chunk-US7VEYZG.js → chunk-G3C5ERXG.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-ZBIQQYMI.js → chunk-GXWQBE3T.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/{chunk-JDOMQ7VQ.js → chunk-JWKEDZJI.js} +3 -3
  31. package/dist/cli-bundle/focused-chunks/chunk-KYZ6JGPL.js +155 -0
  32. package/dist/cli-bundle/focused-chunks/{chunk-ESISGDAY.js → chunk-M32HFIQB.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/{chunk-EXBCLIBU.js → chunk-OM65KHGF.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/chunk-Q47EX4DI.js +2 -0
  35. package/dist/cli-bundle/focused-chunks/{chunk-BJRYFVSH.js → chunk-RIHDMCUM.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/chunk-T4ZFY7ZJ.js +16 -0
  37. package/dist/cli-bundle/focused-chunks/chunk-TDR5OGG3.js +2 -0
  38. package/dist/cli-bundle/focused-chunks/{chunk-ODHQEECS.js → chunk-UGSS4F5X.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/chunk-Z3PLWSGM.js +2 -0
  40. package/dist/cli-bundle/main.js +2 -2
  41. package/dist/cli-bundle/sdk-authoring.js +1 -1
  42. package/dist/cli-bundle/sdk-contracts.js +2 -2
  43. package/dist/cli-bundle/sdk-core.js +41 -41
  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 +31 -31
  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 +5 -5
  51. package/dist/core/output/mutation-projection.js +26 -2
  52. package/dist/core/shared/constants.d.ts +1 -5
  53. package/dist/core/shared/constants.js +3 -81
  54. package/dist/core/shared/item-metadata-contract.d.ts +14 -0
  55. package/dist/core/shared/item-metadata-contract.js +90 -0
  56. package/dist/core/store/item-store.d.ts +60 -0
  57. package/dist/core/store/item-store.js +22 -5
  58. package/dist/sdk/agent/closed-domain-contracts.d.ts +25 -0
  59. package/dist/sdk/agent/closed-domain-contracts.js +140 -0
  60. package/dist/sdk/agent/refusal-closure.d.ts +13 -1
  61. package/dist/sdk/agent/refusal-closure.js +45 -3
  62. package/dist/sdk/agent/refusal-reachability.d.ts +26 -0
  63. package/dist/sdk/agent/refusal-reachability.js +26 -2
  64. package/dist/sdk/agent-capability-contracts.js +6 -11
  65. package/dist/sdk/cli-contracts/completeness.js +8 -2
  66. package/dist/sdk/cli-contracts/enum-contracts.d.ts +4 -2
  67. package/dist/sdk/cli-contracts/enum-contracts.js +16 -6
  68. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  69. package/dist/sdk/cli-contracts/flag-contracts.js +11 -2
  70. package/dist/sdk/cli-contracts/flag-lexicon-contracts.d.ts +19 -2
  71. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +105 -5
  72. package/dist/sdk/cli-contracts/grammar-contracts.d.ts +2 -2
  73. package/dist/sdk/cli-contracts/grammar-contracts.js +5 -2
  74. package/dist/sdk/cli-contracts/runtime-contracts.js +7 -3
  75. package/dist/sdk/cli-contracts/tool-schema.js +7 -2
  76. package/dist/sdk/cli-contracts.d.ts +2 -2
  77. package/dist/sdk/cli-contracts.js +4 -4
  78. package/dist/sdk/contracts.d.ts +1 -0
  79. package/dist/sdk/contracts.js +3 -2
  80. package/dist/sdk/core.d.ts +1 -1
  81. package/dist/sdk/core.js +3 -3
  82. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +74 -2
  83. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +112 -40
  84. package/dist/sdk/index.d.ts +5 -3
  85. package/dist/sdk/index.js +6 -4
  86. package/dist/sdk/init-agent-guidance.d.ts +5 -3
  87. package/dist/sdk/init-agent-guidance.js +69 -9
  88. package/dist/sdk/lifecycle/mcp-actions.d.ts +18 -0
  89. package/dist/sdk/lifecycle/mcp-actions.js +52 -0
  90. package/dist/sdk/lifecycle/reopen.d.ts +44 -0
  91. package/dist/sdk/lifecycle/reopen.js +69 -0
  92. package/dist/sdk/lifecycle/update.d.ts +31 -0
  93. package/dist/sdk/lifecycle/update.js +95 -13
  94. package/dist/sdk/query/get.d.ts +1 -1
  95. package/dist/sdk/query/get.js +18 -52
  96. package/dist/sdk/query/list.d.ts +7 -21
  97. package/dist/sdk/query/list.js +35 -49
  98. package/dist/sdk/query/projection-contracts.d.ts +33 -0
  99. package/dist/sdk/query/projection-contracts.js +185 -0
  100. package/dist/sdk/query/search-contracts.d.ts +2 -1
  101. package/dist/sdk/query/search-contracts.js +18 -87
  102. package/dist/sdk/query/search.d.ts +15 -0
  103. package/dist/sdk/query/search.js +31 -5
  104. package/dist/sdk/runtime-primitives.d.ts +1 -1
  105. package/dist/sdk/runtime-primitives.js +3 -3
  106. package/dist/sdk/runtime.d.ts +6 -0
  107. package/dist/sdk/runtime.js +18 -14
  108. package/dist/sdk/similarity.d.ts +13 -0
  109. package/dist/sdk/similarity.js +32 -6
  110. package/docs/COMMANDS.md +13 -1
  111. package/docs/README.md +1 -0
  112. package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +114 -0
  113. package/docs/SDK.md +10 -2
  114. package/docs/SDK_CONTEXT_INTEGRITY.md +45 -0
  115. package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -1
  116. package/docs/performance/sdk-entrypoint-import-costs.md +14 -21
  117. package/marketplace.json +2 -2
  118. package/package.json +5 -5
  119. package/packages/pm-beads/package.json +1 -1
  120. package/packages/pm-calendar/package.json +1 -1
  121. package/packages/pm-command-kit/package.json +1 -1
  122. package/packages/pm-digital-twin/package.json +1 -1
  123. package/packages/pm-governance-audit/package.json +1 -1
  124. package/packages/pm-guide-shell/package.json +1 -1
  125. package/packages/pm-kanban/package.json +1 -1
  126. package/packages/pm-lifecycle-hooks/package.json +1 -1
  127. package/packages/pm-linked-test-adapters/package.json +1 -1
  128. package/packages/pm-search-advanced/package.json +1 -1
  129. package/packages/pm-templates/package.json +1 -1
  130. package/packages/pm-todos/package.json +1 -1
  131. package/packages/pm-vcs/package.json +1 -1
  132. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  133. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  134. package/sdk/public-surface.json +387 -25
  135. package/dist/cli-bundle/chunks/chunk-GWMXAQOD.js +0 -197
  136. package/dist/cli-bundle/chunks/chunk-HVFQTLYM.js +0 -35
  137. package/dist/cli-bundle/chunks/chunk-OI4XI562.js +0 -5
  138. package/dist/cli-bundle/chunks/chunk-SARFF5H5.js +0 -3
  139. package/dist/cli-bundle/chunks/chunk-YBMRWW4E.js +0 -77
  140. package/dist/cli-bundle/chunks/register-list-query-Y56KINDU.js +0 -11
  141. package/dist/cli-bundle/focused-chunks/chunk-34QBIYZI.js +0 -155
  142. package/dist/cli-bundle/focused-chunks/chunk-L623ZPNK.js +0 -2
  143. package/dist/cli-bundle/focused-chunks/chunk-PRHY2IMX.js +0 -18
  144. package/dist/cli-bundle/focused-chunks/chunk-RZU5U6Q7.js +0 -2
  145. package/dist/cli-bundle/focused-chunks/chunk-YBMGXBFV.js +0 -16
  146. package/dist/cli-bundle/focused-chunks/chunk-YLVBJ6GF.js +0 -2
@@ -1,13 +1,13 @@
1
- import{$a as dn,$d as ln,$f as eo,B as Nr,Ba as ve,Bh as T,C as g,Dd as zr,E as h,Ed as Hr,Fd as qr,G as j,Ga as cn,Gc as un,Gd as Wr,Ha as at,Hd as Vr,Hg as ao,Hh as fo,Ic as jr,Ig as pt,Jc as Ur,Ld as xe,Lh as mo,Mb as Ee,Mh as po,Na as O,Nh as De,Oa as ct,Oc as Br,Oh as go,Q as G,Qd as Yr,Qh as le,Rh as fe,Sh as ho,T as x,Te as mn,Th as ee,U as Mr,Uf as pn,Uh as yo,V as se,Va as S,Xd as pe,Ya as $,Yd as Ie,Yf as Se,Za as Or,Zd as Xr,_d as Jr,aa as Fr,bg as to,bh as co,c as A,ca as Lr,cd as z,cg as no,ch as uo,d as st,dc as Pr,dk as _o,e as Dr,ed as dt,eg as Ue,f as ie,g as K,gg as ue,gh as hn,h as Rr,hg as gn,ig as ro,je as ut,kf as ft,le as Qr,lg as oo,ng as mt,pd as M,pe as fn,qd as C,qe as lt,qg as io,rb as W,rd as F,re as de,se as Z,sh as gt,th as ht,ug as so,ve as Zr,vg as Te,vl as wo,wb as $r,wd as Gr,we as Ce,x as Ar,xc as N,xd as Kr,yh as lo}from"./chunk-GWMXAQOD.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 ba(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new h(`History for this item contains invalid timestamp at entry ${o+1}.`,g.GENERIC_FAILURE);i<=t&&(n=o)}),n}function ka(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 bo(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 o=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(i=>{let s=o[i];return typeof s=="string"?[[i,s]]:[]})))}if(n.patchIndex!==void 0){let o=e[n.patchIndex];o&&(n.op??=o.op,n.path??=o.path,n.from??=o.from)}return n}function ko(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=ka(t);if(!r)throw new h(`Missing ${o} target. Use a timestamp or version number.`,g.USAGE,s);if(/^\d+$/.test(r)){let u=Number(r);if(!Number.isSafeInteger(u)||u<1||u>t.length)throw new h(`${i} version must be between 1 and ${t.length} for this item.`,g.USAGE,s);return{kind:"version",raw:r,historyIndex:u-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new h(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,g.USAGE,s);let d=ba(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new h(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,g.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function Be(e,t,n,r){let o=oo(e,t);if(o.ok)return o.document;let i=bo(t,o.error),s=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new h(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,g.GENERIC_FAILURE)}function vo(e,t){let n=structuredClone(Ue);for(let r=0;r<=t;r+=1){let o=e[r];if(!o)throw new h(`History target entry ${r+1} does not exist.`,g.USAGE);if(ue(n)!==o.before_hash)throw new h(`History hash mismatch before replay at entry ${r+1}.`,g.GENERIC_FAILURE);if(n=Be(n,o.patch,r+1,o.op),ue(n)!==o.after_hash)throw new h(`History hash mismatch after replay at entry ${r+1}.`,g.GENERIC_FAILURE)}return n}function Eo(e,t){if(Object.keys(e.metadata).length>0)return e;throw new h(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,g.USAGE)}import yn 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 Ea(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=lo(e.settings);if(n.ownership_enforcement==="strict")throw new h(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,g.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function xa(e){let t=await ie(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new h(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,g.CONFLICT);let n=await le(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await fe(n,{schema:e.settings.schema}):null;if((r?.raw??null)!==(e.currentItemRawBeforeLock??null))throw new h(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,g.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function uh(e){let t=e.writeHistoryRaw??K;try{await t(e.historyPath,e.nextHistoryRaw),await Se(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await va.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await Se(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function xo(e){let t=[...Ea({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await Te(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 _n(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function Io(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function Co(e){let t=e.trim();if(t.length===0)throw new h("history-redact --regex requires a non-empty pattern.",g.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(n=t.slice(1,o),r=Io(t.slice(o+1)))}if(n.length===0)throw new h("history-redact --regex cannot use an empty pattern.",g.USAGE);try{new RegExp(n,r)}catch{throw new h("Invalid --regex value; provide a valid JavaScript regular expression.",g.USAGE)}return{kind:"regex",source:n,flags:r}}function So(e,t){let n=[...new Set(_n(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),r=[...new Set(_n(t).map(i=>i.trim()))].filter(i=>i.length>0).map(Co),o=[...n,...r];if(o.length===0)throw new h("history-redact requires at least one matcher via --literal or --regex.",g.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 o}function To(e,t,n){if(t.length===0)return{value:e,replacements:0};let r=0,o=0;for(;r<=e.length;){let i=e.indexOf(t,r);if(i===-1)break;o+=1,r=i+Math.max(1,t.length)}return o===0?{value:e,replacements:0}:{value:e.split(t).join(n),replacements:o}}function Do(e,t,n){let r=new RegExp(t.source,t.flags),o=[...e.matchAll(r)];return o.length===0?{value:e,replacements:0}:{value:e.replace(r,n),replacements:o.length}}function wn(e,t,n){let r=e,o=0;for(let i of t){let s=i.kind==="literal"?To(r,i.value,n):Do(r,i,n);r=s.value,o+=s.replacements}return{value:r,replacements:o}}function yt(e,t,n){if(typeof e=="string")return wn(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(i=>{let s=yt(i,t,n);return r+=s.replacements,s.value}),replacements:r}}if(typeof e=="object"&&e!==null){let r=0,o={};for(let[i,s]of Object.entries(e)){let a=yt(s,t,n);r+=a.replacements,o[i]=a.value}return{value:o,replacements:r}}return{value:e,replacements:0}}function Ia(e){let t=structuredClone(Ue),n=0,r=0;for(let o=0;o<e.length;o+=1){let i=e[o];ue(t)!==i.before_hash&&(n+=1),t=Be(t,i.patch,o+1,i.op),ue(t)!==i.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function Ca(e,t,n){let r=0,o=!1,i=e.message;if(typeof e.message=="string"){let a=wn(e.message,t,n);i=a.value,r+=a.replacements,a.replacements>0&&(o=!0)}let s=e.patch.map(a=>{if(!Object.prototype.hasOwnProperty.call(a,"value"))return a;let c=yt(a.value,t,n);return r+=c.replacements,c.replacements>0?(o=!0,{...a,value:c.value}):a});return{entry:{...e,message:i,patch:s},replacements:r,changed:o}}function Sa(e,t,n){let r=structuredClone(Ue),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=Ca(e[a],t,n);i+=c.replacements,c.changed&&(o+=1);let d=ue(r);r=Be(r,c.entry.patch,a+1,c.entry.op);let u=ue(r);s.push({...c.entry,before_hash:d,after_hash:u})}return{entries:s,finalDocument:r,entriesChanged:o,replacements:i}}function Ro(e){return Object.keys(e.metadata).length>0}async function Ta(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await fe(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function Da(e){if(!Ro(e.finalDocument))return{raw:null,path:null,document:null};let t=Kr(gn(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new h("history-redact would change the item id; narrow your patterns.",g.USAGE);return{document:t,path:Or(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Gr(t,{format:"toon",schema:e.settings.schema})}}function Ra(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 Aa(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??gn(e.rewritten.finalDocument);return t.push(no({nowIso:G(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function Na(e){let t=[];return xo({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 po(e.pmRoot,e.author),o=new Set;e.currentItem.path&&o.add(e.currentItem.path),e.nextItem.path&&o.add(e.nextItem.path);let i=new Map;e.currentItem.path&&e.currentItem.raw!==null&&i.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 K(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await yn.rm(e.currentItem.path,{force:!0}),await K(e.subject.historyPath,io(e.rewrittenEntries))}catch(c){try{await Ma(e.subject.historyPath,n,o,i)}finally{await Se(e.subject.historyPath)}throw c}await Se(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await go({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 Fa(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function Ma(e,t,n,r){t===null?await yn.rm(e,{force:!0}):await K(e,t);for(let o of n){let i=r.get(o);i===void 0?await yn.rm(o,{force:!0}):await K(o,i)}}async function Fa(e,t){let n=[],r=new Set(t.filter(o=>o!==null));for(let o of r)n.push(...await un({path:o,scope:"project",op:"history_redact"}));return n.push(...await un({path:e,scope:"project",op:"history_redact:history"})),n}async function bn(e,t,n,r){let o=await le(e,t,n.id_prefix,n.item_format,r);if(o)return{id:o.id,historyPath:dn(e,o.id),located:o};let i=pt(t,n.id_prefix),s=ao(t),a=i===s?[i]:[i,s];for(let c of a){let d=dn(e,c);if(await A(d))return{id:c,historyPath:d,located:null}}throw new h(`Item ${t} not found`,g.NOT_FOUND)}async function Nh(e,t,n){let r=S(process.cwd(),n.path);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let o=await T(r),i=O(o,N()),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=So(t.literal,t.regex),u=await bn(r,e,o,i.type_to_folder);if(!await A(u.historyPath))throw new h(`No history stream exists for ${u.id}.`,g.NOT_FOUND);let l=await ie(u.historyPath),f=await Ie(u.historyPath,u.id);if(f.length===0)throw new h(`No history entries exist for ${u.id}; nothing to redact.`,g.USAGE);let m=Ia(f),y=Sa(f,d,c),p=m.hashMismatchesBefore+m.hashMismatchesAfter,b=!!t.dryRun,w=y.replacements>0,_=[];p>0&&_.push(`history_redact_preexisting_hash_mismatches:${p}`),w||_.push("history_redact_no_matches");let k=await Ta(u,o),E=Da({pmRoot:r,subject:u,settings:o,typeToFolder:i.type_to_folder,finalDocument:y.finalDocument}),I=(k.path??null)!==(E.path??null)||(k.raw??null)!==(E.raw??null),P=pe(t.author,o.author_default),D=Ra(t,y),{rewrittenEntries:U,auditEntryAdded:ce}=Aa({rewritten:y,dryRun:b,changed:w,nextItemDocument:E.document,author:P,message:D}),B=mt(U);if(!B.ok)throw new h(`history-redact produced an invalid rewritten chain (${B.errors.join(", ")}).`,g.GENERIC_FAILURE);return!b&&w&&_.push(...await Na({pmRoot:r,subject:u,settings:o,typeRegistry:i,historyRawBeforeLock:l,currentItem:k,nextItem:E,author:P,force:t.force,rewrittenEntries:U})),{id:u.id,dry_run:b,changed:w,patterns:{literal_count:d.filter(L=>L.kind==="literal").length,regex_count:d.filter(L=>L.kind==="regex").length,total_count:d.length,replacement_is_default:a},history:{path:u.historyPath,entries_scanned:f.length,entries_changed:y.entriesChanged,replacements:y.replacements,hash_mismatches_before:m.hashMismatchesBefore,hash_mismatches_after:m.hashMismatchesAfter,preexisting_hash_mismatches:p,audit_entry_added:ce,verify_ok:B.ok,verify_errors:B.errors},item:{existed_before:k.path!==null,exists_after:E.path!==null,path_before:k.path,path_after:E.path,changed:I},warnings:[...new Set(_)].sort((L,q)=>L.localeCompare(q)),generated_at:G()}}var Mh={applyLiteralRule:To,applyRegexRule:Do,buildRedactionRules:So,hasItemMetadata:Ro,normalizeRegexFlags:Io,normalizeStringArrayInput:_n,parseRegexRule:Co,redactStringValue:wn,redactUnknownValue:yt};(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 Wh(e,t){let n=mt(e),r=e.length>0?e[e.length-1].after_hash:to(),o=t===void 0?void 0:eo(t),i=o===void 0?void 0:o===r,s=[...n.errors];return i===!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:o,current_matches_latest:i}}async function Vh(e,t,n={}){let r=S(n.cwd??process.cwd(),n.pmRoot);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let o=await T(r),i=O(o,N()),s=await bn(r,e,o,i.type_to_folder),a=await Ie(s.historyPath,s.id);if(a.length===0)throw new h(`No history exists for ${s.id}; point-in-time reads are unavailable.`,g.NOT_FOUND);let c=ko(t,a),d=Eo(vo(a,c.historyIndex),c),u=ro(d,{schema:o.schema});if(u.metadata.id!==s.id)throw new h(`History target resolved to item ${u.metadata.id}, expected ${s.id}.`,g.GENERIC_FAILURE);let l=a[c.historyIndex];return{document:u,reconstructed:!0,as_of_version:c.historyIndex+1,as_of_timestamp:l.ts,target:c,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]="3167c288-0bcc-5a66-8aa0-ca5876ed7d36")}catch{}})();function La(e,t,n,r,o,i){if(e.seen.has(t))return"skip";if(e.cursorFound&&e.affected.length>=i)return"truncate";e.seen.add(t),e.parents.set(t,n.id);let s=n.depth+1;return e.queue.push({id:t,depth:s}),e.cursorFound?(e.affected.push({id:t,distance:s,path:Ga(r,t,e.parents)}),"continue"):(e.cursorFound=t===o,"skip")}function No(e,t,n,r){let o=de("graph impact",{root:e,direction:n,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(r)?r:"unbounded"});return{fingerprint:o,after:t.after===void 0?void 0:Zr(t.after,o)}}function Re(e,t,n){e.get(t).add(n)}function Ge(e){return new Map(e.map(t=>[t,new Set]))}function Mo(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function _t(e){if(Array.isArray(e))return e.map(n=>_t(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?_t(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,_t(r)]))}function Ao(e){return JSON.stringify(_t(e))}function Oa(e,t,n,r){let o=[{id:e,expanded:!1}];for(;o.length>0;){let i=o.pop();if(i.expanded){r.push(i.id);continue}if(n.has(i.id))continue;n.add(i.id),o.push({id:i.id,expanded:!0});let s=[...t.get(i.id)].sort().reverse();for(let a of s)n.has(a)||o.push({id:a,expanded:!1})}}function $a(e,t){let n=new Set,r=[];for(let o of e)n.has(o)||Oa(o,t,n,r);return r}function Pa(e,t){let n=new Set,r=[];for(let o of[...e].reverse()){if(n.has(o))continue;let i=[],s=[o];for(n.add(o);s.length>0;){let a=s.pop();i.push(a);for(let c of t.get(a))n.has(c)||(n.add(c),s.push(c))}r.push(i)}return Mo(r)}function Fo(e,t){let n=Ge(e);for(let[r,o]of t)for(let i of o)Re(n,i,r);return Pa($a(e,t),n)}function ja(e,t){let n=Ge(e.nodes());for(let r of e.edges()){let o=t.require(r.kind);if(!o.ordering)continue;let i=(o.precedence??"source_before_target")==="source_before_target";Re(n,i?r.source:r.target,i?r.target:r.source)}return n}function Ua(e,t){let n=new Map(e.map(i=>[i,0]));for(let i of t.values())for(let s of i)n.set(s,n.get(s)+1);let r=e.filter(i=>n.get(i)===0).sort(),o=[];for(;r.length>0;){o.push(r);let i=[];for(let s of r)for(let a of t.get(s)){let c=n.get(a)-1;n.set(a,c),c===0&&i.push(a)}r=i.sort()}return o}function Ba(e,t){let n=new Map(e.map(s=>[s,0])),r=new Map;for(let s of e)for(let a of t.get(s)){if(!n.has(a))continue;let c=n.get(s)+1,d=r.get(a);(c>n.get(a)||c===n.get(a)&&(d===void 0||s.localeCompare(d)<0))&&(n.set(a,c),r.set(a,s))}let o=[...e].sort((s,a)=>n.get(a)-n.get(s)||s.localeCompare(a))[0],i=o===void 0?[]:[o];for(;i[0]!==void 0&&r.has(i[0]);)i.unshift(r.get(i[0]));return{depth:Object.fromEntries(n),path:i}}function Ga(e,t,n){let r=[t],o=t;for(;o!==e;)o=n.get(o),r.push(o);return r.reverse()}function bt(e,t={}){let n=t.registry??W(),r=[...e.nodes()],o=ja(e,n),i=Ua(r,o),s=i.flat(),a=s.length===r.length,c=a?[]:Fo(r,o).filter(u=>u.length>1||o.get(u[0]).has(u[0])),d=Ba(s,o);return{exact:!0,acyclic:a,order:s,layers:i,frontier:i[0]??[],depth:d.depth,criticalPath:d.path,criticalPathLength:Math.max(0,d.path.length-1),cycles:c,provenance:{algorithm:"kahn-longest-path",edgeFamily:"ordering"}}}function Ka(e,t,n){let r=Ge(e.nodes()),o=n===void 0?void 0:new Set(n.map(s=>e.registry().require(s).kind)),i=e.edges();for(let s of i){let a=e.registry().require(s.kind);o!==void 0&&!o.has(s.kind)&&(a.inverse===void 0||!o.has(a.inverse))||Re(r,t==="incoming"?s.target:s.source,t==="incoming"?s.source:s.target)}return{adjacency:r,inspectedEdges:i.length}}function za(e,t,n,r,o,i){let s=wt(e,t,{...n,after:void 0,direction:"incoming",limit:void 0}),a=wt(e,t,{...n,after:void 0,direction:"outgoing",limit:void 0}),c=new Map,d=[...s.affected,...a.affected].sort((y,p)=>y.distance-p.distance||y.id.localeCompare(p.id)||y.path.join("\0").localeCompare(p.path.join("\0")));for(let y of d)c.has(y.id)||c.set(y.id,y);let u=[...c.values()].sort((y,p)=>y.distance-p.distance||y.id.localeCompare(p.id)),l=r===void 0||r===t?-1:u.findIndex(y=>y.id===r);if(r!==void 0&&r!==t&&l<0)throw new TypeError(`Unknown impact cursor item: ${r}`);let f=u.slice(l+1,l+1+o),m=l+1+f.length<u.length;return{root:t,affected:f,exact:!0,truncated:s.truncated||a.truncated||m,...m?{nextCursor:Z(i,f.at(-1)?.id??t)}:{},cost:{visitedNodes:s.cost.visitedNodes+a.cost.visitedNodes,inspectedEdges:s.cost.inspectedEdges+a.cost.inspectedEdges}}}function Ha(e,t,n){let r=n.direction,o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=No(t,n,r,o),{adjacency:c,inspectedEdges:d}=Ka(e,r,n.kinds),u={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},l=0,f=!1,m=!1;e:for(let y=0;y<u.queue.length;y+=1){n.signal?.throwIfAborted();let p=u.queue[y];l+=1;let b=[...c.get(p.id)].sort();if(p.depth>=o){b.some(w=>!u.seen.has(w))&&(f=!0);continue}for(let w of b)if(La(u,w,p,t,a,i)==="truncate"){f=!0,m=!0;break e}}if(!u.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:u.affected,exact:!0,truncated:f,...m?{nextCursor:Z(s,u.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:l,inspectedEdges:d}}}function wt(e,t,n={}){let r=n.direction??"outgoing";if(r!=="both")return Ha(e,t,{...n,direction:r});let o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=No(t,n,r,o);return za(e,t,n,a,i,s)}function Lo(e){let t=[...e.nodes()],n=Ge(t),r=Ge(t);for(let c of e.edges())Re(n,c.source,c.target),Re(n,c.target,c.source),Re(r,c.source,c.target);let o=[],i=new Set;for(let c of t){if(i.has(c))continue;let d=[],u=[c];for(i.add(c);u.length>0;){let l=u.pop();d.push(l);for(let f of n.get(l))i.has(f)||(i.add(f),u.push(f))}o.push(d)}let s=t.map(c=>({id:c,degree:n.get(c).size})),a=Math.max(0,...s.map(({degree:c})=>c));return{components:Mo(o),stronglyConnected:Fo(t,r),orphans:s.filter(({degree:c})=>c===0).map(({id:c})=>c),hubs:s.filter(({degree:c})=>c>0&&c===a),exact:!0,provenance:{algorithm:"component-degree",edgeFamily:"all"}}}function Qh(e,t){let n=new Map(e.edges.map(o=>[Ao(o),o])),r=new Map(t.edges.map(o=>[Ao(o),o]));return{fromVersion:e.version,toVersion:t.version,added:[...r].filter(([o])=>!n.has(o)).map(([,o])=>o),removed:[...n].filter(([o])=>!r.has(o)).map(([,o])=>o),unchangedCount:[...n.keys()].filter(o=>r.has(o)).length,exact:!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]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function V(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 h(`${t} must be a non-negative integer`,g.USAGE);return r}function kt(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 h(`${t} filter must be 0..4`,g.USAGE);return r}function Oo(e,t,n="--type"){if(e===void 0)return;let r=ct(e,t);if(!r)throw new h(`${n} filter must be one of ${t.types.join("|")}`,g.USAGE);return r}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch{}})();var vt={version:1,aliases:{}};function Et(e=[]){let t=new Set(xe),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let o of Object.keys(r.provenance_environment_keys??{}))n(o);for(let o of Object.keys(r.provenance_resolvers??{}))n(o);for(let o of r.provenance_unavailable_dimensions??[])n(o)}return[...t].sort()}function $o(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 kn(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 vn(e,t=xe){let n=new Set(t),r=new Map,o=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let i of o.flatMap(s=>s.split(","))){let s=i.indexOf("=");if(s<0)throw new h(`Provenance predicate must use dimension=value; received "${i.trim()}".`,g.USAGE,{code:"invalid_provenance_predicate"});let a=i.slice(0,s).trim().toLowerCase(),c=i.slice(s+1).trim();if(!n.has(a))throw new h(`Unknown provenance dimension "${a||i.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,g.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new h(`Provenance predicate must use dimension=value; received "${i.trim()}".`,g.USAGE,{code:"invalid_provenance_predicate"});let d=r.get(a)??new Set;d.add(c),r.set(a,d)}return r}function xt(e,t=vt,n={}){let r=kn(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 cy(e,t,n=vt,r=xe){return En(t,n,r)(e)}function En(e,t=vt,n=xe){let r=$o(e.harness),o=$o(e.agentInstance),i=vn(e,n);return s=>{let c=kn(s,t).agent_harness;if(r&&(!c||!r.has(c))||o&&!o.has(s.agent_instance??""))return!1;for(let[d,u]of i){let l=s.agent_provenance?.[d];if(!l||!u.has(l.value))return!1}return!0}}function It(e,t=vt,n=xe){let r=new Set(n),o=new Map,i=0;for(let s of e){for(let c of Object.keys(s.agent_provenance??{}))r.add(c);kn(s,t).agent_harness?i+=1:o.set(s.author,(o.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:i,unresolved:e.length-i,unresolved_authors:[...o].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,c=0;for(let d of e){let u=d.agent_provenance?.[s];u===null?c+=1:u!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:c,legacy_missing:e.length-a-c}})}}import qa from"node:fs/promises";import Uo 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]="49304d18-d722-5413-8e4d-4f2c3df4a1ca")}catch{}})();var Wa=20,Va=5,Ya=15,Xa="-24h";function _y(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 Ja={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function xn(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new h(`${t} must not be empty`,g.USAGE);return n}function Po(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new h("Activity time bounds must not be empty",g.USAGE);let o=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return se(o,new Date(t),n)}function Qa(e,t,n){return!(e.ts.length===0&&(t||n)||t&&x(e.ts,t)<0||n&&x(e.ts,n)>=0)}function jo(e,t){return t===void 0?e:e.slice(0,t)}function Ke(e,t=""){return typeof e=="string"?e:t}function Za(e,t){return{...t,id:e,ts:Ke(t.ts),author:Ke(t.author,"unknown"),op:Ke(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Ke(t.before_hash),after_hash:Ke(t.after_hash)}}function ec(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let o=t.id.localeCompare(n.id);return o!==0?o:t.op.localeCompare(n.op)})}async function tc(e){try{return(await qa.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Dr(t))return[];throw t}}function nc(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 rc(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Ya:n==="compact"?Wa:Va}function oc(e,t){let n=G(),r=t==="digest",o=Po(e.to??(r?n:void 0),n,"--to"),i=Po(e.from??(r?Xa:void 0),e.from===void 0&&r?o:n,"--from");if(i&&o&&x(i,o)>=0)throw new h("Activity --from must be before --to",g.USAGE);let s=hn(e.limit);if(e.unbounded===!0&&s!==void 0)throw new h("Activity --unbounded cannot be combined with --limit",g.USAGE);return{id:xn(e.id,"Activity --id"),op:xn(e.op,"Activity --op"),author:xn(e.author,"Activity --author"),from:i,to:o,limit:rc(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=S(process.cwd(),e.path);if(!await A($(t)))throw new h(`Tracker is not initialized at ${t}. Run pm init first.`,g.NOT_FOUND);return{pmRoot:t,settings:await T(t)}}async function sc(e){let t=O(e.settings,N()),n=await ee(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await so({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(o=>o.id),commandLabel:"activity"});let r=Uo.join(e.pmRoot,"history");return await jr({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(o=>[o.id,{title:o.title,type:o.type,status:o.status}]))}}function ac(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Qa(t,n.from,n.to)}async function cc(e,t){let n=[];for(let r of await tc(e)){let o=r.slice(0,-6);if(t.id&&o!==t.id)continue;let i=await Ie(Uo.join(e,r),o);for(let s of i){let a=Za(o,s);ac(s,a,t)&&n.push(a)}}return n}function dc(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function uc(e){let t=[...e.entries()].sort(([r,o],[i,s])=>s-o||r.localeCompare(i)),n=t.slice(0,4).map(([r,o])=>`${r}:${o}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function lc(e,t){let n=new Map;for(let r of e){let o=n.get(r.id);if(o===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}o.eventCount+=1,x(r.ts,o.firstTs)<0&&(o.firstTs=r.ts),x(r.ts,o.lastTs)>0&&(o.lastTs=r.ts),o.operations.set(r.op,(o.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,o])=>{let i=t.get(r);return{id:r,type:i?.type??"unknown",status:i?.status??"unknown",title:(i?.title??"(item metadata unavailable)").slice(0,160),event_count:o.eventCount,first_ts:o.firstTs,last_ts:o.lastTs,operations:uc(o.operations)}}).sort((r,o)=>x(o.last_ts,r.last_ts)||r.id.localeCompare(o.id))}function fc(e){let t=new Map;for(let o of e)t.set(o.op,(t.get(o.op)??0)+1);let n=[...t.entries()].sort((o,i)=>i[1]-o[1]||o[0].localeCompare(i[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((o,[,i])=>o+i,0)]),Object.fromEntries(r)}function mc(e,t,n,r,o){if(e==="digest"){let s=lc(t,r),a=jo(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let i=jo(t,n);return e==="compact"?{rows:{compact_activity:dc(i)},compact:!0,totalRows:t.length,returnedRows:i.length}:e==="provenance"?{rows:{provenance_activity:i.map(o)},compact:!1,totalRows:t.length,returnedRows:i.length}:{rows:{activity:i},compact:!1,totalRows:t.length,returnedRows:i.length}}async function Bo(e,t){let n=await ic(t),r=nc(e),o=oc(e,r),i=await sc(n),s=Et(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=En({harness:o.harness,agentInstance:o.agentInstance,provenance:o.provenance},a,s),d=ec(await cc(i.historyDir,o)).filter(c),u=mc(r,d,o.limit,i.itemsById,f=>xt(f,a,{itemId:f.id})),l=u.totalRows-u.returnedRows;return{...u.rows,compact:u.compact,projection:{mode:r,row_key:Ja[r]},omission_receipt:Qr("activity",r),count:u.returnedRows,total_count:u.totalRows,limit:o.limit??null,omitted_count:l,has_more:l>0,...r==="digest"?{activity_summary:{window:{from:o.from,to:o.to},event_count:d.length,item_count:u.totalRows,author_count:new Set(d.map(f=>f.author)).size,operation_counts:fc(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:It(d,a,s)}:{},applied_bound:{kind:o.limit===void 0?"unbounded":"limit",source:o.limitSource,value:o.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]="1b2f1ac3-82b3-58a2-9f40-2dd95ab1b2bc")}catch{}})();var Go="global",pc="external";function Ae(e){let t=e?.trim().toLowerCase();return t===Go||t===pc}function ky(e){let t=e?.trim();if(t)return Ae(t)?Go:t}function vy(e,t,n){let r=e.trim();return Ae(n)?r:pt(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]="a6fc5da1-b7d1-5b3c-8033-cecccc7861c3")}catch{}})();function Me(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function In(e){let t=Me(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function ge(){let e=W();for(let t of N()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}function Ne(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function gc(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=Me(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${o.toLowerCase()}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:o,kind:i,count:1})}return t}function hc(e,t=n=>n==="closed"||n==="canceled"){let n=[];for(let r of e)if(!(typeof r?.id!="string"||r.id.trim().length===0))for(let o of gc(r).values())o.count<2||n.push({holder_id:r.id.trim(),target_id:o.target_id,kind:o.kind,occurrences:o.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,o)=>{let i=Ne(r.holder_id,o.holder_id);if(i!==0)return i;let s=Ne(r.target_id,o.target_id);return s!==0?s:Ne(r.kind,o.kind)})}function yc(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=Me(n.id);if(!i||i.toLowerCase()!==t.toLowerCase())return;let s=o.resolve(typeof n.kind=="string"?n.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:i,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:r(e.status)}}function _c(e,t=r=>r==="closed"||r==="canceled",n=ge()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=Me(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=yc(o,i,s,t,n);a&&r.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...r.values()].sort((o,i)=>{let s=Ne(o.holder_id,i.holder_id);if(s!==0)return s;let a=Ne(o.target_id,i.target_id);return a!==0?a:Ne(o.dependency_kind,i.dependency_kind)})}function Cn(e,t=n=>n==="closed"||n==="canceled"){let n=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),r=new Set(n.map(c=>c.id.trim().toLowerCase())),o=new Map,i=(c,d,u,l)=>{let f=Me(d);if(!f||r.has(f.toLowerCase()))return;let m={holder_id:c.id.trim(),target_id:f,kind:u,source:l,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:f.toLowerCase()==="no-active-blocker"};o.set(`${m.holder_id}::${m.target_id}::${m.kind}::${m.source}`,m)};for(let c of n){i(c,c.parent,"parent","parent"),i(c,c.blocked_by,"blocked_by","blocked_by");for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;Ae(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency")}}let s=[...o.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function wc(e){let t=new Map;for(let n of[...e.active,...e.legacy_terminal]){if(n.no_active_blocker_sentinel)continue;let r=n.target_id.trim(),o=r.toLowerCase();t.has(o)||t.set(o,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function bc(e){let t=new Map;for(let n of e)for(let r of n.dependencies??[]){if(typeof r!="object"||r===null||!Ae(r.source_kind))continue;let o=Me(r.id);o&&!t.has(o.toLowerCase())&&t.set(o.toLowerCase(),o)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function kc(e,t=ge()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function Fe(e,t,n){let r=n??ge(),o=e.filter(f=>typeof f?.id=="string"&&f.id.trim().length>0),i=new Map(o.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),s=Cn(o,t),a=wc(s);for(let f of a)i.set(f.toLowerCase(),f);let c=bc(o),d=new Set(i.keys()),u=new Map;for(let f of c){let m=f;for(;d.has(m.toLowerCase());)m=`external:${m}`;u.set(f.toLowerCase(),m),d.add(m.toLowerCase())}let l=o.map(f=>{let m=In(f.parent),y=In(f.blocked_by),p=(f.dependencies??[]).flatMap(b=>{if(typeof b!="object"||b===null)return[];let w=b,_=In(w.id);return _?[{id:Ae(w.source_kind)?u.get(_.toLowerCase()):i.get(_.toLowerCase()),kind:typeof w.kind=="string"?w.kind:"related"}]:[]});return{id:f.id.trim(),...m?{parent:i.get(m.toLowerCase())}:{},...y?{blocked_by:i.get(y.toLowerCase())}:{},dependencies:p}});return{graph:$r.fromItems([...l,...a.map(f=>({id:f})),...c.map(f=>({id:u.get(f.toLowerCase())}))],r),details:[...o.map(f=>({id:f.id.trim(),title:f.title,status:f.status,...typeof f.type=="string"&&f.type.trim().length>0?{type:f.type.trim()}:{}})),...a.map(f=>({id:f,title:`[missing] ${f}`,status:"missing"})),...c.map(f=>({id:u.get(f.toLowerCase()),title:`[external] ${f}`,status:"external"}))],missingIdSet:new Set(a.map(f=>f.toLowerCase())),dangling:s,duplicateRows:hc(o,t),orderingContradictions:_c(o,t,r),legacyAliasCounts:kc(o,r)}}import{createHash as vc}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]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var Ec=64,xc=8;function Ic(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let o=r;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",n].join("\0")}function Ct(e,t=r=>r==="closed"||r==="canceled",n=W()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Ic(i,t)).sort(),o=n.list().map(i=>Ee(i)).sort();return vc("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Ko(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Sn=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Ko("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Ec),this.#n=Ko("maxWorkspaces",t.maxWorkspaces,xc)}lookup(t,n,r){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==n)&&(o={fingerprint:n,assembly:r(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let s=o,a=this.#t;return{assembly:s.assembly,assemblyReused:i,fingerprint:n,memoize(c,d){let u=s.results.get(c);if(u!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,u),{value:structuredClone(u),reused:!0};let l=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(l)),{value:l,reused:!1}}}}clear(){this.#e.clear()}},zo=new Sn;function St(){return zo}function Ay(){zo.clear()}(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]="31a800f7-1374-5e7c-ad23-ae3d8ebcebe0")}catch{}})();var Cc=["prerequisite","dependent","ancestor","descendant","provenance","related"],Sc=new TextEncoder;function Tn(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function Tt(e){return Math.max(1,Math.ceil(Sc.encode(JSON.stringify(e)).byteLength/4))}function Dn(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=(r.hierarchyDirection??"source_parent")==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Tc(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Dn(i,n,r));return[...new Set(o)].sort()}function Dc(e){return Cc.find(t=>e.includes(t))}function Rc(e,t,n,r){let o=r.direction??"both",i=r.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let s=new Set([t]),a=[{id:t,distance:0}],c=[],d=0,u=!1;for(let l=0;l<a.length;l+=1){r.signal?.throwIfAborted();let f=a[l];if(f.distance>=i&&u)continue;let m=e.neighborEdges(f.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=m.meta.inspectedEdges,f.distance>=i){m.value.some(y=>!s.has(y.id))&&(u=!0);continue}for(let{id:y,edge:p}of m.value){if(s.has(y))continue;s.add(y);let b={id:y,distance:f.distance+1,via:f.id,role:Dn(p,y,n)};c.push(b),a.push(b)}}return c.sort((l,f)=>l.distance-f.distance||l.id.localeCompare(f.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function Ac(e,t,n,r){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:r.direction??"both",kinds:r.kinds,signal:r.signal}).value;for(let{id:s,edge:a}of i)o[Dn(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function Nc(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Tc(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Dc(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=Tt(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function Mc(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],o=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let s=Tt(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Ho(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Tn(r.nodeLimit,20,"nodeLimit"),i=Tn(r.edgeLimit,40,"edgeLimit"),s=Tn(r.tokenBudget,1200,"tokenBudget"),a=r.registry??W(),c=new Map(n.map(Q=>[Q.id,Q])),d=c.get(t)??{id:t},{evidence:u=[],...l}=d,f=[...u],m=Rc(e,t,a,r),{rootEdges:y,...p}=Ac(e,t,a,r),b=de("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),w=Ce(m.rows,r.cursor,b,({id:Q})=>Q),_=m.rows.slice(w),k=Tt(l)+Tt(f);if(k>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let E=Nc({candidates:_,details:c,rootEdges:y,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:k}),{nodes:I}=E,P=new Set([t,...I.map(({id:Q})=>Q)]),D=Mc({graph:e,included:P,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:E.usedTokens}),{edges:U,usedTokens:ce}=D,B=w+I.length,L=B<m.rows.length,q=I.at(-1),X=D.candidateCount-U.length,J=m.depthTruncated||L||X>0,be={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...p,discoveredNodes:m.rows.length,returnedNodes:I.length,returnedEdges:U.length,omittedNodes:m.rows.length-B,omittedEdges:X,evidenceCount:f.length,hasMore:L};return{root:l,summary:be,nodes:I,edges:U,evidence:f,meta:{exact:!0,truncated:J,completeness:J?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:ce,visitedNodes:m.visitedNodes,inspectedEdges:m.inspectedEdges,omittedNodes:m.rows.length-B,omittedEdges:X,...L&&q?{nextCursor:Z(b,q.id,B-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]="ee0547d9-ae0f-5762-8bff-e25f0a3cd4d5")}catch{}})();var Fc=["tree","graph","context"],Lc=["none","repeated"],Oc=["outgoing","incoming","both"],$c=32,Pc=200,jc=400,Uc=16e3;function Bc(e){let t=e?.trim().toLowerCase()??"tree";if(Fc.includes(t))return t;throw new h(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,g.USAGE)}function te(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new h(`Invalid --${t} value "${e}". Use a positive integer.`,g.USAGE);return n}function Dt(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new h(`Invalid --max-depth value "${e}". Use a non-negative integer.`,g.USAGE);return t}function Gc(e){let t=e?.trim().toLowerCase()??"none";if(Lc.includes(t))return t;throw new h(`Invalid --collapse value "${e}". Use "none" or "repeated".`,g.USAGE)}function An(e){let t=e?.trim().toLowerCase()??"both";if(Oc.includes(t))return t;throw new h(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,g.USAGE)}function Nn(e,t=W()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new h(`Invalid --kind value "${o}". Registered kinds: ${s}.`,g.USAGE)}r.add(i.kind)}return[...r].sort()}function Kc(e){if(!e||e.length===0)return[];let t=e.map(({id:r,kind:o})=>({id:r.trim(),kind:o.trim().toLowerCase()})).sort((r,o)=>{let i=r.kind.localeCompare(o.kind);return i!==0?i:r.id.localeCompare(o.id)}),n=new Map;for(let r of t){let o=`${r.kind.toLowerCase()}::${r.id.toLowerCase()}`;n.has(o)||n.set(o,{id:r.id,kind:r.kind})}return[...n.values()]}function zc(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Kc(e.dependencies)}}function Hc(e){return ft(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function qc(e,t,n,r,o,i,s,a,c){for(let d of t.dependencies){let u=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:d.id,kind:d.kind}).length/3));if(a.nodes>=a.nodeLimit){e.truncated=!0,a.reasons.add("node_limit");break}if(a.edges>=a.edgeLimit){e.truncated=!0,a.reasons.add("edge_limit");break}if(a.estimatedTokens+u>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=u,e.dependencies.push(Wo(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Wc(e,t,n,r,o,i,s,a){return s.estimatedTokens>=s.tokenBudget&&t?.dependencies.length?(e.truncated=!0,s.reasons.add("token_budget"),!0):!t||e.cycle?!0:r!==void 0&&a>=r?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):o==="repeated"&&i.has(n)?(e.collapsed=!0,!0):!1}function Wo(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),u=t.get(d),l={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=Hc(l),Wc(l,u,d,r,o,i,s,a))return l;o==="repeated"&&i.add(d);let f=new Set(n);return f.add(d),qc(l,u,t,f,r,o,i,s,a),l}function qo(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function Vc(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,qo(t.get(a.id),{id:a.id,title:a.title,type:a.type,status:a.status,missing:a.missing}));for(let c of a.dependencies){t.set(c.id,qo(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",u=`${a.id}::${c.id}::${d}`;n.has(u)||n.set(u,{from:a.id,to:c.id,kind:d}),c.cycle||r.push(c)}}let o=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),i=[...n.values()].sort((a,c)=>{let d=a.from.localeCompare(c.from);if(d!==0)return d;let u=a.to.localeCompare(c.to);return u!==0?u:a.kind.localeCompare(c.kind)}),s=o.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:s}}function Vo(e,t,n){let r=new Set,o=new Set,i=new Set,s=new Set,a=[{id:e,depth:0}],c=0;for(;c<a.length;){let d=a[c++],u=d.id.trim().toLowerCase();r.add(u);let l=t.get(u);if(!l){i.add(u);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(u)){s.add(u);for(let f of l.dependencies)o.add(`${u}::${f.id.trim().toLowerCase()}::${f.kind}`),a.push({id:f.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function Yc(e,t=W()){let n=Dt(e.maxDepth),r=te(e.nodeLimit,"node-limit"),o=te(e.edgeLimit,"edge-limit"),i=te(e.tokenBudget,"token-budget"),s=Nn(e.kind,t);return{direction:An(e.direction),...s===void 0?{}:{kinds:s},...n===void 0?{}:{maxDepth:n},...r===void 0?{}:{nodeLimit:r},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function Xc(e,t,n,r){return Ho(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function Rn(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Jc(e,t,n,r){let o=await le(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await fe(o,{schema:n.schema}),s=i.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],u=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(u.every(([,f])=>f===0))return[];let l=[`linked:${u.map(([f,m])=>`${f}=${m}`).join(",")}`];return Rn(l,"file",a.map(f=>f.path),3),Rn(l,"test",c.map(f=>f.command??f.path),2),Rn(l,"doc",d.map(f=>f.path),2),l}function Qc(e){let{canonicalId:t,context:n,missingCount:r,missingReferences:o,referenceLimit:i,summaryOnly:s}=e;return{id:t,format:"context",node_count:n.nodes.length+1,edge_count:n.edges.length,edge_basis:"deduplicated_directed",missing_count:r,missing_scope:"traversal",missing_reference_count:o.length,...s?{}:{missing_references:o.slice(0,i),context:n}}}function Zc(e){let{row:t,missingReachableSet:n,packetIds:r,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!n.has(t.target_id.trim().toLowerCase())||!r.has(t.holder_id))return!1;if(o===void 0)return!0;let s=i.resolve(t.kind);return s!==void 0&&(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))}function Yo(e,t,n){let r;for(;;){let o=ft(new TextEncoder().encode(pn(fn("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function ed(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function td(e){try{return Xc(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&ed(t))return e.smallestResult;throw t}}function nd(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,u=r.edgeLimit??40,l=r.tokenBudget,f,m;for(;;){let y=td({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:o,smallestResult:m});if("format"in y)return y;let p=y;f??=p.meta.tokenBudget,l??=f;let b=Qc({canonicalId:n,context:p,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(m=b,i||(p.meta.tokenBudget=f,p.meta.usedTokens=Yo(Le(b,!1),s,k=>{p.meta.usedTokens=k}),p.meta.usedTokens<=f))return b;if(u>0){u-=1;continue}let w=l,_=w*f/p.meta.usedTokens;l=Math.min(w-1,Math.max(1,Math.floor(_*.9)))}}function rd(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Yc(r,t.graph.registry()),c=t.graph.closure(n,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(p=>t.missingIdSet.has(p.toLowerCase())),u=new Set(d.map(p=>p.toLowerCase())),l=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(p=>l.require(p).kind)):void 0,m=new Set([n,...c.value]),y=[...t.dangling.active,...t.dangling.legacy_terminal].filter(p=>Zc({row:p,missingReachableSet:u,packetIds:m,filteredKinds:f,registry:l}));return nd({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:y})}function od(e){let t=[e],n;for(;t.length>0;){let r=t.pop();r.dependencies.length>0&&(n=r,t.push(...r.dependencies))}return n?(n.dependencies.pop(),n.truncated=!0,!0):!1}function id(e,t,n,r,o,i,s){let a=o??$c,c=te(n.nodeLimit,"node-limit")??Pc,d=te(n.edgeLimit,"edge-limit")??jc,u=te(n.tokenBudget,"token-budget")??Uc,l={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=Wo(e,r,new Set,a,t==="graph"?"repeated":i,new Set,l),m=Vo(e,r,void 0),y;for(;;){let p=Vc(f),b=l.reasons.size===0?void 0:{reasons:[...l.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:u},estimated_tokens:0,total_node_count:m.node_count,total_edge_count:m.edge_count,omitted_node_count:Math.max(0,m.node_count-p.nodes.length),omitted_edge_count:Math.max(0,m.edge_count-p.edges.length)},w={id:e,format:t,node_count:p.nodes.length,edge_count:p.edges.length,edge_basis:"deduplicated_directed",missing_count:p.missing_ids.length,...b?{truncation:b}:{}};if(y=t==="tree"?{...w,tree:f}:{...w,graph:p},(y.truncation===void 0?ft(new TextEncoder().encode(pn(fn("deps",Le(y,!1)),s)).byteLength):Yo(Le(y,!1),s,k=>{y.truncation.estimated_tokens=k}))<=u)return y;if(!od(f))return l.reasons.add("token_budget"),y;l.reasons.add("token_budget")}}function Le(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function Zy(e,t,n){let r=S(process.cwd(),n.path);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let o=Bc(t.format),i=Dt(t.maxDepth),s=Gc(t.collapse);ut(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await T(r),d=O(c,N()),u=await ee(r,c.item_format,d.type_to_folder,void 0,c.schema),l=z(c.schema),f=new Map(u.map(y=>[y.id.trim().toLowerCase(),zc(y)])),m=Cn(u,y=>F(y,l));for(let y of[...m.active,...m.legacy_terminal]){let p=f.get(y.holder_id.trim().toLowerCase()),b=y.kind.trim().toLowerCase();p&&!p.dependencies.some(w=>w.id.trim().toLowerCase()===y.target_id.trim().toLowerCase()&&w.kind===b)&&p.dependencies.push({id:y.target_id,kind:b})}if(!f.has(e.trim().toLowerCase()))throw new h(`Item ${e} not found`,g.NOT_FOUND);if(o==="context"){let y=f.get(e.trim().toLowerCase()).id,p=a?[]:await Jc(r,y,c,d.type_to_folder),b=k=>F(k,l),w=ge(),_=St().lookup(r,Ct(u,b,w),()=>Fe(u,b,w));return Le(rd({assembly:_.assembly,canonicalId:y,options:t,rootEvidence:p,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,_.assembly.legacyAliasCounts)}return a?Le({id:e,format:o,...Vo(e,f,i)},!0,Object.fromEntries(Object.entries(Fe(u,y=>F(y,l)).legacyAliasCounts))):Le(id(e,o,t,f,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Fe(u,y=>F(y,l)).legacyAliasCounts)))}(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]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var sd=5,ad=1e4,cd=8;function Mn(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Rt(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function ze(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function At(e,t){let n=ze(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function dd(e,t,n){if(t===void 0)return;let r=e.registry(),o=new Set;for(let i of t){let s=r.require(i);if(!s[n])throw new TypeError(`Relationship kind ${s.kind} is not a ${n} kind`);o.add(s.kind)}return o}function ud(e,t,n,r,o){let i=e.registry(),s=e.neighborEdges(t,{direction:"both",...n===void 0?{}:{kinds:[...n]}}),a=[],c=new Set;for(let d of s.value){let u=i.require(d.edge.kind);u[r]&&o(d,u,t)&&(c.has(d.id)||(c.add(d.id),a.push(d.id)))}return{neighbors:a,inspectedEdges:s.meta.inspectedEdges}}function ld(e,t,n,r,o,i){if(t>=n)return e.neighbors.some(s=>!i.seen.has(s))&&(i.truncated=!0),!1;for(let s of e.neighbors)if(!i.seen.has(s)){if(i.seen.add(s),i.queue.push({id:s,depth:t+1}),!i.resumed){s===o&&(i.resumed=!0);continue}if(i.value.length>=r)return i.truncated=!0,!0;i.value.push(s)}return!1}function Nt(e,t,n,r,o){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let i=dd(e,n.kinds,r),s=n.limit??Number.POSITIVE_INFINITY,a=n.maxDepth??Number.POSITIVE_INFINITY,c=n.after,d={seen:new Set([t]),value:[],queue:[{id:t,depth:0}],resumed:c===void 0,truncated:!1},u=0,l=0;for(let f=0;f<d.queue.length;f+=1){n.signal?.throwIfAborted();let m=d.queue[f];u+=1;let y=ud(e,m.id,i,r,o);if(l+=y.inspectedEdges,ld(y,m.depth,a,s,c,d))break}if(!d.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:d.value,meta:{visitedNodes:u,inspectedEdges:l,truncated:d.truncated,nextCursor:d.value.at(-1)}}}function Xo(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Jo(e,t,n,r,o){let i=e.neighborEdges(t.nodes.at(-1),{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});return o.inspectedEdges+=i.meta.inspectedEdges,i.value.filter(s=>!t.nodeSet.has(s.id))}function fd(e,t,n,r,o,i,s){for(let a of Jo(e,t,r,o,s)){let c=[...t.nodes,a.id],d=new Set(t.nodeSet).add(a.id),u=[...t.edges,a.edge];if(a.id===n){if(s.value.push({nodes:c,edges:u,length:u.length}),s.value.length>=i)return!0}else s.queue.push({nodes:c,nodeSet:d,edges:u})}return!1}function Qo(e,t,n={}){return Nt(e,t,n,"hierarchy",(r,o)=>Rt(r.edge,o)===r.id)}function Zo(e,t,n={}){return Nt(e,t,n,"hierarchy",(r,o,i)=>Rt(r.edge,o)===i)}function ei(e,t,n={}){return Nt(e,t,n,"ordering",(r,o)=>ze(r.edge,o)===r.id)}function ti(e,t,n={}){return Nt(e,t,n,"ordering",(r,o,i)=>ze(r.edge,o)===i)}function md(e,t,n,r,o,i,s,a){let c={value:[],queue:[{nodes:[t],nodeSet:new Set([t]),edges:[]}],inspectedEdges:0},d=0,u=!1,l=o+1;for(let f=0;f<c.queue.length;f+=1){if(r.signal?.throwIfAborted(),c.value.length>=l||d>=i){u=!0;break}let m=c.queue[f];if(d+=1,m.edges.length>=s){Jo(e,m,r,a,c).length>0&&(u=!0);continue}if(fd(e,m,n,r,a,l,c)){u=!0;break}}return{value:c.value.slice(0,o),meta:{visitedNodes:d,inspectedEdges:c.inspectedEdges,truncated:u}}}function ni(e,t,n,r={}){Xo(e,t),Xo(e,n);let o=r.maxPaths??sd,i=r.maxVisitedPaths??ad,s=r.maxDepth??cd;Mn("maxPaths",o),Mn("maxVisitedPaths",i),Mn("maxDepth",s);let a=r.direction??"outgoing";r.signal?.throwIfAborted();for(let c of r.kinds??[])e.registry().require(c);return t===n?o===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[t],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:md(e,t,n,r,o,i,s,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]="24898402-1568-5b05-9072-f89dd91f25a6")}catch{}})();var pd=16,gd=2,hd=8;function Mt(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function Ft(e,t,n){let r=e.registry(),o=t===void 0?void 0:new Set(t.map(i=>r.require(i).kind));for(let i of e.edges()){if(i.source===i.target)continue;let s=r.require(i.kind);o!==void 0&&!(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))||n(i,s)}}function yd(e,t){let n=new Map;Ft(e,t,r=>{ri(n,r.source,r.target),ri(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function ri(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function _d(e,t){let n=new Map;for(let i of e){let s=t.get(i);n.set(s,(n.get(s)??0)+1)}let r,o=0;for(let[i,s]of n)(s>o||s===o&&i<r)&&(r=i,o=s);return r}function wd(e,t){let n=new Map;for(let[o,i]of e){let s=n.get(i);s===void 0?n.set(i,[o]):s.push(o)}let r=[];for(let o of n.values())o.length<t||(o.sort(),r.push({representative:o[0],size:o.length,members:o}));return r.sort((o,i)=>i.size-o.size||o.representative.localeCompare(i.representative))}function oi(e,t={}){let n=t.maxIterations??pd,r=t.minSize??gd;Mt("maxIterations",n),Mt("minSize",r);let o=yd(e,t.kinds),i=e.nodes(),s=new Map(i.map(l=>[l,l])),a=0,c=!1,d=0,u=0;for(;a<n&&!c;){t.signal?.throwIfAborted(),a+=1,c=!0;for(let l of i){d+=1;let f=o.get(l);if(f===void 0)continue;u+=f.length;let m=_d(f,s);m!==s.get(l)&&(s.set(l,m),c=!1)}}return{value:{communities:wd(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function Lt(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Ot(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function $t(e,t){return(t.hierarchy?Rt(e,t):e.source===ze(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function bd(e,t){if(t===void 0)return;let n=e.registry(),r=new Set;for(let o of t){let i=n.require(o);if(!Lt(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);r.add(Ot(i))}return r}function kd(e,t){let n=e.registry(),r=new Map;for(let o of e.edges()){let i=n.require(o.kind);if(!Lt(i))continue;let s=Ot(i);if(t!==void 0&&!t.has(s))continue;let a=$t(o,i);if(a.from===a.to)continue;let c=r.get(s);c===void 0&&(c={adjacency:new Map,records:[]},r.set(s,c));let d=c.adjacency.get(a.from);d===void 0?c.adjacency.set(a.from,new Set([a.to])):d.add(a.to),c.records.push({...a,edge:o})}return r}function vd(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function Ed(e,t,n,r){let o=[r];for(let i=n;i!==t;i=e.get(i))o.push(i);return o.push(t),o.reverse()}function xd(e,t,n,r,o,i){for(let s of e.get(n.id)??[])if(i.inspectedEdges+=1,!(n.depth===0&&s===t.to)&&!r.has(s)){if(r.set(s,n.id),s===t.to)return Ed(r,t.from,n.id,s);o.push({id:s,depth:n.depth+1})}}function Id(e,t,n,r){let o=new Map([[t.from,t.from]]),i=[{id:t.from,depth:0}];for(let s=0;s<i.length;s+=1){let a=i[s];if(r.visitedNodes+=1,a.depth>=n)continue;let c=xd(e,t,a,o,i,r);if(c!==void 0)return c}}function Oe(e,t={}){let n=t.maxDepth??hd;Mt("maxDepth",n),t.limit!==void 0&&Mt("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,o=bd(e,t.kinds),i=kd(e,o),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let u=i.get(d),l=vd(u);for(let f of u.records){t.signal?.throwIfAborted();let m=Id(l,f,n,a);if(m!==void 0){if(s.length>=r){c=!0;break e}s.push({edge:f.edge,witness:m})}}}return{value:s,meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:c}}}function Cd(e,t,n,r,o){let i=new Set,s=[];for(let a of n){if(a.id===e||i.has(a.id))continue;if(!o.seen.has(a.id)){if(t>=r){o.truncated=!0;continue}o.seen.add(a.id),o.queue.push({id:a.id,depth:t+1})}i.add(a.id),s.push(a.id);let c=o.predecessors.get(a.id);c===void 0&&(c=new Set,o.predecessors.set(a.id,c)),c.add(e)}return s}function Sd(e,t,n){let r=n.direction??"outgoing",o=n.maxDepth??Number.POSITIVE_INFINITY,i=[],s=new Map,a={seen:new Set([t]),queue:[{id:t,depth:0}],predecessors:new Map,truncated:!1},c=0;for(let d=0;d<a.queue.length;d+=1){n.signal?.throwIfAborted();let{id:u,depth:l}=a.queue[d];i.push(u);let f=e.neighborEdges(u,{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});c+=f.meta.inspectedEdges,s.set(u,Cd(u,l,f.value,o,a))}return{order:i,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function Td(e,t){let n=[],r=new Set([t]),o=[{id:t,index:0}];for(;o.length>0;){let i=o.at(-1),s=e.successors.get(i.id);if(i.index<s.length){let a=s[i.index];i.index+=1,r.has(a)||(r.add(a),o.push({id:a,index:0}))}else n.push(i.id),o.pop()}return n.reverse()}function Dd(e,t,n,r){let o=e,i=t;for(;o!==i;){for(;r.get(o)>r.get(i);)o=n.get(o);for(;r.get(i)>r.get(o);)i=n.get(i)}return o}function Rd(e,t,n){let r;for(let o of[...e].sort())t.has(o)&&(r=r===void 0?o:Dd(r,o,t,n));return r}function Ad(e,t,n,r,o){let i=new Map([[t,t]]),s=!0;for(;s;){s=!1;for(let a of n){if(o?.throwIfAborted(),a===t)continue;let c=Rd(e.predecessors.get(a),i,r);c!==void 0&&i.get(a)!==c&&(i.set(a,c),s=!0)}}return i}function ii(e,t,n={}){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);if(n.maxDepth!==void 0&&(!Number.isInteger(n.maxDepth)||n.maxDepth<0))throw new TypeError(`Invalid maxDepth bound: ${String(n.maxDepth)}`);let r=Sd(e,t,n),o=Td(r,t),i=new Map(o.map((d,u)=>[d,u])),s=Ad(r,t,o,i,n.signal),a=new Map(o.map(d=>[d,1]));for(let d=o.length-1;d>=0;d-=1){let u=o[d];if(u===t)continue;let l=s.get(u);a.set(l,a.get(l)+a.get(u))}let c=o.filter(d=>d!==t).map(d=>({id:d,idom:s.get(d),dominatedCount:a.get(d)-1})).sort((d,u)=>u.dominatedCount-d.dominatedCount||d.id.localeCompare(u.id));return{value:{root:t,reachableCount:r.order.length,rows:c},meta:{visitedNodes:r.order.length,inspectedEdges:r.inspectedEdges,truncated:r.truncated}}}(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]="348c9246-2fb9-529e-b627-f60c901a6cf2")}catch{}})();function si(e){return Math.round(e*1e6)/1e6}function ai(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function ci(e,t){let n=new Map(e.nodes().map(o=>[o,new Set]));Ft(e,t,o=>{n.get(o.source).add(o.target),n.get(o.target).add(o.source)});let r=new Map;for(let[o,i]of n)r.set(o,[...i].sort());return r}function Nd(e,t){let n=new Map,r=new Map;return Ft(e,t,(o,i)=>{if(!i.ordering)return;let{predecessor:s,successor:a}=At(o,i);ai(r,s,a),ai(n,a,s)}),{incoming:n,outgoing:r}}function Md(e,t,n){let r=new Map([[e,0]]),o=new Map([[e,1]]),i=new Map,s=[],a=[e],c=0,d=0;for(let u=0;u<a.length;u+=1){let l=a[u];n.visitedNodes+=1,s.push(l);let f=r.get(l);l!==e&&(c+=1,d+=f);for(let m of t.get(l))if(n.inspectedEdges+=1,r.has(m)||(r.set(m,f+1),a.push(m)),r.get(m)===f+1){o.set(m,(o.get(m)??0)+o.get(l));let y=i.get(m);y===void 0?i.set(m,[l]):y.push(l)}}return{stack:s,sigma:o,predecessors:i,reachableCount:c,distanceSum:d}}function Fd(e,t,n){let r=new Map;for(let o=e.stack.length-1;o>=0;o-=1){let i=e.stack[o],s=(1+(r.get(i)??0))/e.sigma.get(i);for(let a of e.predecessors.get(i)??[])r.set(a,(r.get(a)??0)+e.sigma.get(a)*s);i!==t&&n.set(i,(n.get(i)??0)+(r.get(i)??0))}}function Ld(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function Od(e,t,n,r,o){return{id:e,degree:t.get(e).length,inDegree:n.incoming.get(e)?.size??0,outDegree:n.outgoing.get(e)?.size??0,betweenness:si((r.get(e)??0)/2),closeness:si(o.get(e))}}function di(e,t={}){let n=ci(e,t.kinds),r=Nd(e,t.kinds),o=e.nodes(),i=new Map,s=new Map,a={visitedNodes:0,inspectedEdges:0};for(let u of o){t.signal?.throwIfAborted();let l=Md(u,n,a);s.set(u,Ld(l,o.length)),Fd(l,u,i)}let c=0;for(let u of n.values())c+=u.length;let d=o.map(u=>Od(u,n,r,i,s)).sort((u,l)=>l.betweenness-u.betweenness||l.degree-u.degree||u.id.localeCompare(l.id));return{value:{nodeCount:o.length,edgeCount:c/2,rows:d},meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:!1}}}function $d(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Pd(e,t,n){let o=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,n.inspectedEdges+=1,o!==e.parent){if(n.discovery.has(o)){n.low.set(e.node,Math.min(n.low.get(e.node),n.discovery.get(o)));return}return e.children+=1,n.discovery.set(o,n.timer),n.low.set(o,n.timer),n.timer+=1,{node:o,parent:e.node,neighborIndex:0,children:0}}}function jd(e,t,n){if(e.parent===null){e.children>1&&n.articulation.add(e.node);return}let r=e.parent,o=n.low.get(e.node);n.low.set(r,Math.min(n.low.get(r),o)),r!==t&&o>=n.discovery.get(r)&&n.articulation.add(r),o>n.discovery.get(r)&&n.bridges.push($d(r,e.node))}function Ud(e,t,n,r){n.discovery.set(e,n.timer),n.low.set(e,n.timer),n.timer+=1;let o=[{node:e,parent:null,neighborIndex:0,children:0}];for(;o.length>0;){r?.throwIfAborted();let i=o.at(-1);if(i.neighborIndex<t.get(i.node).length){let s=Pd(i,t,n);s!==void 0&&o.push(s)}else jd(i,e,n),o.pop()}}function Pt(e,t={}){let n=ci(e,t.kinds),r={discovery:new Map,low:new Map,timer:0,articulation:new Set,bridges:[],inspectedEdges:0};for(let o of e.nodes())r.discovery.has(o)||Ud(o,n,r,t.signal);return{value:{articulationPoints:[...r.articulation].sort(),bridges:r.bridges.sort((o,i)=>o.source.localeCompare(i.source)||o.target.localeCompare(i.target))},meta:{visitedNodes:r.discovery.size,inspectedEdges:r.inspectedEdges,truncated:!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]="f155ac72-64eb-5316-b016-954abd48c0e7")}catch{}})();function Bd(e){let t=e.registry(),n=new Map,r=new Set;for(let o of e.edges()){let i=t.require(o.kind);if(!i.ordering)continue;let{predecessor:s,successor:a}=At(o,i);if(r.add(s),r.add(a),s===a)continue;let c=n.get(s);c===void 0?n.set(s,new Set([a])):c.add(a)}return{forward:n,participants:r}}function Gd(e,t,n,r){if(e===void 0)return r;let o=r;for(let i of e)t.has(i)&&(o=Math.min(o,n.get(i)));return o}function Kd(e,t,n){let r=n-t;return{id:e,earliestStart:t,earliestFinish:t+1,latestStart:n,latestFinish:n+1,slack:r,critical:r===0}}function zd(e,t,n,r,o){let i=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=Gd(t.forward.get(a),r,i,o);i.set(a,c-1)}return e.map(s=>Kd(s,n[s],i.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function ui(e,t={}){t.signal?.throwIfAborted();let n=bt(e,{registry:e.registry()}),r=Bd(e),o=new Set(n.order),i=n.order.filter(d=>r.participants.has(d)),s=i.reduce((d,u)=>Math.max(d,n.depth[u]+1),0),a=zd(i,r,n.depth,o,s),c=a.length>0;return{exact:!0,acyclic:n.acyclic,makespan:s,scheduledCount:a.length,criticalPath:c?n.criticalPath:[],criticalPathLength:c?n.criticalPathLength:0,cycles:n.cycles,rows:a,provenance:{algorithm:"critical-path-method",edgeFamily:"ordering",weighting:"unit"}}}(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]="bc561e73-75b8-5ea7-a18c-da70fb991b69")}catch{}})();var jt=["missing_reference_active","missing_reference_terminal","legacy_no_blocker_sentinel","ordering_cycle","legacy_ordering_cycle","ordering_storage_contradiction","legacy_ordering_storage_contradiction","duplicate_edge","legacy_duplicate_edge","duplicate_dependency_row","legacy_duplicate_dependency_row","stale_lifecycle_block","isolated_active_node","sparse_active_node"];(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]="b63fba34-8ca1-5e3a-905d-772ea8ce0f11")}catch{}})();var Hd=25,qd="milestone",Wd="outcome milestone:",Vd=new Set(["discovered_from","incident_from","recurs_from","supersedes","verifies"]);function Pn(e){return Vd.has(e)}var li={error:0,warning:1,info:2};function fi(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function On(e,t,n,r,o,i,s,a){let c=[...o].sort((d,u)=>d.localeCompare(u));return{code:e,severity:t,policy:n,message:r(c.length),count:c.length,sample:c.slice(0,i),sample_truncated:c.length>i,remediation:s,...a===void 0?{}:{evidence:[...a].sort((d,u)=>d.localeCompare(u)).slice(0,i)}}}function Yd(e){let t=e.graph.registry(),n=new Map;for(let r of e.graph.edges()){let o=t.require(r.kind);if(!o.ordering)continue;let[i,s]=(o.precedence??"source_before_target")==="target_before_source"?[r.target,r.source]:[r.source,r.target],a=n.get(i);a?a.push(s):n.set(i,[s])}for(let r of n.values())r.sort((o,i)=>o.localeCompare(i));return n}function pi(e,t){t.indexes.set(e,t.nextIndex),t.lowLinks.set(e,t.nextIndex),t.nextIndex+=1,t.stack.push(e),t.onStack.add(e)}function Xd(e,t,n,r){let o=n.get(e.node)??[];if(e.neighborIndex>=o.length)return!1;let i=o[e.neighborIndex];return e.neighborIndex+=1,r.indexes.has(i)?r.onStack.has(i)&&r.lowLinks.set(e.node,Math.min(r.lowLinks.get(e.node),r.indexes.get(i))):(pi(i,r),t.push({node:i,neighborIndex:0})),!0}function Jd(e,t,n,r){t.pop();let o=t.at(-1);if(o&&r.lowLinks.set(o.node,Math.min(r.lowLinks.get(o.node),r.lowLinks.get(e.node))),r.lowLinks.get(e.node)!==r.indexes.get(e.node))return;let i=[];for(;;){let s=r.stack.pop();if(r.onStack.delete(s),i.push(s),s===e.node)break}(i.length>1||i.length===1&&n.get(i[0])?.includes(i[0]))&&r.components.push(i.sort((s,a)=>s.localeCompare(a)))}function Qd(e){let t={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},n=[...e.keys()].sort((r,o)=>r.localeCompare(o));for(let r of n){if(t.indexes.has(r))continue;let o=[{node:r,neighborIndex:0}];for(pi(r,t);o.length>0;){let i=o.at(-1);Xd(i,o,e,t)||Jd(i,o,e,t)}}return t.components.sort((r,o)=>r[0].localeCompare(o[0]))}function Fn(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function H(e,t,n,r,o,i,s,a){t.length!==0&&e.push(On(r,o,i,s,t,n,a))}function Zd(e,t,n){let r=[],o=[...e.dangling.active,...e.dangling.legacy_terminal].filter(i=>!i.no_active_blocker_sentinel);return H(r,o.filter(i=>!t(i.holder_status)).map(Fn),n,"missing_reference_active","error","Active items must not reference absent targets; missing prerequisites distort scheduling.",i=>`${i} active dangling reference(s) to absent items`,"Restore or re-create the referenced item, or remove/retype the reference on the holder."),H(r,o.filter(i=>t(i.holder_status)).map(Fn),n,"missing_reference_terminal","info","Terminal items may retain historical references, but absent targets remain unexplainable context.",i=>`${i} terminal dangling reference(s) to absent items`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),H(r,e.dangling.no_active_blocker_sentinels.map(Fn),n,"legacy_no_blocker_sentinel","info","The pre-structured-dependency no-active-blocker sentinel is retired; real edges carry blocker state.",i=>`${i} legacy no-active-blocker sentinel reference(s)`,"Delete the sentinel reference; blocker state is derived from blocked_by edges."),r}function $n(e,t){let n=t.get(e);return n?!n.terminal:!0}function gi(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function eu(e,t){let n=[],r=[];for(let i of e.orderingContradictions??[])(i.legacy_terminal?r:n).push(gi(i));let o=[];return H(o,n,t,"ordering_storage_contradiction","error","A scalar blocker and same-target structured ordering row must not assert opposite precedence.",i=>`${i} active scalar-versus-structured ordering contradiction(s)`,"Remove the structured dependency row that points the holder before its scalar blocker, or replace both representations with one unambiguous ordering edge."),H(o,r,t,"legacy_ordering_storage_contradiction","info","Terminal scalar-versus-structured ordering contradictions are exact historical storage defects with no live scheduling effect.",i=>`${i} terminal scalar-versus-structured ordering contradiction(s)`,"Remove the contradictory blocks dependency row in a dedicated changelog-safe closed-item batch; preserve the scalar blocker as the historical precedence record."),o}function tu(e,t,n,r){let o=[],i=Yd(e);for(let c of Qd(i)){let d=c.some(f=>$n(f,t)),u=new Set(c.map(f=>f.toLowerCase())),l=(e.orderingContradictions??[]).filter(f=>u.has(f.holder_id.toLowerCase())&&u.has(f.target_id.toLowerCase())).map(gi);o.push(d?On("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",f=>`execution-order cycle across ${f} item(s)`,c,r,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear.",l.length===0?void 0:l):On("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",f=>`terminal-only execution-order cycle across ${f} item(s)`,c,r,"Leave as history debt, or clean up in a dedicated changelog-safe closed-item batch; never repair closed items ad hoc.",l.length===0?void 0:l))}let s=new Map;for(let[c,d]of i)for(let u of d){let l=s.get(u);l?l.push(c):s.set(u,[c])}let a=[...t.values()].filter(c=>!c.missing&&!c.terminal&&n(c.status)&&!(s.get(c.id)??[]).some(d=>{let u=t.get(d);return u===void 0||!u.terminal})).map(c=>c.id);return H(o,a,r,"stale_lifecycle_block","warning","A blocked lifecycle status must be backed by at least one open ordering predecessor.",c=>`${c} status-blocked item(s) with no open blocker edge`,'Add a local blocker edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status.'),o}function Ut(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function jn(e){let t=e.graph.registry(),n=new Map;for(let o of e.graph.edges()){let i=t.require(o.kind);if(!Lt(i))continue;let s=$t(o,i);if(s.from===s.to)continue;let a=`${Ot(i)}::${s.from}::${s.to}`,c=n.get(a);c?c.edges.push(o):n.set(a,{...s,edges:[o]})}let r=[...n.values()].filter(o=>o.edges.length>=2);for(let o of r)o.edges.sort((i,s)=>i.kind.localeCompare(s.kind));return r.sort((o,i)=>o.from.localeCompare(i.from)||o.to.localeCompare(i.to))}function nu(e,t,n){let r=[],o=[];for(let s of jn(e))($n(s.from,t)||$n(s.to,t)?r:o).push(Ut(s));let i=[];return H(i,r,n,"duplicate_edge","info","One semantic relationship should be stored once; parallel same-family spellings (reciprocal inverse pairs included) add no information and skew degree metrics.",s=>`${s} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),H(i,o,n,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",s=>`${s} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),i}function ru(e,t){let n=[],r=[];for(let i of e.duplicateRows??[])(i.legacy_terminal?r:n).push(`${i.holder_id} -> ${i.target_id} (${i.kind} x${i.occurrences})`);let o=[];return H(o,n,t,"duplicate_dependency_row","warning","One dependency row must be stored once per holder; identical repeated rows are a storage-layer defect invisible to the assembled graph.",i=>`${i} exactly duplicated stored dependency row(s) on active holder(s)`,"Remove the repeated rows so the dependency is stored exactly once; graph semantics are unchanged."),H(o,r,t,"legacy_duplicate_dependency_row","info","Identical repeated dependency rows on terminal holders are historical storage noise with no scheduling effect.",i=>`${i} exactly duplicated stored dependency row(s) on terminal holder(s)`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),o}function ou(e,t){let n=new Map;for(let r of e.graph.edges()){t?.throwIfAborted();let o=e.graph.registry().require(r.kind),i;if(o.hierarchy?i=$t(r,o):o.kind==="implements"&&(i={from:r.source,to:r.target}),i===void 0)continue;let s=n.get(i.to)??new Set;s.add(i.from),n.set(i.to,s)}return n}function iu(e,t,n){let r=new Set(e),o=[...e].sort();for(let i=0;i<o.length;i+=1){n?.throwIfAborted();for(let s of[...t.get(o[i])??[]].sort())r.has(s)||(r.add(s),o.push(s))}return r}function su(e,t,n,r){let o=0,i=0,s=0,a=0;for(let m of e.values())if(r?.throwIfAborted(),!t.has(m.id)&&!(m.missing||m.status==="external")){if(m.terminal){s+=1,n.has(m.id)&&(a+=1);continue}n.has(m.id)?o+=1:i+=1}let c=o+i,d=s-a,u=o+a,l=i+d,f=u+l;return{active_outcome_reachable_nodes:o,active_outcome_unreachable_nodes:i,active_outcome_reachability_basis_points:c===0?0:Math.floor(o*1e4/c),terminal_nodes:s,terminal_outcome_reachable_nodes:a,terminal_outcome_unreachable_nodes:d,terminal_outcome_reachability_basis_points:s===0?0:Math.floor(a*1e4/s),outcome_reachable_nodes:u,outcome_unreachable_nodes:l,outcome_reachability_basis_points:f===0?0:Math.floor(u*1e4/f)}}function au(e,t,n){let r=new Set(e.details.filter(i=>i.type?.toLowerCase()===qd&&i.title.trim().toLowerCase().startsWith(Wd)).map(i=>i.id)),o=iu(r,ou(e,n),n);return{outcome_nodes:r.size,...su(t,r,o,n)}}function cu(e,t,n,r,o){e.active+=1;let i=t.type??"(untyped)",s=e.byType.get(i);s||(s={active:0,isolated:0,degree_leq_one:0},e.byType.set(i,s)),s.active+=1,!(n>1)&&(e.degreeLeqOne+=1,s.degree_leq_one+=1,n===0&&(e.isolated+=1,s.isolated+=1),!(r.has(t.id.toLowerCase())||o.has(i.toLowerCase()))&&(n===0?e.isolates.push(t.id):e.sparse.push(t.id)))}function du(e,t,n,r,o,i,s){let a={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let _ of e.graph.nodes()){s?.throwIfAborted();let k=t.get(_);if(k){if(k.missing){a.missing+=1;continue}k.terminal||cu(a,k,e.graph.incidentEdges(_).length,n,r)}}let{isolates:c,sparse:d}=a,u=[];H(u,c,o,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",_=>`${_} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),H(u,d,o,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",_=>`${_} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one.");let l=e.graph.edges().length,f=Oe(e.graph,{signal:s}).value,m=new Set(f.map(({edge:_})=>`${_.source.toLowerCase()}\0${_.target.toLowerCase()}\0${_.kind}`));for(let _ of e.orderingContradictions??[])m.add(`${_.holder_id.toLowerCase()}\0${_.target_id.toLowerCase()}\0${_.dependency_kind}`);let y=Object.fromEntries(Object.entries(i).sort(([_],[k])=>_.localeCompare(k))),p=Object.entries(y).reduce((_,[k,E])=>_+(Pn(k)?E:0),0),b=Pt(e.graph,{signal:s}).value,w=au(e,t,s);return{findings:u,profile:{nodes:e.graph.nodes().length,recorded_nodes:e.details.filter(_=>_.status!=="missing"&&_.status!=="external").length,edges:l,informative_edges:l-m.size,redundant_edges:f.length,ordering_contradiction_edges:e.orderingContradictions?.length??0,edge_basis:"deduplicated_directed",edges_by_kind:y,edge_share_by_kind:Object.fromEntries(Object.entries(y).map(([_,k])=>[_,k/l])),semantic_edges:p,semantic_edge_share:l===0?0:p/l,active_nodes:a.active,missing_nodes:a.missing,isolated_active_nodes:a.isolated,degree_leq_one_active_nodes:a.degreeLeqOne,coverage_by_type:Object.fromEntries([...a.byType.entries()].sort(([_],[k])=>_<k?-1:1)),articulation_points:b.articulationPoints.length,bridge_edges:b.bridges.length,...w,finding_subjects_by_code:Object.fromEntries(jt.map(_=>[_,0]))}}}function Bt(e,t={}){let n=t.isTerminal??(f=>f==="closed"||f==="canceled"),r=t.isBlocked??(f=>f==="blocked"),o=t.maxSampleSize??Hd;if(!Number.isInteger(o)||o<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let i=fi(t.exemptIsolates),s=fi(t.isolateExemptTypes),a=new Map(e.details.map(f=>[f.id,{id:f.id,status:f.status,missing:e.missingIdSet.has(f.id.toLowerCase()),terminal:n(f.status),...f.type===void 0?{}:{type:f.type}}]));t.signal?.throwIfAborted();let c={};for(let f of e.graph.edges())c[f.kind]=(c[f.kind]??0)+1;let d=Zd(e,n,o);t.signal?.throwIfAborted(),d.push(...eu(e,o)),t.signal?.throwIfAborted(),d.push(...tu(e,a,r,o)),t.signal?.throwIfAborted(),d.push(...nu(e,a,o),...ru(e,o)),t.signal?.throwIfAborted();let u=du(e,a,i,s,o,c,t.signal);d.push(...u.findings),d.sort((f,m)=>li[f.severity]-li[m.severity]||f.code.localeCompare(m.code)||f.sample[0].localeCompare(m.sample[0]));let l=u.profile.finding_subjects_by_code;for(let f of d)l[f.code]+=f.count;return{findings:d,profile:{...u.profile,finding_subjects_by_code:l}}}function Ln(e,t){let n=[...new Set([...Object.keys(e),...Object.keys(t)])].sort(),r={};for(let o of n){let i=(t[o]??0)-(e[o]??0);i!==0&&(r[o]=i)}return r}function mi(e){return e.profile.coverage_by_type??{}}function uu(e,t){let n={},r=mi(e),o=mi(t),i=[...new Set([...Object.keys(r),...Object.keys(o)])].sort();for(let s of i){let a=Object.assign({active:0,isolated:0,degree_leq_one:0},r[s]),c=Object.assign({active:0,isolated:0,degree_leq_one:0},o[s]),d={active:c.active-a.active,isolated:c.isolated-a.isolated,degree_leq_one:c.degree_leq_one-a.degree_leq_one};Object.values(d).some(u=>u!==0)&&(n[s]=d)}return n}function hi(e,t){let n=uu(e,t),{edge_share_by_kind:r={},semantic_edges:o=0,semantic_edge_share:i=0}=e.profile,{edge_share_by_kind:s={},semantic_edges:a=0,semantic_edge_share:c=0}=t.profile,d=e.profile.recorded_nodes??e.profile.nodes,u=t.profile.recorded_nodes??t.profile.nodes,l=e.profile.informative_edges??e.profile.edges,f=t.profile.informative_edges??t.profile.edges,m=e.profile.redundant_edges??0,y=t.profile.redundant_edges??0,p=e.profile.ordering_contradiction_edges??0,b=t.profile.ordering_contradiction_edges??0;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:Ln(e.affected_subjects_by_code,t.affected_subjects_by_code),profile:{nodes:t.profile.nodes-e.profile.nodes,recorded_nodes:u-d,edges:t.profile.edges-e.profile.edges,informative_edges:f-l,redundant_edges:y-m,ordering_contradiction_edges:b-p,active_nodes:t.profile.active_nodes-e.profile.active_nodes,missing_nodes:t.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:t.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:t.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:Ln(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:Ln(r,s),semantic_edges:a-o,semantic_edge_share:c-i,coverage_by_type:n}}}import yi from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9e4aa41d-fca4-5e55-ab2b-d99f06d90ae2")}catch{}})();var _i=1,Un=500,lu=64,fu="graph-durable-cache";function wi(e){return Te(e,fu,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function qe(e){return yi.join(e,"runtime","graph-cache.json")}function bi(e){return yi.join(e,"runtime","graph-audit-baseline.json")}function Bn(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==_i||typeof t.fingerprint!="string"||typeof t.saved_at!="string"||typeof t.results!="object"||t.results===null||Array.isArray(t.results)?void 0:t}catch{return}}async function Gn(e,t){let n=await ie(qe(e)),r=Bn(n),o=r?.fingerprint===t;return{exists:n!==null,fresh:o,results:o?r.results:{}}}async function Kn(e,t,n,r,o){let i=await wi(e);try{let s=Bn(await ie(qe(e))),a=s?.fingerprint===t?s.results:{};delete a[r],a[r]=o;let c=Object.keys(a);for(let d of c.slice(0,Math.max(0,c.length-lu)))delete a[d];await K(qe(e),JSON.stringify({version:_i,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await i()}}async function zn(e){let t=await wi(e);try{await Rr(qe(e))}finally{await t()}}async function ki(e,t){let n=qe(e),r=await ie(n),o=Bn(r);return o===void 0?{exists:r!==null,fresh:!1,entry_count:0}:{exists:!0,fresh:o.fingerprint===t,entry_count:Object.keys(o.results).length,fingerprint:o.fingerprint.slice(0,12),saved_at:o.saved_at,bytes:Buffer.byteLength(r,"utf8")}}function Hn(e,t){return t||e>=Un}function Gt(e){return $e(e)&&Object.values(e).every(he)}function $e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function he(e){return Number.isInteger(e)&&Number(e)>=0}function vi(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function He(e,t){return e===void 0||t(e)}function mu(e){return $e(e)&&Object.values(e).every(vi)}function pu(e){return $e(e)?Object.values(e).every(t=>$e(t)&&[t.active,t.isolated,t.degree_leq_one].every(he)):!1}function gu(e,t,n){let r=["recorded_nodes","informative_edges","redundant_edges","ordering_contradiction_edges"],o=r.filter(s=>e[s]!==void 0).length;if(o!==0&&o!==r.length||!r.every(s=>He(e[s],he)))return;let i={recorded_nodes:e.recorded_nodes??t,informative_edges:e.informative_edges??n,redundant_edges:e.redundant_edges??0,ordering_contradiction_edges:e.ordering_contradiction_edges??0};return i.recorded_nodes<=t&&i.informative_edges<=n&&i.redundant_edges<=n&&i.ordering_contradiction_edges<=n?i:void 0}function hu(e,t,n){let r=[...t,...n,"finding_subjects_by_code"],o=r.filter(i=>e[i]!==void 0).length;return o!==0&&o!==r.length?!1:t.every(i=>He(e[i],he))&&n.every(i=>He(e[i],he)&&(e[i]===void 0||Number(e[i])<=1e4))&&He(e.finding_subjects_by_code,Gt)}function yu(e,t,n,r){let o=gu(e,n,r);if(o===void 0)return;let i=["articulation_points","bridge_edges","outcome_nodes","active_outcome_reachable_nodes","active_outcome_unreachable_nodes","terminal_nodes","terminal_outcome_reachable_nodes","terminal_outcome_unreachable_nodes","outcome_reachable_nodes","outcome_unreachable_nodes"],s=["active_outcome_reachability_basis_points","terminal_outcome_reachability_basis_points","outcome_reachability_basis_points"];if(!hu(e,i,s)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let a=Gt(e.finding_subjects_by_code)?e.finding_subjects_by_code:{};return{edge_basis:"deduplicated_directed",...o,...Object.fromEntries(i.map(c=>[c,e[c]??0])),...Object.fromEntries(s.map(c=>[c,e[c]??0])),finding_subjects_by_code:Object.fromEntries(jt.map(c=>[c,a[c]??t[c]??0]))}}function _u(e,t,n,r,o){let i=[n,r,o],s=i.filter(d=>d!==void 0).length;if(s===0)return{edge_share_by_kind:{},semantic_edges:0,semantic_edge_share:0};if(s!==i.length||!mu(n)||!he(r)||!vi(o))return;let a=Object.entries(t);if(a.reduce((d,[,u])=>d+u,0)!==e||Object.keys(n).length!==a.length||a.some(([d,u])=>n[d]!==(e===0?0:u/e)))return;let c=a.reduce((d,[u,l])=>d+(Pn(u)?l:0),0);if(!(r!==c||o!==(e===0?0:c/e)))return{edge_share_by_kind:n,semantic_edges:r,semantic_edge_share:o}}function wu(e){if(e!==null)try{let t=JSON.parse(e);if(!$e(t))return;let n=t,r=n.profile;if(typeof n.saved_at!="string"||typeof n.fingerprint!="string")return;let o=n.affected_subjects_by_code;if(!Gt(o)||!$e(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(he)||!Gt(r.edges_by_kind)||!He(r.coverage_by_type,pu))return;let i=_u(r.edges,r.edges_by_kind,r.edge_share_by_kind,r.semantic_edges,r.semantic_edge_share);if(i===void 0)return;let s=yu(r,o,r.nodes,r.edges);if(s===void 0)return;let{coverage_by_type:a={}}=r;return{...n,profile:{...r,...i,...s,coverage_by_type:a}}}catch{return}}async function Ei(e){return wu(await ie(bi(e)))}async function xi(e,t){await K(bi(e),JSON.stringify(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]="1eb0e2cb-084a-5a54-b41c-29dfdd6d2f34")}catch{}})();var bu={missing_reference_active:{op:"investigate",confidence:"medium",rationale:"Restore or re-create the referenced item, or remove/retype the reference on the active holder; the correct fix depends on why the target is absent."},missing_reference_terminal:{op:"waive",confidence:"high",rationale:"Terminal-holder reference to an absent item is historical debt; waive it or clean it up only in a dedicated changelog-safe closed-item batch."},legacy_no_blocker_sentinel:{op:"remove",confidence:"high",rationale:"The pre-structured-dependency no-active-blocker sentinel is retired and carries no information; blocker state derives from blocked_by edges."},ordering_cycle:{op:"investigate",confidence:"low",rationale:"Every cycle member is unschedulable until one ordering edge is removed or retyped; the planner never chooses which edge to cut."},legacy_ordering_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only ordering cycles have no scheduling effect; repairing them would mutate closed history (changelog drag)."},ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The structured ordering row asserts the opposite precedence from the same-target scalar blocker; remove that exact dependency row or replace both representations with one unambiguous edge."},legacy_ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The terminal holder contains a proven contradictory structured ordering row; remove it in a dedicated changelog-safe batch while preserving the scalar blocker as history."},duplicate_edge:{op:"remove",confidence:"high",rationale:"Parallel same-family spellings state one relationship twice; remove all but one stored spelling, keeping the holder's canonical direction."},legacy_duplicate_edge:{op:"waive",confidence:"high",rationale:"Duplicated spellings between terminal items are historical noise; waive or batch changelog-safe cleanup."},duplicate_dependency_row:{op:"remove",confidence:"high",rationale:"The identical dependency row is stored more than once on the holder; drop the repeats so the row exists exactly once \u2014 graph semantics are unchanged."},legacy_duplicate_dependency_row:{op:"waive",confidence:"high",rationale:"Repeated identical rows on terminal holders are storage noise; waive or clean up only in a changelog-safe closed-item batch."},stale_lifecycle_block:{op:"investigate",confidence:"medium",rationale:`Add a local ordering edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status; only the holder's owner knows which is true.`},isolated_active_node:{op:"investigate",confidence:"medium",rationale:"Link the item to its parent, prerequisite, or origin \u2014 or register it as an explicitly exempt isolate; the audit never fabricates an edge."},sparse_active_node:{op:"investigate",confidence:"low",rationale:"Investigate for an honest second edge (story-to-task, defect family, cross-epic complement); sparse is not automatically defective."}};function Ii(e){return`${e.source} -${e.kind}-> ${e.target}`}function ku(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:Ii(r),rationale:"This stored spelling restates the kept canonical edge of the same semantic family; removing it leaves the relationship stated exactly once.",evidence:[`keep: ${Ii(t)}`,`group: ${Ut(e)}`],confidence:"high"}))}function vu(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>ku(t.get(r)));let n=bu[e.code];return e.sample.map(r=>({op:n.op,code:e.code,subject:r,rationale:n.rationale,evidence:[e.policy],confidence:n.confidence}))}function Ci(e,t={}){let{redundancyLimit:n,...r}=t,o=Bt(e,r),i=new Map(jn(e).map(d=>[Ut(d),d])),s=o.findings.flatMap(d=>vu(d,i)),a=o.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=Oe(e.graph,{limit:n??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)s.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:s,report:o,truncated:a,cost:{visitedNodes:c.meta.visitedNodes,inspectedEdges:c.meta.inspectedEdges}}}(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]="6c8bfb7a-687a-5fbb-b408-ffdbab1187a9")}catch{}})();var Ri=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),me=10;function Si(e,t,n){return{...e,projection:{mode:t?"summary":"full",declared_field_groups:n===void 0?[]:[{name:n,restore_with:"--full"}],included_field_groups:n===void 0||t?[]:[n]}}}function Ti(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function Eu(e,t,n){let r=e.trim().toLowerCase();if(!mn.includes(r))throw Lr({command_path:"graph",token:r||"<empty>",allowed:mn});let o=r;if(Ri.has(o)&&!t?.trim())throw new h(`graph ${o} requires an item id.`,g.USAGE);if(o==="paths"&&!n?.trim())throw new h("graph paths requires a source and a target item id.",g.USAGE);return o}function qn(e){throw e instanceof TypeError?new h(e.message,g.USAGE):e}function Wn(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function Di(e,t){let n=t.trim().toLowerCase();for(let r of e.details)if(r.id.trim().toLowerCase()===n&&!e.missingIdSet.has(r.id.toLowerCase()))return r.id;throw new h(`Item ${t} not found`,g.NOT_FOUND)}function xu(e,t,n){let r={ancestors:Qo,descendants:Zo,predecessors:ei,successors:ti}[e],o;try{o=r(n.assembly.graph,t,{...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.limit===void 0?{}:{limit:n.limit},...n.after===void 0?{}:{after:n.after}})}catch(s){qn(s)}let i=Wn(o.meta);return{subcommand:e,root:t,count:o.value.length,...i,...o.meta.nextCursor===void 0?{}:{next_cursor:o.meta.nextCursor},...n.summary?{}:{ids:o.value}}}function Iu(e,t,n){let r=ni(n.assembly.graph,e,t,{direction:n.direction,...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.maxPaths===void 0?{}:{maxPaths:n.maxPaths}});return{subcommand:"paths",root:e,target:t,direction:n.direction,count:r.value.length,...Wn(r.meta),...n.summary?{}:{paths:r.value.map(o=>({nodes:o.nodes,kinds:o.edges.map(i=>i.kind),length:o.length}))}}}function Cu(e,t){let n;try{n=wt(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth},...t.unbounded?{}:{limit:t.limit??me},...t.after===void 0?{}:{after:t.after}})}catch(r){qn(r)}return{subcommand:"impact",root:e,direction:t.direction,count:n.affected.length,truncated:n.truncated,...n.nextCursor===void 0?{}:{next_cursor:n.nextCursor},cost:{visited_nodes:n.cost.visitedNodes,inspected_edges:n.cost.inspectedEdges},...t.summary?{}:{affected:n.affected}}}function Su(e){let t=e.assembly.graph,n=e.limit??me,r=bt(t,{registry:t.registry()}),o=Lo(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:{acyclic:r.acyclic,ordered_node_count:r.order.length,layer_count:r.layers.length,frontier_count:r.frontier.length,critical_path_length:r.criticalPathLength,cycle_count:r.cycles.length,...e.summary?{}:{frontier:r.frontier.slice(0,n),critical_path:r.criticalPath.slice(0,n),cycles:r.cycles.slice(0,n)}},knowledge:{component_count:o.components.length,largest_component_size:o.components[0]?.length??0,orphan_count:o.orphans.length,...e.summary?{}:{orphans:o.orphans.slice(0,n),hubs:o.hubs.slice(0,n)}}}}function Tu(e,t){let n=Bt(e.assembly,{isTerminal:t,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),r={},o={},i={},s={};for(let a of n.findings)r[a.severity]=(r[a.severity]??0)+1,o[a.code]=(o[a.code]??0)+1,i[a.severity]=(i[a.severity]??0)+a.count,s[a.code]=(s[a.code]??0)+a.count;return{subcommand:"audit",finding_count:n.findings.length,findings_by_severity:r,findings_by_code:o,affected_subjects_by_severity:i,affected_subjects_by_code:s,profile:n.profile,legacy_alias_counts:e.assembly.legacyAliasCounts,...e.summary?{}:{findings:n.findings}}}function Du(e){let t=e.limit??me,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=oi(e.assembly.graph,n),o=r.value;return{subcommand:"communities",community_count:o.communities.length,largest_community_size:o.communities[0]?.size??0,iterations:o.iterations,converged:o.converged,truncated:!o.converged||o.communities.length>t,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...e.summary?{}:{communities:o.communities.slice(0,t).map(i=>({representative:i.representative,size:i.size,members:i.members.slice(0,t)}))}}}function Ru(e){let t;try{t=Oe(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(n){qn(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...Wn(t.meta),...e.summary?{}:{redundant:t.value.map(n=>({source:n.edge.source,target:n.edge.target,kind:n.edge.kind,witness:n.witness}))}}}function Au(e,t){let n=t.limit??me,r=ii(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth}}),o=r.value.rows.filter(i=>i.dominatedCount>0);return{subcommand:"dominators",root:e,direction:t.direction,reachable_count:r.value.reachableCount,bottleneck_count:o.length,truncated:r.meta.truncated||o.length>n,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...t.summary?{}:{bottlenecks:o.slice(0,n).map(i=>({id:i.id,idom:i.idom,dominated_count:i.dominatedCount}))}}}function Nu(e){let t=e.limit??me,n=ui(e.assembly.graph),r=n.rows.filter(o=>o.critical).length;return{subcommand:"slack",acyclic:n.acyclic,makespan:n.makespan,scheduled_count:n.scheduledCount,critical_count:r,critical_path_length:n.criticalPathLength,cycle_count:n.cycles.length,truncated:n.rows.length>t,...e.summary?{}:{critical_path:n.criticalPath,rows:n.rows.slice(0,t).map(o=>({id:o.id,earliest_start:o.earliestStart,latest_start:o.latestStart,slack:o.slack,critical:o.critical}))}}}function Mu(e){let t=e.limit??me,n=di(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),r=n.value;return{subcommand:"centrality",node_count:r.nodeCount,edge_count:r.edgeCount,edge_basis:"simple_undirected",truncated:r.rows.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{rows:r.rows.slice(0,t).map(o=>({id:o.id,degree:o.degree,in_degree:o.inDegree,out_degree:o.outDegree,betweenness:o.betweenness,closeness:o.closeness}))}}}function Fu(e){let t=e.limit??me,n=Pt(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),{articulationPoints:r,bridges:o}=n.value;return{subcommand:"articulation",articulation_count:r.length,bridge_count:o.length,truncated:r.length>t||o.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{articulation_points:r.slice(0,t),bridges:o.slice(0,t)}}}function Lu(e,t){let n=e.limit??me,r=Ci(e.assembly,{isTerminal:t,redundancyLimit:n,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),o={},i={};for(let s of r.steps)o[s.op]=(o[s.op]??0)+1,i[s.code]=(i[s.code]??0)+1;return{subcommand:"plan",step_count:r.steps.length,steps_by_op:o,steps_by_code:i,finding_count:r.report.findings.length,truncated:r.truncated||r.steps.length>n,cost:{visited_nodes:r.cost.visitedNodes,inspected_edges:r.cost.inspectedEdges},...e.summary?{}:{steps:r.steps.slice(0,n)}}}function Ai(e,t,n,r){return JSON.stringify({subcommand:e,root:t??null,target:n??null,kinds:r.kinds??null,maxDepth:r.maxDepth??null,limit:r.limit??null,after:r.after??null,direction:r.direction,maxPaths:r.maxPaths??null,sample:r.sample??null,exemptIsolates:[...new Set(r.exemptIsolates.map(o=>o.toLowerCase()))].sort(),exemptIsolateTypes:[...new Set(r.exemptIsolateTypes.map(o=>o.toLowerCase()))].sort(),summary:r.summary,unbounded:r.unbounded})}function Ni(e,t,n,r,o){return e==="analyze"?Su(r):e==="audit"?Tu(r,o):e==="plan"?Lu(r,o):e==="communities"?Du(r):e==="redundancy"?Ru(r):e==="dominators"?Au(t,r):e==="slack"?Nu(r):e==="centrality"?Mu(r):e==="articulation"?Fu(r):e==="paths"?Iu(t,n,r):e==="impact"?Cu(t,r):xu(e,t,r)}function Ou(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new h("--rebuild and --clear apply only to graph index.",g.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new h("--save-baseline applies only to graph audit.",g.USAGE);if(e==="slack"&&t.kind!==void 0)throw new h("graph slack analyzes every ordering kind; --kind is not supported.",g.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new h("graph index accepts either --rebuild or --clear, not both.",g.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new h("graph impact accepts either --full or --limit, not both.",g.USAGE)}async function $u(e,t,n,r,o,i){let s="status";if(i.clear===!0&&(await zn(e),s="cleared"),i.rebuild===!0){await zn(e);let c=await Gn(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let u of["analyze","audit"])await Kn(e,t,c,Ai(u,void 0,void 0,d),Ni(u,void 0,void 0,d,o));s="rebuilt"}let a=await ki(e,t);return{subcommand:"index",action:s,state:a.exists?a.fresh?"fresh":"stale":"absent",entry_count:a.entry_count,item_count:r,min_items_threshold:Un,persist_enabled:Hn(r,a.exists),current_fingerprint:t.slice(0,12),...a.saved_at===void 0?{}:{saved_at:a.saved_at},...a.bytes===void 0?{}:{bytes:a.bytes}}}async function Pu(e,t,n,r){let o={saved_at:new Date().toISOString(),fingerprint:t,affected_subjects_by_code:n.affected_subjects_by_code,profile:n.profile},i=await Ei(e);return r&&await xi(e,o),i===void 0?n:{...n,baseline:hi(i,o)}}async function ju(e,t,n,r,o){try{await Kn(e,t,n,r,o)}catch{}}async function V_(e,t,n,r,o){let i=Eu(e,t,n);ut(r.summary===!0,r.full===!0,"--summary");let s=S(process.cwd(),o.path);if(!await A($(s)))throw new h(`Tracker is not initialized at ${s}. Run pm init first.`,g.NOT_FOUND);let a=await T(s),c=O(a,N()),d=await ee(s,a.item_format,c.type_to_folder,void 0,a.schema),u=z(a.schema),l=U=>F(U,u);Ou(i,r);let f=ge(),m=Nn(r.kind,f),y=St().lookup(s,Ct(d,l,f),()=>Fe(d,l,f)),p={assembly:y.assembly,...m===void 0?{}:{kinds:m},maxDepth:Dt(r.maxDepth),limit:te(r.limit,"limit"),after:r.after?.trim()||void 0,direction:An(r.direction),maxPaths:te(r.maxPaths,"max-paths"),sample:te(r.sample,"sample"),exemptIsolates:Ti(r.exemptIsolate),exemptIsolateTypes:Ti(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(i==="index")return Si(await $u(s,y.fingerprint,p,d.length,l,r),!1);let b=Ri.has(i)?Di(p.assembly,t):void 0,w=i==="paths"?Di(p.assembly,n):void 0,_=Ai(i,b,w,p),k=await Gn(s,y.fingerprint),E=k.results[_],I=y.memoize(_,()=>E!==void 0?structuredClone(E):Ni(i,b,w,p,l)),P=Hn(d.length,k.exists);!I.reused&&E===void 0&&P&&await ju(s,y.fingerprint,k,_,I.value);let D=I.value.subcommand==="audit"?await Pu(s,y.fingerprint,I.value,p.saveBaseline):I.value;return D.cache={fingerprint:y.fingerprint.slice(0,12),assembly:y.assemblyReused?"hit":"miss",result:I.reused?"hit":"miss",durable:E!==void 0?"hit":P?"miss":"off"},Si(D,p.summary,"result_rows")}(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]="de8a82e1-0b02-5d5a-9086-686529a1ccab")}catch{}})();var Mi="blocked_by",Fi="blocks",Uu=Object.freeze([Mi,Fi]),Vn="no-active-blocker";function R(e){return e.trim().toLowerCase()}function ye(e){let t=new Set,n=typeof e.blocked_by=="string"?R(e.blocked_by):"";n.length>0&&n!==Vn&&t.add(n);for(let r of e.dependencies??[]){let o=typeof r.id=="string"?R(r.id):"";r.kind===Mi&&o.length>0&&o!==Vn&&t.add(o)}return[...t].sort((r,o)=>r.localeCompare(o))}function Kt(e){let t=new Map;for(let n of e){let r=R(n.id);r.length!==0&&t.set(r,new Set(ye(n)))}for(let n of e){let r=R(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===Fi&&typeof o.id=="string"?R(o.id):"";if(i.length===0||i===Vn)continue;let s=t.get(i)??new Set;s.add(r),t.set(i,s)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((o,i)=>o.localeCompare(i))]))}function Li(e,t){let n=R(e.id);return n.length>0?Kt(t).get(n)??ye(e):ye(e)}function Yn(e,t,n,r){let o=e;return(typeof o.id=="string"?r?.get(R(o.id))??Li(o,[...t.values()]):ye(e)).map(s=>{let a=t.get(R(s));return a?{id:s,title:a.title,status:a.status,resolved:F(a.status,n)}:{id:s,title:null,status:null,resolved:!1}})}function zt(e,t,n){return Yn(e,t,n)}function We(e,t){let n=new Map(e.map(s=>[R(s.id),s])),r=Kt(e),o=new Set([...Oi(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=C(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||Yn(s,n,t,r).some(d=>!d.resolved))&&i.add(R(s.id))}return i}function Oi(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Bu(e,t,n){let r=[R(e)],o=new Set;for(;r.length>0;){let i=r.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!F(s.status,n))return!0;r.push(R(s.id))}}}return!1}function Gu(e){let t=new Map,n=new Map,r=new Map,o=Kt(e);for(let i of e){t.set(R(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=R(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(R(i.id))){let c=R(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function Xn(e,t,n){let{itemsById:r,childrenByParent:o,blockedByReverse:i,blockerIdsByItem:s}=Gu(t),a=new Set([...Oi(n),...n.blocked_statuses]),c=new Set(t.filter(m=>!F(m.status,n)).map(m=>R(m.id))),d=[],u=[],l=0,f=0;for(let m of e){if(!a.has(C(m.status,n)))continue;if(l+=1,Bu(m.id,o,n)){f+=1;continue}let y=Yn(m,r,n,s).filter(_=>!_.resolved),p=(i.get(R(m.id))??[]).filter(_=>c.has(R(_))).sort((_,k)=>_.localeCompare(k)),b={item:m,open_blockers:y,unblocks:p},w=n.blocked_statuses.has(C(m.status,n));y.length===0&&!w?d.push(b):u.push(b)}return{ready:d,blocked:u,active_count:l,container_count:f}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cc271a73-9767-54bb-a142-d4d4569e3c6a")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function Jn(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 c=e[s+1];if(c===","||c==="\\"){r+=c,s+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let o=n.map(s=>s.trim());if(o.some(s=>s.length===0))throw new h(`${t.label} requires at least one non-empty value`,g.USAGE);let i=o.map(s=>t.normalize?.(s)??s);return[...new Set(i)]}function Ve(e,t){let n=Jn(e,t);return n===void 0?void 0:new Set(n)}function $i(e,t,n="--type"){let r=Jn(e,{label:n});if(r===void 0)return;let o=r.map(i=>{let s=ct(i,t);if(!s)throw new h(`${n} filter token "${i}" must be one of ${t.types.join("|")}`,g.USAGE);return s});return new Set(o)}function Pi(e,t="--priority"){let n=Jn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>kt(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 ji(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Ki(e){return{isTerminal(t){return e.terminal_statuses.has(ji(t,e))},classify(t){let n=ji(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 Qn(e){return j(e.acceptance_criteria)===void 0}function Zn(e){return!Number.isFinite(e.estimated_minutes)}function zi(e,t){return t.isTerminal(e.status)?j(e.resolution)===void 0:!1}function Ku(e){return j(e.reviewer)===void 0}function zu(e){return j(e.risk)===void 0}function Hu(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):j(e.confidence)===void 0}function qu(e){return j(e.sprint)===void 0}function Wu(e){return j(e.release)===void 0}function er(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Vu(e,t,n){return[[t.acMissing,Qn(e)],[t.estimatesMissing,Zn(e)],[t.resolutionMissing,zi(e,n)],[t.reviewerMissing,Ku(e)],[t.riskMissing,zu(e)],[t.confidenceMissing,Hu(e)],[t.sprintMissing,qu(e)],[t.releaseMissing,Wu(e)]].every(([o,i])=>o!==!0||i)}function Yu(e,t){return Qn(e)||Zn(e)||zi(e,t)}function Hi(e,t,n){return er(t)?!(!Vu(e,t,n)||t.metadataMissing&&!Yu(e,n)):!0}var tr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Xu(e,t){switch(t){case"acceptance_criteria":return!Qn(e);case"estimated_minutes":return!Zn(e);case"resolution":return j(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return j(e.parent)!==void 0}}function Ju(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function Qu(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Ui(){let e={};for(let t of tr)e[t]={present:0,applicable:0,percent:100};return e}function Bi(e,t,n){for(let r of tr){if(!Ju(t,r,n))continue;let o=e[r];o.applicable+=1,Xu(t,r)&&(o.present+=1)}}function Gi(e){for(let t of tr){let n=e[t];n.percent=Qu(n.present,n.applicable)}}function sw(e,t){let n=Ui(),r={};for(let o of e){Bi(n,o,t);let i=r[o.type]??(r[o.type]=Ui());Bi(i,o,t)}Gi(n);for(let o of Object.values(r))Gi(o);return{overall:n,by_type:r}}var Zu={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function el(e){return Zu[e]}function tl(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function nl(e,t,n){switch(t){case"assignee":return[j(e.assignee)??null];case"parent":return[j(e.parent)??null];case"type":return[j(e.type)??null];case"status":return[j(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=n.tagPrefix?.trim(),i=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!r||s.startsWith(r)));return i.length>0?i:[null]}}}function aw(e,t,n,r={}){let o=new Map,i=0;for(let a of e){i+=1;let c=n.classify(a.status);for(let d of nl(a,t,r)){let u=d??"\0empty",l=o.get(u);l||(l={label:d??el(t),key:d,buckets:tl(),total:0},o.set(u,l)),l.buckets[c]+=1,l.total+=1}}let s=[...o.values()].sort((a,c)=>c.total!==a.total?c.total-a.total:a.key===null?1:c.key===null?-1:a.label.localeCompare(c.label));return{dimension:t,rows:s,total_items:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var Pe=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function _e(e){return Array.isArray(e)&&e.length>0}function rl(e){return typeof e=="string"&&e.trim().length>0}function ol(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 _e(e.notes);case"learnings":return _e(e.learnings);case"files":return _e(e.files);case"docs":return _e(e.docs);case"tests":return _e(e.tests);case"comments":return _e(e.comments);case"deps":return _e(e.dependencies);case"body":return rl(e.body);case"linked_command":return ol(e.tests)}}function Vi(e){return Pe.some(t=>e[t]!==void 0)}function Yi(e,t){for(let n of Pe){let r=t[n];if(r===void 0)continue;let o=Wi(e,n);if(r==="present"&&!o||r==="absent"&&o)return!1}return!0}function Xi(e){return Pe.some(t=>t!=="body"&&e[t]!==void 0)}function Ji(e){return e.body!==void 0}function qi(e,t){return t===0?100:Math.round(e/t*1e3)/10}function il(){let e={};for(let t of Pe)e[t]={present:0,total:0,percent:100};return e}function dw(e){let t=il(),n=e.length;for(let s of e)for(let a of Pe)Wi(s,a)&&(t[a].present+=1);for(let s of Pe)t[s].total=n,t[s].percent=qi(t[s].present,n);let r=t.body,o=n-r.present,i={present:o,total:n,percent:qi(o,n)};return{total_items:n,fields:t,body_populated:r,empty_body:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e2cb56ba-2f89-5589-8abf-f08cc7fa2b6b")}catch{}})();var sl=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}),Qi=[{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"}],rs=e=>{let t=Qi.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new h(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,g.USAGE);return Object.fromEntries(Qi.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Zi=["priority","deadline","updated_at","created_at","title","parent"],es=["asc","desc"],al=["id","title","status","type","priority","parent","updated_at"],cl=["id","status","type","title"],Lw={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},dl=["tree_depth","tree_parent","tree_children","tree_title"],os=new Set(mo);function ul(e,t,n){let r=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,o=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,i={status:t?"unchecked":r+o>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:o};if(n&&i.status==="partial")throw new h(`List source is incomplete: ${r} item document(s) and ${o} item directory/directories could not be read.`,g.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 i}function ll(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var fl=[{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"}],ml=[{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 is(e,t){for(let n of fl)t[n.key]===!0&&(e[n.summaryKey]=!0)}function ss(e,t){for(let n of ml)t[n.key]===!0&&(e[n.summaryKey]=!0)}function pl(e,t,n){for(let r of n){let o=t[r.optionKey];o!==void 0&&(e[r.summaryKey]=r.normalize?r.normalize(o):o)}}function gl(e){let t={};return is(t,e),t}function hl(e){let t={};return ss(t,e),t}var yl=[{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"}],_l=[{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"}],wl=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],bl="-7d";function kl(e){let{filtersStatus:t,options:n,treeEnabled:r,treeDepth:o,sortField:i,sortOrder:s,runtimeFieldFilters:a}=e,c={};return t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency"),pl(c,n,yl),cs(c,n),n.filterAcMissing===!0&&(c.filter_ac_missing=!0),n.filterEstimatesMissing===!0&&(c.filter_estimates_missing=!0),n.filterResolutionMissing===!0&&(c.filter_resolution_missing=!0),n.filterMetadataMissing===!0&&(c.filter_metadata_missing=!0),ss(c,n),is(c,n),n.limit!==void 0&&(c.limit=n.limit),n.offset!==void 0&&(c.offset=n.offset),n.includeBody===!0&&(c.include_body=!0),n.fields!==void 0&&(c.fields=n.fields),r&&(c.tree=!0,o!==void 0&&(c.tree_depth=o)),i!==void 0&&(c.sort=i,c.order=s),ll(a)&&(c.runtime_filters=a),c}function as(e,t,n){let r=F(e.status,n),o=F(t.status,n);if(r!==o)return r?1:-1;let i=e.priority-t.priority;if(i!==0)return i;let s=x(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function vl(e,t){return[...e].sort((n,r)=>as(n,r,t))}function ts(e,t){if(e!==void 0)return se(e,new Date,t)}function Ye(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return se(n,new Date,t)}function El(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 h("Choose only one updated_at window: --today, --recent, or --updated-after.",g.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?Ye(bl,"recent"):Ye(e.updatedAfter,"updated-after")}function cs(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function xl(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new h("--ids requires at least one non-empty item ID",g.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new h("--ids requires at least one non-empty item ID",g.USAGE);return new Set(n)}function ds(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 h("Offset filter must be a non-negative integer",g.USAGE);return n}function Il(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 h("List --fields requires a comma-separated list of field names",g.USAGE);return[...new Set(t)]}function Cl(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,o=Il(e.fields);if(Number(t)+Number(n)+Number(r)+ +(o!==void 0)>1)throw new h("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",g.USAGE);return r?{mode:"full",fields:[]}:n?{mode:"brief",fields:[...cl]}:t?{mode:"compact",fields:[...al]}:o?{mode:"fields",fields:o}:{mode:"full",fields:[]}}function Xe(e){return e.startsWith("item.")?e.slice(5):e}function Sl(e,t){if(e.mode!=="fields")return;let n=new Set([...Ar,"body",...dl,...t]),r=[...n].flatMap(i=>[i,`item.${i}`]).sort(),o=e.fields.filter(i=>!n.has(Xe(i)));if(o.length>0)throw new h(`Unknown list --fields value(s): ${o.join(", ")}`,g.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"],recovery:{allowed_values:r,suggested_retry:"pm list --fields id,title,status --limit 10",suggested_retry_args:["list","--fields","id,title,status","--limit","10"]}})}var Tl=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Dl(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Tl.get(t);if(n)return n;if(!Zi.includes(t))throw new h(`Sort field must be one of ${Zi.join("|")} (aliases: updated->updated_at, created->created_at)`,g.USAGE);return t}function Rl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!es.includes(t))throw new h(`Sort order must be one of ${es.join("|")}`,g.USAGE);return t}function Al(e){return V(e,"--tree-depth")}function Nl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new h("Assignee filter must be one of assigned|unassigned",g.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new h(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,g.USAGE);return t}function ns(e,t){return uo(e,t,{strict:!0})}function us(e){return Ve(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Ml(e,t,n){let r=us(t);if(r===void 0)return;let o=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),i=[...r].filter(s=>!o.has(s));i.length>0&&n.push(`unknown_tags:${i.join(",")}`)}function Fl(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',g.USAGE);if(e!==void 0&&t==="unassigned")throw new h("Cannot combine --assignee with --assignee-filter unassigned",g.USAGE)}function Ll(e,t,n,r){let o=Ve(t.assignee,{label:"--assignee"}),i=Nl(t.assigneeFilter);Fl(o,i);let s=sl(t),a=rs(t);return{idsFilter:xl(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:$i(t.type,n),tagFilters:us(t.tag),priorityFilter:Pi(t.priority),deadlineBefore:ts(t.deadlineBefore,"deadline-before"),deadlineAfter:ts(t.deadlineAfter,"deadline-after"),updatedAfter:El(t),updatedBefore:Ye(t.updatedBefore,"updated-before"),createdAfter:Ye(t.createdAfter,"created-after"),createdBefore:Ye(t.createdBefore,"created-before"),assigneeFilter:o,assigneeModeFilter:i,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:Ve(t.sprint,{label:"--sprint"}),releaseFilter:Ve(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:er(s),lifecycleClassifier:Ki(r),contentFieldFilters:a,contentFiltersActive:Vi(a)}}function Ol(e,t,n){return $l(e,t,n)&&Pl(e,t)&&jl(e,t)&&Ul(e,t)}function $l(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&F(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(o=>o.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Pl(e,t){return Mr(e,t)}function jl(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 Ul(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 Bl(e,t,n,r){return!(!Ol(e,t,n)||t.missingMetadataActive&&!Hi(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Yi(e,t.contentFieldFilters)||!ht(e,r))}function Gl(e,t,n,r,o,i){let s=Ll(t,n,r,o);return e.filter(a=>Bl(a,s,o,i))}function Ht(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Kl(e,t,n){let r=e,o=typeof r.title=="string"?r.title:"",i=Ht(typeof r.parent=="string"?r.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:i,tree_children:n,tree_title:`${" ".repeat(t)}${o}`}}function zl(e,t,n){let r=new Map,o=new Map;for(let d of e){r.set(d.id,d);let u=Ht(d.parent);if(!u)continue;let l=o.get(u);l?l.push(d):o.set(u,[d])}let i=t?[...o.get(t)??[]]:e.filter(d=>{let u=Ht(d.parent);return!u||!r.has(u)}),s=[],a=new Set,c=(d,u)=>{if(a.has(d.id))return;a.add(d.id);let l=o.get(d.id)??[];if(s.push(Kl(d,u,l.length)),!(n!==void 0&&u>=n))for(let f of l)c(f,u+1)};for(let d of i)c(d,0);return s}function Hl(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function ql(e,t){return e===t?0:e===null?1:t===null?-1:x(e,t)}function Wl(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return ql(e.deadline??null,t.deadline??null);case"updated_at":return x(e.updated_at,t.updated_at);case"created_at":return x(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Hl(e.parent??null,t.parent??null);default:return 0}}function Vl(e,t,n,r){return t?[...e].sort((o,i)=>{let s=Wl(o,i,t);if(s!==0)return n==="desc"?-s:s;let a=as(o,i,r);return n==="desc"?-a:a}):vl(e,r)}function Yl(e,t,n=!1){let r=Xe(t.trim());if(r.length===0)return null;let o=e;return n&&r==="title"&&typeof o.tree_title=="string"?o.tree_title:Object.prototype.hasOwnProperty.call(o,r)?o[r]??null:null}function ls(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let o={};for(let i of t.fields)o[i]=Yl(r,i,n);return o})}function Xl(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Jl(e,t){if(e.noTruncate!==!0)return V(e.limit)??(t>=1e4?20:void 0)}function Ql(e,t,n){return t.after===void 0?ds(t.offset)??0:Ce(e,t.after,n,r=>r.id)}function fs(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function Zl(e,t){let n=S(process.cwd(),t.path);if(!await A($(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,g.NOT_FOUND);let r=await T(n),o=z(r.schema),i=dt(r.schema),s=Cl(e);return Sl(s,Xl(i.definitions)),{pmRoot:n,settings:r,statusRegistry:o,runtimeFieldFilters:gt(e,i,"list"),typeRegistry:O(r,N()),projection:s}}async function ef(e,t,n){let r=t.projection.fields.some(c=>Xe(c)==="body"),o=t.projection.mode==="full"||t.projection.fields.some(c=>os.has(Xe(c))),i=rs(e),s=Xi(i),a=Ji(i);return e.includeBody||r||a?await yo(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):o||s?await ho(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await ee(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function tf(e){let t=Dl(e.sort),n=Rl(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new h("List --tree-depth requires --tree",g.USAGE);if(!t&&e.order!==void 0)throw new h("List --order requires --sort",g.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?Al(e.treeDepth):void 0,parentRoot:r?Ht(e.parent):void 0}}function nf(e,t,n){let r=ns(t.status,n),o=r??ns(e,n),i=co(t.status),s=r||i?{...t,excludeTerminal:!1}:t,a=i?"all":o===void 0?s.excludeTerminal===!0?null:"all":o.length===1?o[0]:o;return{resolvedStatus:o,explicitAllStatuses:i,effectiveOptions:s,filtersStatus:a}}function rf(e,t,n,r,o){if(t.after!==void 0&&t.offset!==void 0)throw new h("List --after cannot be combined with --offset.",g.USAGE);let i=Jl(t,e.length),s=Ql(e,t,o),a=i===void 0?e.slice(s):e.slice(s,s+i),c=ls(a,n,r),d=e.length,u=a.length>0&&s+a.length<d,l=u&&a.length>0?Z(o,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:fs(i,u,l)}}function ms(e,t,n){return de("list",{status:e,options:lt(t,_o),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function of(e){let{options:t,runtime:n,statusSelection:r,ordering:o}=e,i=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 p=Xe(y);return p==="body"||os.has(p)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,o.treeEnabled,o.sortField!==void 0,s,Ur(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([y,p])=>p!==void 0&&!i.has(y))].includes(!0))return null;let c=await De(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!c)return null;let d=V(t.limit),u=ds(t.offset)??0,l=await fo({pmRoot:n.pmRoot,expectedSourceCursor:c.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:d,offset:u}});if(!l)return null;let f=l.items.length>0&&u+l.items.length<l.total,m=f?Z(ms(r.filtersStatus,t,o),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:ls(l.items,n.projection,!1),totalMatched:l.total,pageExtras:fs(d,f,m)}}function sf(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:o,treeDepth:i,sortField:s,sortOrder:a,runtimeFieldFilters:c}=e,d={};t!==null&&(d.status=t),n.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let u=n;for(let l of _l){let f=u[l.optionKey];f!=null&&(d[l.summaryKey]=f)}for(let l of wl)u[l.key]===!0&&(d[l.summaryKey]=!0);return Object.assign(d,hl(n),gl(n)),cs(d,n),r&&(d.no_truncate=!0),n.strictRead===!0&&(d.strict_read=!0),o&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),s!==void 0&&(d.sort=s,d.order=a),d.runtime_filters=c,d}async function Je(e,t,n){let r=await Zl(t,n),o=[],i=tf(t),s=nf(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await of({options:t,runtime:r,statusSelection:s,ordering:i}),d=c;if(!d){let p=await ef(t,r,o);Ml(p,t.tag,o);let b=Gl(p,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),w=t.dependencyBlocked===!0?(()=>{let E=We(p,r.statusRegistry);return b.filter(I=>E.has(I.id.trim().toLowerCase()))})():b,_=Vl(w,i.sortField,i.sortOrder,r.statusRegistry),k=i.treeEnabled?zl(_,i.parentRoot,i.treeDepth):_;d=rf(k,t,r.projection,i.treeEnabled,ms(s.filtersStatus,t,i))}let u=G(),l=[...new Set(o)].sort((p,b)=>p.localeCompare(b)),f=ul(l,c!==null,t.strictRead===!0),m=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let p=kl({filtersStatus:s.filtersStatus,options:t,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:p,projection:{mode:"compact",fields:m},...l.length>0?{warnings:l}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:sf({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:m},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:u,...l.length>0?{warnings:l}:{}}}import{encode as af}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 nr=["agenda","day","week","month"],rr=["markdown","toon","json"],cf=["sun","mon","tue","wed","thu","fri","sat"],df=365,uf=365,hs=28,lf=1e3;function or(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new h(`${t} must be a non-negative integer`,g.USAGE);return n}function ff(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(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new h("Calendar include filter must not be empty",g.USAGE);let r=new Set;for(let o of n){if(o==="deadlines"||o==="deadline"){r.add("deadlines");continue}if(o==="reminders"||o==="reminder"){r.add("reminders");continue}if(o==="events"||o==="event"||o==="scheduled"){r.add("events");continue}throw new h("Calendar include filter must be deadlines|reminders|events|scheduled|all",g.USAGE)}return r}function ys(e,t){let n;for(let r of t){let o=Fr(e,r,2);o!==null&&(n===void 0||o<n.distance)&&(n={choice:r,distance:o})}return n?.choice}function mf(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!nr.includes(t)){let n=ys(t,nr);throw new h(`Calendar view must be one of ${nr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,g.USAGE)}return t}function pf(e){if(!e)return;let t=e.trim().toLowerCase();if(!rr.includes(t)){let n=ys(t,rr);throw new h(`Calendar format must be one of ${rr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,g.USAGE)}return t}function Bw(e,t){let n=pf(e.format);if(t.json&&n&&n!=="json")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?"json":n??"markdown"}function gf(e,t){if(e===void 0)return;let n=M(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new h(`Calendar status filter must be one of ${r.join("|")}`,g.USAGE)}return n}function hf(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new h("Calendar assignee filter must be one of assigned|unassigned",g.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new h(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,g.USAGE);return t}function qt(e){return new Date(e).toISOString().slice(0,10)}function _s(e,t){if(!t||t==="UTC")return qt(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,o=n.find(s=>s.type==="month")?.value,i=n.find(s=>s.type==="day")?.value;if(r&&o&&i)return`${r}-${o}-${i}`}catch{}return qt(e)}function cr(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function ae(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function ws(e){let t=new Date(cr(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return ae(t.toISOString(),r)}function yf(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function _f(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function wf(e,t){return x(e,t)>=0?e:t}function ps(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function gs(e,t){e.set(t,(e.get(t)??0)+1)}function bf(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,o)=>ve(r)-ve(o));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,o)=>r-o);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,o)=>r.localeCompare(o));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function bs(e,t,n,r){let o=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(o.getUTCFullYear()!==e||o.getUTCMonth()!==t||o.getUTCDate()!==n))return o.toISOString()}function ks(e){return cf[new Date(e).getUTCDay()]}function kf(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function vf(e){let t=new Set;for(let n of e??[]){let r=kf(n);r&&t.add(r)}return t}function Ef(e,t,n,r,o){let i=e??ae(n,-(r??uf)),s=t??ae(e??n,o??df);return{start:i,end:x(s,i)>0?s:ae(i,1)}}function xf(e,t,n,r){let o=t.by_weekday!==void 0?[...t.by_weekday]:[ks(e)],i=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??lf,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:vf(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(o)].sort((s,a)=>ve(s)-ve(a)),sortedMonthDays:[...new Set(i)].sort((s,a)=>s-a),occurrences:[],produced:0}}function Wt(e,t){return x(t,e.startAt)<0?"continue":e.until&&x(t,e.until)>0||x(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,x(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function Vt(e,t){let n=ks(t),r=new Date(t).getUTCDate(),o=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return o&&i}function If(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(Vt(e,t)&&Wt(e,t)==="stop");n+=1)t=ae(t,e.interval);return e.occurrences}function Cf(e,t,n){let r=ve(n),o=ae(t,r),i=new Date(o);return new Date(Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate(),e.startDate.getUTCHours(),e.startDate.getUTCMinutes(),e.startDate.getUTCSeconds(),e.startDate.getUTCMilliseconds())).toISOString()}function Sf(e){let t=ws(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=ae(t,n*e.interval*7);for(let o of e.sortedWeekdays){let i=Cf(e,r,o);if(Vt(e,i)&&Wt(e,i)==="stop")return e.occurrences}}return e.occurrences}function Tf(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let i of e.sortedMonthDays){let s=bs(o.getUTCFullYear(),o.getUTCMonth(),i,e.startDate);if(!(!s||!Vt(e,s))&&Wt(e,s)==="stop")return e.occurrences}}return e.occurrences}function Df(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=t+r*e.interval;for(let i of e.sortedMonthDays){let s=bs(o,n,i,e.startDate);if(!(!s||!Vt(e,s))&&Wt(e,s)==="stop")return e.occurrences}}return e.occurrences}function Rf(e,t,n,r){let o=xf(e,t,n,r);return t.freq==="daily"?If(o):t.freq==="weekly"?Sf(o):t.freq==="monthly"?Tf(o):Df(o)}function vs(e){return[...e].sort((t,n)=>{let r=x(t.at,n.at);if(r!==0)return r;let o=t.item_priority-n.item_priority;if(o!==0)return o;let i=t.item_id.localeCompare(n.item_id);if(i!==0)return i;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 dr(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 Af(e){return e.deadline?{at:e.deadline,date:qt(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,...dr(e),item_deadline:e.deadline}:null}function Nf(e){return(e.reminders??[]).map(t=>({at:t.at,date:qt(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,...dr(e)}))}function Mf(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Ff(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Lf(e,t,n,r){let o=bf(t.recurrence),i=Mf(t.start_at,t.end_at);return(t.recurrence?Rf(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):_s(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Ff(a,t,i),event_location:t.location??null,event_all_day:t.all_day??null,event_timezone:t.timezone??null,event_recurring:!!t.recurrence,event_recurrence_rule:o,...dr(e)}))}function Of(e,t,n,r){let o=[];for(let i of e){let s=n.has("deadlines")?Af(i):null;s&&o.push(s),n.has("reminders")&&o.push(...Nf(i));for(let a of n.has("events")?i.events??[]:[])o.push(...Lf(i,a,t,r))}return vs(o)}function $f(e,t,n,r,o){let i=Oo(t.type,n),s=t.tag?.trim().toLowerCase(),a=kt(t.priority),c=gf(t.status,r),d=t.assignee?.trim(),u=hf(t.assigneeFilter),l=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',g.USAGE);if(d!==void 0&&u==="unassigned")throw new h("Cannot combine --assignee with --assignee-filter unassigned",g.USAGE);return e.filter(m=>Pf(m,{typeFilter:i,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:o}))}function Pf(e,t){return jf(e,t)&&Uf(e,t)&&ht(e,t.runtimeFieldFilters)}function jf(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 Uf(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 Bf(e,t,n){return!(t&&x(e.at,t)<0||n&&x(e.at,n)>=0)}function ir(e,t,n){return e.trim().toLowerCase()==="today"?cr(t):se(e,new Date(t),n)}function Gf(e,t,n){let r=t.date?ir(t.date,n,"--date"):n,o=t.past===!0,i=t.fullPeriod===!0,s=t.from?ir(t.from,n,"--from"):void 0,a=t.to?ir(t.to,n,"--to"):void 0;if(s&&a&&x(s,a)>=0)throw new h("Calendar --from must be before --to",g.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new h("--from and --to are only supported for --view agenda",g.USAGE);if(e==="agenda")return Kf(r,t,n,o,i,s,a);if(e==="day"){let d=cr(r);return sr(r,n,o,i,d,ae(d,1))}if(e==="week"){let d=ws(r);return sr(r,n,o,i,d,ae(d,7))}let c=yf(r);return sr(r,n,o,i,c,_f(r))}function Kf(e,t,n,r,o,i,s){if(o)throw new h("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",g.USAGE);return{anchor:e,start:i??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function sr(e,t,n,r,o,i){let s=n||r;return{anchor:e,start:s?o:wf(o,t),end:i,periodStart:o,periodEnd:i,fullPeriod:s}}function zf(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:vs(r)}))}function Hf(e){let t=new Set,n=new Map,r=new Map,o=0,i=0,s=0,a=0;for(let c of e)t.add(c.item_id),gs(n,c.item_type),gs(r,c.item_status),c.kind==="deadline"?o+=1:c.kind==="reminder"?i+=1:(s+=1,c.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:o,reminders:i,scheduled:s,by_kind:{deadline:o,reminder:i,event:s},by_type:ps(n),by_status:ps(r),recurring_events:a}}function qf(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Es(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(i=>i.type==="hour")?.value,o=n.find(i=>i.type==="minute")?.value;if(r&&o)return`${r}:${o}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function ar(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Wf(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===_s(e.event_end,e.event_timezone)?Es(e.event_end,e.event_timezone):e.event_end:null}function Vf(e){let t=`${Es(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 i=Wf(e);return i&&n.push(`end=${i}`),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 Gw(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${qf(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: ${ar(e.summary.by_kind)}`),t.push(`- by-type: ${ar(e.summary.by_type)}`),t.push(`- by-status: ${ar(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(`- ${Vf(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 Yf(t.join(`
3
- `))}function Kw(e){return af(e)}function Yf(e){let t=e.length;for(;t>0&&e[t-1]===`
4
- `;)t-=1;return e.slice(0,t)}function Xf(e){let t=G(),n=mf(e.view),r=Gf(n,e,t),o=V(e.limit),i=ff(e.include),s=or(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=or(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=or(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new h("Calendar occurrence limit must be >= 1",g.USAGE);let d=i.has("events")&&!i.has("deadlines")&&!i.has("reminders"),u=e.to!==void 0||s!==void 0||a!==void 0||c!==void 0,l=d&&!u;return{nowValue:t,view:n,rangeBounds:r,limit:o,includeSources:i,occurrenceLimit:c,recurrenceLookaheadDays:l?hs:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function Jf(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${hs}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Qf(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 Zf(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 xs(e,t){let n=S(process.cwd(),t.path);if(!await A($(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,g.NOT_FOUND);let r=Xf(e),o=await T(n),i=z(o.schema),s=dt(o.schema),a=gt(e,s,"calendar"),c=O(o,N()),d=[];Jf(d,r.eventsOnlyCapApplied);let u=await ee(n,o.item_format,c.type_to_folder,d,o.schema),l=$f(u,e,c,i,a),f=Ef(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),y=Of(l,f,r.includeSources,r.occurrenceLimit).filter(_=>Bf(_,r.rangeBounds.start,r.rangeBounds.end)),p=r.limit===void 0?y:y.slice(0,r.limit),b=zf(p),w=[...new Set(d)].sort((_,k)=>_.localeCompare(k));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:Zf(e,r.rangeBounds),filters:Qf(e,a),summary:Hf(p),events:p,days:b,...w.length>0?{warnings:w}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7eefe5f0-364d-559a-b365-0e7d539ee19e")}catch{}})();var ur=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],em=Symbol("no-context-author"),tm=Symbol("no-item-assignee");function Is(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function nm(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 rm(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 om(e){let t=typeof e=="string"?e.trim().toLowerCase():void 0;return t==="critical"||t==="high"?1:t==="medium"?.5:t==="low"?.1:0}function Yt(e,t,n){return e?.[t]??n}function Xt(e,t){let n=d=>{if(typeof d!="string")return"";try{return se(d,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((d,u)=>{let l=n(d.updated_at),f=n(u.updated_at);return x(f,l)||d.id.localeCompare(u.id)}),o=new Map(r.map((d,u)=>[d.id,u])),i=Math.max(e.length-1,1),s=Is(t.author,em),a=M("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let u=Is(d.assignee,tm)===s,l=(d.comments?.length??0)+(d.notes?.length??0)+(d.learnings?.length??0);return{id:d.id,item:d,signals:{recency:e.length===1?1:1-o.get(d.id)/i,activity_density:t.activityDensity?.[d.id],graph_proximity:Yt(t.graphProximity,d.id,d.parent?.3:0),claim_focus:Yt(t.claimFocus,d.id,C(d.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:nm(d.priority,4),risk_pressure:om(d.risk),deadline_pressure:rm(d.deadline,c),knowledge_density:Yt(t.knowledgeDensity,d.id,Math.min(l/5,1)),author_affinity:Yt(t.authorAffinity,d.id,u?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var im="context_relevance",sm={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},am=new TextEncoder;function cm(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,o]of Object.entries(n.signals??{})){if(r==="structural"||!ur.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(o!==void 0&&(!Number.isFinite(o)||o<0||o>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function dm(e){let t={...sm};for(let[n,r]of Object.entries(e??{}))r!==void 0&&ur.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 Ss(e,t={}){cm(e);let n=dm(t.weights),r=Math.max(e.length-1,1),o=new Set(["structural"]);for(let a of e)for(let[c,d]of Object.entries(a.signals??{}))d!==void 0&&o.add(c);let i=ur.filter(a=>o.has(a)),s=e.map((a,c)=>{let d={structural:e.length===1?1:1-c/r,...a.signals},u={},l=0,f=0;for(let m of i){let y=d[m];if(y===void 0)continue;let p=y*n[m];u[m]=p,l+=p,f+=n[m]}return{...a,baseline_rank:c+1,rank:0,score:f===0?0:l/f,contributions:u}});return s.sort((a,c)=>c.score-a.score||a.baseline_rank-c.baseline_rank),s.forEach((a,c)=>{a.rank=c+1}),{model:"default-weighted-v1",available_signals:i,ranked:s}}async function um(e,t={}){let n=Ss(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),o=new Map;for(let s of r){if(o.has(s.id)||!Number.isFinite(s.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");o.set(s.id,s.score)}if(o.size!==e.length||e.some(s=>!o.has(s.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let i=n.ranked.map(s=>{let a=o.get(s.id);return{...s,score:a,contributions:{custom:a}}});return i.sort((s,a)=>a.score-s.score||s.baseline_rank-a.baseline_rank),i.forEach((s,a)=>{s.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:i}}async function Jt(e,t,n={}){let r=Ss(t,n),o=await Br(im,{surface:e,candidates:t,default_report:r});if(!o.handled)return o.warnings.length>0?{...r,warnings:o.warnings}:r;if(!Array.isArray(o.result)||!o.result.every(i=>typeof i=="object"&&i!==null&&typeof i.id=="string"&&typeof i.score=="number"&&Number.isFinite(i.score)))return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]};try{let i=await um(t,{...n,scorer:()=>o.result});return o.warnings.length>0?{...i,warnings:o.warnings}:i}catch{return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]}}}var lm=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Cs(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function fm(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(d=>Math.max(0,t[d]??0)),r=Object.values(t).map(d=>Math.max(0,d)).sort((d,u)=>u-d).slice(0,n.length||1),o=d=>d.reduce((u,l,f)=>u+(2**l-1)/Math.log2(f+2),0),i=o(r),s=n.findIndex(d=>d>0),a=new Set(e.ranked_ids),c=e.actual_tokens<=e.token_budget;return{ndcg:i===0?1:o(n)/i,reciprocal_rank:s<0?0:1/(s+1),required_recall:Cs(e.required_ids??[],a),continuity_coverage:Cs(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function mm(e){return Math.ceil(am.encode(JSON.stringify(e)).byteLength/4)}function pm(e){return Math.round(e*1e4)/1e4}function gm(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(i=>i.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(i=>i.id),r=new Set(n),o=(e.ranking?.items??[]).filter(i=>r.has(i.id)).map(i=>({id:i.id,contributions:i.contributions}));return{rankedIds:n,attribution:o}}async function hm(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:o}=gm(n,e.surface),i={...n,ranking:void 0},s=mm(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:fm({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:o}}function ym(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=lm;for(let i of n)if(!Number.isFinite(t[i]))throw new TypeError(`Context evaluation threshold ${i} must be a finite number`);let r=Object.fromEntries(n.map(i=>[i,pm(e.reduce((s,a)=>s+a.metrics[i],0)/e.length)])),o=n.filter(i=>r[i]<t[i]).map(i=>`${i}:${r[i]}<${t[i]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:o.length===0,failures:o}}async function Vw(e,t,n){let r=[];for(let o of e)r.push(await hm(o,t));return ym(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 _m={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},wm=["identity","summary","full"];function bm(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=wm.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 km(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=_m[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,o=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(o)||o<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:o,profile:t}}function vm(e){let t=new Set;for(let n of e){if(bm(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 Em(e,t,n,r,o){let i=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&o()>=r)return{index:i,evaluated:s,timedOut:!0};let c=e[a];if(c.token_costs.identity>t)continue;s+=1;let d=i<0?void 0:e[i],u=n(c)/c.token_costs.identity,l=d===void 0?Number.NEGATIVE_INFINITY:n(d)/d.token_costs.identity;(u>l||u===l&&d!==void 0&&(c.rank<d.rank||c.rank===d.rank&&c.id.localeCompare(d.id)<0))&&(i=a)}return{index:i,evaluated:s,timedOut:!1}}function xm(e){let t=new Set,n=[],r=e.tokenBudget,o=d=>{let u=d.lineage??d.cluster,l=u&&t.has(u)?1-e.redundancyPenalty:1;return Math.max(0,(d.score-e.uncertaintyPenalty*(d.uncertainty??0))*l)},i=d=>{let u=d.token_costs.identity;n.push({...d,projection:"identity",tokens:u,marginal_value:o(d)}),r-=u;let l=d.lineage??d.cluster;l&&t.add(l)};for(let d of e.ordered.filter(u=>u.required))d.token_costs.identity<=r&&i(d);let s=e.ordered.filter(d=>!d.required),a=!0,c=0;for(;s.length>0;){let d=Em(s,r,o,e.deadline,e.readClock);if(c+=d.evaluated,d.timedOut&&(a=!1),d.index<0||d.timedOut)break;i(s.splice(d.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:c}}function Im(e,t){let n=t;for(let r of["summary","full"]){let o=r==="summary"?"identity":"summary",i=[...e].sort((s,a)=>{let c=s.token_costs[r]-s.token_costs[o],d=a.token_costs[r]-a.token_costs[o];return a.marginal_value/Math.max(d,1)-s.marginal_value/Math.max(c,1)||s.rank-a.rank||s.id.localeCompare(a.id)});for(let s of i){if(s.projection!==o)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=km(t),r=vm(e),o=t.readClock??performance.now.bind(performance),i=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:o()+t.latencyBudgetMs,s=xm({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:i,readClock:o}),{included:a}=s,c=Im(a,s.remaining);a.sort((u,l)=>u.rank-l.rank||u.id.localeCompare(l.id));let d=new Set(a.map(u=>u.id));return{included:a,omitted_ids:r.filter(u=>!d.has(u.id)).map(u=>u.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-c,remaining_tokens:c,complete:s.selectionComplete&&a.length===e.length&&a.every(u=>u.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import{randomUUID as Cm}from"node:crypto";import{appendFile as Sm,mkdir as Tm,readFile as Dm,rename as Rm,stat as Am,writeFile as Nm}from"node:fs/promises";import Ds 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,As=30,Ns=864e5,Mm=262144,Fm="context-usage-ledger",ne=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function Ms(e){return Ds.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 ne("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function Fs(e){try{let n=(await Dm(Ms(e.pmRoot),"utf8")).split(`
5
- `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Rs,o=e.retentionDays??As,i=Qe(e).ms-o*Ns;return n.filter(s=>Date.parse(s.at)>=i).slice(-r)}catch{return[]}}async function Ls(e,t){let n=e.maxEvents??Rs,r=e.retentionDays??As;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new ne("Context usage retention requires positive maxEvents and retentionDays");let o=Ms(e.pmRoot),i=Ds.dirname(o),s=await Te(e.pmRoot,Fm,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await Tm(i,{recursive:!0}),await Sm(o,t.map(u=>`${JSON.stringify(u)}
6
- `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await Am(o)).size<=Mm)return;let c=await Fs(e),d=`${o}.${process.pid}.${Cm()}.tmp`;await Nm(d,`${c.map(u=>JSON.stringify(u)).join(`
1
+ import{$a as un,$d as fn,B as Mr,Ba as Ee,C as g,Ch as T,Dd as Wr,E as h,Ed as Vr,Fd as Yr,G as j,Ga as dn,Gc as ln,Gd as Xr,Ha as at,Hd as Jr,Ic as Gr,Ig as lo,Ih as go,Jc as Kr,Jg as pt,Ld as Ie,Mb as xe,Mh as ho,Na as O,Nh as yo,Oa as ct,Oc as zr,Oh as Re,Ph as _o,Q as G,Qd as Qr,Rh as le,Sh as fe,T as x,Te as pn,Th as wo,U as Or,Uh as ee,V as se,Va as S,Vf as gn,Vh as bo,Xd as pe,Ya as $,Yd as Ce,Za as jr,Zd as Zr,Zf as Te,_d as eo,aa as $r,ag as ro,c as A,ca as Pr,cd as z,cg as oo,ch as fo,d as st,dc as Br,dg as io,dh as mo,e as Fr,ed as dt,f as ie,fg as Be,g as K,gk as ko,h as Nr,hg as ue,hh as yn,ig as hn,je as ut,jg as so,le as to,lf as ft,mg as ao,og as mt,pd as F,pe as mn,qd as C,qe as lt,rb as W,rd as N,re as de,rg as co,s as cn,se as Z,th as gt,uh as ht,ve as no,vg as uo,wb as Ur,wd as Hr,we as Se,wg as De,xc as L,xd as qr,zh as po,zl as vo}from"./chunk-RS3IV2R6.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 xa(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new h(`History for this item contains invalid timestamp at entry ${o+1}.`,g.GENERIC_FAILURE);i<=t&&(n=o)}),n}function Ia(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 Eo(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 o=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(i=>{let s=o[i];return typeof s=="string"?[[i,s]]:[]})))}if(n.patchIndex!==void 0){let o=e[n.patchIndex];o&&(n.op??=o.op,n.path??=o.path,n.from??=o.from)}return n}function xo(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=Ia(t);if(!r)throw new h(`Missing ${o} target. Use a timestamp or version number.`,g.USAGE,s);if(/^\d+$/.test(r)){let u=Number(r);if(!Number.isSafeInteger(u)||u<1||u>t.length)throw new h(`${i} version must be between 1 and ${t.length} for this item.`,g.USAGE,s);return{kind:"version",raw:r,historyIndex:u-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new h(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,g.USAGE,s);let d=xa(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new h(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,g.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function Ge(e,t,n,r){let o=ao(e,t);if(o.ok)return o.document;let i=Eo(t,o.error),s=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new h(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,g.GENERIC_FAILURE)}function Io(e,t){let n=structuredClone(Be);for(let r=0;r<=t;r+=1){let o=e[r];if(!o)throw new h(`History target entry ${r+1} does not exist.`,g.USAGE);if(ue(n)!==o.before_hash)throw new h(`History hash mismatch before replay at entry ${r+1}.`,g.GENERIC_FAILURE);if(n=Ge(n,o.patch,r+1,o.op),ue(n)!==o.after_hash)throw new h(`History hash mismatch after replay at entry ${r+1}.`,g.GENERIC_FAILURE)}return n}function Co(e,t){if(Object.keys(e.metadata).length>0)return e;throw new h(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,g.USAGE)}import _n from"node:fs/promises";import Ca 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 Sa(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=po(e.settings);if(n.ownership_enforcement==="strict")throw new h(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,g.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function Ta(e){let t=await ie(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new h(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,g.CONFLICT);let n=await le(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await fe(n,{schema:e.settings.schema}):null;if((r?.raw??null)!==(e.currentItemRawBeforeLock??null))throw new h(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,g.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function _h(e){let t=e.writeHistoryRaw??K;try{await t(e.historyPath,e.nextHistoryRaw),await Te(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await Ca.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await Te(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function So(e){let t=[...Sa({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await De(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 Ta({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 wn(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function To(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function Do(e){let t=e.trim();if(t.length===0)throw new h("history-redact --regex requires a non-empty pattern.",g.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(n=t.slice(1,o),r=To(t.slice(o+1)))}if(n.length===0)throw new h("history-redact --regex cannot use an empty pattern.",g.USAGE);try{new RegExp(n,r)}catch{throw new h("Invalid --regex value; provide a valid JavaScript regular expression.",g.USAGE)}return{kind:"regex",source:n,flags:r}}function Ro(e,t){let n=[...new Set(wn(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),r=[...new Set(wn(t).map(i=>i.trim()))].filter(i=>i.length>0).map(Do),o=[...n,...r];if(o.length===0)throw new h("history-redact requires at least one matcher via --literal or --regex.",g.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 o}function Ao(e,t,n){if(t.length===0)return{value:e,replacements:0};let r=0,o=0;for(;r<=e.length;){let i=e.indexOf(t,r);if(i===-1)break;o+=1,r=i+Math.max(1,t.length)}return o===0?{value:e,replacements:0}:{value:e.split(t).join(n),replacements:o}}function Lo(e,t,n){let r=new RegExp(t.source,t.flags),o=[...e.matchAll(r)];return o.length===0?{value:e,replacements:0}:{value:e.replace(r,n),replacements:o.length}}function bn(e,t,n){let r=e,o=0;for(let i of t){let s=i.kind==="literal"?Ao(r,i.value,n):Lo(r,i,n);r=s.value,o+=s.replacements}return{value:r,replacements:o}}function yt(e,t,n){if(typeof e=="string")return bn(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(i=>{let s=yt(i,t,n);return r+=s.replacements,s.value}),replacements:r}}if(typeof e=="object"&&e!==null){let r=0,o={};for(let[i,s]of Object.entries(e)){let a=yt(s,t,n);r+=a.replacements,o[i]=a.value}return{value:o,replacements:r}}return{value:e,replacements:0}}function Da(e){let t=structuredClone(Be),n=0,r=0;for(let o=0;o<e.length;o+=1){let i=e[o];ue(t)!==i.before_hash&&(n+=1),t=Ge(t,i.patch,o+1,i.op),ue(t)!==i.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function Ra(e,t,n){let r=0,o=!1,i=e.message;if(typeof e.message=="string"){let a=bn(e.message,t,n);i=a.value,r+=a.replacements,a.replacements>0&&(o=!0)}let s=e.patch.map(a=>{if(!Object.prototype.hasOwnProperty.call(a,"value"))return a;let c=yt(a.value,t,n);return r+=c.replacements,c.replacements>0?(o=!0,{...a,value:c.value}):a});return{entry:{...e,message:i,patch:s},replacements:r,changed:o}}function Aa(e,t,n){let r=structuredClone(Be),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=Ra(e[a],t,n);i+=c.replacements,c.changed&&(o+=1);let d=ue(r);r=Ge(r,c.entry.patch,a+1,c.entry.op);let u=ue(r);s.push({...c.entry,before_hash:d,after_hash:u})}return{entries:s,finalDocument:r,entriesChanged:o,replacements:i}}function Fo(e){return Object.keys(e.metadata).length>0}async function La(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await fe(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function Fa(e){if(!Fo(e.finalDocument))return{raw:null,path:null,document:null};let t=qr(hn(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new h("history-redact would change the item id; narrow your patterns.",g.USAGE);return{document:t,path:jr(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Hr(t,{format:"toon",schema:e.settings.schema})}}function Na(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 Ma(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??hn(e.rewritten.finalDocument);return t.push(io({nowIso:G(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function Oa(e){let t=[];return So({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 yo(e.pmRoot,e.author),o=new Set;e.currentItem.path&&o.add(e.currentItem.path),e.nextItem.path&&o.add(e.nextItem.path);let i=new Map;e.currentItem.path&&e.currentItem.raw!==null&&i.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 K(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await _n.rm(e.currentItem.path,{force:!0}),await K(e.subject.historyPath,co(e.rewrittenEntries))}catch(c){try{await $a(e.subject.historyPath,n,o,i)}finally{await Te(e.subject.historyPath)}throw c}await Te(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await _o({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 Pa(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function $a(e,t,n,r){t===null?await _n.rm(e,{force:!0}):await K(e,t);for(let o of n){let i=r.get(o);i===void 0?await _n.rm(o,{force:!0}):await K(o,i)}}async function Pa(e,t){let n=[],r=new Set(t.filter(o=>o!==null));for(let o of r)n.push(...await ln({path:o,scope:"project",op:"history_redact"}));return n.push(...await ln({path:e,scope:"project",op:"history_redact:history"})),n}async function kn(e,t,n,r){let o=await le(e,t,n.id_prefix,n.item_format,r);if(o)return{id:o.id,historyPath:un(e,o.id),located:o};let i=pt(t,n.id_prefix),s=lo(t),a=i===s?[i]:[i,s];for(let c of a){let d=un(e,c);if(await A(d))return{id:c,historyPath:d,located:null}}throw new h(`Item ${t} not found`,g.NOT_FOUND)}async function Uh(e,t,n){let r=S(process.cwd(),n.path);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let o=await T(r),i=O(o,L()),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=Ro(t.literal,t.regex),u=await kn(r,e,o,i.type_to_folder);if(!await A(u.historyPath))throw new h(`No history stream exists for ${u.id}.`,g.NOT_FOUND);let l=await ie(u.historyPath),f=await Ce(u.historyPath,u.id);if(f.length===0)throw new h(`No history entries exist for ${u.id}; nothing to redact.`,g.USAGE);let m=Da(f),y=Aa(f,d,c),p=m.hashMismatchesBefore+m.hashMismatchesAfter,b=!!t.dryRun,w=y.replacements>0,_=[];p>0&&_.push(`history_redact_preexisting_hash_mismatches:${p}`),w||_.push("history_redact_no_matches");let k=await La(u,o),E=Fa({pmRoot:r,subject:u,settings:o,typeToFolder:i.type_to_folder,finalDocument:y.finalDocument}),I=(k.path??null)!==(E.path??null)||(k.raw??null)!==(E.raw??null),P=pe(t.author,o.author_default),D=Na(t,y),{rewrittenEntries:U,auditEntryAdded:ce}=Ma({rewritten:y,dryRun:b,changed:w,nextItemDocument:E.document,author:P,message:D}),B=mt(U);if(!B.ok)throw new h(`history-redact produced an invalid rewritten chain (${B.errors.join(", ")}).`,g.GENERIC_FAILURE);return!b&&w&&_.push(...await Oa({pmRoot:r,subject:u,settings:o,typeRegistry:i,historyRawBeforeLock:l,currentItem:k,nextItem:E,author:P,force:t.force,rewrittenEntries:U})),{id:u.id,dry_run:b,changed:w,patterns:{literal_count:d.filter(M=>M.kind==="literal").length,regex_count:d.filter(M=>M.kind==="regex").length,total_count:d.length,replacement_is_default:a},history:{path:u.historyPath,entries_scanned:f.length,entries_changed:y.entriesChanged,replacements:y.replacements,hash_mismatches_before:m.hashMismatchesBefore,hash_mismatches_after:m.hashMismatchesAfter,preexisting_hash_mismatches:p,audit_entry_added:ce,verify_ok:B.ok,verify_errors:B.errors},item:{existed_before:k.path!==null,exists_after:E.path!==null,path_before:k.path,path_after:E.path,changed:I},warnings:[...new Set(_)].sort((M,q)=>M.localeCompare(q)),generated_at:G()}}var Bh={applyLiteralRule:Ao,applyRegexRule:Lo,buildRedactionRules:Ro,hasItemMetadata:Fo,normalizeRegexFlags:To,normalizeStringArrayInput:wn,parseRegexRule:Do,redactStringValue:bn,redactUnknownValue:yt};(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 ty(e,t){let n=mt(e),r=e.length>0?e[e.length-1].after_hash:oo(),o=t===void 0?void 0:ro(t),i=o===void 0?void 0:o===r,s=[...n.errors];return i===!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:o,current_matches_latest:i}}async function ny(e,t,n={}){let r=S(n.cwd??process.cwd(),n.pmRoot);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let o=await T(r),i=O(o,L()),s=await kn(r,e,o,i.type_to_folder),a=await Ce(s.historyPath,s.id);if(a.length===0)throw new h(`No history exists for ${s.id}; point-in-time reads are unavailable.`,g.NOT_FOUND);let c=xo(t,a),d=Co(Io(a,c.historyIndex),c),u=so(d,{schema:o.schema});if(u.metadata.id!==s.id)throw new h(`History target resolved to item ${u.metadata.id}, expected ${s.id}.`,g.GENERIC_FAILURE);let l=a[c.historyIndex];return{document:u,reconstructed:!0,as_of_version:c.historyIndex+1,as_of_timestamp:l.ts,target:c,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]="3167c288-0bcc-5a66-8aa0-ca5876ed7d36")}catch{}})();function ja(e,t,n,r,o,i){if(e.seen.has(t))return"skip";if(e.cursorFound&&e.affected.length>=i)return"truncate";e.seen.add(t),e.parents.set(t,n.id);let s=n.depth+1;return e.queue.push({id:t,depth:s}),e.cursorFound?(e.affected.push({id:t,distance:s,path:qa(r,t,e.parents)}),"continue"):(e.cursorFound=t===o,"skip")}function Mo(e,t,n,r){let o=de("graph impact",{root:e,direction:n,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(r)?r:"unbounded"});return{fingerprint:o,after:t.after===void 0?void 0:no(t.after,o)}}function Ae(e,t,n){e.get(t).add(n)}function Ke(e){return new Map(e.map(t=>[t,new Set]))}function Oo(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function _t(e){if(Array.isArray(e))return e.map(n=>_t(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?_t(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,_t(r)]))}function No(e){return JSON.stringify(_t(e))}function Ua(e,t,n,r){let o=[{id:e,expanded:!1}];for(;o.length>0;){let i=o.pop();if(i.expanded){r.push(i.id);continue}if(n.has(i.id))continue;n.add(i.id),o.push({id:i.id,expanded:!0});let s=[...t.get(i.id)].sort().reverse();for(let a of s)n.has(a)||o.push({id:a,expanded:!1})}}function Ba(e,t){let n=new Set,r=[];for(let o of e)n.has(o)||Ua(o,t,n,r);return r}function Ga(e,t){let n=new Set,r=[];for(let o of[...e].reverse()){if(n.has(o))continue;let i=[],s=[o];for(n.add(o);s.length>0;){let a=s.pop();i.push(a);for(let c of t.get(a))n.has(c)||(n.add(c),s.push(c))}r.push(i)}return Oo(r)}function $o(e,t){let n=Ke(e);for(let[r,o]of t)for(let i of o)Ae(n,i,r);return Ga(Ba(e,t),n)}function Ka(e,t){let n=Ke(e.nodes());for(let r of e.edges()){let o=t.require(r.kind);if(!o.ordering)continue;let i=(o.precedence??"source_before_target")==="source_before_target";Ae(n,i?r.source:r.target,i?r.target:r.source)}return n}function za(e,t){let n=new Map(e.map(i=>[i,0]));for(let i of t.values())for(let s of i)n.set(s,n.get(s)+1);let r=e.filter(i=>n.get(i)===0).sort(),o=[];for(;r.length>0;){o.push(r);let i=[];for(let s of r)for(let a of t.get(s)){let c=n.get(a)-1;n.set(a,c),c===0&&i.push(a)}r=i.sort()}return o}function Ha(e,t){let n=new Map(e.map(s=>[s,0])),r=new Map;for(let s of e)for(let a of t.get(s)){if(!n.has(a))continue;let c=n.get(s)+1,d=r.get(a);(c>n.get(a)||c===n.get(a)&&(d===void 0||s.localeCompare(d)<0))&&(n.set(a,c),r.set(a,s))}let o=[...e].sort((s,a)=>n.get(a)-n.get(s)||s.localeCompare(a))[0],i=o===void 0?[]:[o];for(;i[0]!==void 0&&r.has(i[0]);)i.unshift(r.get(i[0]));return{depth:Object.fromEntries(n),path:i}}function qa(e,t,n){let r=[t],o=t;for(;o!==e;)o=n.get(o),r.push(o);return r.reverse()}function bt(e,t={}){let n=t.registry??W(),r=[...e.nodes()],o=Ka(e,n),i=za(r,o),s=i.flat(),a=s.length===r.length,c=a?[]:$o(r,o).filter(u=>u.length>1||o.get(u[0]).has(u[0])),d=Ha(s,o);return{exact:!0,acyclic:a,order:s,layers:i,frontier:i[0]??[],depth:d.depth,criticalPath:d.path,criticalPathLength:Math.max(0,d.path.length-1),cycles:c,provenance:{algorithm:"kahn-longest-path",edgeFamily:"ordering"}}}function Wa(e,t,n){let r=Ke(e.nodes()),o=n===void 0?void 0:new Set(n.map(s=>e.registry().require(s).kind)),i=e.edges();for(let s of i){let a=e.registry().require(s.kind);o!==void 0&&!o.has(s.kind)&&(a.inverse===void 0||!o.has(a.inverse))||Ae(r,t==="incoming"?s.target:s.source,t==="incoming"?s.source:s.target)}return{adjacency:r,inspectedEdges:i.length}}function Va(e,t,n,r,o,i){let s=wt(e,t,{...n,after:void 0,direction:"incoming",limit:void 0}),a=wt(e,t,{...n,after:void 0,direction:"outgoing",limit:void 0}),c=new Map,d=[...s.affected,...a.affected].sort((y,p)=>y.distance-p.distance||y.id.localeCompare(p.id)||y.path.join("\0").localeCompare(p.path.join("\0")));for(let y of d)c.has(y.id)||c.set(y.id,y);let u=[...c.values()].sort((y,p)=>y.distance-p.distance||y.id.localeCompare(p.id)),l=r===void 0||r===t?-1:u.findIndex(y=>y.id===r);if(r!==void 0&&r!==t&&l<0)throw new TypeError(`Unknown impact cursor item: ${r}`);let f=u.slice(l+1,l+1+o),m=l+1+f.length<u.length;return{root:t,affected:f,exact:!0,truncated:s.truncated||a.truncated||m,...m?{nextCursor:Z(i,f.at(-1)?.id??t)}:{},cost:{visitedNodes:s.cost.visitedNodes+a.cost.visitedNodes,inspectedEdges:s.cost.inspectedEdges+a.cost.inspectedEdges}}}function Ya(e,t,n){let r=n.direction,o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Mo(t,n,r,o),{adjacency:c,inspectedEdges:d}=Wa(e,r,n.kinds),u={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},l=0,f=!1,m=!1;e:for(let y=0;y<u.queue.length;y+=1){n.signal?.throwIfAborted();let p=u.queue[y];l+=1;let b=[...c.get(p.id)].sort();if(p.depth>=o){b.some(w=>!u.seen.has(w))&&(f=!0);continue}for(let w of b)if(ja(u,w,p,t,a,i)==="truncate"){f=!0,m=!0;break e}}if(!u.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:u.affected,exact:!0,truncated:f,...m?{nextCursor:Z(s,u.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:l,inspectedEdges:d}}}function wt(e,t,n={}){let r=n.direction??"outgoing";if(r!=="both")return Ya(e,t,{...n,direction:r});let o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Mo(t,n,r,o);return Va(e,t,n,a,i,s)}function Po(e){let t=[...e.nodes()],n=Ke(t),r=Ke(t);for(let c of e.edges())Ae(n,c.source,c.target),Ae(n,c.target,c.source),Ae(r,c.source,c.target);let o=[],i=new Set;for(let c of t){if(i.has(c))continue;let d=[],u=[c];for(i.add(c);u.length>0;){let l=u.pop();d.push(l);for(let f of n.get(l))i.has(f)||(i.add(f),u.push(f))}o.push(d)}let s=t.map(c=>({id:c,degree:n.get(c).size})),a=Math.max(0,...s.map(({degree:c})=>c));return{components:Oo(o),stronglyConnected:$o(t,r),orphans:s.filter(({degree:c})=>c===0).map(({id:c})=>c),hubs:s.filter(({degree:c})=>c>0&&c===a),exact:!0,provenance:{algorithm:"component-degree",edgeFamily:"all"}}}function sy(e,t){let n=new Map(e.edges.map(o=>[No(o),o])),r=new Map(t.edges.map(o=>[No(o),o]));return{fromVersion:e.version,toVersion:t.version,added:[...r].filter(([o])=>!n.has(o)).map(([,o])=>o),removed:[...n].filter(([o])=>!r.has(o)).map(([,o])=>o),unchangedCount:[...n.keys()].filter(o=>r.has(o)).length,exact:!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]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function V(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 h(`${t} must be a non-negative integer`,g.USAGE);return r}function kt(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 h(`${t} filter must be 0..4`,g.USAGE);return r}function jo(e,t,n="--type"){if(e===void 0)return;let r=ct(e,t);if(!r)throw new h(`${n} filter must be one of ${t.types.join("|")}`,g.USAGE);return r}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch{}})();var vt={version:1,aliases:{}};function Et(e=[]){let t=new Set(Ie),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let o of Object.keys(r.provenance_environment_keys??{}))n(o);for(let o of Object.keys(r.provenance_resolvers??{}))n(o);for(let o of r.provenance_unavailable_dimensions??[])n(o)}return[...t].sort()}function Uo(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 vn(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 En(e,t=Ie){let n=new Set(t),r=new Map,o=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let i of o.flatMap(s=>s.split(","))){let s=i.indexOf("=");if(s<0)throw new h(`Provenance predicate must use dimension=value; received "${i.trim()}".`,g.USAGE,{code:"invalid_provenance_predicate"});let a=i.slice(0,s).trim().toLowerCase(),c=i.slice(s+1).trim();if(!n.has(a))throw new h(`Unknown provenance dimension "${a||i.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,g.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new h(`Provenance predicate must use dimension=value; received "${i.trim()}".`,g.USAGE,{code:"invalid_provenance_predicate"});let d=r.get(a)??new Set;d.add(c),r.set(a,d)}return r}function xt(e,t=vt,n={}){let r=vn(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 hy(e,t,n=vt,r=Ie){return xn(t,n,r)(e)}function xn(e,t=vt,n=Ie){let r=Uo(e.harness),o=Uo(e.agentInstance),i=En(e,n);return s=>{let c=vn(s,t).agent_harness;if(r&&(!c||!r.has(c))||o&&!o.has(s.agent_instance??""))return!1;for(let[d,u]of i){let l=s.agent_provenance?.[d];if(!l||!u.has(l.value))return!1}return!0}}function It(e,t=vt,n=Ie){let r=new Set(n),o=new Map,i=0;for(let s of e){for(let c of Object.keys(s.agent_provenance??{}))r.add(c);vn(s,t).agent_harness?i+=1:o.set(s.author,(o.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:i,unresolved:e.length-i,unresolved_authors:[...o].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,c=0;for(let d of e){let u=d.agent_provenance?.[s];u===null?c+=1:u!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:c,legacy_missing:e.length-a-c}})}}import Xa from"node:fs/promises";import Ko 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]="49304d18-d722-5413-8e4d-4f2c3df4a1ca")}catch{}})();var Ja=20,Qa=5,Za=15,ec="-24h";function Cy(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 tc={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function In(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new h(`${t} must not be empty`,g.USAGE);return n}function Bo(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new h("Activity time bounds must not be empty",g.USAGE);let o=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return se(o,new Date(t),n)}function nc(e,t,n){return!(e.ts.length===0&&(t||n)||t&&x(e.ts,t)<0||n&&x(e.ts,n)>=0)}function Go(e,t){return t===void 0?e:e.slice(0,t)}function ze(e,t=""){return typeof e=="string"?e:t}function rc(e,t){return{...t,id:e,ts:ze(t.ts),author:ze(t.author,"unknown"),op:ze(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:ze(t.before_hash),after_hash:ze(t.after_hash)}}function oc(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let o=t.id.localeCompare(n.id);return o!==0?o:t.op.localeCompare(n.op)})}async function ic(e){try{return(await Xa.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Fr(t))return[];throw t}}function sc(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 ac(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Za:n==="compact"?Ja:Qa}function cc(e,t){let n=G(),r=t==="digest",o=Bo(e.to??(r?n:void 0),n,"--to"),i=Bo(e.from??(r?ec:void 0),e.from===void 0&&r?o:n,"--from");if(i&&o&&x(i,o)>=0)throw new h("Activity --from must be before --to",g.USAGE);let s=yn(e.limit);if(e.unbounded===!0&&s!==void 0)throw new h("Activity --unbounded cannot be combined with --limit",g.USAGE);return{id:In(e.id,"Activity --id"),op:In(e.op,"Activity --op"),author:In(e.author,"Activity --author"),from:i,to:o,limit:ac(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function dc(e){let t=S(process.cwd(),e.path);if(!await A($(t)))throw new h(`Tracker is not initialized at ${t}. Run pm init first.`,g.NOT_FOUND);return{pmRoot:t,settings:await T(t)}}async function uc(e){let t=O(e.settings,L()),n=await ee(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await uo({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(o=>o.id),commandLabel:"activity"});let r=Ko.join(e.pmRoot,"history");return await Gr({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(o=>[o.id,{title:o.title,type:o.type,status:o.status}]))}}function lc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:nc(t,n.from,n.to)}async function fc(e,t){let n=[];for(let r of await ic(e)){let o=r.slice(0,-6);if(t.id&&o!==t.id)continue;let i=await Ce(Ko.join(e,r),o);for(let s of i){let a=rc(o,s);lc(s,a,t)&&n.push(a)}}return n}function mc(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function pc(e){let t=[...e.entries()].sort(([r,o],[i,s])=>s-o||r.localeCompare(i)),n=t.slice(0,4).map(([r,o])=>`${r}:${o}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function gc(e,t){let n=new Map;for(let r of e){let o=n.get(r.id);if(o===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}o.eventCount+=1,x(r.ts,o.firstTs)<0&&(o.firstTs=r.ts),x(r.ts,o.lastTs)>0&&(o.lastTs=r.ts),o.operations.set(r.op,(o.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,o])=>{let i=t.get(r);return{id:r,type:i?.type??"unknown",status:i?.status??"unknown",title:(i?.title??"(item metadata unavailable)").slice(0,160),event_count:o.eventCount,first_ts:o.firstTs,last_ts:o.lastTs,operations:pc(o.operations)}}).sort((r,o)=>x(o.last_ts,r.last_ts)||r.id.localeCompare(o.id))}function hc(e){let t=new Map;for(let o of e)t.set(o.op,(t.get(o.op)??0)+1);let n=[...t.entries()].sort((o,i)=>i[1]-o[1]||o[0].localeCompare(i[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((o,[,i])=>o+i,0)]),Object.fromEntries(r)}function yc(e,t,n,r,o){if(e==="digest"){let s=gc(t,r),a=Go(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let i=Go(t,n);return e==="compact"?{rows:{compact_activity:mc(i)},compact:!0,totalRows:t.length,returnedRows:i.length}:e==="provenance"?{rows:{provenance_activity:i.map(o)},compact:!1,totalRows:t.length,returnedRows:i.length}:{rows:{activity:i},compact:!1,totalRows:t.length,returnedRows:i.length}}async function zo(e,t){let n=await dc(t),r=sc(e),o=cc(e,r),i=await uc(n),s=Et(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=xn({harness:o.harness,agentInstance:o.agentInstance,provenance:o.provenance},a,s),d=oc(await fc(i.historyDir,o)).filter(c),u=yc(r,d,o.limit,i.itemsById,f=>xt(f,a,{itemId:f.id})),l=u.totalRows-u.returnedRows;return{...u.rows,compact:u.compact,projection:{mode:r,row_key:tc[r]},omission_receipt:to("activity",r),count:u.returnedRows,total_count:u.totalRows,limit:o.limit??null,omitted_count:l,has_more:l>0,...r==="digest"?{activity_summary:{window:{from:o.from,to:o.to},event_count:d.length,item_count:u.totalRows,author_count:new Set(d.map(f=>f.author)).size,operation_counts:hc(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:It(d,a,s)}:{},applied_bound:{kind:o.limit===void 0?"unbounded":"limit",source:o.limitSource,value:o.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]="1b2f1ac3-82b3-58a2-9f40-2dd95ab1b2bc")}catch{}})();var Ho="global",_c="external";function Le(e){let t=e?.trim().toLowerCase();return t===Ho||t===_c}function Dy(e){let t=e?.trim();if(t)return Le(t)?Ho:t}function Ry(e,t,n){let r=e.trim();return Le(n)?r:pt(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]="a6fc5da1-b7d1-5b3c-8033-cecccc7861c3")}catch{}})();function Ne(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Cn(e){let t=Ne(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function ge(){let e=W();for(let t of L()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}function Fe(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function wc(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=Ne(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${o.toLowerCase()}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:o,kind:i,count:1})}return t}function bc(e,t=n=>n==="closed"||n==="canceled"){let n=[];for(let r of e)if(!(typeof r?.id!="string"||r.id.trim().length===0))for(let o of wc(r).values())o.count<2||n.push({holder_id:r.id.trim(),target_id:o.target_id,kind:o.kind,occurrences:o.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,o)=>{let i=Fe(r.holder_id,o.holder_id);if(i!==0)return i;let s=Fe(r.target_id,o.target_id);return s!==0?s:Fe(r.kind,o.kind)})}function kc(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=Ne(n.id);if(!i||i.toLowerCase()!==t.toLowerCase())return;let s=o.resolve(typeof n.kind=="string"?n.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:i,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:r(e.status)}}function vc(e,t=r=>r==="closed"||r==="canceled",n=ge()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=Ne(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=kc(o,i,s,t,n);a&&r.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...r.values()].sort((o,i)=>{let s=Fe(o.holder_id,i.holder_id);if(s!==0)return s;let a=Fe(o.target_id,i.target_id);return a!==0?a:Fe(o.dependency_kind,i.dependency_kind)})}function Sn(e,t=n=>n==="closed"||n==="canceled"){let n=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),r=new Set(n.map(c=>c.id.trim().toLowerCase())),o=new Map,i=(c,d,u,l)=>{let f=Ne(d);if(!f||r.has(f.toLowerCase()))return;let m={holder_id:c.id.trim(),target_id:f,kind:u,source:l,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:f.toLowerCase()==="no-active-blocker"};o.set(`${m.holder_id}::${m.target_id}::${m.kind}::${m.source}`,m)};for(let c of n){i(c,c.parent,"parent","parent"),i(c,c.blocked_by,"blocked_by","blocked_by");for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;Le(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency")}}let s=[...o.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function Ec(e){let t=new Map;for(let n of[...e.active,...e.legacy_terminal]){if(n.no_active_blocker_sentinel)continue;let r=n.target_id.trim(),o=r.toLowerCase();t.has(o)||t.set(o,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function xc(e){let t=new Map;for(let n of e)for(let r of n.dependencies??[]){if(typeof r!="object"||r===null||!Le(r.source_kind))continue;let o=Ne(r.id);o&&!t.has(o.toLowerCase())&&t.set(o.toLowerCase(),o)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function Ic(e,t=ge()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function Me(e,t,n){let r=n??ge(),o=e.filter(f=>typeof f?.id=="string"&&f.id.trim().length>0),i=new Map(o.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),s=Sn(o,t),a=Ec(s);for(let f of a)i.set(f.toLowerCase(),f);let c=xc(o),d=new Set(i.keys()),u=new Map;for(let f of c){let m=f;for(;d.has(m.toLowerCase());)m=`external:${m}`;u.set(f.toLowerCase(),m),d.add(m.toLowerCase())}let l=o.map(f=>{let m=Cn(f.parent),y=Cn(f.blocked_by),p=(f.dependencies??[]).flatMap(b=>{if(typeof b!="object"||b===null)return[];let w=b,_=Cn(w.id);return _?[{id:Le(w.source_kind)?u.get(_.toLowerCase()):i.get(_.toLowerCase()),kind:typeof w.kind=="string"?w.kind:"related"}]:[]});return{id:f.id.trim(),...m?{parent:i.get(m.toLowerCase())}:{},...y?{blocked_by:i.get(y.toLowerCase())}:{},dependencies:p}});return{graph:Ur.fromItems([...l,...a.map(f=>({id:f})),...c.map(f=>({id:u.get(f.toLowerCase())}))],r),details:[...o.map(f=>({id:f.id.trim(),title:f.title,status:f.status,...typeof f.type=="string"&&f.type.trim().length>0?{type:f.type.trim()}:{}})),...a.map(f=>({id:f,title:`[missing] ${f}`,status:"missing"})),...c.map(f=>({id:u.get(f.toLowerCase()),title:`[external] ${f}`,status:"external"}))],missingIdSet:new Set(a.map(f=>f.toLowerCase())),dangling:s,duplicateRows:bc(o,t),orderingContradictions:vc(o,t,r),legacyAliasCounts:Ic(o,r)}}import{createHash as Cc}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]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var Sc=64,Tc=8;function Dc(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let o=r;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",n].join("\0")}function Ct(e,t=r=>r==="closed"||r==="canceled",n=W()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Dc(i,t)).sort(),o=n.list().map(i=>xe(i)).sort();return Cc("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function qo(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Tn=class{#e=new Map;#t;#n;constructor(t={}){this.#t=qo("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Sc),this.#n=qo("maxWorkspaces",t.maxWorkspaces,Tc)}lookup(t,n,r){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==n)&&(o={fingerprint:n,assembly:r(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let s=o,a=this.#t;return{assembly:s.assembly,assemblyReused:i,fingerprint:n,memoize(c,d){let u=s.results.get(c);if(u!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,u),{value:structuredClone(u),reused:!0};let l=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(l)),{value:l,reused:!1}}}}clear(){this.#e.clear()}},Wo=new Tn;function St(){return Wo}function jy(){Wo.clear()}(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]="31a800f7-1374-5e7c-ad23-ae3d8ebcebe0")}catch{}})();var Rc=["prerequisite","dependent","ancestor","descendant","provenance","related"],Ac=new TextEncoder;function Dn(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function Tt(e){return Math.max(1,Math.ceil(Ac.encode(JSON.stringify(e)).byteLength/4))}function Rn(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=(r.hierarchyDirection??"source_parent")==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Lc(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Rn(i,n,r));return[...new Set(o)].sort()}function Fc(e){return Rc.find(t=>e.includes(t))}function Nc(e,t,n,r){let o=r.direction??"both",i=r.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let s=new Set([t]),a=[{id:t,distance:0}],c=[],d=0,u=!1;for(let l=0;l<a.length;l+=1){r.signal?.throwIfAborted();let f=a[l];if(f.distance>=i&&u)continue;let m=e.neighborEdges(f.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=m.meta.inspectedEdges,f.distance>=i){m.value.some(y=>!s.has(y.id))&&(u=!0);continue}for(let{id:y,edge:p}of m.value){if(s.has(y))continue;s.add(y);let b={id:y,distance:f.distance+1,via:f.id,role:Rn(p,y,n)};c.push(b),a.push(b)}}return c.sort((l,f)=>l.distance-f.distance||l.id.localeCompare(f.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function Mc(e,t,n,r){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:r.direction??"both",kinds:r.kinds,signal:r.signal}).value;for(let{id:s,edge:a}of i)o[Rn(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function Oc(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Lc(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Fc(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=Tt(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function $c(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],o=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let s=Tt(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Vo(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Dn(r.nodeLimit,20,"nodeLimit"),i=Dn(r.edgeLimit,40,"edgeLimit"),s=Dn(r.tokenBudget,1200,"tokenBudget"),a=r.registry??W(),c=new Map(n.map(Q=>[Q.id,Q])),d=c.get(t)??{id:t},{evidence:u=[],...l}=d,f=[...u],m=Nc(e,t,a,r),{rootEdges:y,...p}=Mc(e,t,a,r),b=de("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),w=Se(m.rows,r.cursor,b,({id:Q})=>Q),_=m.rows.slice(w),k=Tt(l)+Tt(f);if(k>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let E=Oc({candidates:_,details:c,rootEdges:y,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:k}),{nodes:I}=E,P=new Set([t,...I.map(({id:Q})=>Q)]),D=$c({graph:e,included:P,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:E.usedTokens}),{edges:U,usedTokens:ce}=D,B=w+I.length,M=B<m.rows.length,q=I.at(-1),X=D.candidateCount-U.length,J=m.depthTruncated||M||X>0,ke={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...p,discoveredNodes:m.rows.length,returnedNodes:I.length,returnedEdges:U.length,omittedNodes:m.rows.length-B,omittedEdges:X,evidenceCount:f.length,hasMore:M};return{root:l,summary:ke,nodes:I,edges:U,evidence:f,meta:{exact:!0,truncated:J,completeness:J?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:ce,visitedNodes:m.visitedNodes,inspectedEdges:m.inspectedEdges,omittedNodes:m.rows.length-B,omittedEdges:X,...M&&q?{nextCursor:Z(b,q.id,B-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]="ee0547d9-ae0f-5762-8bff-e25f0a3cd4d5")}catch{}})();var Pc=["tree","graph","context"],jc=["none","repeated"],Uc=["outgoing","incoming","both"],Bc=32,Gc=200,Kc=400,zc=16e3;function Hc(e){let t=e?.trim().toLowerCase()??"tree";if(Pc.includes(t))return t;throw new h(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,g.USAGE)}function te(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new h(`Invalid --${t} value "${e}". Use a positive integer.`,g.USAGE);return n}function Dt(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new h(`Invalid --max-depth value "${e}". Use a non-negative integer.`,g.USAGE);return t}function qc(e){let t=e?.trim().toLowerCase()??"none";if(jc.includes(t))return t;throw new h(`Invalid --collapse value "${e}". Use "none" or "repeated".`,g.USAGE)}function Ln(e){let t=e?.trim().toLowerCase()??"both";if(Uc.includes(t))return t;throw new h(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,g.USAGE)}function Fn(e,t=W()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new h(`Invalid --kind value "${o}". Registered kinds: ${s}.`,g.USAGE)}r.add(i.kind)}return[...r].sort()}function Wc(e){if(!e||e.length===0)return[];let t=e.map(({id:r,kind:o})=>({id:r.trim(),kind:o.trim().toLowerCase()})).sort((r,o)=>{let i=r.kind.localeCompare(o.kind);return i!==0?i:r.id.localeCompare(o.id)}),n=new Map;for(let r of t){let o=`${r.kind.toLowerCase()}::${r.id.toLowerCase()}`;n.has(o)||n.set(o,{id:r.id,kind:r.kind})}return[...n.values()]}function Vc(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Wc(e.dependencies)}}function Yc(e){return ft(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Xc(e,t,n,r,o,i,s,a,c){for(let d of t.dependencies){let u=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:d.id,kind:d.kind}).length/3));if(a.nodes>=a.nodeLimit){e.truncated=!0,a.reasons.add("node_limit");break}if(a.edges>=a.edgeLimit){e.truncated=!0,a.reasons.add("edge_limit");break}if(a.estimatedTokens+u>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=u,e.dependencies.push(Xo(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Jc(e,t,n,r,o,i,s,a){return s.estimatedTokens>=s.tokenBudget&&t?.dependencies.length?(e.truncated=!0,s.reasons.add("token_budget"),!0):!t||e.cycle?!0:r!==void 0&&a>=r?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):o==="repeated"&&i.has(n)?(e.collapsed=!0,!0):!1}function Xo(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),u=t.get(d),l={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=Yc(l),Jc(l,u,d,r,o,i,s,a))return l;o==="repeated"&&i.add(d);let f=new Set(n);return f.add(d),Xc(l,u,t,f,r,o,i,s,a),l}function Yo(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function Qc(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Yo(t.get(a.id),{id:a.id,title:a.title,type:a.type,status:a.status,missing:a.missing}));for(let c of a.dependencies){t.set(c.id,Yo(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",u=`${a.id}::${c.id}::${d}`;n.has(u)||n.set(u,{from:a.id,to:c.id,kind:d}),c.cycle||r.push(c)}}let o=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),i=[...n.values()].sort((a,c)=>{let d=a.from.localeCompare(c.from);if(d!==0)return d;let u=a.to.localeCompare(c.to);return u!==0?u:a.kind.localeCompare(c.kind)}),s=o.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:s}}function Jo(e,t,n){let r=new Set,o=new Set,i=new Set,s=new Set,a=[{id:e,depth:0}],c=0;for(;c<a.length;){let d=a[c++],u=d.id.trim().toLowerCase();r.add(u);let l=t.get(u);if(!l){i.add(u);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(u)){s.add(u);for(let f of l.dependencies)o.add(`${u}::${f.id.trim().toLowerCase()}::${f.kind}`),a.push({id:f.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function Zc(e,t=W()){let n=Dt(e.maxDepth),r=te(e.nodeLimit,"node-limit"),o=te(e.edgeLimit,"edge-limit"),i=te(e.tokenBudget,"token-budget"),s=Fn(e.kind,t);return{direction:Ln(e.direction),...s===void 0?{}:{kinds:s},...n===void 0?{}:{maxDepth:n},...r===void 0?{}:{nodeLimit:r},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function ed(e,t,n,r){return Vo(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function An(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function td(e,t,n,r){let o=await le(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await fe(o,{schema:n.schema}),s=i.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],u=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(u.every(([,f])=>f===0))return[];let l=[`linked:${u.map(([f,m])=>`${f}=${m}`).join(",")}`];return An(l,"file",a.map(f=>f.path),3),An(l,"test",c.map(f=>f.command??f.path),2),An(l,"doc",d.map(f=>f.path),2),l}function nd(e){let{canonicalId:t,context:n,missingCount:r,missingReferences:o,referenceLimit:i,summaryOnly:s}=e;return{id:t,format:"context",node_count:n.nodes.length+1,edge_count:n.edges.length,edge_basis:"deduplicated_directed",missing_count:r,missing_scope:"traversal",missing_reference_count:o.length,...s?{}:{missing_references:o.slice(0,i),context:n}}}function rd(e){let{row:t,missingReachableSet:n,packetIds:r,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!n.has(t.target_id.trim().toLowerCase())||!r.has(t.holder_id))return!1;if(o===void 0)return!0;let s=i.resolve(t.kind);return s!==void 0&&(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))}function Qo(e,t,n){let r;for(;;){let o=ft(new TextEncoder().encode(gn(mn("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function od(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function id(e){try{return ed(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&od(t))return e.smallestResult;throw t}}function sd(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,u=r.edgeLimit??40,l=r.tokenBudget,f,m;for(;;){let y=id({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:o,smallestResult:m});if("format"in y)return y;let p=y;f??=p.meta.tokenBudget,l??=f;let b=nd({canonicalId:n,context:p,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(m=b,i||(p.meta.tokenBudget=f,p.meta.usedTokens=Qo(Oe(b,!1),s,k=>{p.meta.usedTokens=k}),p.meta.usedTokens<=f))return b;if(u>0){u-=1;continue}let w=l,_=w*f/p.meta.usedTokens;l=Math.min(w-1,Math.max(1,Math.floor(_*.9)))}}function ad(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Zc(r,t.graph.registry()),c=t.graph.closure(n,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(p=>t.missingIdSet.has(p.toLowerCase())),u=new Set(d.map(p=>p.toLowerCase())),l=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(p=>l.require(p).kind)):void 0,m=new Set([n,...c.value]),y=[...t.dangling.active,...t.dangling.legacy_terminal].filter(p=>rd({row:p,missingReachableSet:u,packetIds:m,filteredKinds:f,registry:l}));return sd({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:y})}function cd(e){let t=[e],n;for(;t.length>0;){let r=t.pop();r.dependencies.length>0&&(n=r,t.push(...r.dependencies))}return n?(n.dependencies.pop(),n.truncated=!0,!0):!1}function dd(e,t,n,r,o,i,s){let a=o??Bc,c=te(n.nodeLimit,"node-limit")??Gc,d=te(n.edgeLimit,"edge-limit")??Kc,u=te(n.tokenBudget,"token-budget")??zc,l={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=Xo(e,r,new Set,a,t==="graph"?"repeated":i,new Set,l),m=Jo(e,r,void 0),y;for(;;){let p=Qc(f),b=l.reasons.size===0?void 0:{reasons:[...l.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:u},estimated_tokens:0,total_node_count:m.node_count,total_edge_count:m.edge_count,omitted_node_count:Math.max(0,m.node_count-p.nodes.length),omitted_edge_count:Math.max(0,m.edge_count-p.edges.length)},w={id:e,format:t,node_count:p.nodes.length,edge_count:p.edges.length,edge_basis:"deduplicated_directed",missing_count:p.missing_ids.length,...b?{truncation:b}:{}};if(y=t==="tree"?{...w,tree:f}:{...w,graph:p},(y.truncation===void 0?ft(new TextEncoder().encode(gn(mn("deps",Oe(y,!1)),s)).byteLength):Qo(Oe(y,!1),s,k=>{y.truncation.estimated_tokens=k}))<=u)return y;if(!cd(f))return l.reasons.add("token_budget"),y;l.reasons.add("token_budget")}}function Oe(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function a_(e,t,n){let r=S(process.cwd(),n.path);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let o=Hc(t.format),i=Dt(t.maxDepth),s=qc(t.collapse);ut(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await T(r),d=O(c,L()),u=await ee(r,c.item_format,d.type_to_folder,void 0,c.schema),l=z(c.schema),f=new Map(u.map(y=>[y.id.trim().toLowerCase(),Vc(y)])),m=Sn(u,y=>N(y,l));for(let y of[...m.active,...m.legacy_terminal]){let p=f.get(y.holder_id.trim().toLowerCase()),b=y.kind.trim().toLowerCase();p&&!p.dependencies.some(w=>w.id.trim().toLowerCase()===y.target_id.trim().toLowerCase()&&w.kind===b)&&p.dependencies.push({id:y.target_id,kind:b})}if(!f.has(e.trim().toLowerCase()))throw new h(`Item ${e} not found`,g.NOT_FOUND);if(o==="context"){let y=f.get(e.trim().toLowerCase()).id,p=a?[]:await td(r,y,c,d.type_to_folder),b=k=>N(k,l),w=ge(),_=St().lookup(r,Ct(u,b,w),()=>Me(u,b,w));return Oe(ad({assembly:_.assembly,canonicalId:y,options:t,rootEvidence:p,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,_.assembly.legacyAliasCounts)}return a?Oe({id:e,format:o,...Jo(e,f,i)},!0,Object.fromEntries(Object.entries(Me(u,y=>N(y,l)).legacyAliasCounts))):Oe(dd(e,o,t,f,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Me(u,y=>N(y,l)).legacyAliasCounts)))}(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]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var ud=5,ld=1e4,fd=8;function Nn(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Rt(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function He(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function At(e,t){let n=He(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function md(e,t,n){if(t===void 0)return;let r=e.registry(),o=new Set;for(let i of t){let s=r.require(i);if(!s[n])throw new TypeError(`Relationship kind ${s.kind} is not a ${n} kind`);o.add(s.kind)}return o}function pd(e,t,n,r,o){let i=e.registry(),s=e.neighborEdges(t,{direction:"both",...n===void 0?{}:{kinds:[...n]}}),a=[],c=new Set;for(let d of s.value){let u=i.require(d.edge.kind);u[r]&&o(d,u,t)&&(c.has(d.id)||(c.add(d.id),a.push(d.id)))}return{neighbors:a,inspectedEdges:s.meta.inspectedEdges}}function gd(e,t,n,r,o,i){if(t>=n)return e.neighbors.some(s=>!i.seen.has(s))&&(i.truncated=!0),!1;for(let s of e.neighbors)if(!i.seen.has(s)){if(i.seen.add(s),i.queue.push({id:s,depth:t+1}),!i.resumed){s===o&&(i.resumed=!0);continue}if(i.value.length>=r)return i.truncated=!0,!0;i.value.push(s)}return!1}function Lt(e,t,n,r,o){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let i=md(e,n.kinds,r),s=n.limit??Number.POSITIVE_INFINITY,a=n.maxDepth??Number.POSITIVE_INFINITY,c=n.after,d={seen:new Set([t]),value:[],queue:[{id:t,depth:0}],resumed:c===void 0,truncated:!1},u=0,l=0;for(let f=0;f<d.queue.length;f+=1){n.signal?.throwIfAborted();let m=d.queue[f];u+=1;let y=pd(e,m.id,i,r,o);if(l+=y.inspectedEdges,gd(y,m.depth,a,s,c,d))break}if(!d.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:d.value,meta:{visitedNodes:u,inspectedEdges:l,truncated:d.truncated,nextCursor:d.value.at(-1)}}}function Zo(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function ei(e,t,n,r,o){let i=e.neighborEdges(t.nodes.at(-1),{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});return o.inspectedEdges+=i.meta.inspectedEdges,i.value.filter(s=>!t.nodeSet.has(s.id))}function hd(e,t,n,r,o,i,s){for(let a of ei(e,t,r,o,s)){let c=[...t.nodes,a.id],d=new Set(t.nodeSet).add(a.id),u=[...t.edges,a.edge];if(a.id===n){if(s.value.push({nodes:c,edges:u,length:u.length}),s.value.length>=i)return!0}else s.queue.push({nodes:c,nodeSet:d,edges:u})}return!1}function ti(e,t,n={}){return Lt(e,t,n,"hierarchy",(r,o)=>Rt(r.edge,o)===r.id)}function ni(e,t,n={}){return Lt(e,t,n,"hierarchy",(r,o,i)=>Rt(r.edge,o)===i)}function ri(e,t,n={}){return Lt(e,t,n,"ordering",(r,o)=>He(r.edge,o)===r.id)}function oi(e,t,n={}){return Lt(e,t,n,"ordering",(r,o,i)=>He(r.edge,o)===i)}function yd(e,t,n,r,o,i,s,a){let c={value:[],queue:[{nodes:[t],nodeSet:new Set([t]),edges:[]}],inspectedEdges:0},d=0,u=!1,l=o+1;for(let f=0;f<c.queue.length;f+=1){if(r.signal?.throwIfAborted(),c.value.length>=l||d>=i){u=!0;break}let m=c.queue[f];if(d+=1,m.edges.length>=s){ei(e,m,r,a,c).length>0&&(u=!0);continue}if(hd(e,m,n,r,a,l,c)){u=!0;break}}return{value:c.value.slice(0,o),meta:{visitedNodes:d,inspectedEdges:c.inspectedEdges,truncated:u}}}function ii(e,t,n,r={}){Zo(e,t),Zo(e,n);let o=r.maxPaths??ud,i=r.maxVisitedPaths??ld,s=r.maxDepth??fd;Nn("maxPaths",o),Nn("maxVisitedPaths",i),Nn("maxDepth",s);let a=r.direction??"outgoing";r.signal?.throwIfAborted();for(let c of r.kinds??[])e.registry().require(c);return t===n?o===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[t],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:yd(e,t,n,r,o,i,s,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]="24898402-1568-5b05-9072-f89dd91f25a6")}catch{}})();var _d=16,wd=2,bd=8;function Ft(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function Nt(e,t,n){let r=e.registry(),o=t===void 0?void 0:new Set(t.map(i=>r.require(i).kind));for(let i of e.edges()){if(i.source===i.target)continue;let s=r.require(i.kind);o!==void 0&&!(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))||n(i,s)}}function kd(e,t){let n=new Map;Nt(e,t,r=>{si(n,r.source,r.target),si(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function si(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function vd(e,t){let n=new Map;for(let i of e){let s=t.get(i);n.set(s,(n.get(s)??0)+1)}let r,o=0;for(let[i,s]of n)(s>o||s===o&&i<r)&&(r=i,o=s);return r}function Ed(e,t){let n=new Map;for(let[o,i]of e){let s=n.get(i);s===void 0?n.set(i,[o]):s.push(o)}let r=[];for(let o of n.values())o.length<t||(o.sort(),r.push({representative:o[0],size:o.length,members:o}));return r.sort((o,i)=>i.size-o.size||o.representative.localeCompare(i.representative))}function ai(e,t={}){let n=t.maxIterations??_d,r=t.minSize??wd;Ft("maxIterations",n),Ft("minSize",r);let o=kd(e,t.kinds),i=e.nodes(),s=new Map(i.map(l=>[l,l])),a=0,c=!1,d=0,u=0;for(;a<n&&!c;){t.signal?.throwIfAborted(),a+=1,c=!0;for(let l of i){d+=1;let f=o.get(l);if(f===void 0)continue;u+=f.length;let m=vd(f,s);m!==s.get(l)&&(s.set(l,m),c=!1)}}return{value:{communities:Ed(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function Mt(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Ot(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function $t(e,t){return(t.hierarchy?Rt(e,t):e.source===He(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function xd(e,t){if(t===void 0)return;let n=e.registry(),r=new Set;for(let o of t){let i=n.require(o);if(!Mt(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);r.add(Ot(i))}return r}function Id(e,t){let n=e.registry(),r=new Map;for(let o of e.edges()){let i=n.require(o.kind);if(!Mt(i))continue;let s=Ot(i);if(t!==void 0&&!t.has(s))continue;let a=$t(o,i);if(a.from===a.to)continue;let c=r.get(s);c===void 0&&(c={adjacency:new Map,records:[]},r.set(s,c));let d=c.adjacency.get(a.from);d===void 0?c.adjacency.set(a.from,new Set([a.to])):d.add(a.to),c.records.push({...a,edge:o})}return r}function Cd(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function Sd(e,t,n,r){let o=[r];for(let i=n;i!==t;i=e.get(i))o.push(i);return o.push(t),o.reverse()}function Td(e,t,n,r,o,i){for(let s of e.get(n.id)??[])if(i.inspectedEdges+=1,!(n.depth===0&&s===t.to)&&!r.has(s)){if(r.set(s,n.id),s===t.to)return Sd(r,t.from,n.id,s);o.push({id:s,depth:n.depth+1})}}function Dd(e,t,n,r){let o=new Map([[t.from,t.from]]),i=[{id:t.from,depth:0}];for(let s=0;s<i.length;s+=1){let a=i[s];if(r.visitedNodes+=1,a.depth>=n)continue;let c=Td(e,t,a,o,i,r);if(c!==void 0)return c}}function $e(e,t={}){let n=t.maxDepth??bd;Ft("maxDepth",n),t.limit!==void 0&&Ft("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,o=xd(e,t.kinds),i=Id(e,o),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let u=i.get(d),l=Cd(u);for(let f of u.records){t.signal?.throwIfAborted();let m=Dd(l,f,n,a);if(m!==void 0){if(s.length>=r){c=!0;break e}s.push({edge:f.edge,witness:m})}}}return{value:s,meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:c}}}function Rd(e,t,n,r,o){let i=new Set,s=[];for(let a of n){if(a.id===e||i.has(a.id))continue;if(!o.seen.has(a.id)){if(t>=r){o.truncated=!0;continue}o.seen.add(a.id),o.queue.push({id:a.id,depth:t+1})}i.add(a.id),s.push(a.id);let c=o.predecessors.get(a.id);c===void 0&&(c=new Set,o.predecessors.set(a.id,c)),c.add(e)}return s}function Ad(e,t,n){let r=n.direction??"outgoing",o=n.maxDepth??Number.POSITIVE_INFINITY,i=[],s=new Map,a={seen:new Set([t]),queue:[{id:t,depth:0}],predecessors:new Map,truncated:!1},c=0;for(let d=0;d<a.queue.length;d+=1){n.signal?.throwIfAborted();let{id:u,depth:l}=a.queue[d];i.push(u);let f=e.neighborEdges(u,{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});c+=f.meta.inspectedEdges,s.set(u,Rd(u,l,f.value,o,a))}return{order:i,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function Ld(e,t){let n=[],r=new Set([t]),o=[{id:t,index:0}];for(;o.length>0;){let i=o.at(-1),s=e.successors.get(i.id);if(i.index<s.length){let a=s[i.index];i.index+=1,r.has(a)||(r.add(a),o.push({id:a,index:0}))}else n.push(i.id),o.pop()}return n.reverse()}function Fd(e,t,n,r){let o=e,i=t;for(;o!==i;){for(;r.get(o)>r.get(i);)o=n.get(o);for(;r.get(i)>r.get(o);)i=n.get(i)}return o}function Nd(e,t,n){let r;for(let o of[...e].sort())t.has(o)&&(r=r===void 0?o:Fd(r,o,t,n));return r}function Md(e,t,n,r,o){let i=new Map([[t,t]]),s=!0;for(;s;){s=!1;for(let a of n){if(o?.throwIfAborted(),a===t)continue;let c=Nd(e.predecessors.get(a),i,r);c!==void 0&&i.get(a)!==c&&(i.set(a,c),s=!0)}}return i}function ci(e,t,n={}){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);if(n.maxDepth!==void 0&&(!Number.isInteger(n.maxDepth)||n.maxDepth<0))throw new TypeError(`Invalid maxDepth bound: ${String(n.maxDepth)}`);let r=Ad(e,t,n),o=Ld(r,t),i=new Map(o.map((d,u)=>[d,u])),s=Md(r,t,o,i,n.signal),a=new Map(o.map(d=>[d,1]));for(let d=o.length-1;d>=0;d-=1){let u=o[d];if(u===t)continue;let l=s.get(u);a.set(l,a.get(l)+a.get(u))}let c=o.filter(d=>d!==t).map(d=>({id:d,idom:s.get(d),dominatedCount:a.get(d)-1})).sort((d,u)=>u.dominatedCount-d.dominatedCount||d.id.localeCompare(u.id));return{value:{root:t,reachableCount:r.order.length,rows:c},meta:{visitedNodes:r.order.length,inspectedEdges:r.inspectedEdges,truncated:r.truncated}}}(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]="348c9246-2fb9-529e-b627-f60c901a6cf2")}catch{}})();function di(e){return Math.round(e*1e6)/1e6}function ui(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function li(e,t){let n=new Map(e.nodes().map(o=>[o,new Set]));Nt(e,t,o=>{n.get(o.source).add(o.target),n.get(o.target).add(o.source)});let r=new Map;for(let[o,i]of n)r.set(o,[...i].sort());return r}function Od(e,t){let n=new Map,r=new Map;return Nt(e,t,(o,i)=>{if(!i.ordering)return;let{predecessor:s,successor:a}=At(o,i);ui(r,s,a),ui(n,a,s)}),{incoming:n,outgoing:r}}function $d(e,t,n){let r=new Map([[e,0]]),o=new Map([[e,1]]),i=new Map,s=[],a=[e],c=0,d=0;for(let u=0;u<a.length;u+=1){let l=a[u];n.visitedNodes+=1,s.push(l);let f=r.get(l);l!==e&&(c+=1,d+=f);for(let m of t.get(l))if(n.inspectedEdges+=1,r.has(m)||(r.set(m,f+1),a.push(m)),r.get(m)===f+1){o.set(m,(o.get(m)??0)+o.get(l));let y=i.get(m);y===void 0?i.set(m,[l]):y.push(l)}}return{stack:s,sigma:o,predecessors:i,reachableCount:c,distanceSum:d}}function Pd(e,t,n){let r=new Map;for(let o=e.stack.length-1;o>=0;o-=1){let i=e.stack[o],s=(1+(r.get(i)??0))/e.sigma.get(i);for(let a of e.predecessors.get(i)??[])r.set(a,(r.get(a)??0)+e.sigma.get(a)*s);i!==t&&n.set(i,(n.get(i)??0)+(r.get(i)??0))}}function jd(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function Ud(e,t,n,r,o){return{id:e,degree:t.get(e).length,inDegree:n.incoming.get(e)?.size??0,outDegree:n.outgoing.get(e)?.size??0,betweenness:di((r.get(e)??0)/2),closeness:di(o.get(e))}}function fi(e,t={}){let n=li(e,t.kinds),r=Od(e,t.kinds),o=e.nodes(),i=new Map,s=new Map,a={visitedNodes:0,inspectedEdges:0};for(let u of o){t.signal?.throwIfAborted();let l=$d(u,n,a);s.set(u,jd(l,o.length)),Pd(l,u,i)}let c=0;for(let u of n.values())c+=u.length;let d=o.map(u=>Ud(u,n,r,i,s)).sort((u,l)=>l.betweenness-u.betweenness||l.degree-u.degree||u.id.localeCompare(l.id));return{value:{nodeCount:o.length,edgeCount:c/2,rows:d},meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:!1}}}function Bd(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Gd(e,t,n){let o=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,n.inspectedEdges+=1,o!==e.parent){if(n.discovery.has(o)){n.low.set(e.node,Math.min(n.low.get(e.node),n.discovery.get(o)));return}return e.children+=1,n.discovery.set(o,n.timer),n.low.set(o,n.timer),n.timer+=1,{node:o,parent:e.node,neighborIndex:0,children:0}}}function Kd(e,t,n){if(e.parent===null){e.children>1&&n.articulation.add(e.node);return}let r=e.parent,o=n.low.get(e.node);n.low.set(r,Math.min(n.low.get(r),o)),r!==t&&o>=n.discovery.get(r)&&n.articulation.add(r),o>n.discovery.get(r)&&n.bridges.push(Bd(r,e.node))}function zd(e,t,n,r){n.discovery.set(e,n.timer),n.low.set(e,n.timer),n.timer+=1;let o=[{node:e,parent:null,neighborIndex:0,children:0}];for(;o.length>0;){r?.throwIfAborted();let i=o.at(-1);if(i.neighborIndex<t.get(i.node).length){let s=Gd(i,t,n);s!==void 0&&o.push(s)}else Kd(i,e,n),o.pop()}}function Pt(e,t={}){let n=li(e,t.kinds),r={discovery:new Map,low:new Map,timer:0,articulation:new Set,bridges:[],inspectedEdges:0};for(let o of e.nodes())r.discovery.has(o)||zd(o,n,r,t.signal);return{value:{articulationPoints:[...r.articulation].sort(),bridges:r.bridges.sort((o,i)=>o.source.localeCompare(i.source)||o.target.localeCompare(i.target))},meta:{visitedNodes:r.discovery.size,inspectedEdges:r.inspectedEdges,truncated:!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]="f155ac72-64eb-5316-b016-954abd48c0e7")}catch{}})();function Hd(e){let t=e.registry(),n=new Map,r=new Set;for(let o of e.edges()){let i=t.require(o.kind);if(!i.ordering)continue;let{predecessor:s,successor:a}=At(o,i);if(r.add(s),r.add(a),s===a)continue;let c=n.get(s);c===void 0?n.set(s,new Set([a])):c.add(a)}return{forward:n,participants:r}}function qd(e,t,n,r){if(e===void 0)return r;let o=r;for(let i of e)t.has(i)&&(o=Math.min(o,n.get(i)));return o}function Wd(e,t,n){let r=n-t;return{id:e,earliestStart:t,earliestFinish:t+1,latestStart:n,latestFinish:n+1,slack:r,critical:r===0}}function Vd(e,t,n,r,o){let i=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=qd(t.forward.get(a),r,i,o);i.set(a,c-1)}return e.map(s=>Wd(s,n[s],i.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function mi(e,t={}){t.signal?.throwIfAborted();let n=bt(e,{registry:e.registry()}),r=Hd(e),o=new Set(n.order),i=n.order.filter(d=>r.participants.has(d)),s=i.reduce((d,u)=>Math.max(d,n.depth[u]+1),0),a=Vd(i,r,n.depth,o,s),c=a.length>0;return{exact:!0,acyclic:n.acyclic,makespan:s,scheduledCount:a.length,criticalPath:c?n.criticalPath:[],criticalPathLength:c?n.criticalPathLength:0,cycles:n.cycles,rows:a,provenance:{algorithm:"critical-path-method",edgeFamily:"ordering",weighting:"unit"}}}(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]="bc561e73-75b8-5ea7-a18c-da70fb991b69")}catch{}})();var jt=["missing_reference_active","missing_reference_terminal","legacy_no_blocker_sentinel","ordering_cycle","legacy_ordering_cycle","ordering_storage_contradiction","legacy_ordering_storage_contradiction","duplicate_edge","legacy_duplicate_edge","duplicate_dependency_row","legacy_duplicate_dependency_row","stale_lifecycle_block","isolated_active_node","sparse_active_node"];(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]="b63fba34-8ca1-5e3a-905d-772ea8ce0f11")}catch{}})();var Yd=25,Xd="milestone",Jd="outcome milestone:",Qd=new Set(["discovered_from","incident_from","recurs_from","supersedes","verifies"]);function jn(e){return Qd.has(e)}var pi={error:0,warning:1,info:2};function gi(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function $n(e,t,n,r,o,i,s,a){let c=[...o].sort((d,u)=>d.localeCompare(u));return{code:e,severity:t,policy:n,message:r(c.length),count:c.length,sample:c.slice(0,i),sample_truncated:c.length>i,remediation:s,...a===void 0?{}:{evidence:[...a].sort((d,u)=>d.localeCompare(u)).slice(0,i)}}}function Zd(e){let t=e.graph.registry(),n=new Map;for(let r of e.graph.edges()){let o=t.require(r.kind);if(!o.ordering)continue;let[i,s]=(o.precedence??"source_before_target")==="target_before_source"?[r.target,r.source]:[r.source,r.target],a=n.get(i);a?a.push(s):n.set(i,[s])}for(let r of n.values())r.sort((o,i)=>o.localeCompare(i));return n}function yi(e,t){t.indexes.set(e,t.nextIndex),t.lowLinks.set(e,t.nextIndex),t.nextIndex+=1,t.stack.push(e),t.onStack.add(e)}function eu(e,t,n,r){let o=n.get(e.node)??[];if(e.neighborIndex>=o.length)return!1;let i=o[e.neighborIndex];return e.neighborIndex+=1,r.indexes.has(i)?r.onStack.has(i)&&r.lowLinks.set(e.node,Math.min(r.lowLinks.get(e.node),r.indexes.get(i))):(yi(i,r),t.push({node:i,neighborIndex:0})),!0}function tu(e,t,n,r){t.pop();let o=t.at(-1);if(o&&r.lowLinks.set(o.node,Math.min(r.lowLinks.get(o.node),r.lowLinks.get(e.node))),r.lowLinks.get(e.node)!==r.indexes.get(e.node))return;let i=[];for(;;){let s=r.stack.pop();if(r.onStack.delete(s),i.push(s),s===e.node)break}(i.length>1||i.length===1&&n.get(i[0])?.includes(i[0]))&&r.components.push(i.sort((s,a)=>s.localeCompare(a)))}function nu(e){let t={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},n=[...e.keys()].sort((r,o)=>r.localeCompare(o));for(let r of n){if(t.indexes.has(r))continue;let o=[{node:r,neighborIndex:0}];for(yi(r,t);o.length>0;){let i=o.at(-1);eu(i,o,e,t)||tu(i,o,e,t)}}return t.components.sort((r,o)=>r[0].localeCompare(o[0]))}function Mn(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function H(e,t,n,r,o,i,s,a){t.length!==0&&e.push($n(r,o,i,s,t,n,a))}function ru(e,t,n){let r=[],o=[...e.dangling.active,...e.dangling.legacy_terminal].filter(i=>!i.no_active_blocker_sentinel);return H(r,o.filter(i=>!t(i.holder_status)).map(Mn),n,"missing_reference_active","error","Active items must not reference absent targets; missing prerequisites distort scheduling.",i=>`${i} active dangling reference(s) to absent items`,"Restore or re-create the referenced item, or remove/retype the reference on the holder."),H(r,o.filter(i=>t(i.holder_status)).map(Mn),n,"missing_reference_terminal","info","Terminal items may retain historical references, but absent targets remain unexplainable context.",i=>`${i} terminal dangling reference(s) to absent items`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),H(r,e.dangling.no_active_blocker_sentinels.map(Mn),n,"legacy_no_blocker_sentinel","info","The pre-structured-dependency no-active-blocker sentinel is retired; real edges carry blocker state.",i=>`${i} legacy no-active-blocker sentinel reference(s)`,"Delete the sentinel reference; blocker state is derived from blocked_by edges."),r}function Pn(e,t){let n=t.get(e);return n?!n.terminal:!0}function _i(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function ou(e,t){let n=[],r=[];for(let i of e.orderingContradictions??[])(i.legacy_terminal?r:n).push(_i(i));let o=[];return H(o,n,t,"ordering_storage_contradiction","error","A scalar blocker and same-target structured ordering row must not assert opposite precedence.",i=>`${i} active scalar-versus-structured ordering contradiction(s)`,"Remove the structured dependency row that points the holder before its scalar blocker, or replace both representations with one unambiguous ordering edge."),H(o,r,t,"legacy_ordering_storage_contradiction","info","Terminal scalar-versus-structured ordering contradictions are exact historical storage defects with no live scheduling effect.",i=>`${i} terminal scalar-versus-structured ordering contradiction(s)`,"Remove the contradictory blocks dependency row in a dedicated changelog-safe closed-item batch; preserve the scalar blocker as the historical precedence record."),o}function iu(e,t,n,r){let o=[],i=Zd(e);for(let c of nu(i)){let d=c.some(f=>Pn(f,t)),u=new Set(c.map(f=>f.toLowerCase())),l=(e.orderingContradictions??[]).filter(f=>u.has(f.holder_id.toLowerCase())&&u.has(f.target_id.toLowerCase())).map(_i);o.push(d?$n("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",f=>`execution-order cycle across ${f} item(s)`,c,r,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear.",l.length===0?void 0:l):$n("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",f=>`terminal-only execution-order cycle across ${f} item(s)`,c,r,"Leave as history debt, or clean up in a dedicated changelog-safe closed-item batch; never repair closed items ad hoc.",l.length===0?void 0:l))}let s=new Map;for(let[c,d]of i)for(let u of d){let l=s.get(u);l?l.push(c):s.set(u,[c])}let a=[...t.values()].filter(c=>!c.missing&&!c.terminal&&n(c.status)&&!(s.get(c.id)??[]).some(d=>{let u=t.get(d);return u===void 0||!u.terminal})).map(c=>c.id);return H(o,a,r,"stale_lifecycle_block","warning","A blocked lifecycle status must be backed by at least one open ordering predecessor.",c=>`${c} status-blocked item(s) with no open blocker edge`,'Add a local blocker edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status.'),o}function Ut(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function Un(e){let t=e.graph.registry(),n=new Map;for(let o of e.graph.edges()){let i=t.require(o.kind);if(!Mt(i))continue;let s=$t(o,i);if(s.from===s.to)continue;let a=`${Ot(i)}::${s.from}::${s.to}`,c=n.get(a);c?c.edges.push(o):n.set(a,{...s,edges:[o]})}let r=[...n.values()].filter(o=>o.edges.length>=2);for(let o of r)o.edges.sort((i,s)=>i.kind.localeCompare(s.kind));return r.sort((o,i)=>o.from.localeCompare(i.from)||o.to.localeCompare(i.to))}function su(e,t,n){let r=[],o=[];for(let s of Un(e))(Pn(s.from,t)||Pn(s.to,t)?r:o).push(Ut(s));let i=[];return H(i,r,n,"duplicate_edge","info","One semantic relationship should be stored once; parallel same-family spellings (reciprocal inverse pairs included) add no information and skew degree metrics.",s=>`${s} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),H(i,o,n,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",s=>`${s} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),i}function au(e,t){let n=[],r=[];for(let i of e.duplicateRows??[])(i.legacy_terminal?r:n).push(`${i.holder_id} -> ${i.target_id} (${i.kind} x${i.occurrences})`);let o=[];return H(o,n,t,"duplicate_dependency_row","warning","One dependency row must be stored once per holder; identical repeated rows are a storage-layer defect invisible to the assembled graph.",i=>`${i} exactly duplicated stored dependency row(s) on active holder(s)`,"Remove the repeated rows so the dependency is stored exactly once; graph semantics are unchanged."),H(o,r,t,"legacy_duplicate_dependency_row","info","Identical repeated dependency rows on terminal holders are historical storage noise with no scheduling effect.",i=>`${i} exactly duplicated stored dependency row(s) on terminal holder(s)`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),o}function cu(e,t){let n=new Map;for(let r of e.graph.edges()){t?.throwIfAborted();let o=e.graph.registry().require(r.kind),i;if(o.hierarchy?i=$t(r,o):o.kind==="implements"&&(i={from:r.source,to:r.target}),i===void 0)continue;let s=n.get(i.to)??new Set;s.add(i.from),n.set(i.to,s)}return n}function du(e,t,n){let r=new Set(e),o=[...e].sort();for(let i=0;i<o.length;i+=1){n?.throwIfAborted();for(let s of[...t.get(o[i])??[]].sort())r.has(s)||(r.add(s),o.push(s))}return r}function uu(e,t,n,r){let o=0,i=0,s=0,a=0;for(let m of e.values())if(r?.throwIfAborted(),!t.has(m.id)&&!(m.missing||m.status==="external")){if(m.terminal){s+=1,n.has(m.id)&&(a+=1);continue}n.has(m.id)?o+=1:i+=1}let c=o+i,d=s-a,u=o+a,l=i+d,f=u+l;return{active_outcome_reachable_nodes:o,active_outcome_unreachable_nodes:i,active_outcome_reachability_basis_points:c===0?0:Math.floor(o*1e4/c),terminal_nodes:s,terminal_outcome_reachable_nodes:a,terminal_outcome_unreachable_nodes:d,terminal_outcome_reachability_basis_points:s===0?0:Math.floor(a*1e4/s),outcome_reachable_nodes:u,outcome_unreachable_nodes:l,outcome_reachability_basis_points:f===0?0:Math.floor(u*1e4/f)}}function lu(e,t,n){let r=new Set(e.details.filter(i=>i.type?.toLowerCase()===Xd&&i.title.trim().toLowerCase().startsWith(Jd)).map(i=>i.id)),o=du(r,cu(e,n),n);return{outcome_nodes:r.size,...uu(t,r,o,n)}}function fu(e,t,n,r,o){e.active+=1;let i=t.type??"(untyped)",s=e.byType.get(i);s||(s={active:0,isolated:0,degree_leq_one:0},e.byType.set(i,s)),s.active+=1,!(n>1)&&(e.degreeLeqOne+=1,s.degree_leq_one+=1,n===0&&(e.isolated+=1,s.isolated+=1),!(r.has(t.id.toLowerCase())||o.has(i.toLowerCase()))&&(n===0?e.isolates.push(t.id):e.sparse.push(t.id)))}function mu(e,t,n,r,o,i,s){let a={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let _ of e.graph.nodes()){s?.throwIfAborted();let k=t.get(_);if(k){if(k.missing){a.missing+=1;continue}k.terminal||fu(a,k,e.graph.incidentEdges(_).length,n,r)}}let{isolates:c,sparse:d}=a,u=[];H(u,c,o,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",_=>`${_} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),H(u,d,o,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",_=>`${_} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one.");let l=e.graph.edges().length,f=$e(e.graph,{signal:s}).value,m=new Set(f.map(({edge:_})=>`${_.source.toLowerCase()}\0${_.target.toLowerCase()}\0${_.kind}`));for(let _ of e.orderingContradictions??[])m.add(`${_.holder_id.toLowerCase()}\0${_.target_id.toLowerCase()}\0${_.dependency_kind}`);let y=Object.fromEntries(Object.entries(i).sort(([_],[k])=>_.localeCompare(k))),p=Object.entries(y).reduce((_,[k,E])=>_+(jn(k)?E:0),0),b=Pt(e.graph,{signal:s}).value,w=lu(e,t,s);return{findings:u,profile:{nodes:e.graph.nodes().length,recorded_nodes:e.details.filter(_=>_.status!=="missing"&&_.status!=="external").length,edges:l,informative_edges:l-m.size,redundant_edges:f.length,ordering_contradiction_edges:e.orderingContradictions?.length??0,edge_basis:"deduplicated_directed",edges_by_kind:y,edge_share_by_kind:Object.fromEntries(Object.entries(y).map(([_,k])=>[_,k/l])),semantic_edges:p,semantic_edge_share:l===0?0:p/l,active_nodes:a.active,missing_nodes:a.missing,isolated_active_nodes:a.isolated,degree_leq_one_active_nodes:a.degreeLeqOne,coverage_by_type:Object.fromEntries([...a.byType.entries()].sort(([_],[k])=>_<k?-1:1)),articulation_points:b.articulationPoints.length,bridge_edges:b.bridges.length,...w,finding_subjects_by_code:Object.fromEntries(jt.map(_=>[_,0]))}}}function Bt(e,t={}){let n=t.isTerminal??(f=>f==="closed"||f==="canceled"),r=t.isBlocked??(f=>f==="blocked"),o=t.maxSampleSize??Yd;if(!Number.isInteger(o)||o<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let i=gi(t.exemptIsolates),s=gi(t.isolateExemptTypes),a=new Map(e.details.map(f=>[f.id,{id:f.id,status:f.status,missing:e.missingIdSet.has(f.id.toLowerCase()),terminal:n(f.status),...f.type===void 0?{}:{type:f.type}}]));t.signal?.throwIfAborted();let c={};for(let f of e.graph.edges())c[f.kind]=(c[f.kind]??0)+1;let d=ru(e,n,o);t.signal?.throwIfAborted(),d.push(...ou(e,o)),t.signal?.throwIfAborted(),d.push(...iu(e,a,r,o)),t.signal?.throwIfAborted(),d.push(...su(e,a,o),...au(e,o)),t.signal?.throwIfAborted();let u=mu(e,a,i,s,o,c,t.signal);d.push(...u.findings),d.sort((f,m)=>pi[f.severity]-pi[m.severity]||f.code.localeCompare(m.code)||f.sample[0].localeCompare(m.sample[0]));let l=u.profile.finding_subjects_by_code;for(let f of d)l[f.code]+=f.count;return{findings:d,profile:{...u.profile,finding_subjects_by_code:l}}}function On(e,t){let n=[...new Set([...Object.keys(e),...Object.keys(t)])].sort(),r={};for(let o of n){let i=(t[o]??0)-(e[o]??0);i!==0&&(r[o]=i)}return r}function hi(e){return e.profile.coverage_by_type??{}}function pu(e,t){let n={},r=hi(e),o=hi(t),i=[...new Set([...Object.keys(r),...Object.keys(o)])].sort();for(let s of i){let a=Object.assign({active:0,isolated:0,degree_leq_one:0},r[s]),c=Object.assign({active:0,isolated:0,degree_leq_one:0},o[s]),d={active:c.active-a.active,isolated:c.isolated-a.isolated,degree_leq_one:c.degree_leq_one-a.degree_leq_one};Object.values(d).some(u=>u!==0)&&(n[s]=d)}return n}function wi(e,t){let n=pu(e,t),{edge_share_by_kind:r={},semantic_edges:o=0,semantic_edge_share:i=0}=e.profile,{edge_share_by_kind:s={},semantic_edges:a=0,semantic_edge_share:c=0}=t.profile,d=e.profile.recorded_nodes??e.profile.nodes,u=t.profile.recorded_nodes??t.profile.nodes,l=e.profile.informative_edges??e.profile.edges,f=t.profile.informative_edges??t.profile.edges,m=e.profile.redundant_edges??0,y=t.profile.redundant_edges??0,p=e.profile.ordering_contradiction_edges??0,b=t.profile.ordering_contradiction_edges??0;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:On(e.affected_subjects_by_code,t.affected_subjects_by_code),profile:{nodes:t.profile.nodes-e.profile.nodes,recorded_nodes:u-d,edges:t.profile.edges-e.profile.edges,informative_edges:f-l,redundant_edges:y-m,ordering_contradiction_edges:b-p,active_nodes:t.profile.active_nodes-e.profile.active_nodes,missing_nodes:t.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:t.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:t.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:On(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:On(r,s),semantic_edges:a-o,semantic_edge_share:c-i,coverage_by_type:n}}}import bi 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]="9e4aa41d-fca4-5e55-ab2b-d99f06d90ae2")}catch{}})();var ki=1,Bn=500,gu=64,hu="graph-durable-cache";function vi(e){return De(e,hu,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function We(e){return bi.join(e,"runtime","graph-cache.json")}function Ei(e){return bi.join(e,"runtime","graph-audit-baseline.json")}function Gn(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==ki||typeof t.fingerprint!="string"||typeof t.saved_at!="string"||typeof t.results!="object"||t.results===null||Array.isArray(t.results)?void 0:t}catch{return}}async function Kn(e,t){let n=await ie(We(e)),r=Gn(n),o=r?.fingerprint===t;return{exists:n!==null,fresh:o,results:o?r.results:{}}}async function zn(e,t,n,r,o){let i=await vi(e);try{let s=Gn(await ie(We(e))),a=s?.fingerprint===t?s.results:{};delete a[r],a[r]=o;let c=Object.keys(a);for(let d of c.slice(0,Math.max(0,c.length-gu)))delete a[d];await K(We(e),JSON.stringify({version:ki,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await i()}}async function Hn(e){let t=await vi(e);try{await Nr(We(e))}finally{await t()}}async function xi(e,t){let n=We(e),r=await ie(n),o=Gn(r);return o===void 0?{exists:r!==null,fresh:!1,entry_count:0}:{exists:!0,fresh:o.fingerprint===t,entry_count:Object.keys(o.results).length,fingerprint:o.fingerprint.slice(0,12),saved_at:o.saved_at,bytes:Buffer.byteLength(r,"utf8")}}function qn(e,t){return t||e>=Bn}function Gt(e){return Pe(e)&&Object.values(e).every(he)}function Pe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function he(e){return Number.isInteger(e)&&Number(e)>=0}function Ii(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function qe(e,t){return e===void 0||t(e)}function yu(e){return Pe(e)&&Object.values(e).every(Ii)}function _u(e){return Pe(e)?Object.values(e).every(t=>Pe(t)&&[t.active,t.isolated,t.degree_leq_one].every(he)):!1}function wu(e,t,n){let r=["recorded_nodes","informative_edges","redundant_edges","ordering_contradiction_edges"],o=r.filter(s=>e[s]!==void 0).length;if(o!==0&&o!==r.length||!r.every(s=>qe(e[s],he)))return;let i={recorded_nodes:e.recorded_nodes??t,informative_edges:e.informative_edges??n,redundant_edges:e.redundant_edges??0,ordering_contradiction_edges:e.ordering_contradiction_edges??0};return i.recorded_nodes<=t&&i.informative_edges<=n&&i.redundant_edges<=n&&i.ordering_contradiction_edges<=n?i:void 0}function bu(e,t,n){let r=[...t,...n,"finding_subjects_by_code"],o=r.filter(i=>e[i]!==void 0).length;return o!==0&&o!==r.length?!1:t.every(i=>qe(e[i],he))&&n.every(i=>qe(e[i],he)&&(e[i]===void 0||Number(e[i])<=1e4))&&qe(e.finding_subjects_by_code,Gt)}function ku(e,t,n,r){let o=wu(e,n,r);if(o===void 0)return;let i=["articulation_points","bridge_edges","outcome_nodes","active_outcome_reachable_nodes","active_outcome_unreachable_nodes","terminal_nodes","terminal_outcome_reachable_nodes","terminal_outcome_unreachable_nodes","outcome_reachable_nodes","outcome_unreachable_nodes"],s=["active_outcome_reachability_basis_points","terminal_outcome_reachability_basis_points","outcome_reachability_basis_points"];if(!bu(e,i,s)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let a=Gt(e.finding_subjects_by_code)?e.finding_subjects_by_code:{};return{edge_basis:"deduplicated_directed",...o,...Object.fromEntries(i.map(c=>[c,e[c]??0])),...Object.fromEntries(s.map(c=>[c,e[c]??0])),finding_subjects_by_code:Object.fromEntries(jt.map(c=>[c,a[c]??t[c]??0]))}}function vu(e,t,n,r,o){let i=[n,r,o],s=i.filter(d=>d!==void 0).length;if(s===0)return{edge_share_by_kind:{},semantic_edges:0,semantic_edge_share:0};if(s!==i.length||!yu(n)||!he(r)||!Ii(o))return;let a=Object.entries(t);if(a.reduce((d,[,u])=>d+u,0)!==e||Object.keys(n).length!==a.length||a.some(([d,u])=>n[d]!==(e===0?0:u/e)))return;let c=a.reduce((d,[u,l])=>d+(jn(u)?l:0),0);if(!(r!==c||o!==(e===0?0:c/e)))return{edge_share_by_kind:n,semantic_edges:r,semantic_edge_share:o}}function Eu(e){if(e!==null)try{let t=JSON.parse(e);if(!Pe(t))return;let n=t,r=n.profile;if(typeof n.saved_at!="string"||typeof n.fingerprint!="string")return;let o=n.affected_subjects_by_code;if(!Gt(o)||!Pe(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(he)||!Gt(r.edges_by_kind)||!qe(r.coverage_by_type,_u))return;let i=vu(r.edges,r.edges_by_kind,r.edge_share_by_kind,r.semantic_edges,r.semantic_edge_share);if(i===void 0)return;let s=ku(r,o,r.nodes,r.edges);if(s===void 0)return;let{coverage_by_type:a={}}=r;return{...n,profile:{...r,...i,...s,coverage_by_type:a}}}catch{return}}async function Ci(e){return Eu(await ie(Ei(e)))}async function Si(e,t){await K(Ei(e),JSON.stringify(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]="1eb0e2cb-084a-5a54-b41c-29dfdd6d2f34")}catch{}})();var xu={missing_reference_active:{op:"investigate",confidence:"medium",rationale:"Restore or re-create the referenced item, or remove/retype the reference on the active holder; the correct fix depends on why the target is absent."},missing_reference_terminal:{op:"waive",confidence:"high",rationale:"Terminal-holder reference to an absent item is historical debt; waive it or clean it up only in a dedicated changelog-safe closed-item batch."},legacy_no_blocker_sentinel:{op:"remove",confidence:"high",rationale:"The pre-structured-dependency no-active-blocker sentinel is retired and carries no information; blocker state derives from blocked_by edges."},ordering_cycle:{op:"investigate",confidence:"low",rationale:"Every cycle member is unschedulable until one ordering edge is removed or retyped; the planner never chooses which edge to cut."},legacy_ordering_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only ordering cycles have no scheduling effect; repairing them would mutate closed history (changelog drag)."},ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The structured ordering row asserts the opposite precedence from the same-target scalar blocker; remove that exact dependency row or replace both representations with one unambiguous edge."},legacy_ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The terminal holder contains a proven contradictory structured ordering row; remove it in a dedicated changelog-safe batch while preserving the scalar blocker as history."},duplicate_edge:{op:"remove",confidence:"high",rationale:"Parallel same-family spellings state one relationship twice; remove all but one stored spelling, keeping the holder's canonical direction."},legacy_duplicate_edge:{op:"waive",confidence:"high",rationale:"Duplicated spellings between terminal items are historical noise; waive or batch changelog-safe cleanup."},duplicate_dependency_row:{op:"remove",confidence:"high",rationale:"The identical dependency row is stored more than once on the holder; drop the repeats so the row exists exactly once \u2014 graph semantics are unchanged."},legacy_duplicate_dependency_row:{op:"waive",confidence:"high",rationale:"Repeated identical rows on terminal holders are storage noise; waive or clean up only in a changelog-safe closed-item batch."},stale_lifecycle_block:{op:"investigate",confidence:"medium",rationale:`Add a local ordering edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status; only the holder's owner knows which is true.`},isolated_active_node:{op:"investigate",confidence:"medium",rationale:"Link the item to its parent, prerequisite, or origin \u2014 or register it as an explicitly exempt isolate; the audit never fabricates an edge."},sparse_active_node:{op:"investigate",confidence:"low",rationale:"Investigate for an honest second edge (story-to-task, defect family, cross-epic complement); sparse is not automatically defective."}};function Ti(e){return`${e.source} -${e.kind}-> ${e.target}`}function Iu(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:Ti(r),rationale:"This stored spelling restates the kept canonical edge of the same semantic family; removing it leaves the relationship stated exactly once.",evidence:[`keep: ${Ti(t)}`,`group: ${Ut(e)}`],confidence:"high"}))}function Cu(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>Iu(t.get(r)));let n=xu[e.code];return e.sample.map(r=>({op:n.op,code:e.code,subject:r,rationale:n.rationale,evidence:[e.policy],confidence:n.confidence}))}function Di(e,t={}){let{redundancyLimit:n,...r}=t,o=Bt(e,r),i=new Map(Un(e).map(d=>[Ut(d),d])),s=o.findings.flatMap(d=>Cu(d,i)),a=o.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=$e(e.graph,{limit:n??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)s.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:s,report:o,truncated:a,cost:{visitedNodes:c.meta.visitedNodes,inspectedEdges:c.meta.inspectedEdges}}}(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]="6c8bfb7a-687a-5fbb-b408-ffdbab1187a9")}catch{}})();var Fi=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),me=10;function Ri(e,t,n){return{...e,projection:{mode:t?"summary":"full",declared_field_groups:n===void 0?[]:[{name:n,restore_with:"--full"}],included_field_groups:n===void 0||t?[]:[n]}}}function Ai(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function Su(e,t,n){let r=e.trim().toLowerCase();if(!pn.includes(r))throw Pr({command_path:"graph",token:r||"<empty>",allowed:pn});let o=r;if(Fi.has(o)&&!t?.trim())throw new h(`graph ${o} requires an item id.`,g.USAGE);if(o==="paths"&&!n?.trim())throw new h("graph paths requires a source and a target item id.",g.USAGE);return o}function Wn(e){throw e instanceof TypeError?new h(e.message,g.USAGE):e}function Vn(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function Li(e,t){let n=t.trim().toLowerCase();for(let r of e.details)if(r.id.trim().toLowerCase()===n&&!e.missingIdSet.has(r.id.toLowerCase()))return r.id;throw new h(`Item ${t} not found`,g.NOT_FOUND)}function Tu(e,t,n){let r={ancestors:ti,descendants:ni,predecessors:ri,successors:oi}[e],o;try{o=r(n.assembly.graph,t,{...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.limit===void 0?{}:{limit:n.limit},...n.after===void 0?{}:{after:n.after}})}catch(s){Wn(s)}let i=Vn(o.meta);return{subcommand:e,root:t,count:o.value.length,...i,...o.meta.nextCursor===void 0?{}:{next_cursor:o.meta.nextCursor},...n.summary?{}:{ids:o.value}}}function Du(e,t,n){let r=ii(n.assembly.graph,e,t,{direction:n.direction,...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.maxPaths===void 0?{}:{maxPaths:n.maxPaths}});return{subcommand:"paths",root:e,target:t,direction:n.direction,count:r.value.length,...Vn(r.meta),...n.summary?{}:{paths:r.value.map(o=>({nodes:o.nodes,kinds:o.edges.map(i=>i.kind),length:o.length}))}}}function Ru(e,t){let n;try{n=wt(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth},...t.unbounded?{}:{limit:t.limit??me},...t.after===void 0?{}:{after:t.after}})}catch(r){Wn(r)}return{subcommand:"impact",root:e,direction:t.direction,count:n.affected.length,truncated:n.truncated,...n.nextCursor===void 0?{}:{next_cursor:n.nextCursor},cost:{visited_nodes:n.cost.visitedNodes,inspected_edges:n.cost.inspectedEdges},...t.summary?{}:{affected:n.affected}}}function Au(e){let t=e.assembly.graph,n=e.limit??me,r=bt(t,{registry:t.registry()}),o=Po(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:{acyclic:r.acyclic,ordered_node_count:r.order.length,layer_count:r.layers.length,frontier_count:r.frontier.length,critical_path_length:r.criticalPathLength,cycle_count:r.cycles.length,...e.summary?{}:{frontier:r.frontier.slice(0,n),critical_path:r.criticalPath.slice(0,n),cycles:r.cycles.slice(0,n)}},knowledge:{component_count:o.components.length,largest_component_size:o.components[0]?.length??0,orphan_count:o.orphans.length,...e.summary?{}:{orphans:o.orphans.slice(0,n),hubs:o.hubs.slice(0,n)}}}}function Lu(e,t){let n=Bt(e.assembly,{isTerminal:t,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),r={},o={},i={},s={};for(let a of n.findings)r[a.severity]=(r[a.severity]??0)+1,o[a.code]=(o[a.code]??0)+1,i[a.severity]=(i[a.severity]??0)+a.count,s[a.code]=(s[a.code]??0)+a.count;return{subcommand:"audit",finding_count:n.findings.length,findings_by_severity:r,findings_by_code:o,affected_subjects_by_severity:i,affected_subjects_by_code:s,profile:n.profile,legacy_alias_counts:e.assembly.legacyAliasCounts,...e.summary?{}:{findings:n.findings}}}function Fu(e){let t=e.limit??me,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=ai(e.assembly.graph,n),o=r.value;return{subcommand:"communities",community_count:o.communities.length,largest_community_size:o.communities[0]?.size??0,iterations:o.iterations,converged:o.converged,truncated:!o.converged||o.communities.length>t,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...e.summary?{}:{communities:o.communities.slice(0,t).map(i=>({representative:i.representative,size:i.size,members:i.members.slice(0,t)}))}}}function Nu(e){let t;try{t=$e(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(n){Wn(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...Vn(t.meta),...e.summary?{}:{redundant:t.value.map(n=>({source:n.edge.source,target:n.edge.target,kind:n.edge.kind,witness:n.witness}))}}}function Mu(e,t){let n=t.limit??me,r=ci(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth}}),o=r.value.rows.filter(i=>i.dominatedCount>0);return{subcommand:"dominators",root:e,direction:t.direction,reachable_count:r.value.reachableCount,bottleneck_count:o.length,truncated:r.meta.truncated||o.length>n,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...t.summary?{}:{bottlenecks:o.slice(0,n).map(i=>({id:i.id,idom:i.idom,dominated_count:i.dominatedCount}))}}}function Ou(e){let t=e.limit??me,n=mi(e.assembly.graph),r=n.rows.filter(o=>o.critical).length;return{subcommand:"slack",acyclic:n.acyclic,makespan:n.makespan,scheduled_count:n.scheduledCount,critical_count:r,critical_path_length:n.criticalPathLength,cycle_count:n.cycles.length,truncated:n.rows.length>t,...e.summary?{}:{critical_path:n.criticalPath,rows:n.rows.slice(0,t).map(o=>({id:o.id,earliest_start:o.earliestStart,latest_start:o.latestStart,slack:o.slack,critical:o.critical}))}}}function $u(e){let t=e.limit??me,n=fi(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),r=n.value;return{subcommand:"centrality",node_count:r.nodeCount,edge_count:r.edgeCount,edge_basis:"simple_undirected",truncated:r.rows.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{rows:r.rows.slice(0,t).map(o=>({id:o.id,degree:o.degree,in_degree:o.inDegree,out_degree:o.outDegree,betweenness:o.betweenness,closeness:o.closeness}))}}}function Pu(e){let t=e.limit??me,n=Pt(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),{articulationPoints:r,bridges:o}=n.value;return{subcommand:"articulation",articulation_count:r.length,bridge_count:o.length,truncated:r.length>t||o.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{articulation_points:r.slice(0,t),bridges:o.slice(0,t)}}}function ju(e,t){let n=e.limit??me,r=Di(e.assembly,{isTerminal:t,redundancyLimit:n,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),o={},i={};for(let s of r.steps)o[s.op]=(o[s.op]??0)+1,i[s.code]=(i[s.code]??0)+1;return{subcommand:"plan",step_count:r.steps.length,steps_by_op:o,steps_by_code:i,finding_count:r.report.findings.length,truncated:r.truncated||r.steps.length>n,cost:{visited_nodes:r.cost.visitedNodes,inspected_edges:r.cost.inspectedEdges},...e.summary?{}:{steps:r.steps.slice(0,n)}}}function Ni(e,t,n,r){return JSON.stringify({subcommand:e,root:t??null,target:n??null,kinds:r.kinds??null,maxDepth:r.maxDepth??null,limit:r.limit??null,after:r.after??null,direction:r.direction,maxPaths:r.maxPaths??null,sample:r.sample??null,exemptIsolates:[...new Set(r.exemptIsolates.map(o=>o.toLowerCase()))].sort(),exemptIsolateTypes:[...new Set(r.exemptIsolateTypes.map(o=>o.toLowerCase()))].sort(),summary:r.summary,unbounded:r.unbounded})}function Mi(e,t,n,r,o){return e==="analyze"?Au(r):e==="audit"?Lu(r,o):e==="plan"?ju(r,o):e==="communities"?Fu(r):e==="redundancy"?Nu(r):e==="dominators"?Mu(t,r):e==="slack"?Ou(r):e==="centrality"?$u(r):e==="articulation"?Pu(r):e==="paths"?Du(t,n,r):e==="impact"?Ru(t,r):Tu(e,t,r)}function Uu(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new h("--rebuild and --clear apply only to graph index.",g.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new h("--save-baseline applies only to graph audit.",g.USAGE);if(e==="slack"&&t.kind!==void 0)throw new h("graph slack analyzes every ordering kind; --kind is not supported.",g.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new h("graph index accepts either --rebuild or --clear, not both.",g.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new h("graph impact accepts either --full or --limit, not both.",g.USAGE)}async function Bu(e,t,n,r,o,i){let s="status";if(i.clear===!0&&(await Hn(e),s="cleared"),i.rebuild===!0){await Hn(e);let c=await Kn(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let u of["analyze","audit"])await zn(e,t,c,Ni(u,void 0,void 0,d),Mi(u,void 0,void 0,d,o));s="rebuilt"}let a=await xi(e,t);return{subcommand:"index",action:s,state:a.exists?a.fresh?"fresh":"stale":"absent",entry_count:a.entry_count,item_count:r,min_items_threshold:Bn,persist_enabled:qn(r,a.exists),current_fingerprint:t.slice(0,12),...a.saved_at===void 0?{}:{saved_at:a.saved_at},...a.bytes===void 0?{}:{bytes:a.bytes}}}async function Gu(e,t,n,r){let o={saved_at:new Date().toISOString(),fingerprint:t,affected_subjects_by_code:n.affected_subjects_by_code,profile:n.profile},i=await Ci(e);return r&&await Si(e,o),i===void 0?n:{...n,baseline:wi(i,o)}}async function Ku(e,t,n,r,o){try{await zn(e,t,n,r,o)}catch{}}async function nw(e,t,n,r,o){let i=Su(e,t,n);ut(r.summary===!0,r.full===!0,"--summary");let s=S(process.cwd(),o.path);if(!await A($(s)))throw new h(`Tracker is not initialized at ${s}. Run pm init first.`,g.NOT_FOUND);let a=await T(s),c=O(a,L()),d=await ee(s,a.item_format,c.type_to_folder,void 0,a.schema),u=z(a.schema),l=U=>N(U,u);Uu(i,r);let f=ge(),m=Fn(r.kind,f),y=St().lookup(s,Ct(d,l,f),()=>Me(d,l,f)),p={assembly:y.assembly,...m===void 0?{}:{kinds:m},maxDepth:Dt(r.maxDepth),limit:te(r.limit,"limit"),after:r.after?.trim()||void 0,direction:Ln(r.direction),maxPaths:te(r.maxPaths,"max-paths"),sample:te(r.sample,"sample"),exemptIsolates:Ai(r.exemptIsolate),exemptIsolateTypes:Ai(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(i==="index")return Ri(await Bu(s,y.fingerprint,p,d.length,l,r),!1);let b=Fi.has(i)?Li(p.assembly,t):void 0,w=i==="paths"?Li(p.assembly,n):void 0,_=Ni(i,b,w,p),k=await Kn(s,y.fingerprint),E=k.results[_],I=y.memoize(_,()=>E!==void 0?structuredClone(E):Mi(i,b,w,p,l)),P=qn(d.length,k.exists);!I.reused&&E===void 0&&P&&await Ku(s,y.fingerprint,k,_,I.value);let D=I.value.subcommand==="audit"?await Gu(s,y.fingerprint,I.value,p.saveBaseline):I.value;return D.cache={fingerprint:y.fingerprint.slice(0,12),assembly:y.assemblyReused?"hit":"miss",result:I.reused?"hit":"miss",durable:E!==void 0?"hit":P?"miss":"off"},Ri(D,p.summary,"result_rows")}(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]="de8a82e1-0b02-5d5a-9086-686529a1ccab")}catch{}})();var Oi="blocked_by",$i="blocks",zu=Object.freeze([Oi,$i]),Yn="no-active-blocker";function R(e){return e.trim().toLowerCase()}function ye(e){let t=new Set,n=typeof e.blocked_by=="string"?R(e.blocked_by):"";n.length>0&&n!==Yn&&t.add(n);for(let r of e.dependencies??[]){let o=typeof r.id=="string"?R(r.id):"";r.kind===Oi&&o.length>0&&o!==Yn&&t.add(o)}return[...t].sort((r,o)=>r.localeCompare(o))}function Kt(e){let t=new Map;for(let n of e){let r=R(n.id);r.length!==0&&t.set(r,new Set(ye(n)))}for(let n of e){let r=R(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===$i&&typeof o.id=="string"?R(o.id):"";if(i.length===0||i===Yn)continue;let s=t.get(i)??new Set;s.add(r),t.set(i,s)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((o,i)=>o.localeCompare(i))]))}function Pi(e,t){let n=R(e.id);return n.length>0?Kt(t).get(n)??ye(e):ye(e)}function Xn(e,t,n,r){let o=e;return(typeof o.id=="string"?r?.get(R(o.id))??Pi(o,[...t.values()]):ye(e)).map(s=>{let a=t.get(R(s));return a?{id:s,title:a.title,status:a.status,resolved:N(a.status,n)}:{id:s,title:null,status:null,resolved:!1}})}function zt(e,t,n){return Xn(e,t,n)}function Ve(e,t){let n=new Map(e.map(s=>[R(s.id),s])),r=Kt(e),o=new Set([...ji(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=C(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||Xn(s,n,t,r).some(d=>!d.resolved))&&i.add(R(s.id))}return i}function ji(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Hu(e,t,n){let r=[R(e)],o=new Set;for(;r.length>0;){let i=r.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!N(s.status,n))return!0;r.push(R(s.id))}}}return!1}function qu(e){let t=new Map,n=new Map,r=new Map,o=Kt(e);for(let i of e){t.set(R(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=R(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(R(i.id))){let c=R(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function Jn(e,t,n){let{itemsById:r,childrenByParent:o,blockedByReverse:i,blockerIdsByItem:s}=qu(t),a=new Set([...ji(n),...n.blocked_statuses]),c=new Set(t.filter(m=>!N(m.status,n)).map(m=>R(m.id))),d=[],u=[],l=0,f=0;for(let m of e){if(!a.has(C(m.status,n)))continue;if(l+=1,Hu(m.id,o,n)){f+=1;continue}let y=Xn(m,r,n,s).filter(_=>!_.resolved),p=(i.get(R(m.id))??[]).filter(_=>c.has(R(_))).sort((_,k)=>_.localeCompare(k)),b={item:m,open_blockers:y,unblocks:p},w=n.blocked_statuses.has(C(m.status,n));y.length===0&&!w?d.push(b):u.push(b)}return{ready:d,blocked:u,active_count:l,container_count:f}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cc271a73-9767-54bb-a142-d4d4569e3c6a")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function Qn(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 c=e[s+1];if(c===","||c==="\\"){r+=c,s+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let o=n.map(s=>s.trim());if(o.some(s=>s.length===0))throw new h(`${t.label} requires at least one non-empty value`,g.USAGE);let i=o.map(s=>t.normalize?.(s)??s);return[...new Set(i)]}function Ye(e,t){let n=Qn(e,t);return n===void 0?void 0:new Set(n)}function Ui(e,t,n="--type"){let r=Qn(e,{label:n});if(r===void 0)return;let o=r.map(i=>{let s=ct(i,t);if(!s)throw new h(`${n} filter token "${i}" must be one of ${t.types.join("|")}`,g.USAGE);return s});return new Set(o)}function Bi(e,t="--priority"){let n=Qn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>kt(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]="5bb71ec1-7eb1-558e-a965-acd779570c2e")}catch{}})();var Zn=["id","title","status","type","priority","parent","updated_at"],er=["id","status","type","title"],Wu={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},Vu=["tree_depth","tree_parent","tree_children","tree_title"];function tr(e=[]){return[...new Set([...cn,"body",...Vu,...e])].flatMap(t=>[t,`item.${t}`]).sort()}var pw=["brief","standard","deep"],Yu=["body","linked","claim_state","children","schedule"],Xu=["linked.files","linked.tests","linked.docs"],Ju=["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"],Qu=["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"];function gw(e=[]){return[...[...new Set([...cn,...e,"notes_count","tests_count","collection_counts"])].flatMap(n=>[n,`item.${n}`]),...Yu,...Xu,...Ju,...Qu].sort()}var hw=["id","title","status","type","priority","updated_at","score","matched_fields"],Zu=["score","matched_fields","highlights"],Gi=["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 yw(e=[]){let t=[...new Set(e)];return[...Zu,...Gi,...Gi.map(n=>`item.${n}`),...t,...t.map(n=>`item.${n}`)].sort()}(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 Wi(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 nr(e){return j(e.acceptance_criteria)===void 0}function rr(e){return!Number.isFinite(e.estimated_minutes)}function Vi(e,t){return t.isTerminal(e.status)?j(e.resolution)===void 0:!1}function el(e){return j(e.reviewer)===void 0}function tl(e){return j(e.risk)===void 0}function nl(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):j(e.confidence)===void 0}function rl(e){return j(e.sprint)===void 0}function ol(e){return j(e.release)===void 0}function or(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function il(e,t,n){return[[t.acMissing,nr(e)],[t.estimatesMissing,rr(e)],[t.resolutionMissing,Vi(e,n)],[t.reviewerMissing,el(e)],[t.riskMissing,tl(e)],[t.confidenceMissing,nl(e)],[t.sprintMissing,rl(e)],[t.releaseMissing,ol(e)]].every(([o,i])=>o!==!0||i)}function sl(e,t){return nr(e)||rr(e)||Vi(e,t)}function Yi(e,t,n){return or(t)?!(!il(e,t,n)||t.metadataMissing&&!sl(e,n)):!0}var ir=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function al(e,t){switch(t){case"acceptance_criteria":return!nr(e);case"estimated_minutes":return!rr(e);case"resolution":return j(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return j(e.parent)!==void 0}}function cl(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function dl(e,t){return t===0?100:Math.round(e/t*1e3)/10}function zi(){let e={};for(let t of ir)e[t]={present:0,applicable:0,percent:100};return e}function Hi(e,t,n){for(let r of ir){if(!cl(t,r,n))continue;let o=e[r];o.applicable+=1,al(t,r)&&(o.present+=1)}}function qi(e){for(let t of ir){let n=e[t];n.percent=dl(n.present,n.applicable)}}function bw(e,t){let n=zi(),r={};for(let o of e){Hi(n,o,t);let i=r[o.type]??(r[o.type]=zi());Hi(i,o,t)}qi(n);for(let o of Object.values(r))qi(o);return{overall:n,by_type:r}}var ul={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function ll(e){return ul[e]}function fl(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function ml(e,t,n){switch(t){case"assignee":return[j(e.assignee)??null];case"parent":return[j(e.parent)??null];case"type":return[j(e.type)??null];case"status":return[j(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=n.tagPrefix?.trim(),i=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!r||s.startsWith(r)));return i.length>0?i:[null]}}}function kw(e,t,n,r={}){let o=new Map,i=0;for(let a of e){i+=1;let c=n.classify(a.status);for(let d of ml(a,t,r)){let u=d??"\0empty",l=o.get(u);l||(l={label:d??ll(t),key:d,buckets:fl(),total:0},o.set(u,l)),l.buckets[c]+=1,l.total+=1}}let s=[...o.values()].sort((a,c)=>c.total!==a.total?c.total-a.total:a.key===null?1:c.key===null?-1:a.label.localeCompare(c.label));return{dimension:t,rows:s,total_items:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var je=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function _e(e){return Array.isArray(e)&&e.length>0}function pl(e){return typeof e=="string"&&e.trim().length>0}function gl(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 Ji(e,t){switch(t){case"notes":return _e(e.notes);case"learnings":return _e(e.learnings);case"files":return _e(e.files);case"docs":return _e(e.docs);case"tests":return _e(e.tests);case"comments":return _e(e.comments);case"deps":return _e(e.dependencies);case"body":return pl(e.body);case"linked_command":return gl(e.tests)}}function Qi(e){return je.some(t=>e[t]!==void 0)}function Zi(e,t){for(let n of je){let r=t[n];if(r===void 0)continue;let o=Ji(e,n);if(r==="present"&&!o||r==="absent"&&o)return!1}return!0}function es(e){return je.some(t=>t!=="body"&&e[t]!==void 0)}function ts(e){return e.body!==void 0}function Xi(e,t){return t===0?100:Math.round(e/t*1e3)/10}function hl(){let e={};for(let t of je)e[t]={present:0,total:0,percent:100};return e}function Ew(e){let t=hl(),n=e.length;for(let s of e)for(let a of je)Ji(s,a)&&(t[a].present+=1);for(let s of je)t[s].total=n,t[s].percent=Xi(t[s].present,n);let r=t.body,o=n-r.present,i={present:o,total:n,percent:Xi(o,n)};return{total_items:n,fields:t,body_populated:r,empty_body:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67c5ff91-1c04-5506-ae5b-32f6552f1d07")}catch{}})();var yl=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}),ns=[{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"}],as=e=>{let t=ns.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new h(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,g.USAGE);return Object.fromEntries(ns.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},rs=["priority","deadline","updated_at","created_at","title","parent"],os=["asc","desc"],cs=new Set(ho);function _l(e,t,n){let r=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,o=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,i={status:t?"unchecked":r+o>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:o};if(n&&i.status==="partial")throw new h(`List source is incomplete: ${r} item document(s) and ${o} item directory/directories could not be read.`,g.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 i}function wl(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var bl=[{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"}],kl=[{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 ds(e,t){for(let n of bl)t[n.key]===!0&&(e[n.summaryKey]=!0)}function us(e,t){for(let n of kl)t[n.key]===!0&&(e[n.summaryKey]=!0)}function vl(e,t,n){for(let r of n){let o=t[r.optionKey];o!==void 0&&(e[r.summaryKey]=r.normalize?r.normalize(o):o)}}function El(e){let t={};return ds(t,e),t}function xl(e){let t={};return us(t,e),t}var Il=[{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"}],Cl=[{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"}],Sl=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Tl="-7d";function Dl(e){let{filtersStatus:t,options:n,treeEnabled:r,treeDepth:o,sortField:i,sortOrder:s,runtimeFieldFilters:a}=e,c={};return t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency"),vl(c,n,Il),fs(c,n),n.filterAcMissing===!0&&(c.filter_ac_missing=!0),n.filterEstimatesMissing===!0&&(c.filter_estimates_missing=!0),n.filterResolutionMissing===!0&&(c.filter_resolution_missing=!0),n.filterMetadataMissing===!0&&(c.filter_metadata_missing=!0),us(c,n),ds(c,n),n.limit!==void 0&&(c.limit=n.limit),n.offset!==void 0&&(c.offset=n.offset),n.includeBody===!0&&(c.include_body=!0),n.fields!==void 0&&(c.fields=n.fields),r&&(c.tree=!0,o!==void 0&&(c.tree_depth=o)),i!==void 0&&(c.sort=i,c.order=s),wl(a)&&(c.runtime_filters=a),c}function ls(e,t,n){let r=N(e.status,n),o=N(t.status,n);if(r!==o)return r?1:-1;let i=e.priority-t.priority;if(i!==0)return i;let s=x(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function Rl(e,t){return[...e].sort((n,r)=>ls(n,r,t))}function is(e,t){if(e!==void 0)return se(e,new Date,t)}function Xe(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return se(n,new Date,t)}function Al(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 h("Choose only one updated_at window: --today, --recent, or --updated-after.",g.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?Xe(Tl,"recent"):Xe(e.updatedAfter,"updated-after")}function fs(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Ll(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new h("--ids requires at least one non-empty item ID",g.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new h("--ids requires at least one non-empty item ID",g.USAGE);return new Set(n)}function ms(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 h("Offset filter must be a non-negative integer",g.USAGE);return n}function Fl(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 h("List --fields requires a comma-separated list of field names",g.USAGE);return[...new Set(t)]}function Nl(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,o=e.full===!0,i=Fl(e.fields);if(Number(n)+Number(r)+Number(o)+ +(i!==void 0)>1)throw new h("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",g.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});return o?{mode:"full",fields:[]}:r?{mode:"brief",fields:[...er]}:n?{mode:"compact",fields:[...Zn]}:i?{mode:"fields",fields:[...new Set(i.map(a=>we(a)))]}:{mode:"full",fields:[]}}function we(e){return e.startsWith("item.")?e.slice(5):e}function Ml(e,t,n){if(e.mode!=="fields")return;let r=tr(t),o=new Set(r.map(s=>we(s))),i=e.fields.filter(s=>!o.has(we(s)));if(i.length>0)throw new h(`Unknown list --fields value(s): ${i.join(", ")}`,g.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"],recovery:{allowed_values:r,suggested_retry:`pm ${n} --fields id,title,status --limit 10`,suggested_retry_args:[n,"--fields","id,title,status","--limit","10"]}})}var Ol=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function $l(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Ol.get(t);if(n)return n;if(!rs.includes(t))throw new h(`Sort field must be one of ${rs.join("|")} (aliases: updated->updated_at, created->created_at)`,g.USAGE);return t}function Pl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!os.includes(t))throw new h(`Sort order must be one of ${os.join("|")}`,g.USAGE);return t}function jl(e){return V(e,"--tree-depth")}function Ul(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new h("Assignee filter must be one of assigned|unassigned",g.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new h(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,g.USAGE);return t}function ss(e,t){return mo(e,t,{strict:!0})}function ps(e){return Ye(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Bl(e,t,n){let r=ps(t);if(r===void 0)return;let o=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),i=[...r].filter(s=>!o.has(s));i.length>0&&n.push(`unknown_tags:${i.join(",")}`)}function Gl(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',g.USAGE);if(e!==void 0&&t==="unassigned")throw new h("Cannot combine --assignee with --assignee-filter unassigned",g.USAGE)}function Kl(e,t,n,r){let o=Ye(t.assignee,{label:"--assignee"}),i=Ul(t.assigneeFilter);Gl(o,i);let s=yl(t),a=as(t);return{idsFilter:Ll(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Ui(t.type,n),tagFilters:ps(t.tag),priorityFilter:Bi(t.priority),deadlineBefore:is(t.deadlineBefore,"deadline-before"),deadlineAfter:is(t.deadlineAfter,"deadline-after"),updatedAfter:Al(t),updatedBefore:Xe(t.updatedBefore,"updated-before"),createdAfter:Xe(t.createdAfter,"created-after"),createdBefore:Xe(t.createdBefore,"created-before"),assigneeFilter:o,assigneeModeFilter:i,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:Ye(t.sprint,{label:"--sprint"}),releaseFilter:Ye(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:or(s),lifecycleClassifier:Wi(r),contentFieldFilters:a,contentFiltersActive:Qi(a)}}function zl(e,t,n){return Hl(e,t,n)&&ql(e,t)&&Wl(e,t)&&Vl(e,t)}function Hl(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&N(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(o=>o.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function ql(e,t){return Or(e,t)}function Wl(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 Vl(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 Yl(e,t,n,r){return!(!zl(e,t,n)||t.missingMetadataActive&&!Yi(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Zi(e,t.contentFieldFilters)||!ht(e,r))}function Xl(e,t,n,r,o,i){let s=Kl(t,n,r,o);return e.filter(a=>Yl(a,s,o,i))}function Ht(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Jl(e,t,n){let r=e,o=typeof r.title=="string"?r.title:"",i=Ht(typeof r.parent=="string"?r.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:i,tree_children:n,tree_title:`${" ".repeat(t)}${o}`}}function Ql(e,t,n){let r=new Map,o=new Map;for(let d of e){r.set(d.id,d);let u=Ht(d.parent);if(!u)continue;let l=o.get(u);l?l.push(d):o.set(u,[d])}let i=t?[...o.get(t)??[]]:e.filter(d=>{let u=Ht(d.parent);return!u||!r.has(u)}),s=[],a=new Set,c=(d,u)=>{if(a.has(d.id))return;a.add(d.id);let l=o.get(d.id)??[];if(s.push(Jl(d,u,l.length)),!(n!==void 0&&u>=n))for(let f of l)c(f,u+1)};for(let d of i)c(d,0);return s}function Zl(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function ef(e,t){return e===t?0:e===null?1:t===null?-1:x(e,t)}function tf(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return ef(e.deadline??null,t.deadline??null);case"updated_at":return x(e.updated_at,t.updated_at);case"created_at":return x(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Zl(e.parent??null,t.parent??null);default:return 0}}function nf(e,t,n,r){return t?[...e].sort((o,i)=>{let s=tf(o,i,t);if(s!==0)return n==="desc"?-s:s;let a=ls(o,i,r);return n==="desc"?-a:a}):Rl(e,r)}function rf(e,t,n=!1){let r=we(t.trim());if(r.length===0)return null;let o=e;return n&&r==="title"&&typeof o.tree_title=="string"?o.tree_title:Object.prototype.hasOwnProperty.call(o,r)?o[r]??null:null}function gs(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let o={};for(let i of t.fields)o[i]=rf(r,i,n);return o})}function of(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function sf(e,t){if(e.noTruncate!==!0)return V(e.limit)??(t>=1e4?20:void 0)}function af(e,t,n){return t.after===void 0?ms(t.offset)??0:Se(e,t.after,n,r=>r.id)}function hs(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function cf(e,t){let n=S(process.cwd(),t.path);if(!await A($(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,g.NOT_FOUND);let r=await T(n),o=z(r.schema),i=dt(r.schema),s=e.projectionCommand??"list",a=Nl(e,s);return Ml(a,of(i.definitions),s),{pmRoot:n,settings:r,statusRegistry:o,runtimeFieldFilters:gt(e,i,"list"),typeRegistry:O(r,L()),projection:a}}async function df(e,t,n){let r=t.projection.fields.some(c=>we(c)==="body"),o=t.projection.mode==="full"||t.projection.fields.some(c=>cs.has(we(c))),i=as(e),s=es(i),a=ts(i);return e.includeBody||r||a?await bo(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):o||s?await wo(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await ee(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function uf(e){let t=$l(e.sort),n=Pl(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new h("List --tree-depth requires --tree",g.USAGE);if(!t&&e.order!==void 0)throw new h("List --order requires --sort",g.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?jl(e.treeDepth):void 0,parentRoot:r?Ht(e.parent):void 0}}function lf(e,t,n){let r=ss(t.status,n),o=r??ss(e,n),i=fo(t.status),s=r||i?{...t,excludeTerminal:!1}:t,a=i?"all":o===void 0?s.excludeTerminal===!0?null:"all":o.length===1?o[0]:o;return{resolvedStatus:o,explicitAllStatuses:i,effectiveOptions:s,filtersStatus:a}}function ff(e,t,n,r,o){if(t.after!==void 0&&t.offset!==void 0)throw new h("List --after cannot be combined with --offset.",g.USAGE);let i=sf(t,e.length),s=af(e,t,o),a=i===void 0?e.slice(s):e.slice(s,s+i),c=gs(a,n,r),d=e.length,u=a.length>0&&s+a.length<d,l=u&&a.length>0?Z(o,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:hs(i,u,l)}}function ys(e,t,n){return de("list",{status:e,options:lt(t,ko),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function mf(e){let{options:t,runtime:n,statusSelection:r,ordering:o}=e,i=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","dependencyBlocked","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),s=[n.projection.mode==="full",n.projection.fields.some(y=>{let p=we(y);return p==="body"||cs.has(p)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,o.treeEnabled,o.sortField!==void 0,s,Kr(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([y,p])=>p!==void 0&&!i.has(y))].includes(!0))return null;let c=await Re(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!c)return null;let d=V(t.limit),u=ms(t.offset)??0,l=await go({pmRoot:n.pmRoot,expectedSourceCursor:c.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:d,offset:u}});if(!l)return null;let f=l.items.length>0&&u+l.items.length<l.total,m=f?Z(ys(r.filtersStatus,t,o),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:gs(l.items,n.projection,!1),totalMatched:l.total,pageExtras:hs(d,f,m)}}function pf(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:o,treeDepth:i,sortField:s,sortOrder:a,runtimeFieldFilters:c}=e,d={};t!==null&&(d.status=t),n.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let u=n;for(let l of Cl){let f=u[l.optionKey];f!=null&&(d[l.summaryKey]=f)}for(let l of Sl)u[l.key]===!0&&(d[l.summaryKey]=!0);return Object.assign(d,xl(n),El(n)),fs(d,n),r&&(d.no_truncate=!0),n.strictRead===!0&&(d.strict_read=!0),o&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),s!==void 0&&(d.sort=s,d.order=a),d.runtime_filters=c,d}async function Je(e,t,n){let r=await cf(t,n),o=[],i=uf(t),s=lf(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await mf({options:t,runtime:r,statusSelection:s,ordering:i}),d=c;if(!d){let p=await df(t,r,o);Bl(p,t.tag,o);let b=Xl(p,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),w=t.dependencyBlocked===!0?(()=>{let E=Ve(p,r.statusRegistry);return b.filter(I=>E.has(I.id.trim().toLowerCase()))})():b,_=nf(w,i.sortField,i.sortOrder,r.statusRegistry),k=i.treeEnabled?Ql(_,i.parentRoot,i.treeDepth):_;d=ff(k,t,r.projection,i.treeEnabled,ys(s.filtersStatus,t,i))}let u=G(),l=[...new Set(o)].sort((p,b)=>p.localeCompare(b)),f=_l(l,c!==null,t.strictRead===!0),m=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let p=Dl({filtersStatus:s.filtersStatus,options:t,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:p,projection:{mode:"compact",fields:m},...l.length>0?{warnings:l}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:pf({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:m},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:u,...l.length>0?{warnings:l}:{}}}import{encode as gf}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 sr=["agenda","day","week","month"],ar=["markdown","toon","json"],hf=["sun","mon","tue","wed","thu","fri","sat"],yf=365,_f=365,bs=28,wf=1e3;function cr(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new h(`${t} must be a non-negative integer`,g.USAGE);return n}function bf(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(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new h("Calendar include filter must not be empty",g.USAGE);let r=new Set;for(let o of n){if(o==="deadlines"||o==="deadline"){r.add("deadlines");continue}if(o==="reminders"||o==="reminder"){r.add("reminders");continue}if(o==="events"||o==="event"||o==="scheduled"){r.add("events");continue}throw new h("Calendar include filter must be deadlines|reminders|events|scheduled|all",g.USAGE)}return r}function ks(e,t){let n;for(let r of t){let o=$r(e,r,2);o!==null&&(n===void 0||o<n.distance)&&(n={choice:r,distance:o})}return n?.choice}function kf(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!sr.includes(t)){let n=ks(t,sr);throw new h(`Calendar view must be one of ${sr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,g.USAGE)}return t}function vf(e){if(!e)return;let t=e.trim().toLowerCase();if(!ar.includes(t)){let n=ks(t,ar);throw new h(`Calendar format must be one of ${ar.join("|")}${n?`. Did you mean "${n}"?`:"."}`,g.USAGE)}return t}function nb(e,t){let n=vf(e.format);if(t.json&&n&&n!=="json")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?"json":n??"markdown"}function Ef(e,t){if(e===void 0)return;let n=F(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new h(`Calendar status filter must be one of ${r.join("|")}`,g.USAGE)}return n}function xf(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new h("Calendar assignee filter must be one of assigned|unassigned",g.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new h(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,g.USAGE);return t}function qt(e){return new Date(e).toISOString().slice(0,10)}function vs(e,t){if(!t||t==="UTC")return qt(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,o=n.find(s=>s.type==="month")?.value,i=n.find(s=>s.type==="day")?.value;if(r&&o&&i)return`${r}-${o}-${i}`}catch{}return qt(e)}function fr(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function ae(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function Es(e){let t=new Date(fr(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return ae(t.toISOString(),r)}function If(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Cf(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Sf(e,t){return x(e,t)>=0?e:t}function _s(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function ws(e,t){e.set(t,(e.get(t)??0)+1)}function Tf(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,o)=>Ee(r)-Ee(o));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,o)=>r-o);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,o)=>r.localeCompare(o));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function xs(e,t,n,r){let o=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(o.getUTCFullYear()!==e||o.getUTCMonth()!==t||o.getUTCDate()!==n))return o.toISOString()}function Is(e){return hf[new Date(e).getUTCDay()]}function Df(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Rf(e){let t=new Set;for(let n of e??[]){let r=Df(n);r&&t.add(r)}return t}function Af(e,t,n,r,o){let i=e??ae(n,-(r??_f)),s=t??ae(e??n,o??yf);return{start:i,end:x(s,i)>0?s:ae(i,1)}}function Lf(e,t,n,r){let o=t.by_weekday!==void 0?[...t.by_weekday]:[Is(e)],i=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??wf,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Rf(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(o)].sort((s,a)=>Ee(s)-Ee(a)),sortedMonthDays:[...new Set(i)].sort((s,a)=>s-a),occurrences:[],produced:0}}function Wt(e,t){return x(t,e.startAt)<0?"continue":e.until&&x(t,e.until)>0||x(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,x(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function Vt(e,t){let n=Is(t),r=new Date(t).getUTCDate(),o=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return o&&i}function Ff(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(Vt(e,t)&&Wt(e,t)==="stop");n+=1)t=ae(t,e.interval);return e.occurrences}function Nf(e,t,n){let r=Ee(n),o=ae(t,r),i=new Date(o);return new Date(Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate(),e.startDate.getUTCHours(),e.startDate.getUTCMinutes(),e.startDate.getUTCSeconds(),e.startDate.getUTCMilliseconds())).toISOString()}function Mf(e){let t=Es(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=ae(t,n*e.interval*7);for(let o of e.sortedWeekdays){let i=Nf(e,r,o);if(Vt(e,i)&&Wt(e,i)==="stop")return e.occurrences}}return e.occurrences}function Of(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let i of e.sortedMonthDays){let s=xs(o.getUTCFullYear(),o.getUTCMonth(),i,e.startDate);if(!(!s||!Vt(e,s))&&Wt(e,s)==="stop")return e.occurrences}}return e.occurrences}function $f(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=t+r*e.interval;for(let i of e.sortedMonthDays){let s=xs(o,n,i,e.startDate);if(!(!s||!Vt(e,s))&&Wt(e,s)==="stop")return e.occurrences}}return e.occurrences}function Pf(e,t,n,r){let o=Lf(e,t,n,r);return t.freq==="daily"?Ff(o):t.freq==="weekly"?Mf(o):t.freq==="monthly"?Of(o):$f(o)}function Cs(e){return[...e].sort((t,n)=>{let r=x(t.at,n.at);if(r!==0)return r;let o=t.item_priority-n.item_priority;if(o!==0)return o;let i=t.item_id.localeCompare(n.item_id);if(i!==0)return i;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 mr(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 jf(e){return e.deadline?{at:e.deadline,date:qt(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,...mr(e),item_deadline:e.deadline}:null}function Uf(e){return(e.reminders??[]).map(t=>({at:t.at,date:qt(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,...mr(e)}))}function Bf(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Gf(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Kf(e,t,n,r){let o=Tf(t.recurrence),i=Bf(t.start_at,t.end_at);return(t.recurrence?Pf(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):vs(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Gf(a,t,i),event_location:t.location??null,event_all_day:t.all_day??null,event_timezone:t.timezone??null,event_recurring:!!t.recurrence,event_recurrence_rule:o,...mr(e)}))}function zf(e,t,n,r){let o=[];for(let i of e){let s=n.has("deadlines")?jf(i):null;s&&o.push(s),n.has("reminders")&&o.push(...Uf(i));for(let a of n.has("events")?i.events??[]:[])o.push(...Kf(i,a,t,r))}return Cs(o)}function Hf(e,t,n,r,o){let i=jo(t.type,n),s=t.tag?.trim().toLowerCase(),a=kt(t.priority),c=Ef(t.status,r),d=t.assignee?.trim(),u=xf(t.assigneeFilter),l=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',g.USAGE);if(d!==void 0&&u==="unassigned")throw new h("Cannot combine --assignee with --assignee-filter unassigned",g.USAGE);return e.filter(m=>qf(m,{typeFilter:i,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:o}))}function qf(e,t){return Wf(e,t)&&Vf(e,t)&&ht(e,t.runtimeFieldFilters)}function Wf(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 Vf(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 Yf(e,t,n){return!(t&&x(e.at,t)<0||n&&x(e.at,n)>=0)}function dr(e,t,n){return e.trim().toLowerCase()==="today"?fr(t):se(e,new Date(t),n)}function Xf(e,t,n){let r=t.date?dr(t.date,n,"--date"):n,o=t.past===!0,i=t.fullPeriod===!0,s=t.from?dr(t.from,n,"--from"):void 0,a=t.to?dr(t.to,n,"--to"):void 0;if(s&&a&&x(s,a)>=0)throw new h("Calendar --from must be before --to",g.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new h("--from and --to are only supported for --view agenda",g.USAGE);if(e==="agenda")return Jf(r,t,n,o,i,s,a);if(e==="day"){let d=fr(r);return ur(r,n,o,i,d,ae(d,1))}if(e==="week"){let d=Es(r);return ur(r,n,o,i,d,ae(d,7))}let c=If(r);return ur(r,n,o,i,c,Cf(r))}function Jf(e,t,n,r,o,i,s){if(o)throw new h("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",g.USAGE);return{anchor:e,start:i??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function ur(e,t,n,r,o,i){let s=n||r;return{anchor:e,start:s?o:Sf(o,t),end:i,periodStart:o,periodEnd:i,fullPeriod:s}}function Qf(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:Cs(r)}))}function Zf(e){let t=new Set,n=new Map,r=new Map,o=0,i=0,s=0,a=0;for(let c of e)t.add(c.item_id),ws(n,c.item_type),ws(r,c.item_status),c.kind==="deadline"?o+=1:c.kind==="reminder"?i+=1:(s+=1,c.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:o,reminders:i,scheduled:s,by_kind:{deadline:o,reminder:i,event:s},by_type:_s(n),by_status:_s(r),recurring_events:a}}function em(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Ss(e,t){if(t&&t!=="UTC")try{let n=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),r=n.find(i=>i.type==="hour")?.value,o=n.find(i=>i.type==="minute")?.value;if(r&&o)return`${r}:${o}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function lr(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function tm(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===vs(e.event_end,e.event_timezone)?Ss(e.event_end,e.event_timezone):e.event_end:null}function nm(e){let t=`${Ss(e.at,e.event_timezone)} [${e.kind}] ${e.item_id} type=${e.item_type} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder"){let n=e.reminder_text??"";return`${t} \u2014 ${n} reminder=${JSON.stringify(n)}`}if(e.kind==="event"){let n=[],r=e.event_title??e.item_title;e.event_title!==null&&e.event_title!==e.item_title&&(n.push(r),n.push(`title=${JSON.stringify(r)}`)),e.event_recurring&&(n.push("(recurring)"),n.push("recurring=true"));let i=tm(e);return i&&n.push(`end=${i}`),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 rb(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${em(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: ${lr(e.summary.by_kind)}`),t.push(`- by-type: ${lr(e.summary.by_type)}`),t.push(`- by-status: ${lr(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(`- ${nm(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 rm(t.join(`
3
+ `))}function ob(e){return gf(e)}function rm(e){let t=e.length;for(;t>0&&e[t-1]===`
4
+ `;)t-=1;return e.slice(0,t)}function om(e){let t=G(),n=kf(e.view),r=Xf(n,e,t),o=V(e.limit),i=bf(e.include),s=cr(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=cr(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=cr(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new h("Calendar occurrence limit must be >= 1",g.USAGE);let d=i.has("events")&&!i.has("deadlines")&&!i.has("reminders"),u=e.to!==void 0||s!==void 0||a!==void 0||c!==void 0,l=d&&!u;return{nowValue:t,view:n,rangeBounds:r,limit:o,includeSources:i,occurrenceLimit:c,recurrenceLookaheadDays:l?bs:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function im(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${bs}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function sm(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 am(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 Ts(e,t){let n=S(process.cwd(),t.path);if(!await A($(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,g.NOT_FOUND);let r=om(e),o=await T(n),i=z(o.schema),s=dt(o.schema),a=gt(e,s,"calendar"),c=O(o,L()),d=[];im(d,r.eventsOnlyCapApplied);let u=await ee(n,o.item_format,c.type_to_folder,d,o.schema),l=Hf(u,e,c,i,a),f=Af(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),y=zf(l,f,r.includeSources,r.occurrenceLimit).filter(_=>Yf(_,r.rangeBounds.start,r.rangeBounds.end)),p=r.limit===void 0?y:y.slice(0,r.limit),b=Qf(p),w=[...new Set(d)].sort((_,k)=>_.localeCompare(k));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:am(e,r.rangeBounds),filters:sm(e,a),summary:Zf(p),events:p,days:b,...w.length>0?{warnings:w}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7eefe5f0-364d-559a-b365-0e7d539ee19e")}catch{}})();var pr=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],cm=Symbol("no-context-author"),dm=Symbol("no-item-assignee");function Ds(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function um(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 lm(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 fm(e){let t=typeof e=="string"?e.trim().toLowerCase():void 0;return t==="critical"||t==="high"?1:t==="medium"?.5:t==="low"?.1:0}function Yt(e,t,n){return e?.[t]??n}function Xt(e,t){let n=d=>{if(typeof d!="string")return"";try{return se(d,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((d,u)=>{let l=n(d.updated_at),f=n(u.updated_at);return x(f,l)||d.id.localeCompare(u.id)}),o=new Map(r.map((d,u)=>[d.id,u])),i=Math.max(e.length-1,1),s=Ds(t.author,cm),a=F("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let u=Ds(d.assignee,dm)===s,l=(d.comments?.length??0)+(d.notes?.length??0)+(d.learnings?.length??0);return{id:d.id,item:d,signals:{recency:e.length===1?1:1-o.get(d.id)/i,activity_density:t.activityDensity?.[d.id],graph_proximity:Yt(t.graphProximity,d.id,d.parent?.3:0),claim_focus:Yt(t.claimFocus,d.id,C(d.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:um(d.priority,4),risk_pressure:fm(d.risk),deadline_pressure:lm(d.deadline,c),knowledge_density:Yt(t.knowledgeDensity,d.id,Math.min(l/5,1)),author_affinity:Yt(t.authorAffinity,d.id,u?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var mm="context_relevance",pm={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},gm=new TextEncoder;function hm(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,o]of Object.entries(n.signals??{})){if(r==="structural"||!pr.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(o!==void 0&&(!Number.isFinite(o)||o<0||o>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function ym(e){let t={...pm};for(let[n,r]of Object.entries(e??{}))r!==void 0&&pr.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 As(e,t={}){hm(e);let n=ym(t.weights),r=Math.max(e.length-1,1),o=new Set(["structural"]);for(let a of e)for(let[c,d]of Object.entries(a.signals??{}))d!==void 0&&o.add(c);let i=pr.filter(a=>o.has(a)),s=e.map((a,c)=>{let d={structural:e.length===1?1:1-c/r,...a.signals},u={},l=0,f=0;for(let m of i){let y=d[m];if(y===void 0)continue;let p=y*n[m];u[m]=p,l+=p,f+=n[m]}return{...a,baseline_rank:c+1,rank:0,score:f===0?0:l/f,contributions:u}});return s.sort((a,c)=>c.score-a.score||a.baseline_rank-c.baseline_rank),s.forEach((a,c)=>{a.rank=c+1}),{model:"default-weighted-v1",available_signals:i,ranked:s}}async function _m(e,t={}){let n=As(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),o=new Map;for(let s of r){if(o.has(s.id)||!Number.isFinite(s.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");o.set(s.id,s.score)}if(o.size!==e.length||e.some(s=>!o.has(s.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let i=n.ranked.map(s=>{let a=o.get(s.id);return{...s,score:a,contributions:{custom:a}}});return i.sort((s,a)=>a.score-s.score||s.baseline_rank-a.baseline_rank),i.forEach((s,a)=>{s.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:i}}async function Jt(e,t,n={}){let r=As(t,n),o=await zr(mm,{surface:e,candidates:t,default_report:r});if(!o.handled)return o.warnings.length>0?{...r,warnings:o.warnings}:r;if(!Array.isArray(o.result)||!o.result.every(i=>typeof i=="object"&&i!==null&&typeof i.id=="string"&&typeof i.score=="number"&&Number.isFinite(i.score)))return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]};try{let i=await _m(t,{...n,scorer:()=>o.result});return o.warnings.length>0?{...i,warnings:o.warnings}:i}catch{return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]}}}var wm=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Rs(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function bm(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(d=>Math.max(0,t[d]??0)),r=Object.values(t).map(d=>Math.max(0,d)).sort((d,u)=>u-d).slice(0,n.length||1),o=d=>d.reduce((u,l,f)=>u+(2**l-1)/Math.log2(f+2),0),i=o(r),s=n.findIndex(d=>d>0),a=new Set(e.ranked_ids),c=e.actual_tokens<=e.token_budget;return{ndcg:i===0?1:o(n)/i,reciprocal_rank:s<0?0:1/(s+1),required_recall:Rs(e.required_ids??[],a),continuity_coverage:Rs(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function km(e){return Math.ceil(gm.encode(JSON.stringify(e)).byteLength/4)}function vm(e){return Math.round(e*1e4)/1e4}function Em(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(i=>i.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(i=>i.id),r=new Set(n),o=(e.ranking?.items??[]).filter(i=>r.has(i.id)).map(i=>({id:i.id,contributions:i.contributions}));return{rankedIds:n,attribution:o}}async function xm(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:o}=Em(n,e.surface),i={...n,ranking:void 0},s=km(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:bm({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:o}}function Im(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=wm;for(let i of n)if(!Number.isFinite(t[i]))throw new TypeError(`Context evaluation threshold ${i} must be a finite number`);let r=Object.fromEntries(n.map(i=>[i,vm(e.reduce((s,a)=>s+a.metrics[i],0)/e.length)])),o=n.filter(i=>r[i]<t[i]).map(i=>`${i}:${r[i]}<${t[i]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:o.length===0,failures:o}}async function db(e,t,n){let r=[];for(let o of e)r.push(await xm(o,t));return Im(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 Cm={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},Sm=["identity","summary","full"];function Tm(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=Sm.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 Dm(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=Cm[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,o=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(o)||o<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:o,profile:t}}function Rm(e){let t=new Set;for(let n of e){if(Tm(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 Am(e,t,n,r,o){let i=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&o()>=r)return{index:i,evaluated:s,timedOut:!0};let c=e[a];if(c.token_costs.identity>t)continue;s+=1;let d=i<0?void 0:e[i],u=n(c)/c.token_costs.identity,l=d===void 0?Number.NEGATIVE_INFINITY:n(d)/d.token_costs.identity;(u>l||u===l&&d!==void 0&&(c.rank<d.rank||c.rank===d.rank&&c.id.localeCompare(d.id)<0))&&(i=a)}return{index:i,evaluated:s,timedOut:!1}}function Lm(e){let t=new Set,n=[],r=e.tokenBudget,o=d=>{let u=d.lineage??d.cluster,l=u&&t.has(u)?1-e.redundancyPenalty:1;return Math.max(0,(d.score-e.uncertaintyPenalty*(d.uncertainty??0))*l)},i=d=>{let u=d.token_costs.identity;n.push({...d,projection:"identity",tokens:u,marginal_value:o(d)}),r-=u;let l=d.lineage??d.cluster;l&&t.add(l)};for(let d of e.ordered.filter(u=>u.required))d.token_costs.identity<=r&&i(d);let s=e.ordered.filter(d=>!d.required),a=!0,c=0;for(;s.length>0;){let d=Am(s,r,o,e.deadline,e.readClock);if(c+=d.evaluated,d.timedOut&&(a=!1),d.index<0||d.timedOut)break;i(s.splice(d.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:c}}function Fm(e,t){let n=t;for(let r of["summary","full"]){let o=r==="summary"?"identity":"summary",i=[...e].sort((s,a)=>{let c=s.token_costs[r]-s.token_costs[o],d=a.token_costs[r]-a.token_costs[o];return a.marginal_value/Math.max(d,1)-s.marginal_value/Math.max(c,1)||s.rank-a.rank||s.id.localeCompare(a.id)});for(let s of i){if(s.projection!==o)continue;let a=s.token_costs[r]-s.tokens;a>n||(s.projection=r,s.tokens+=a,n-=a)}}return n}function Ls(e,t){let n=Dm(t),r=Rm(e),o=t.readClock??performance.now.bind(performance),i=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:o()+t.latencyBudgetMs,s=Lm({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:i,readClock:o}),{included:a}=s,c=Fm(a,s.remaining);a.sort((u,l)=>u.rank-l.rank||u.id.localeCompare(l.id));let d=new Set(a.map(u=>u.id));return{included:a,omitted_ids:r.filter(u=>!d.has(u.id)).map(u=>u.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-c,remaining_tokens:c,complete:s.selectionComplete&&a.length===e.length&&a.every(u=>u.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import{randomUUID as Nm}from"node:crypto";import{appendFile as Mm,mkdir as Om,readFile as $m,rename as Pm,stat as jm,writeFile as Um}from"node:fs/promises";import Fs from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5f4ccd28-a001-54aa-8378-893025c69b96")}catch{}})();var Ns=2048,Ms=30,Os=864e5,Bm=262144,Gm="context-usage-ledger",ne=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function $s(e){return Fs.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 ne("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function Ps(e){try{let n=(await $m($s(e.pmRoot),"utf8")).split(`
5
+ `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Ns,o=e.retentionDays??Ms,i=Qe(e).ms-o*Os;return n.filter(s=>Date.parse(s.at)>=i).slice(-r)}catch{return[]}}async function js(e,t){let n=e.maxEvents??Ns,r=e.retentionDays??Ms;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new ne("Context usage retention requires positive maxEvents and retentionDays");let o=$s(e.pmRoot),i=Fs.dirname(o),s=await De(e.pmRoot,Gm,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await Om(i,{recursive:!0}),await Mm(o,t.map(u=>`${JSON.stringify(u)}
6
+ `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await jm(o)).size<=Bm)return;let c=await Ps(e),d=`${o}.${process.pid}.${Nm()}.tmp`;await Um(d,`${c.map(u=>JSON.stringify(u)).join(`
7
7
  `)}
8
- `,"utf8"),await Rm(d,o)}finally{await s()}}async function Os(e,t){await Ls(e,[t])}async function Qt(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 ne("Context usage serving requires an author and valid ranked rows");await Os(e,{kind:"serve",at:Qe(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function tb(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new ne("Context usage touch requires author, itemId, and intent");await Os(e,{kind:"touch",at:Qe(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function nb(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 ne("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new ne("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new ne("Context usage touch requires non-empty itemId");r.add(a)}let o=Qe(e).iso,i=[...r].map(s=>({kind:"touch",at:o,author:t,item_id:s,intent:n}));await Ls(e,i)}function Lm(e,t,n,r){return e.find(({entry:o,time:i})=>o.item_id===t&&i>=n&&i-n<=r)?.time}async function Zt(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await Fs(e),n=Qe(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new ne("Context usage horizonHours must be positive");let o=e.author.trim(),i=t.filter(l=>l.kind==="touch"&&l.author===o).map(l=>({entry:l,time:Date.parse(l.at)})),s=new Map,a=0,c=0;for(let l of t){if(l.kind!=="serve"||l.author!==o)continue;a+=1;let f=Date.parse(l.at);for(let m of l.rows){if(!m.included)continue;let y=Lm(i,m.id,f,r);if(y===void 0)continue;c+=1;let p=Math.max(0,(n-y)/Ns);s.set(m.id,(s.get(m.id)??0)+Math.exp(-p/14))}}let d=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([l,f])=>[l,.05+.95*(d>0?f/d:0)])),positive_judgments:c,serving_events:a}}import Ze from"node:fs/promises";import et from"node:path";import{createHash as Om,randomUUID as $m}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 lr=1,fr=1,$s=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Pm={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 en(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ps(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function jm(e){let t={};for(let n of $s){let r=e[n];if(r!==void 0){if(!Ps(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Um(e,t){let n=e.map(o=>[o.id,t(o)]),r=Math.max(0,...n.map(([,o])=>o));return Object.fromEntries(n.map(([o,i])=>[o,r===0?0:i/r]))}function Bm(e){let t=new Map(e.map(o=>[o.id,0])),n=o=>{t.set(o,(t.get(o)??0)+1)};for(let o of e){typeof o.parent=="string"&&o.parent.trim()&&(n(o.id),n(o.parent.trim()));for(let i of o.dependencies??[])typeof i.id!="string"||!i.id.trim()||(n(o.id),n(i.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(o=>[o.id,r===0?0:t.get(o.id)/r]))}function Gm(e,t){return{...t,activityDensity:t.activityDensity??Um(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Bm(e)}}function Km(e){if(!en(e)||typeof e.id!="string"||!en(e.signals))return null;let t={},n=new Set($s);for(let[r,o]of Object.entries(e.signals)){if(!n.has(r)||!Ps(o))return null;t[r]=o}return{id:e.id,signals:t}}function zm(e){if(!en(e)||e.format_version!==lr||e.signal_set_version!==fr||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(Km);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:lr,signal_set_version:fr,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,o)=>r.id.localeCompare(o.id))}}function Hm(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=Xt(e,Gm(e,t)).map(({id:r,signals:o})=>({id:r,signals:jm(o)})).sort((r,o)=>r.id.localeCompare(o.id));return Object.freeze({format_version:lr,signal_set_version:fr,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var mr=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=et.resolve(t)}async read(){try{return JSON.parse(await Ze.readFile(this.filePath,"utf8"))}catch(t){if(en(t)&&st(t))return null;throw t}}async write(t){let n=et.dirname(this.filePath);await Ze.mkdir(n,{recursive:!0});let r=et.join(n,`.${et.basename(this.filePath)}.${$m()}.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{}}}},pr=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],o=null;try{let l=await this.adapter.read();o=zm(l),l!==null&&o===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let i=t.map(l=>l.id).sort((l,f)=>l.localeCompare(f)),s=o?.items.map(l=>l.id)??[],a=o!==null&&o.source_cursor===n.sourceCursor&&o.source===n.source&&s.length===i.length&&s.every((l,f)=>l===i[f]),c;if(a&&o!==null)c=o;else{o!==null&&r.push("context_signal_store_stale"),c=Hm(t,n);try{await this.adapter.write(c)}catch{r.push("context_signal_store_write_failed")}}let d=new Map(c.items.map(l=>[l.id,l.signals])),u=Xt(t,n);return{snapshot:c,candidates:u.map(l=>({...l,signals:{...l.signals,...d.get(l.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r,warning_details:r.map(l=>Pm[l])}}};function qm(e){let t=Om("sha256");for(let n of[...e].sort((r,o)=>r.id.localeCompare(o.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 tn(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 o=n?null:await De(t.pmRoot),i=t.sourceCursor??o?.source_cursor??qm(e),s=t.source??(o===null?"scan_fallback":"derived_index");return new pr(new mr(et.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:i,source:s})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a19662f9-f8b3-5988-bc04-1b5a5edaaaa5")}catch{}})();function Wm(e){for(let t of e.patch){if(t.path==="/metadata/status"||t.path==="/front_matter/status"){if(typeof t.value=="string")return t.value.trim().toLowerCase();continue}if(t.path!==""||typeof t.value!="object")continue;let n=t.value,r=n.metadata??n.front_matter;if(typeof r?.status=="string")return r.status.trim().toLowerCase()}}function Vm(e,t,n){let r,o;for(let i of t){let s=Wm(i);if(s===void 0)continue;let a=n.has(s)&&(r!==void 0&&!n.has(r)||r===void 0&&i.op==="create");r=s,a&&Number.isFinite(Date.parse(i.ts))&&(o={id:e,completed_at:i.ts,history_op:i.op})}return o}function js(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}}function lb(e,t,n){let r=[];for(let o of e){if(o.completed_at!==void 0||!n.has(o.status.trim().toLowerCase()))continue;let i=Vm(o.id,t.get(o.id)??[],n);i!==void 0&&r.push(i)}return r.sort((o,i)=>o.id.localeCompare(i.id))}import Ym from"node:path";import{createHash as Xm}from"node:crypto";import Jm 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 Us=1,Qm=1e4,Bs=12;function Zm(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function ep(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let o=t.get(r);if(!o)return;if(o.type.toLowerCase()==="epic")return o;r=o.parent}}function tp(e){let t=[...e.items].sort((o,i)=>i.completion.timestamp.localeCompare(o.completion.timestamp)||o.item.id.localeCompare(i.item.id)),n=new Set,r=0;for(let{item:o}of t){let i=o.resolution??o.close_reason;i?.trim()&&n.add(i.trim()),r+=(o.notes?.length??0)+(o.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:o,title:i}})=>({id:o,title:i})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function np(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(i=>t.statusRegistry.terminal_done_statuses.has(C(i.status,t.statusRegistry))).map(i=>{let s=js(i);if(!s.resolved)throw new TypeError(`Completed item ${i.id} has no reporting timestamp`);return{item:i,completion:s}}),r=new Map(e.map(i=>[i.id,i])),o=new Map;for(let i of n){let{item:s,completion:a}=i,c=Zm(a.timestamp),d=`epoch:${c}`,u=o.get(d)??{kind:"epoch",key:c,label:c,items:[]};u.items.push(i),o.set(d,u);let l=ep(s,r);if(l){let f=`epic:${l.id}`,m=o.get(f)??{kind:"epic",key:l.id,label:l.title,items:[]};m.items.push(i),o.set(f,m)}}return{format_version:Us,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((i,{completion:s})=>(i[s.source]+=1,i),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...o.values()].map(tp).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function rp(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 op(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(o=>typeof o=="string"&&o.length>0),r=[t.first_closed_at,t.last_closed_at].every(o=>typeof o=="string"&&Number.isFinite(Date.parse(o)));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(rp)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function ip(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==Us||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(op)?t:null}function sp(e){return`scan:${Xm("sha256").update(Ee(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function ap(e,t,n){return n!==void 0?n:(await De(t))?.source_cursor??sp(e)}async function cp(e){try{let t=ip(JSON.parse(await Jm.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&st(t))}}}async function Gs(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Qm));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await ap(e,t.pmRoot,t.sourceCursor),o=Ym.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await cp(o),a=s.snapshot;if(s.invalid&&i.push("workspace_memory_invalid"),a?.source_cursor===r&&a.source_item_count===e.length)return{snapshot:a,cache_status:"fresh",warnings:i};a&&i.push("workspace_memory_stale");let c=np(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await K(o,`${JSON.stringify(c)}
10
- `)}catch{i.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:i}}function dp(e,t,n=Bs){let r=Math.max(0,Math.floor(t)),o=0,i=[];for(let s of e.rollups){if(i.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(s).length/4);o+a>r||(i.push(s),o+=a)}return i}function Ks(e,t,n=Bs){if(e.snapshot===null)return;let r=dp(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 up(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(o=>({rollup:o,score:r.filter(i=>[o.key,o.label,...o.outcomes,...o.representative_items.flatMap(s=>[s.id,s.title])].join(" ").toLowerCase().includes(i)).length})).filter(({score:o})=>o>0).sort((o,i)=>i.score-o.score||i.rollup.last_closed_at.localeCompare(o.rollup.last_closed_at)||o.rollup.key.localeCompare(i.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:o})=>o)}function kb(e,t,n=5){let r=up(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 zs=16;async function Hs(e,t,n){let r=O(t,N()).type_to_folder,o=[],i=new Set,s=n;for(;s&&o.length<zs;){let a=s.trim().toLowerCase();if(!a||i.has(a))break;i.add(a);let c=await le(e,s,t.id_prefix,t.item_format,r);if(!c)break;let d=await fe(c,{schema:t.schema});o.push(d.document.metadata.id),s=d.document.metadata.parent}return o}async function Sb(e){await qr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Hs(e.pmRoot,e.settings,e.itemId)})}async function Tb(e){await Wr(e)}async function Db(e){await Vr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Hs(e.pmRoot,e.settings,e.itemId)}:{}})}var Rb={lineage_depth:zs,active_items:64,evidence_rows:32};function qs(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 lp=["markdown","toon","json","ndjson"],nt=new Set(["Epic","Feature"]),Qs=10,Zs=1e4,ea=["hierarchy","activity","progress","recently_created","unparented","workload"],fp=[...ea,"blockers","files","staleness","tests"],mp=/^(\d{4})-(\d{2})-(\d{2})/,pp=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,gp=/^(\d{4})(\d{2})(\d{2})$/,hp=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function yp(e){if(!e)return;let t=e.trim().toLowerCase();if(!lp.includes(t))throw new h("Context format must be one of markdown|toon|json|ndjson",g.USAGE);return t}var Ws=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 _p(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Ws.has(r))throw new h(`Context --fields value not projectable: ${r} (valid: ${[...Ws].join(", ")})`,g.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new h("Context --fields requires at least one field name",g.USAGE);return t}function tt(e,t){return e.map(n=>{let r={},o=n;for(let i of t)r[i]=o[i]??null;return r})}function Yb(e,t){let n=yp(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function wp(e,t){return V(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Qs)}function yr(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new h("--token-budget must be a positive integer",g.USAGE);return n}function bp(e,t){return t>=Zs&&e===Number.MAX_SAFE_INTEGER?Qs:e}function kp(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!cn.includes(n))throw new h(`Context --depth must be one of ${cn.join("|")}`,g.USAGE);return n}function vp(e,t,n){if(e&&e.length>0){let o=[];for(let i of e){let s=i.trim().toLowerCase();if(!at.includes(s))throw new h(`Context --section must be one of ${at.join("|")}`,g.USAGE);o.includes(s)||o.push(s)}return o}return t==="brief"?[]:t==="full"?[...at]:(t==="deep"?fp:ea).filter(o=>n.sections[o])}function Ep(e,t){return e?V(e,"--activity-limit")??t.activity_limit:t.activity_limit}function xp(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new h("--stale-threshold must be a number of days (e.g. 7 or 7d)",g.USAGE);let o=parseInt(r[1],10);if(o<=0)throw new h("--stale-threshold must be positive",g.USAGE);return o}function Vs(e,t){let n=C(e,t),r=M("in_progress",t),o=M("open",t),i=M("blocked",t),s=M("draft",t);return r&&n===r?0:o&&n===o?1:i&&n===i?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 rt(e,t){let n=M("closed",t);return C(e,t)===n}function _r(e,t){let n=M("in_progress",t);return C(e,t)===n}function ta(e,t){let n=M("open",t);return C(e,t)===n}function Ip(e,t){return t.blocked_statuses.has(C(e,t))}var Cp=["compact","brief","fields","includeBody","include_body","parent"];function Sp(e){let t={...e};for(let n of Cp)delete t[n];return t}function wr(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 o=je(e),i=ot(r.id,o);return{ids:new Set([r.id,...i.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function Tp(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new h("Context --parent requires an item id",g.USAGE);return t}function Dp(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Rp(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:x(n,r)}function Ap(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Np(e){let t=mp.exec(e)??pp.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),o=Number.parseInt(t[3],10);return r>=1&&r<=12&&o>=1&&o<=Ap(n,r-1)}function Mp(e){let t=gp.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=hp.exec(e);if(n){let[,r,o,i,s,a,c,d]=n,u=c?`:${c}`:"",l=d&&d.length===5&&d!=="Z"?`${d.slice(0,3)}:${d.slice(3)}`:d??"";return`${r}-${o}-${i}T${s}:${a}${u}${l}`}return e}function na(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Np(t))return Number.NaN;let n=Date.parse(Mp(t));return Number.isFinite(n)?n:Number.NaN}function hr(e){let t=na(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Fp(e){let t=na(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function br(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function we(e,t,n){let r=Vs(e.status,n)-Vs(t.status,n);if(r!==0)return r;let o=e.priority-t.priority;if(o!==0)return o;let i=Dp(e.order,t.order);if(i!==0)return i;let s=Rp(e.deadline,t.deadline);if(s!==0)return s;let a=x(hr(t.updated_at),hr(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function gr(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function kr(e,t,n=new Set,r="context"){return Ts(e.ranked.map(o=>({id:o.id,item:o.item,rank:o.rank,score:o.score,required:n.has(o.id),cluster:o.item.parent?.trim()||o.item.type,token_costs:{identity:gr({id:o.id,title:o.item.title}),summary:gr({id:o.id,title:o.item.title,type:o.item.type,status:o.item.status,priority:o.item.priority,parent:o.item.parent}),full:gr(o.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function vr(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Er(e,t,n){let r=n===void 0?e.ranked:e.ranked.filter(o=>n.has(o.id));return{model:e.model,available_signals:e.available_signals,items:r.map(o=>({id:o.id,rank:o.rank,baseline_rank:o.baseline_rank,score:o.score,contributions:o.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 ra(e,t){return t>0?Math.round(e/t*100):0}function je(e){let t=new Map;for(let n of e){let r=br(n.parent);if(!r)continue;let o=t.get(r)??[];o.push(n),t.set(r,o)}return t}function it(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:br(e.parent)};if(t&&n){let o=ot(e.id,n),i=o.length;if(i>0){let s=o.filter(a=>rt(a.status,t)).length;r.children_total=i,r.children_closed=s,r.completion_pct=ra(s,i)}}return r}function Lp(e){let t=0,n=0,r=0,o=new Set;for(let i of e){if(o.add(i.item_id),i.kind==="deadline"){t+=1;continue}if(i.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:o.size,deadlines:t,reminders:n,scheduled:r}}function nn(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Op(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function $p(e,t,n,r){let o=new Map;for(let c of e)o.set(c.id,c);let i=je(e),s=new Set(t.filter(c=>nt.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=o.get(c);if(!d)continue;let u=ot(c,i),l=i.get(c)??[],f=0,m=0,y=0,p=0;for(let w of u)rt(w.status,n)?f++:_r(w.status,n)?y++:Ip(w.status,n)?p++:ta(w.status,n)&&m++;let b=l.sort((w,_)=>we(w,_,n)).slice(0,r).map(w=>{let _=ot(w.id,i),k=_.filter(E=>rt(E.status,n)).length;return{id:w.id,title:w.title,type:w.type,status:w.status,children_total:_.length,children_closed:k}});a.push({id:d.id,title:d.title,type:d.type,status:d.status,children_total:u.length,children_closed:f,children_open:m,children_in_progress:y,children_blocked:p,children:b})}return a.sort((c,d)=>{let u=o.get(c.id),l=o.get(d.id);return we(u,l,n)}).slice(0,r)}function ot(e,t){let n=[],r=[e],o=new Set;for(;r.length>0;){let i=r.pop();if(o.has(i))continue;o.add(i);let s=t.get(i)??[];for(let a of s)n.push(a),r.push(a.id)}return n}async function Pp(e,t){return(await Bo({compact:!0,limit:String(e)},t)).compact_activity??[]}function jp(e,t,n,r,o){let i=new Map;for(let c of e){if(!c.parent)continue;let d=i.get(c.parent)??[];d.push(c),i.set(c.parent,d)}let s=t.filter(c=>nt.has(c.type)),a=[];for(let c of s){let d=ot(c.id,i),u=d.length;if(u===0)continue;let l=0,f=0,m=0,y=0;for(let p of d)rt(p.status,r)?l++:n.has(p.id.trim().toLowerCase())?y++:_r(p.status,r)?m++:ta(p.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:u,closed:l,open:f,in_progress:m,blocked:y,completion_pct:ra(l,u)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,o)}function Up(e,t,n,r){let o=new Map(t.map(i=>[i.id.trim().toLowerCase(),i]));return e.slice(0,r).map(i=>{let s=zt(i,o,n),a=s.find(d=>!d.resolved)?.id??s[0]?.id??null,c=a?o.get(a.trim().toLowerCase()):void 0;return{id:i.id,title:i.title,blocked_by:a,blocked_by_title:c?.title??null,blocked_by_status:c?.status??null,blocked_reason:i.blocked_reason??null,unblock_note:i.unblock_note??null}})}function Bp(e,t){let n=new Map;for(let r of e)for(let o of r.files??[]){let i=n.get(o.path)??new Set;i.add(r.id),n.set(o.path,i)}return[...n.entries()].map(([r,o])=>({path:r,references:o.size,items:[...o].sort()})).sort((r,o)=>o.references-r.references).slice(0,t)}function Gp(e,t,n){let r=new Map;for(let o of e){let i=o.assignee??null,s=r.get(i)??[];s.push(o),r.set(i,s)}return[...r.entries()].map(([o,i])=>({assignee:o,active:i.length,in_progress:i.filter(s=>_r(s.status,t)).length,items:i.map(s=>s.id).sort()})).sort((o,i)=>i.active-o.active).slice(0,n)}function Kp(e,t,n,r){let o=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(i=>new Date(i.updated_at).getTime()<o).map(i=>({id:i.id,title:i.title,status:i.status,updated_at:i.updated_at,stale_days:Math.floor((new Date(n).getTime()-new Date(i.updated_at).getTime())/(1440*60*1e3))})).sort((i,s)=>s.stale_days-i.stale_days).slice(0,r)}function zp(e,t,n,r){return e.map(o=>({item:o,sortKey:hr(o.created_at)})).sort((o,i)=>{let s=x(i.sortKey,o.sortKey);return s!==0?s:o.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:o})=>({...it(o,t,n),created_at:o.created_at}))}function Hp(e,t,n,r){return e.filter(o=>!br(o.parent)&&!nt.has(o.type)).sort((o,i)=>we(o,i,t)).slice(0,r).map(o=>it(o,t,n))}function qp(e){let t=0,n=0,r=0,o=0,i=0,s=[];for(let a of e){(a.tests??[]).length>0&&t++;let c=a.test_runs??[];if(c.length>0){n++;let d=!1;for(let u of c)r+=u.passed??0,o+=u.failed??0,i+=u.skipped??0,(u.failed??0)>0&&(d=!0);d&&s.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:o,skipped:i},items_failing:s.sort()}}function Ys(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function oa(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",o=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}%`:"",i=e.blocked===!0?` blocked:${e.blocker_ids?.join(",")||"lifecycle"}`:"";return`${e.id} p${e.priority} ${e.status} ${e.type} order:${t} deadline:${n}${r}${o}${i} ${e.title}`}function Wp(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function Vp(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`${Ys(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Ys(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 Xs(e,t,n,r,o){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let i of n)e.push(`- ${o(i)}`);e.push("")}function Yp(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 Xp(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(`- ${Vp(n)}`);e.push("")}function Jp(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 o of n.children){let i=o.children_total>0?Math.round(o.children_closed/o.children_total*100):0;e.push(` - ${o.id} ${o.type} ${o.status} "${o.title}" [${o.children_closed}/${o.children_total} done ${i}%]`)}}e.push("")}}function Qp(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 Zp(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let o of t.recently_created)e.push(n?`- ${r(o)}`:`- ${Fp(o.created_at)} ${oa(o)}`);e.push("")}}function eg(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 tg(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 ng(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:-",o=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",i=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${o}${i}`)}e.push("")}}function rg(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 og(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 ig(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 sg(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 ag(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 Xb(e){let t=[],n=e.focus_fields,r=i=>n?Wp(i,n):oa(i);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 i=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${i.length>0?` (${i.join(", ")})`:""}`)}let o=e.sections_included.filter(i=>i!=="blockers"||(e.blockers?.length??0)>0);if(o.length>0&&t.push(`- sections: ${o.join(", ")}`),t.push(""),Xs(t,"High-level focus",e.high_level,"No high-level active items.",r),Xs(t,"Low-level focus",e.low_level,"No low-level active items.",r),Yp(t,e,r),Xp(t,e),e.workspace_memory){t.push("## Workspace memory");for(let i of e.workspace_memory.rollups)t.push(`- ${i.kind}:${i.key} \u2014 ${i.label} (${i.item_count} completed, latest ${i.last_closed_at})`);t.push("")}return Jp(t,e),Qp(t,e),Zp(t,e,n,r),eg(t,e,r),tg(t,e),ng(t,e),rg(t,e),og(t,e),ig(t,e),sg(t,e),ag(t,e),t.join(`
11
- `)}async function cg(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=r.context??Nr.context,i=z(r.schema),s=kp(e.depth,o),a=wp(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:vp(e.section,s,o),activityLimit:Ep(e.activityLimit,o),staleThresholdDays:xp(e.staleThreshold,o),parentScope:Tp(e.parent),focusFields:_p(e.fields),baseListOptions:Sp(e)}}function xr(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function dg(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function ug(e,t){let n=xr(t.sectionsIncluded),r=await Je(void 0,dg(t.baseListOptions,{excludeTerminal:!1}),e),o=r.items,i=o.filter(c=>!F(c.status,t.statusRegistry)),s=n||t.parentScope!==void 0?o:i,a=lg(t.parentScope,o);return a&&(i=i.filter(c=>a.has(c.id.trim().toLowerCase())),s=s.filter(c=>a.has(c.id.trim().toLowerCase()))),{listed:r,listedItemMetadata:i,allItems:s,fullCorpus:o,subtreeIds:a}}function lg(e,t){if(e===void 0)return;let n=wr(t,e);if(!n.found)throw new h(`Context --parent item not found: ${e}`,g.NOT_FOUND);return n.ids}async function fg(e,t,n,r,o,i,s,a,c,d,u,l,f,m,y){let p=[...e].sort((v,ke)=>we(v,ke,o)),b=await Zt({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),w=await tn(p,{pmRoot:f,storeKey:"context",statusRegistry:o,now:a,author:c,usageAffinity:b.affinity,claimFocus:y}),_=await Jt("context",w.candidates),k=_.ranked.map(v=>v.item),E=o.active_statuses,I=k.filter(v=>E.has(C(v.status,o))),P=l?Ce(I,d,u,v=>v.id):0,D=l?I.slice(P,P+s):I,U=l&&D.length>0&&P+D.length<I.length,ce=U&&D.length>0?Z(u,D[D.length-1].id,P+D.length-1):void 0,B=k.filter(v=>r.has(v.id.trim().toLowerCase())),L=new Set([...D.map(v=>v.id),...B.slice(0,s).map(v=>v.id)]),q=kr({..._,ranked:_.ranked.filter(v=>L.has(v.id))},m,new Set(Object.entries(y??{}).filter(([,v])=>v>=1).map(([v])=>v))),X=q.included.map(v=>v.item),J=X.filter(v=>E.has(C(v.status,o))),be=X.filter(v=>r.has(v.id.trim().toLowerCase())),Q=je(t),re=xr(i)?Q:void 0,oe=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),sn=v=>{let ke=it(v,o,re);return r.has(v.id.trim().toLowerCase())&&(ke.blocked=!0,ke.blocker_ids=zt(v,oe,o).filter(an=>!an.resolved).map(an=>an.id)),ke},_a=J.filter(v=>nt.has(v.type)).slice(0,l?D.length:s).map(sn),wa=J.filter(v=>!nt.has(v.type)).slice(0,l?D.length:s).map(sn),Tr=I.length===0;return{activeItems:J,blockedItems:be,highLevel:_a,lowLevel:wa,blockedFallback:Tr?be.slice(0,s).map(sn):[],blockedFallbackUsed:Tr,ranking:_,packing:q,featureStore:w,pageExtras:{...l?{applied_limit:s}:{},...U?{has_more:!0,truncated:!0}:{},...ce?{next_cursor:ce}:{}}}}function mg(e){return de("context",lt(e,wo))}function pg(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Zs}async function gg(e,t,n,r){let o={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await xs(o,e),s=n===void 0?i.events:i.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=Op(s,t.statusRegistry).slice(0,t.limit),c=a.map(d=>r.has(d.item_id)?{at:d.at,date:d.date,kind:d.kind,item_id:d.item_id,reference_only:!0,...d.kind==="reminder"?{reminder_text:d.reminder_text}:{},...d.kind==="event"?{event_title:d.event_title,event_recurring:d.event_recurring}:{}}:d);return{agenda:i,agendaEvents:c,agendaSummary:Lp(a)}}function Js(e,t,n){let r=String(t);return e.filter(o=>C(o.status,n)===r).length}async function hg(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:o,focusGroups:i,now:s,global:a}=e,c=je(n),d=n.filter(l=>!F(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?$p(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await Pp(t.activityLimit,a):void 0,progress:u("progress")?jp(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?Up(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?zp(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?Hp(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?Bp(i.activeItems,t.limit):void 0,workload:u("workload")?Gp(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?Kp(d,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?qp(i.activeItems):void 0}}function yg(e,t,n){if(!e)return{};let r=M("canceled",n);return{total_items:t.length,closed:t.filter(o=>rt(o.status,n)).length,canceled:t.filter(o=>C(o.status,n)===r).length}}function _g(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 wg(e,t){t&&(e.focus_fields=t,e.high_level=tt(e.high_level,t),e.low_level=tt(e.low_level,t),e.blocked_fallback=tt(e.blocked_fallback,t),e.recently_created&&(e.recently_created=tt(e.recently_created,t)),e.unparented&&(e.unparented=tt(e.unparented,t)))}function bg(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let i of n)delete i.tags,delete i.tags_inherited;return}let r=new Map(n.map(i=>[i.id,i])),o=new Map(n.map(i=>[i.id,i.tags?[...i.tags].sort().join("\0"):void 0]));for(let i of n){if(!i.parent||!i.tags)continue;let s=r.get(i.parent);s&&o.get(i.id)===o.get(s.id)&&(delete i.tags,i.tags_inherited=s.id)}}function kg(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 vg(e,t,n,r){try{let o=new Set(t.packing.included.map(i=>i.id));await Qt({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:t.ranking.ranked.map(i=>({id:i.id,rank:i.rank,included:o.has(i.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.warnings=nn(e.warnings,["context_usage_feedback_write_failed"])}}async function Eg(e,t,n){if(e)return{};let o=(await Pr({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(s=>({name:s.name??s.directory,status:s.status==="ok"?"ok":"degraded"})).sort((s,a)=>s.name.localeCompare(a.name)),i=o.filter(s=>s.status==="degraded").length;return o.length===0?{}:{extension_health:{total:o.length,ok:o.length-i,degraded:i,packages:o.slice(0,20),...o.length>20?{truncated:!0}:{}}}}async function xg(e,t){let n=Yr(),r=await zr(e),o=n.instance||Hr(t);return qs(r.semantic_attribution?.[o])}async function Jb(e,t){let n=S(process.cwd(),t.path),r=await cg(e,t),o=await ug(t,r),i=bp(r.limit,o.fullCorpus.length),s={...r,limit:i,tokenBudget:yr(e.tokenBudget,Math.max(256,i*160))},a=pe(void 0,s.settings.author_default),c=await xg(n,a),d=Eg(e.noExtensionHealth===!0,n,s.settings),u=We(o.fullCorpus,s.statusRegistry),l=await fg(o.listedItemMetadata,o.allItems,o.fullCorpus,u,s.statusRegistry,s.sectionsIncluded,s.limit,G(),a,e.after,mg(e),pg(e,o.fullCorpus.length),n,s.tokenBudget,c),f=await gg(t,s,o.subtreeIds,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),m=await Gs(o.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),y=nn(o.listed.warnings,f.agenda.warnings,l.ranking.warnings,[...l.featureStore.warnings],m.warnings),p=Js(l.activeItems,M("in_progress",s.statusRegistry),s.statusRegistry),b=Js(l.activeItems,M("open",s.statusRegistry),s.statusRegistry),w=await hg({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:u,focusGroups:l,now:f.agenda.now,global:t}),_=yg(xr(s.sectionsIncluded),o.allItems,s.statusRegistry),k={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:o.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{active_items:l.activeItems.length,in_progress:p,open:b,blocked:l.blockedItems.length,blocked_fallback_used:l.blockedFallbackUsed,high_level:l.highLevel.length,low_level:l.lowLevel.length,agenda_events:f.agendaSummary.events,..._},high_level:l.highLevel,low_level:l.lowLevel,blocked_fallback:l.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...l.pageExtras};return k.workspace_memory=Ks(m,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(k,await d),_g(k,w,l.featureStore.warning_details),bg(k,e.noTags===!0),e.explainRanking===!0&&(k.ranking=Er(l.ranking,l.featureStore,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),k.packing=vr(l.packing)),wg(k,s.focusFields),y.length>0&&(k.warnings=y),kg(k,l.activeItems,l.blockedItems),await vg(k,l,n,a),k}(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 Ig=["markdown","toon","json"],Cg=5,Sg=1440*60*1e3;function Tg(e){if(!e)return;let t=e.trim().toLowerCase();if(!Ig.includes(t))throw new h("Next format must be one of markdown|toon|json",g.USAGE);return t}function ck(e,t){let n=Tg(e.format);if(t.json&&n&&n!=="json")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?"json":n??"toon"}function ia(e,t,n){let r=V(e,t);return r===void 0||r<=0?n:r}function Ir(e,t,n,r){return{...it(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(o=>({id:o.id,title:o.title,status:o.status})),unblocks:e.unblocks,rank:r}}function Dg(e,t,n,r){let o=e.item,i=[],s=M("in_progress",t);return i.push(C(o.status,t)===s?"in progress \u2014 resume to finish":"open and ready to start"),r&&i.push("completed container \u2014 governance closeout"),i.push(`priority p${o.priority}${o.priority===0?" (highest)":""}`),typeof o.deadline=="string"&&o.deadline.trim().length>0&&i.push(Ag(o.deadline,n)),i.push(ye(o).length>0?"all blockers resolved":"no blockers"),typeof o.parent=="string"&&o.parent.trim().length>0&&i.push(`advances ${o.parent.trim()}`),e.unblocks.length>0&&i.push(`unblocks ${e.unblocks.length} item(s): ${e.unblocks.join(", ")}`),i}function aa(e,t,n){let r=pe(n,t),o=[],i=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?i.push({id:s.item.id,assignee:a}):o.push(s)}return{available:o,held:i}}var dk={partitionCallerOwnedReady:aa,resolveNextCallerAuthor:(e,t)=>ca(e,t)};function Rg(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 Ag(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),o=new Date(Date.parse(t)).toISOString().slice(0,10),i=Math.round((Date.parse(r)-Date.parse(o))/Sg);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function Ng(e,t){let n=M("in_progress",t);return e.filter(r=>C(r.status,t)===n).length}function Cr(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Mg(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 sa(e,t,n){return[...e].sort((r,o)=>{let i=Cr(r.item,t),s=Cr(o.item,t);return i!==s?Number(i)-Number(s):we(r.item,o.item,n)})}function Fg(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Dg(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Lg(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 Og(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 $g(e){try{let t=new Set(e.packing.included.map(n=>n.id));await Qt({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=nn(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Pg(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=Er(e.readyRanking,e.featureStore),e.result.packing=vr(e.packing)),e.result.suggestions=Lg(e.recommended,e.blockedRows),await $g({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function jg(e,t,n){if(!n)return e;let r=wr(t,n);if(!r.found)throw new h(`Next --parent item not found: ${n}`,g.NOT_FOUND);return e.filter(o=>r.ids.has(o.id.trim().toLowerCase()))}async function Ug(e,t,n,r,o,i,s){let a=e.filter(p=>!Cr(p.item,t)),c=a.length>0?a:e,d=await Zt({pmRoot:i,author:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await tn(c.map(p=>p.item),{pmRoot:i,storeKey:"next",statusRegistry:n,now:r,author:o,usageAffinity:d.affinity}),l=await Jt("next",u.candidates),f=kr(l,s,new Set,"next"),m=new Map(c.map(p=>[p.item.id,p]));return{projectedReady:l.ranked.map(p=>m.get(p.id)).filter(p=>p!==void 0),ranking:l,completedContainer:a.length===0,packing:f,featureStore:u}}function ca(e,t){let n=e.assignee?.trim();return pe(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function uk(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=ca(e,r.author_default),i=z(r.schema),s=G(),a=ia(e.limit,"--limit",Cg),c=yr(e.tokenBudget,Math.max(192,a*128)),d=ia(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await Je(void 0,Mg(e,{excludeTerminal:!0}),t),m=await Je(void 0,{excludeTerminal:!1,noTruncate:!0},t),y=jg(f.items,m.items,l),p=m.items,b=Xn(y,p,i),w=je(p),_=Rg(b.ready,e.includeDecisions===!0),k=aa(_.agent,r.author_default,o),E=sa(k.available,w,i),I=[...b.blocked].sort((re,oe)=>we(re.item,oe.item,i)),{projectedReady:P,ranking:D,completedContainer:U,packing:ce,featureStore:B}=await Ug(E,w,i,s,o,n,c),L=P.map((re,oe)=>Ir(re,i,w,oe+1)),q=I.map((re,oe)=>Ir(re,i,w,oe+1)),X=sa(_.decisions,w,i).map((re,oe)=>Ir(re,i,w,oe+1)),J=Fg({projectedReady:P,readyRows:L,statusRegistry:i,now:s,completedContainer:U}),be=Og(X.length,k.held.length,a),Q={output_default:"toon",now:s,recommended:J,ready:L.slice(1,a+1),decision_needed:X.slice(0,a),blocked:u?[]:q.slice(0,d),held_by_others:k.held.slice(0,a),summary:{recommended:J!==null,ready:L.length,blocked:q.length,in_progress:Ng(L,i),candidates:b.active_count,containers:b.container_count,decision_needed:X.length,held_by_others:k.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:l.length>0?l:null,limit:a,blocked_limit:d,ready_only:u,include_decisions:e.includeDecisions===!0,token_budget:c},truncation:be};return Pg({result:Q,recommended:J,blockedRows:q,candidatesWarnings:f.warnings,corpusWarnings:m.warnings,readyRanking:D,explainRanking:e.explainRanking===!0,pmRoot:n,author:o,packing:ce,featureStore:B})}function lk(e){let t=["# pm next","",...Bg(e)];if(t.push(...rn("Recommended",Gg(e.recommended),"No ready work.")),t.push(...rn("Decision needed",(e.decision_needed??[]).map(n=>`- ${on(n)}`),"No human-gated decisions.")),t.push(...rn("Ready",e.ready.map(n=>`- ${on(n)}`),"No ready items.")),e.filters.ready_only||t.push(...rn("Blocked",e.blocked.map(n=>`- ${Kg(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 Bg(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 Gg(e){return e?[`- ${on(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function rn(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Kg(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${on(e)} blocked_by:${t}`}function on(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}`}import{createHash as zg}from"node:crypto";import{setTimeout as Hg}from"node:timers/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]="e8cd5790-eacf-5ef7-bc0a-11ea3fe17d2d")}catch{}})();var ua=1,la=/^[A-Za-z0-9_-]+$/,qg=100,da=1e3,Wg=250,Ek=Object.freeze({batch_to_row_ratio:.6,fixture_events:200});function Y(e){if(e===void 0)return;let t=typeof e=="string"?[e]:e,n=[...new Set(t.flatMap(r=>r.split(",")).map(r=>r.trim()).filter(Boolean))].sort((r,o)=>r.localeCompare(o));return n.length===0?void 0:n}function fa(e){return zg("sha256").update(Ee({type:Y(e.type),author:Y(e.author),item:Y(e.item),harness:Y(e.harness),agent_instance:Y(e.agentInstance),provenance:Y(e.provenanceFilter)})).digest("hex").slice(0,24)}function Sr(e,t){let n={version:ua,fingerprint:t,ts:e.entry.ts,stream_id:e.stream_id,stream_offset:e.stream_offset};return Buffer.from(JSON.stringify(n),"utf8").toString("base64url")}function ma(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===ua,n.fingerprint===t,typeof n.ts=="string",typeof n.stream_id=="string",typeof n.stream_offset=="number",Number.isSafeInteger(n.stream_offset),Number(n.stream_offset)>=0].every(Boolean)}function pa(e,t){let n=e.trim();if(n.length===0||n.length>4096||!la.test(n))throw new h("Invalid mutation event cursor.",g.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new h("Invalid mutation event cursor.",g.USAGE,{code:"invalid_event_cursor"})}if(!ma(r,t))throw new h("Mutation event cursor does not match this query.",g.USAGE,{code:"event_cursor_query_mismatch"});return r}function ga(e){let t=e??qg;if(!Number.isSafeInteger(t)||t<0||t>da)throw new h(`Mutation event limit must be an integer from 0 to ${da}.`,g.USAGE,{code:"invalid_event_limit"});return t}function ha(e){return e instanceof Error&&e.name==="AbortError"}function ya(e,t){let n=e?.trim();if(!n)return{};if(la.test(n))return{cursor:pa(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new h("Mutation event --since must be an event cursor or ISO timestamp.",g.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Vg(e,t){let n=await ln(e,t);if(n===null){if(!await Xr(e))return{...await Jr(e,t),source:"authoritative_history"};n=await ln(e,t)}if(n===null)throw new h("Mutation event index could not be opened after rebuild.",g.GENERIC_FAILURE,{code:"event_index_unavailable"});return{...n,source:"derived_index"}}function Yg(e){let t=e??"batch";if(t!=="batch"&&t!=="row")throw new h("Mutation event cursor mode must be batch or row.",g.USAGE,{code:"invalid_event_cursor_mode"});return t}async function Xg(e={}){let t=S(e.cwd??process.cwd(),e.pmRoot);if(!await A($(t)))throw new h(`Tracker is not initialized at ${t}. Run pm init first.`,g.NOT_FOUND);let n=ga(e.limit),r=Yg(e.cursorMode);if(e.full===!0&&e.provenance===!0)throw new h("Mutation event projections are mutually exclusive. Use --provenance or --full.",g.USAGE);let o=await T(t),i=o.agent_identity.identity_vocabulary,s=Et(o.agent_identity.harness_signals),a=vn({provenance:e.provenanceFilter},s),c=Y(e.harness),d=fa(e),{cursor:u,sinceTimestamp:l}=ya(e.since,d),f={...u?{after_ts:u.ts,after_stream_id:u.stream_id,after_stream_offset:u.stream_offset}:l?{since_ts:l}:{},ops:Y(e.type),authors:Y(e.author),harnesses:c,harness_alias_authors:c?Object.entries(i.aliases).filter(([,p])=>c.includes(p)).map(([p])=>p):void 0,agent_instances:Y(e.agentInstance),provenance:[...a].map(([p,b])=>({dimension:p,values:[...b]})),stream_ids:Y(e.item),limit:n},m=await Vg(t,f),y=m.events.map(p=>({...r==="row"?{cursor:Sr(p,d)}:{},item_id:p.stream_id,version:p.stream_offset+1,ts:p.entry.ts,author:p.entry.author,type:p.entry.op,...p.entry.message===void 0?{}:{message:p.entry.message},patch_count:p.entry.patch.length,...e.full===!0?{entry:p.entry}:{},...e.provenance===!0?{provenance:xt(p.entry,i,{itemId:p.stream_id,version:p.stream_offset+1})}:{}}));return{events:y,count:y.length,has_more:m.has_more,cursor_mode:r,...m.events.length===0?{}:{next_cursor:Sr(m.events[m.events.length-1],d)},source:m.source,...e.provenanceSummary===!0?{provenance_summary:It(m.events.map(p=>p.entry),i,s)}:{}}}async function*Jg(e={}){let t=e.intervalMs??Wg;if(!Number.isSafeInteger(t)||t<10)throw new h("Mutation event follow interval must be an integer of at least 10ms.",g.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Xg({...e,cursorMode:e.cursorMode??"batch",since:n});if(yield r.next_cursor===void 0&&n!==void 0?{...r,next_cursor:n}:r,r.events.length>0){n=r.next_cursor;continue}try{await Hg(t,void 0,{signal:e.signal})}catch(i){if(ha(i))return;throw i}}}async function*xk(e={}){for await(let t of Jg({...e,cursorMode:"row"}))for(let n of t.events)yield n}var Ik={decodeMutationEventCursor:pa,encodeMutationEventCursor:Sr,eventQueryFingerprint:fa,isAbortError:ha,isMutationEventCursorEnvelope:ma,parseMutationEventLimit:ga,resolveMutationEventStart:ya};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="412fc2d2-daee-5d87-82ab-5411a1503087")}catch{}})();function Sk(e,t){let n=t??{};return e.filter(r=>n[r.id]!==r.updated_at).map(r=>r.id).sort((r,o)=>r.localeCompare(o))}export{bo as a,ko as b,Be as c,vo as d,Eo as e,uh as f,xo as g,bn as h,Nh as i,Mh as j,Wh as k,Vh as l,bt as m,wt as n,Lo as o,Qh as p,V as q,kt as r,Oo as s,vt as t,Et as u,vn as v,xt as w,cy as x,En as y,It as z,_y as A,Bo as B,Go as C,pc as D,Ae as E,ky as F,vy as G,In as H,ge as I,hc as J,_c as K,Cn as L,wc as M,Fe as N,Ct as O,Sn as P,St as Q,Ay as R,Ho as S,Zy as T,Qo as U,Zo as V,ei as W,ti as X,ni as Y,Ft as Z,oi as _,Oe as $,ii as aa,di as ba,Pt as ca,ui as da,Qd as ea,gi as fa,Ut as ga,jn as ha,Bt as ia,hi as ja,_i as ka,Un as la,qe as ma,bi as na,Gn as oa,Kn as pa,zn as qa,ki as ra,Hn as sa,Ei as ta,xi as ua,Ci as va,Eu as wa,V_ as xa,Sk as ya,Uu as za,ye as Aa,Kt as Ba,Li as Ca,zt as Da,We as Ea,Xn as Fa,Jn as Ga,Ve as Ha,$i as Ia,Pi as Ja,Ki as Ka,er as La,Hi as Ma,sw as Na,aw as Oa,Vi as Pa,Yi as Qa,dw as Ra,sl as Sa,rs as Ta,Zi as Ua,es as Va,al as Wa,cl as Xa,Lw as Ya,pl as Za,gl as _a,hl as $a,Je as ab,Bw as bb,Gw as cb,Kw as db,xs as eb,ur as fb,Xt as gb,im as hb,Ss as ib,um as jb,Jt as kb,lm as lb,fm as mb,hm as nb,ym as ob,Vw as pb,_m as qb,Ts as rb,ne as sb,Qt as tb,tb as ub,nb as vb,Zt as wb,lr as xb,fr as yb,Pm as zb,zm as Ab,Hm as Bb,mr as Cb,pr as Db,tn as Eb,js as Fb,lb as Gb,Qm as Hb,np as Ib,Gs as Jb,dp as Kb,Ks as Lb,up as Mb,kb as Nb,Hs as Ob,Sb as Pb,Tb as Qb,Db as Rb,Rb as Sb,qs as Tb,lp as Ub,_p as Vb,tt as Wb,Yb as Xb,yr as Yb,kp as Zb,vp as _b,wr as $b,we as ac,kr as bc,vr as cc,Er as dc,je as ec,it as fc,nn as gc,Xb as hc,bg as ic,Jb as jc,Ig as kc,ck as lc,dk as mc,Rg as nc,uk as oc,lk as pc,Ek as qc,Xg as rc,Jg as sc,xk as tc,Ik as uc};
13
- //# sourceMappingURL=chunk-4THEB6PD.js.map
8
+ `,"utf8"),await Pm(d,o)}finally{await s()}}async function Us(e,t){await js(e,[t])}async function Qt(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 ne("Context usage serving requires an author and valid ranked rows");await Us(e,{kind:"serve",at:Qe(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function hb(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new ne("Context usage touch requires author, itemId, and intent");await Us(e,{kind:"touch",at:Qe(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function yb(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 ne("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new ne("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new ne("Context usage touch requires non-empty itemId");r.add(a)}let o=Qe(e).iso,i=[...r].map(s=>({kind:"touch",at:o,author:t,item_id:s,intent:n}));await js(e,i)}function Km(e,t,n,r){return e.find(({entry:o,time:i})=>o.item_id===t&&i>=n&&i-n<=r)?.time}async function Zt(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await Ps(e),n=Qe(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new ne("Context usage horizonHours must be positive");let o=e.author.trim(),i=t.filter(l=>l.kind==="touch"&&l.author===o).map(l=>({entry:l,time:Date.parse(l.at)})),s=new Map,a=0,c=0;for(let l of t){if(l.kind!=="serve"||l.author!==o)continue;a+=1;let f=Date.parse(l.at);for(let m of l.rows){if(!m.included)continue;let y=Km(i,m.id,f,r);if(y===void 0)continue;c+=1;let p=Math.max(0,(n-y)/Os);s.set(m.id,(s.get(m.id)??0)+Math.exp(-p/14))}}let d=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([l,f])=>[l,.05+.95*(d>0?f/d:0)])),positive_judgments:c,serving_events:a}}import Ze from"node:fs/promises";import et from"node:path";import{createHash as zm,randomUUID as Hm}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 gr=1,hr=1,Bs=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],qm={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 en(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Gs(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Wm(e){let t={};for(let n of Bs){let r=e[n];if(r!==void 0){if(!Gs(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Vm(e,t){let n=e.map(o=>[o.id,t(o)]),r=Math.max(0,...n.map(([,o])=>o));return Object.fromEntries(n.map(([o,i])=>[o,r===0?0:i/r]))}function Ym(e){let t=new Map(e.map(o=>[o.id,0])),n=o=>{t.set(o,(t.get(o)??0)+1)};for(let o of e){typeof o.parent=="string"&&o.parent.trim()&&(n(o.id),n(o.parent.trim()));for(let i of o.dependencies??[])typeof i.id!="string"||!i.id.trim()||(n(o.id),n(i.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(o=>[o.id,r===0?0:t.get(o.id)/r]))}function Xm(e,t){return{...t,activityDensity:t.activityDensity??Vm(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Ym(e)}}function Jm(e){if(!en(e)||typeof e.id!="string"||!en(e.signals))return null;let t={},n=new Set(Bs);for(let[r,o]of Object.entries(e.signals)){if(!n.has(r)||!Gs(o))return null;t[r]=o}return{id:e.id,signals:t}}function Qm(e){if(!en(e)||e.format_version!==gr||e.signal_set_version!==hr||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(Jm);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:gr,signal_set_version:hr,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,o)=>r.id.localeCompare(o.id))}}function Zm(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=Xt(e,Xm(e,t)).map(({id:r,signals:o})=>({id:r,signals:Wm(o)})).sort((r,o)=>r.id.localeCompare(o.id));return Object.freeze({format_version:gr,signal_set_version:hr,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var yr=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=et.resolve(t)}async read(){try{return JSON.parse(await Ze.readFile(this.filePath,"utf8"))}catch(t){if(en(t)&&st(t))return null;throw t}}async write(t){let n=et.dirname(this.filePath);await Ze.mkdir(n,{recursive:!0});let r=et.join(n,`.${et.basename(this.filePath)}.${Hm()}.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{}}}},_r=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],o=null;try{let l=await this.adapter.read();o=Qm(l),l!==null&&o===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let i=t.map(l=>l.id).sort((l,f)=>l.localeCompare(f)),s=o?.items.map(l=>l.id)??[],a=o!==null&&o.source_cursor===n.sourceCursor&&o.source===n.source&&s.length===i.length&&s.every((l,f)=>l===i[f]),c;if(a&&o!==null)c=o;else{o!==null&&r.push("context_signal_store_stale"),c=Zm(t,n);try{await this.adapter.write(c)}catch{r.push("context_signal_store_write_failed")}}let d=new Map(c.items.map(l=>[l.id,l.signals])),u=Xt(t,n);return{snapshot:c,candidates:u.map(l=>({...l,signals:{...l.signals,...d.get(l.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r,warning_details:r.map(l=>qm[l])}}};function ep(e){let t=zm("sha256");for(let n of[...e].sort((r,o)=>r.id.localeCompare(o.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 tn(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 o=n?null:await Re(t.pmRoot),i=t.sourceCursor??o?.source_cursor??ep(e),s=t.source??(o===null?"scan_fallback":"derived_index");return new _r(new yr(et.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:i,source:s})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a19662f9-f8b3-5988-bc04-1b5a5edaaaa5")}catch{}})();function tp(e){for(let t of e.patch){if(t.path==="/metadata/status"||t.path==="/front_matter/status"){if(typeof t.value=="string")return t.value.trim().toLowerCase();continue}if(t.path!==""||typeof t.value!="object")continue;let n=t.value,r=n.metadata??n.front_matter;if(typeof r?.status=="string")return r.status.trim().toLowerCase()}}function np(e,t,n){let r,o;for(let i of t){let s=tp(i);if(s===void 0)continue;let a=n.has(s)&&(r!==void 0&&!n.has(r)||r===void 0&&i.op==="create");r=s,a&&Number.isFinite(Date.parse(i.ts))&&(o={id:e,completed_at:i.ts,history_op:i.op})}return o}function Ks(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}}function Cb(e,t,n){let r=[];for(let o of e){if(o.completed_at!==void 0||!n.has(o.status.trim().toLowerCase()))continue;let i=np(o.id,t.get(o.id)??[],n);i!==void 0&&r.push(i)}return r.sort((o,i)=>o.id.localeCompare(i.id))}import rp from"node:path";import{createHash as op}from"node:crypto";import ip 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 zs=1,sp=1e4,Hs=12;function ap(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function cp(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let o=t.get(r);if(!o)return;if(o.type.toLowerCase()==="epic")return o;r=o.parent}}function dp(e){let t=[...e.items].sort((o,i)=>i.completion.timestamp.localeCompare(o.completion.timestamp)||o.item.id.localeCompare(i.item.id)),n=new Set,r=0;for(let{item:o}of t){let i=o.resolution??o.close_reason;i?.trim()&&n.add(i.trim()),r+=(o.notes?.length??0)+(o.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:o,title:i}})=>({id:o,title:i})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function up(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(i=>t.statusRegistry.terminal_done_statuses.has(C(i.status,t.statusRegistry))).map(i=>{let s=Ks(i);if(!s.resolved)throw new TypeError(`Completed item ${i.id} has no reporting timestamp`);return{item:i,completion:s}}),r=new Map(e.map(i=>[i.id,i])),o=new Map;for(let i of n){let{item:s,completion:a}=i,c=ap(a.timestamp),d=`epoch:${c}`,u=o.get(d)??{kind:"epoch",key:c,label:c,items:[]};u.items.push(i),o.set(d,u);let l=cp(s,r);if(l){let f=`epic:${l.id}`,m=o.get(f)??{kind:"epic",key:l.id,label:l.title,items:[]};m.items.push(i),o.set(f,m)}}return{format_version:zs,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((i,{completion:s})=>(i[s.source]+=1,i),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...o.values()].map(dp).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function lp(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 fp(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(o=>typeof o=="string"&&o.length>0),r=[t.first_closed_at,t.last_closed_at].every(o=>typeof o=="string"&&Number.isFinite(Date.parse(o)));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(lp)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function mp(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==zs||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(fp)?t:null}function pp(e){return`scan:${op("sha256").update(xe(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function gp(e,t,n){return n!==void 0?n:(await Re(t))?.source_cursor??pp(e)}async function hp(e){try{let t=mp(JSON.parse(await ip.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&st(t))}}}async function qs(e,t){let n=Math.max(1,Math.floor(t.minimumItems??sp));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await gp(e,t.pmRoot,t.sourceCursor),o=rp.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await hp(o),a=s.snapshot;if(s.invalid&&i.push("workspace_memory_invalid"),a?.source_cursor===r&&a.source_item_count===e.length)return{snapshot:a,cache_status:"fresh",warnings:i};a&&i.push("workspace_memory_stale");let c=up(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await K(o,`${JSON.stringify(c)}
10
+ `)}catch{i.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:i}}function yp(e,t,n=Hs){let r=Math.max(0,Math.floor(t)),o=0,i=[];for(let s of e.rollups){if(i.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(s).length/4);o+a>r||(i.push(s),o+=a)}return i}function Ws(e,t,n=Hs){if(e.snapshot===null)return;let r=yp(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 _p(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(o=>({rollup:o,score:r.filter(i=>[o.key,o.label,...o.outcomes,...o.representative_items.flatMap(s=>[s.id,s.title])].join(" ").toLowerCase().includes(i)).length})).filter(({score:o})=>o>0).sort((o,i)=>i.score-o.score||i.rollup.last_closed_at.localeCompare(o.rollup.last_closed_at)||o.rollup.key.localeCompare(i.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:o})=>o)}function Ob(e,t,n=5){let r=_p(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 Vs=16;async function Ys(e,t,n){let r=O(t,L()).type_to_folder,o=[],i=new Set,s=n;for(;s&&o.length<Vs;){let a=s.trim().toLowerCase();if(!a||i.has(a))break;i.add(a);let c=await le(e,s,t.id_prefix,t.item_format,r);if(!c)break;let d=await fe(c,{schema:t.schema});o.push(d.document.metadata.id),s=d.document.metadata.parent}return o}async function Gb(e){await Yr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Ys(e.pmRoot,e.settings,e.itemId)})}async function Kb(e){await Xr(e)}async function zb(e){await Jr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Ys(e.pmRoot,e.settings,e.itemId)}:{}})}var Hb={lineage_depth:Vs,active_items:64,evidence_rows:32};function Xs(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 wp=["markdown","toon","json","ndjson"],nt=new Set(["Epic","Feature"]),na=10,ra=1e4,oa=["hierarchy","activity","progress","recently_created","unparented","workload"],bp=[...oa,"blockers","files","staleness","tests"],kp=/^(\d{4})-(\d{2})-(\d{2})/,vp=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,Ep=/^(\d{4})(\d{2})(\d{2})$/,xp=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function Ip(e){if(!e)return;let t=e.trim().toLowerCase();if(!wp.includes(t))throw new h("Context format must be one of markdown|toon|json|ndjson",g.USAGE);return t}var Js=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 Cp(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Js.has(r))throw new h(`Context --fields value not projectable: ${r} (valid: ${[...Js].join(", ")})`,g.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new h("Context --fields requires at least one field name",g.USAGE);return t}function tt(e,t){return e.map(n=>{let r={},o=n;for(let i of t)r[i]=o[i]??null;return r})}function uk(e,t){let n=Ip(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function Sp(e,t){return V(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:na)}function kr(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new h("--token-budget must be a positive integer",g.USAGE);return n}function Tp(e,t){return t>=ra&&e===Number.MAX_SAFE_INTEGER?na:e}function Dp(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!dn.includes(n))throw new h(`Context --depth must be one of ${dn.join("|")}`,g.USAGE);return n}function Rp(e,t,n){if(e&&e.length>0){let o=[];for(let i of e){let s=i.trim().toLowerCase();if(!at.includes(s))throw new h(`Context --section must be one of ${at.join("|")}`,g.USAGE);o.includes(s)||o.push(s)}return o}return t==="brief"?[]:t==="full"?[...at]:(t==="deep"?bp:oa).filter(o=>n.sections[o])}function Ap(e,t){return e?V(e,"--activity-limit")??t.activity_limit:t.activity_limit}function Lp(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new h("--stale-threshold must be a number of days (e.g. 7 or 7d)",g.USAGE);let o=parseInt(r[1],10);if(o<=0)throw new h("--stale-threshold must be positive",g.USAGE);return o}function Qs(e,t){let n=C(e,t),r=F("in_progress",t),o=F("open",t),i=F("blocked",t),s=F("draft",t);return r&&n===r?0:o&&n===o?1:i&&n===i?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 rt(e,t){let n=F("closed",t);return C(e,t)===n}function vr(e,t){let n=F("in_progress",t);return C(e,t)===n}function ia(e,t){let n=F("open",t);return C(e,t)===n}function Fp(e,t){return t.blocked_statuses.has(C(e,t))}var Np=["compact","brief","fields","includeBody","include_body","parent"];function Mp(e){let t={...e};for(let n of Np)delete t[n];return t}function Er(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 o=Ue(e),i=ot(r.id,o);return{ids:new Set([r.id,...i.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function Op(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new h("Context --parent requires an item id",g.USAGE);return t}function $p(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Pp(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:x(n,r)}function jp(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Up(e){let t=kp.exec(e)??vp.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),o=Number.parseInt(t[3],10);return r>=1&&r<=12&&o>=1&&o<=jp(n,r-1)}function Bp(e){let t=Ep.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=xp.exec(e);if(n){let[,r,o,i,s,a,c,d]=n,u=c?`:${c}`:"",l=d&&d.length===5&&d!=="Z"?`${d.slice(0,3)}:${d.slice(3)}`:d??"";return`${r}-${o}-${i}T${s}:${a}${u}${l}`}return e}function sa(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Up(t))return Number.NaN;let n=Date.parse(Bp(t));return Number.isFinite(n)?n:Number.NaN}function br(e){let t=sa(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Gp(e){let t=sa(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function xr(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function be(e,t,n){let r=Qs(e.status,n)-Qs(t.status,n);if(r!==0)return r;let o=e.priority-t.priority;if(o!==0)return o;let i=$p(e.order,t.order);if(i!==0)return i;let s=Pp(e.deadline,t.deadline);if(s!==0)return s;let a=x(br(t.updated_at),br(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function wr(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function Ir(e,t,n=new Set,r="context"){return Ls(e.ranked.map(o=>({id:o.id,item:o.item,rank:o.rank,score:o.score,required:n.has(o.id),cluster:o.item.parent?.trim()||o.item.type,token_costs:{identity:wr({id:o.id,title:o.item.title}),summary:wr({id:o.id,title:o.item.title,type:o.item.type,status:o.item.status,priority:o.item.priority,parent:o.item.parent}),full:wr(o.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function Cr(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Sr(e,t,n){let r=n===void 0?e.ranked:e.ranked.filter(o=>n.has(o.id));return{model:e.model,available_signals:e.available_signals,items:r.map(o=>({id:o.id,rank:o.rank,baseline_rank:o.baseline_rank,score:o.score,contributions:o.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 aa(e,t){return t>0?Math.round(e/t*100):0}function Ue(e){let t=new Map;for(let n of e){let r=xr(n.parent);if(!r)continue;let o=t.get(r)??[];o.push(n),t.set(r,o)}return t}function it(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:xr(e.parent)};if(t&&n){let o=ot(e.id,n),i=o.length;if(i>0){let s=o.filter(a=>rt(a.status,t)).length;r.children_total=i,r.children_closed=s,r.completion_pct=aa(s,i)}}return r}function Kp(e){let t=0,n=0,r=0,o=new Set;for(let i of e){if(o.add(i.item_id),i.kind==="deadline"){t+=1;continue}if(i.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:o.size,deadlines:t,reminders:n,scheduled:r}}function nn(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function zp(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function Hp(e,t,n,r){let o=new Map;for(let c of e)o.set(c.id,c);let i=Ue(e),s=new Set(t.filter(c=>nt.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=o.get(c);if(!d)continue;let u=ot(c,i),l=i.get(c)??[],f=0,m=0,y=0,p=0;for(let w of u)rt(w.status,n)?f++:vr(w.status,n)?y++:Fp(w.status,n)?p++:ia(w.status,n)&&m++;let b=l.sort((w,_)=>be(w,_,n)).slice(0,r).map(w=>{let _=ot(w.id,i),k=_.filter(E=>rt(E.status,n)).length;return{id:w.id,title:w.title,type:w.type,status:w.status,children_total:_.length,children_closed:k}});a.push({id:d.id,title:d.title,type:d.type,status:d.status,children_total:u.length,children_closed:f,children_open:m,children_in_progress:y,children_blocked:p,children:b})}return a.sort((c,d)=>{let u=o.get(c.id),l=o.get(d.id);return be(u,l,n)}).slice(0,r)}function ot(e,t){let n=[],r=[e],o=new Set;for(;r.length>0;){let i=r.pop();if(o.has(i))continue;o.add(i);let s=t.get(i)??[];for(let a of s)n.push(a),r.push(a.id)}return n}async function qp(e,t){return(await zo({compact:!0,limit:String(e)},t)).compact_activity??[]}function Wp(e,t,n,r,o){let i=new Map;for(let c of e){if(!c.parent)continue;let d=i.get(c.parent)??[];d.push(c),i.set(c.parent,d)}let s=t.filter(c=>nt.has(c.type)),a=[];for(let c of s){let d=ot(c.id,i),u=d.length;if(u===0)continue;let l=0,f=0,m=0,y=0;for(let p of d)rt(p.status,r)?l++:n.has(p.id.trim().toLowerCase())?y++:vr(p.status,r)?m++:ia(p.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:u,closed:l,open:f,in_progress:m,blocked:y,completion_pct:aa(l,u)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,o)}function Vp(e,t,n,r){let o=new Map(t.map(i=>[i.id.trim().toLowerCase(),i]));return e.slice(0,r).map(i=>{let s=zt(i,o,n),a=s.find(d=>!d.resolved)?.id??s[0]?.id??null,c=a?o.get(a.trim().toLowerCase()):void 0;return{id:i.id,title:i.title,blocked_by:a,blocked_by_title:c?.title??null,blocked_by_status:c?.status??null,blocked_reason:i.blocked_reason??null,unblock_note:i.unblock_note??null}})}function Yp(e,t){let n=new Map;for(let r of e)for(let o of r.files??[]){let i=n.get(o.path)??new Set;i.add(r.id),n.set(o.path,i)}return[...n.entries()].map(([r,o])=>({path:r,references:o.size,items:[...o].sort()})).sort((r,o)=>o.references-r.references).slice(0,t)}function Xp(e,t,n){let r=new Map;for(let o of e){let i=o.assignee??null,s=r.get(i)??[];s.push(o),r.set(i,s)}return[...r.entries()].map(([o,i])=>({assignee:o,active:i.length,in_progress:i.filter(s=>vr(s.status,t)).length,items:i.map(s=>s.id).sort()})).sort((o,i)=>i.active-o.active).slice(0,n)}function Jp(e,t,n,r){let o=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(i=>new Date(i.updated_at).getTime()<o).map(i=>({id:i.id,title:i.title,status:i.status,updated_at:i.updated_at,stale_days:Math.floor((new Date(n).getTime()-new Date(i.updated_at).getTime())/(1440*60*1e3))})).sort((i,s)=>s.stale_days-i.stale_days).slice(0,r)}function Qp(e,t,n,r){return e.map(o=>({item:o,sortKey:br(o.created_at)})).sort((o,i)=>{let s=x(i.sortKey,o.sortKey);return s!==0?s:o.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:o})=>({...it(o,t,n),created_at:o.created_at}))}function Zp(e,t,n,r){return e.filter(o=>!xr(o.parent)&&!nt.has(o.type)).sort((o,i)=>be(o,i,t)).slice(0,r).map(o=>it(o,t,n))}function eg(e){let t=0,n=0,r=0,o=0,i=0,s=[];for(let a of e){(a.tests??[]).length>0&&t++;let c=a.test_runs??[];if(c.length>0){n++;let d=!1;for(let u of c)r+=u.passed??0,o+=u.failed??0,i+=u.skipped??0,(u.failed??0)>0&&(d=!0);d&&s.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:o,skipped:i},items_failing:s.sort()}}function Zs(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function ca(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",o=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}%`:"",i=e.blocked===!0?` blocked:${e.blocker_ids?.join(",")||"lifecycle"}`:"";return`${e.id} p${e.priority} ${e.status} ${e.type} order:${t} deadline:${n}${r}${o}${i} ${e.title}`}function tg(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function ng(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`${Zs(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Zs(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 ea(e,t,n,r,o){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let i of n)e.push(`- ${o(i)}`);e.push("")}function rg(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 og(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(`- ${ng(n)}`);e.push("")}function ig(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 o of n.children){let i=o.children_total>0?Math.round(o.children_closed/o.children_total*100):0;e.push(` - ${o.id} ${o.type} ${o.status} "${o.title}" [${o.children_closed}/${o.children_total} done ${i}%]`)}}e.push("")}}function sg(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 ag(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let o of t.recently_created)e.push(n?`- ${r(o)}`:`- ${Gp(o.created_at)} ${ca(o)}`);e.push("")}}function cg(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 dg(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 ug(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:-",o=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",i=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${o}${i}`)}e.push("")}}function lg(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 fg(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 mg(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 pg(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 gg(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 lk(e){let t=[],n=e.focus_fields,r=i=>n?tg(i,n):ca(i);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 i=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${i.length>0?` (${i.join(", ")})`:""}`)}let o=e.sections_included.filter(i=>i!=="blockers"||(e.blockers?.length??0)>0);if(o.length>0&&t.push(`- sections: ${o.join(", ")}`),t.push(""),ea(t,"High-level focus",e.high_level,"No high-level active items.",r),ea(t,"Low-level focus",e.low_level,"No low-level active items.",r),rg(t,e,r),og(t,e),e.workspace_memory){t.push("## Workspace memory");for(let i of e.workspace_memory.rollups)t.push(`- ${i.kind}:${i.key} \u2014 ${i.label} (${i.item_count} completed, latest ${i.last_closed_at})`);t.push("")}return ig(t,e),sg(t,e),ag(t,e,n,r),cg(t,e,r),dg(t,e),ug(t,e),lg(t,e),fg(t,e),mg(t,e),pg(t,e),gg(t,e),t.join(`
11
+ `)}async function hg(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=r.context??Mr.context,i=z(r.schema),s=Dp(e.depth,o),a=Sp(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:Rp(e.section,s,o),activityLimit:Ap(e.activityLimit,o),staleThresholdDays:Lp(e.staleThreshold,o),parentScope:Op(e.parent),focusFields:Cp(e.fields),baseListOptions:Mp(e)}}function Tr(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function yg(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function _g(e,t){let n=Tr(t.sectionsIncluded),r=await Je(void 0,yg(t.baseListOptions,{excludeTerminal:!1}),e),o=r.items,i=o.filter(c=>!N(c.status,t.statusRegistry)),s=n||t.parentScope!==void 0?o:i,a=wg(t.parentScope,o);return a&&(i=i.filter(c=>a.has(c.id.trim().toLowerCase())),s=s.filter(c=>a.has(c.id.trim().toLowerCase()))),{listed:r,listedItemMetadata:i,allItems:s,fullCorpus:o,subtreeIds:a}}function wg(e,t){if(e===void 0)return;let n=Er(t,e);if(!n.found)throw new h(`Context --parent item not found: ${e}`,g.NOT_FOUND);return n.ids}async function bg(e,t,n,r,o,i,s,a,c,d,u,l,f,m,y){let p=[...e].sort((v,ve)=>be(v,ve,o)),b=await Zt({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),w=await tn(p,{pmRoot:f,storeKey:"context",statusRegistry:o,now:a,author:c,usageAffinity:b.affinity,claimFocus:y}),_=await Jt("context",w.candidates),k=_.ranked.map(v=>v.item),E=o.active_statuses,I=k.filter(v=>E.has(C(v.status,o))),P=l?Se(I,d,u,v=>v.id):0,D=l?I.slice(P,P+s):I,U=l&&D.length>0&&P+D.length<I.length,ce=U&&D.length>0?Z(u,D[D.length-1].id,P+D.length-1):void 0,B=k.filter(v=>r.has(v.id.trim().toLowerCase())),M=new Set([...D.map(v=>v.id),...B.slice(0,s).map(v=>v.id)]),q=Ir({..._,ranked:_.ranked.filter(v=>M.has(v.id))},m,new Set(Object.entries(y??{}).filter(([,v])=>v>=1).map(([v])=>v))),X=q.included.map(v=>v.item),J=X.filter(v=>E.has(C(v.status,o))),ke=X.filter(v=>r.has(v.id.trim().toLowerCase())),Q=Ue(t),re=Tr(i)?Q:void 0,oe=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),sn=v=>{let ve=it(v,o,re);return r.has(v.id.trim().toLowerCase())&&(ve.blocked=!0,ve.blocker_ids=zt(v,oe,o).filter(an=>!an.resolved).map(an=>an.id)),ve},va=J.filter(v=>nt.has(v.type)).slice(0,l?D.length:s).map(sn),Ea=J.filter(v=>!nt.has(v.type)).slice(0,l?D.length:s).map(sn),Lr=I.length===0;return{activeItems:J,blockedItems:ke,highLevel:va,lowLevel:Ea,blockedFallback:Lr?ke.slice(0,s).map(sn):[],blockedFallbackUsed:Lr,ranking:_,packing:q,featureStore:w,pageExtras:{...l?{applied_limit:s}:{},...U?{has_more:!0,truncated:!0}:{},...ce?{next_cursor:ce}:{}}}}function kg(e){return de("context",lt(e,vo))}function vg(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=ra}async function Eg(e,t,n,r){let o={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await Ts(o,e),s=n===void 0?i.events:i.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=zp(s,t.statusRegistry).slice(0,t.limit),c=a.map(d=>r.has(d.item_id)?{at:d.at,date:d.date,kind:d.kind,item_id:d.item_id,reference_only:!0,...d.kind==="reminder"?{reminder_text:d.reminder_text}:{},...d.kind==="event"?{event_title:d.event_title,event_recurring:d.event_recurring}:{}}:d);return{agenda:i,agendaEvents:c,agendaSummary:Kp(a)}}function ta(e,t,n){let r=String(t);return e.filter(o=>C(o.status,n)===r).length}async function xg(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:o,focusGroups:i,now:s,global:a}=e,c=Ue(n),d=n.filter(l=>!N(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?Hp(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await qp(t.activityLimit,a):void 0,progress:u("progress")?Wp(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?Vp(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?Qp(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?Zp(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?Yp(i.activeItems,t.limit):void 0,workload:u("workload")?Xp(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?Jp(d,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?eg(i.activeItems):void 0}}function Ig(e,t,n){if(!e)return{};let r=F("canceled",n);return{total_items:t.length,closed:t.filter(o=>rt(o.status,n)).length,canceled:t.filter(o=>C(o.status,n)===r).length}}function Cg(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 Sg(e,t){t&&(e.focus_fields=t,e.high_level=tt(e.high_level,t),e.low_level=tt(e.low_level,t),e.blocked_fallback=tt(e.blocked_fallback,t),e.recently_created&&(e.recently_created=tt(e.recently_created,t)),e.unparented&&(e.unparented=tt(e.unparented,t)))}function Tg(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let i of n)delete i.tags,delete i.tags_inherited;return}let r=new Map(n.map(i=>[i.id,i])),o=new Map(n.map(i=>[i.id,i.tags?[...i.tags].sort().join("\0"):void 0]));for(let i of n){if(!i.parent||!i.tags)continue;let s=r.get(i.parent);s&&o.get(i.id)===o.get(s.id)&&(delete i.tags,i.tags_inherited=s.id)}}function Dg(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 Rg(e,t,n,r){try{let o=new Set(t.packing.included.map(i=>i.id));await Qt({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:t.ranking.ranked.map(i=>({id:i.id,rank:i.rank,included:o.has(i.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.warnings=nn(e.warnings,["context_usage_feedback_write_failed"])}}async function Ag(e,t,n){if(e)return{};let o=(await Br({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)),i=o.filter(s=>s.status==="degraded").length;return o.length===0?{}:{extension_health:{total:o.length,ok:o.length-i,degraded:i,packages:o.slice(0,20),...o.length>20?{truncated:!0}:{}}}}async function Lg(e,t){let n=Qr(),r=await Wr(e),o=n.instance||Vr(t);return Xs(r.semantic_attribution?.[o])}async function fk(e,t){let n=S(process.cwd(),t.path),r=await hg(e,t),o=await _g(t,r),i=Tp(r.limit,o.fullCorpus.length),s={...r,limit:i,tokenBudget:kr(e.tokenBudget,Math.max(256,i*160))},a=pe(void 0,s.settings.author_default),c=await Lg(n,a),d=Ag(e.noExtensionHealth===!0,n,s.settings),u=Ve(o.fullCorpus,s.statusRegistry),l=await bg(o.listedItemMetadata,o.allItems,o.fullCorpus,u,s.statusRegistry,s.sectionsIncluded,s.limit,G(),a,e.after,kg(e),vg(e,o.fullCorpus.length),n,s.tokenBudget,c),f=await Eg(t,s,o.subtreeIds,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),m=await qs(o.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),y=nn(o.listed.warnings,f.agenda.warnings,l.ranking.warnings,[...l.featureStore.warnings],m.warnings),p=ta(l.activeItems,F("in_progress",s.statusRegistry),s.statusRegistry),b=ta(l.activeItems,F("open",s.statusRegistry),s.statusRegistry),w=await xg({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:u,focusGroups:l,now:f.agenda.now,global:t}),_=Ig(Tr(s.sectionsIncluded),o.allItems,s.statusRegistry),k={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:o.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{active_items:l.activeItems.length,in_progress:p,open:b,blocked:l.blockedItems.length,blocked_fallback_used:l.blockedFallbackUsed,high_level:l.highLevel.length,low_level:l.lowLevel.length,agenda_events:f.agendaSummary.events,..._},high_level:l.highLevel,low_level:l.lowLevel,blocked_fallback:l.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...l.pageExtras};return k.workspace_memory=Ws(m,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(k,await d),Cg(k,w,l.featureStore.warning_details),Tg(k,e.noTags===!0),e.explainRanking===!0&&(k.ranking=Sr(l.ranking,l.featureStore,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),k.packing=Cr(l.packing)),Sg(k,s.focusFields),y.length>0&&(k.warnings=y),Dg(k,l.activeItems,l.blockedItems),await Rg(k,l,n,a),k}(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 Fg=["markdown","toon","json"],Ng=5,Mg=1440*60*1e3;function Og(e){if(!e)return;let t=e.trim().toLowerCase();if(!Fg.includes(t))throw new h("Next format must be one of markdown|toon|json",g.USAGE);return t}function Ek(e,t){let n=Og(e.format);if(t.json&&n&&n!=="json")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?"json":n??"toon"}function da(e,t,n){let r=V(e,t);return r===void 0||r<=0?n:r}function Dr(e,t,n,r){return{...it(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(o=>({id:o.id,title:o.title,status:o.status})),unblocks:e.unblocks,rank:r}}function $g(e,t,n,r){let o=e.item,i=[],s=F("in_progress",t);return i.push(C(o.status,t)===s?"in progress \u2014 resume to finish":"open and ready to start"),r&&i.push("completed container \u2014 governance closeout"),i.push(`priority p${o.priority}${o.priority===0?" (highest)":""}`),typeof o.deadline=="string"&&o.deadline.trim().length>0&&i.push(jg(o.deadline,n)),i.push(ye(o).length>0?"all blockers resolved":"no blockers"),typeof o.parent=="string"&&o.parent.trim().length>0&&i.push(`advances ${o.parent.trim()}`),e.unblocks.length>0&&i.push(`unblocks ${e.unblocks.length} item(s): ${e.unblocks.join(", ")}`),i}function la(e,t,n){let r=pe(n,t),o=[],i=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?i.push({id:s.item.id,assignee:a}):o.push(s)}return{available:o,held:i}}var xk={partitionCallerOwnedReady:la,resolveNextCallerAuthor:(e,t)=>fa(e,t)};function Pg(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 jg(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),o=new Date(Date.parse(t)).toISOString().slice(0,10),i=Math.round((Date.parse(r)-Date.parse(o))/Mg);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function Ug(e,t){let n=F("in_progress",t);return e.filter(r=>C(r.status,t)===n).length}function Rr(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Bg(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 ua(e,t,n){return[...e].sort((r,o)=>{let i=Rr(r.item,t),s=Rr(o.item,t);return i!==s?Number(i)-Number(s):be(r.item,o.item,n)})}function Gg(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:$g(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Kg(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 zg(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 Hg(e){try{let t=new Set(e.packing.included.map(n=>n.id));await Qt({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=nn(e.result.warnings,["context_usage_feedback_write_failed"])}}async function qg(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=Sr(e.readyRanking,e.featureStore),e.result.packing=Cr(e.packing)),e.result.suggestions=Kg(e.recommended,e.blockedRows),await Hg({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Wg(e,t,n){if(!n)return e;let r=Er(t,n);if(!r.found)throw new h(`Next --parent item not found: ${n}`,g.NOT_FOUND);return e.filter(o=>r.ids.has(o.id.trim().toLowerCase()))}async function Vg(e,t,n,r,o,i,s){let a=e.filter(p=>!Rr(p.item,t)),c=a.length>0?a:e,d=await Zt({pmRoot:i,author:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await tn(c.map(p=>p.item),{pmRoot:i,storeKey:"next",statusRegistry:n,now:r,author:o,usageAffinity:d.affinity}),l=await Jt("next",u.candidates),f=Ir(l,s,new Set,"next"),m=new Map(c.map(p=>[p.item.id,p]));return{projectedReady:l.ranked.map(p=>m.get(p.id)).filter(p=>p!==void 0),ranking:l,completedContainer:a.length===0,packing:f,featureStore:u}}function fa(e,t){let n=e.assignee?.trim();return pe(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function Ik(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=fa(e,r.author_default),i=z(r.schema),s=G(),a=da(e.limit,"--limit",Ng),c=kr(e.tokenBudget,Math.max(192,a*128)),d=da(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await Je(void 0,Bg(e,{excludeTerminal:!0}),t),m=await Je(void 0,{excludeTerminal:!1,noTruncate:!0},t),y=Wg(f.items,m.items,l),p=m.items,b=Jn(y,p,i),w=Ue(p),_=Pg(b.ready,e.includeDecisions===!0),k=la(_.agent,r.author_default,o),E=ua(k.available,w,i),I=[...b.blocked].sort((re,oe)=>be(re.item,oe.item,i)),{projectedReady:P,ranking:D,completedContainer:U,packing:ce,featureStore:B}=await Vg(E,w,i,s,o,n,c),M=P.map((re,oe)=>Dr(re,i,w,oe+1)),q=I.map((re,oe)=>Dr(re,i,w,oe+1)),X=ua(_.decisions,w,i).map((re,oe)=>Dr(re,i,w,oe+1)),J=Gg({projectedReady:P,readyRows:M,statusRegistry:i,now:s,completedContainer:U}),ke=zg(X.length,k.held.length,a),Q={output_default:"toon",now:s,recommended:J,ready:M.slice(1,a+1),decision_needed:X.slice(0,a),blocked:u?[]:q.slice(0,d),held_by_others:k.held.slice(0,a),summary:{recommended:J!==null,ready:M.length,blocked:q.length,in_progress:Ug(M,i),candidates:b.active_count,containers:b.container_count,decision_needed:X.length,held_by_others:k.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:l.length>0?l:null,limit:a,blocked_limit:d,ready_only:u,include_decisions:e.includeDecisions===!0,token_budget:c},truncation:ke};return qg({result:Q,recommended:J,blockedRows:q,candidatesWarnings:f.warnings,corpusWarnings:m.warnings,readyRanking:D,explainRanking:e.explainRanking===!0,pmRoot:n,author:o,packing:ce,featureStore:B})}function Ck(e){let t=["# pm next","",...Yg(e)];if(t.push(...rn("Recommended",Xg(e.recommended),"No ready work.")),t.push(...rn("Decision needed",(e.decision_needed??[]).map(n=>`- ${on(n)}`),"No human-gated decisions.")),t.push(...rn("Ready",e.ready.map(n=>`- ${on(n)}`),"No ready items.")),e.filters.ready_only||t.push(...rn("Blocked",e.blocked.map(n=>`- ${Jg(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 Yg(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 Xg(e){return e?[`- ${on(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function rn(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Jg(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${on(e)} blocked_by:${t}`}function on(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}`}import{createHash as Qg}from"node:crypto";import{setTimeout as Zg}from"node:timers/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]="e8cd5790-eacf-5ef7-bc0a-11ea3fe17d2d")}catch{}})();var pa=1,ga=/^[A-Za-z0-9_-]+$/,eh=100,ma=1e3,th=250,Pk=Object.freeze({batch_to_row_ratio:.6,fixture_events:200});function Y(e){if(e===void 0)return;let t=typeof e=="string"?[e]:e,n=[...new Set(t.flatMap(r=>r.split(",")).map(r=>r.trim()).filter(Boolean))].sort((r,o)=>r.localeCompare(o));return n.length===0?void 0:n}function ha(e){return Qg("sha256").update(xe({type:Y(e.type),author:Y(e.author),item:Y(e.item),harness:Y(e.harness),agent_instance:Y(e.agentInstance),provenance:Y(e.provenanceFilter)})).digest("hex").slice(0,24)}function Ar(e,t){let n={version:pa,fingerprint:t,ts:e.entry.ts,stream_id:e.stream_id,stream_offset:e.stream_offset};return Buffer.from(JSON.stringify(n),"utf8").toString("base64url")}function ya(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===pa,n.fingerprint===t,typeof n.ts=="string",typeof n.stream_id=="string",typeof n.stream_offset=="number",Number.isSafeInteger(n.stream_offset),Number(n.stream_offset)>=0].every(Boolean)}function _a(e,t){let n=e.trim();if(n.length===0||n.length>4096||!ga.test(n))throw new h("Invalid mutation event cursor.",g.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new h("Invalid mutation event cursor.",g.USAGE,{code:"invalid_event_cursor"})}if(!ya(r,t))throw new h("Mutation event cursor does not match this query.",g.USAGE,{code:"event_cursor_query_mismatch"});return r}function wa(e){let t=e??eh;if(!Number.isSafeInteger(t)||t<0||t>ma)throw new h(`Mutation event limit must be an integer from 0 to ${ma}.`,g.USAGE,{code:"invalid_event_limit"});return t}function ba(e){return e instanceof Error&&e.name==="AbortError"}function ka(e,t){let n=e?.trim();if(!n)return{};if(ga.test(n))return{cursor:_a(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new h("Mutation event --since must be an event cursor or ISO timestamp.",g.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function nh(e,t){let n=await fn(e,t);if(n===null){if(!await Zr(e))return{...await eo(e,t),source:"authoritative_history"};n=await fn(e,t)}if(n===null)throw new h("Mutation event index could not be opened after rebuild.",g.GENERIC_FAILURE,{code:"event_index_unavailable"});return{...n,source:"derived_index"}}function rh(e){let t=e??"batch";if(t!=="batch"&&t!=="row")throw new h("Mutation event cursor mode must be batch or row.",g.USAGE,{code:"invalid_event_cursor_mode"});return t}async function oh(e={}){let t=S(e.cwd??process.cwd(),e.pmRoot);if(!await A($(t)))throw new h(`Tracker is not initialized at ${t}. Run pm init first.`,g.NOT_FOUND);let n=wa(e.limit),r=rh(e.cursorMode);if(e.full===!0&&e.provenance===!0)throw new h("Mutation event projections are mutually exclusive. Use --provenance or --full.",g.USAGE);let o=await T(t),i=o.agent_identity.identity_vocabulary,s=Et(o.agent_identity.harness_signals),a=En({provenance:e.provenanceFilter},s),c=Y(e.harness),d=ha(e),{cursor:u,sinceTimestamp:l}=ka(e.since,d),f={...u?{after_ts:u.ts,after_stream_id:u.stream_id,after_stream_offset:u.stream_offset}:l?{since_ts:l}:{},ops:Y(e.type),authors:Y(e.author),harnesses:c,harness_alias_authors:c?Object.entries(i.aliases).filter(([,p])=>c.includes(p)).map(([p])=>p):void 0,agent_instances:Y(e.agentInstance),provenance:[...a].map(([p,b])=>({dimension:p,values:[...b]})),stream_ids:Y(e.item),limit:n},m=await nh(t,f),y=m.events.map(p=>({...r==="row"?{cursor:Ar(p,d)}:{},item_id:p.stream_id,version:p.stream_offset+1,ts:p.entry.ts,author:p.entry.author,type:p.entry.op,...p.entry.message===void 0?{}:{message:p.entry.message},patch_count:p.entry.patch.length,...e.full===!0?{entry:p.entry}:{},...e.provenance===!0?{provenance:xt(p.entry,i,{itemId:p.stream_id,version:p.stream_offset+1})}:{}}));return{events:y,count:y.length,has_more:m.has_more,cursor_mode:r,...m.events.length===0?{}:{next_cursor:Ar(m.events[m.events.length-1],d)},source:m.source,...e.provenanceSummary===!0?{provenance_summary:It(m.events.map(p=>p.entry),i,s)}:{}}}async function*ih(e={}){let t=e.intervalMs??th;if(!Number.isSafeInteger(t)||t<10)throw new h("Mutation event follow interval must be an integer of at least 10ms.",g.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await oh({...e,cursorMode:e.cursorMode??"batch",since:n});if(yield r.next_cursor===void 0&&n!==void 0?{...r,next_cursor:n}:r,r.events.length>0){n=r.next_cursor;continue}try{await Zg(t,void 0,{signal:e.signal})}catch(i){if(ba(i))return;throw i}}}async function*jk(e={}){for await(let t of ih({...e,cursorMode:"row"}))for(let n of t.events)yield n}var Uk={decodeMutationEventCursor:_a,encodeMutationEventCursor:Ar,eventQueryFingerprint:ha,isAbortError:ba,isMutationEventCursorEnvelope:ya,parseMutationEventLimit:wa,resolveMutationEventStart:ka};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="412fc2d2-daee-5d87-82ab-5411a1503087")}catch{}})();function Gk(e,t){let n=t??{};return e.filter(r=>n[r.id]!==r.updated_at).map(r=>r.id).sort((r,o)=>r.localeCompare(o))}export{Eo as a,xo as b,Ge as c,Io as d,Co as e,_h as f,So as g,kn as h,Uh as i,Bh as j,ty as k,ny as l,bt as m,wt as n,Po as o,sy as p,V as q,kt as r,jo as s,vt as t,Et as u,En as v,xt as w,hy as x,xn as y,It as z,Cy as A,zo as B,Ho as C,_c as D,Le as E,Dy as F,Ry as G,Cn as H,ge as I,bc as J,vc as K,Sn as L,Ec as M,Me as N,Ct as O,Tn as P,St as Q,jy as R,Vo as S,a_ as T,ti as U,ni as V,ri as W,oi as X,ii as Y,Nt as Z,ai as _,$e as $,ci as aa,fi as ba,Pt as ca,mi as da,nu as ea,_i as fa,Ut as ga,Un as ha,Bt as ia,wi as ja,ki as ka,Bn as la,We as ma,Ei as na,Kn as oa,zn as pa,Hn as qa,xi as ra,qn as sa,Ci as ta,Si as ua,Di as va,Su as wa,nw as xa,Gk as ya,zu as za,ye as Aa,Kt as Ba,Pi as Ca,zt as Da,Ve as Ea,Jn as Fa,Qn as Ga,Ye as Ha,Ui as Ia,Bi as Ja,Wi as Ka,or as La,Yi as Ma,bw as Na,kw as Oa,Qi as Pa,Zi as Qa,Ew as Ra,Zn as Sa,er as Ta,Wu as Ua,tr as Va,pw as Wa,gw as Xa,hw as Ya,yw as Za,yl as _a,as as $a,rs as ab,os as bb,vl as cb,El as db,xl as eb,Je as fb,nb as gb,rb as hb,ob as ib,Ts as jb,pr as kb,Xt as lb,mm as mb,As as nb,_m as ob,Jt as pb,wm as qb,bm as rb,xm as sb,Im as tb,db as ub,Cm as vb,Ls as wb,ne as xb,Qt as yb,hb as zb,yb as Ab,Zt as Bb,gr as Cb,hr as Db,qm as Eb,Qm as Fb,Zm as Gb,yr as Hb,_r as Ib,tn as Jb,Ks as Kb,Cb as Lb,sp as Mb,up as Nb,qs as Ob,yp as Pb,Ws as Qb,_p as Rb,Ob as Sb,Ys as Tb,Gb as Ub,Kb as Vb,zb as Wb,Hb as Xb,Xs as Yb,wp as Zb,Cp as _b,tt as $b,uk as ac,kr as bc,Dp as cc,Rp as dc,Er as ec,be as fc,Ir as gc,Cr as hc,Sr as ic,Ue as jc,it as kc,nn as lc,lk as mc,Tg as nc,fk as oc,Fg as pc,Ek as qc,xk as rc,Pg as sc,Ik as tc,Ck as uc,Pk as vc,oh as wc,ih as xc,jk as yc,Uk as zc};
13
+ //# sourceMappingURL=chunk-2RDVGYWE.js.map