@unbrained/pm-cli 2026.8.13 → 2026.8.15

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 (194) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +165 -113
  3. package/dist/cli/commander-usage.js +17 -4
  4. package/dist/cli/error-guidance.d.ts +2 -0
  5. package/dist/cli/error-guidance.js +52 -25
  6. package/dist/cli/main.js +40 -3
  7. package/dist/cli/register-mutation.js +4 -2
  8. package/dist/cli/register-operations.js +5 -5
  9. package/dist/cli-bundle/bundle-manifest.json +146 -178
  10. package/dist/cli-bundle/chunks/{chunk-F7FJYGK3.js → chunk-24GAV7XL.js} +2 -2
  11. package/dist/cli-bundle/chunks/chunk-AIM6VT2N.js +13 -0
  12. package/dist/cli-bundle/chunks/chunk-DSWDLTDR.js +197 -0
  13. package/dist/cli-bundle/chunks/{chunk-Q47C67TQ.js → chunk-J42EGKDK.js} +2 -2
  14. package/dist/cli-bundle/chunks/chunk-KIEGUBYQ.js +2 -0
  15. package/dist/cli-bundle/chunks/{chunk-3ZMOWAFM.js → chunk-KLKYLSDX.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-QGTUPEU5.js → chunk-LJHOAVGI.js} +59 -59
  17. package/dist/cli-bundle/chunks/chunk-MEM2ZS3O.js +5 -0
  18. package/dist/cli-bundle/chunks/chunk-QHPCJWEJ.js +35 -0
  19. package/dist/cli-bundle/chunks/{chunk-YLBAPY22.js → chunk-WLPDLNEZ.js} +2 -2
  20. package/dist/cli-bundle/chunks/{register-list-query-4HIZ7EA3.js → register-list-query-CT3LFDDN.js} +2 -2
  21. package/dist/cli-bundle/chunks/{register-mutation-W64FZ5HN.js → register-mutation-NWEVA5YS.js} +3 -3
  22. package/dist/cli-bundle/chunks/register-operations-AHIAG5KM.js +2 -0
  23. package/dist/cli-bundle/chunks/{register-setup-634MFRXU.js → register-setup-ZJZFVAKE.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/chunk-4X57RE4U.js +2 -0
  25. package/dist/cli-bundle/focused-chunks/chunk-6XKF3PGV.js +18 -0
  26. package/dist/cli-bundle/focused-chunks/chunk-7NJ4QYQ2.js +2 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-I75MANL7.js → chunk-EXZA4257.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/chunk-ITAUHSO6.js +50 -0
  29. package/dist/cli-bundle/focused-chunks/{chunk-OOYYKQWX.js → chunk-KLVUMNXJ.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/{chunk-2RI2FESN.js → chunk-KT5XMYSX.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/{chunk-E3AVJ655.js → chunk-KTKH4IMG.js} +2 -2
  32. package/dist/cli-bundle/focused-chunks/chunk-M67F5AIN.js +8 -0
  33. package/dist/cli-bundle/focused-chunks/{chunk-3DJSGWVB.js → chunk-NSPYTG6G.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/chunk-OKA6ELTL.js +2 -0
  35. package/dist/cli-bundle/focused-chunks/chunk-PUISBOPP.js +2 -0
  36. package/dist/cli-bundle/focused-chunks/chunk-QLNMCESQ.js +155 -0
  37. package/dist/cli-bundle/focused-chunks/{chunk-IIS2FRKL.js → chunk-SLKC6QLJ.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/chunk-U65UC4G3.js +2 -0
  39. package/dist/cli-bundle/focused-chunks/chunk-WTSER4WJ.js +16 -0
  40. package/dist/cli-bundle/focused-chunks/{chunk-2JP7W7GO.js → chunk-ZMFXQ7VF.js} +2 -2
  41. package/dist/cli-bundle/main.js +13 -13
  42. package/dist/cli-bundle/sdk-authoring.js +1 -1
  43. package/dist/cli-bundle/sdk-contracts.js +1 -1
  44. package/dist/cli-bundle/sdk-core.js +41 -41
  45. package/dist/cli-bundle/sdk-governance.js +1 -1
  46. package/dist/cli-bundle/sdk-graph.js +1 -1
  47. package/dist/cli-bundle/sdk-merge.js +110 -1
  48. package/dist/cli-bundle/sdk-query.js +1 -1
  49. package/dist/cli-bundle/sdk-runtime.js +1 -1
  50. package/dist/cli-bundle/sdk-testing.js +1 -1
  51. package/dist/cli-bundle/sdk.js +2 -2
  52. package/dist/core/diagnostics/remediation.js +7 -2
  53. package/dist/core/extensions/reserved-host-flags.js +3 -2
  54. package/dist/core/history/drift-scan.d.ts +6 -0
  55. package/dist/core/history/drift-scan.js +74 -50
  56. package/dist/core/history/replay.d.ts +14 -1
  57. package/dist/core/history/replay.js +45 -8
  58. package/dist/core/history/workspace-history.d.ts +59 -0
  59. package/dist/core/history/workspace-history.js +197 -10
  60. package/dist/core/output/output.d.ts +2 -0
  61. package/dist/core/output/output.js +13 -4
  62. package/dist/core/shared/command-types.d.ts +2 -0
  63. package/dist/core/shared/command-types.js +2 -2
  64. package/dist/core/shared/errors.d.ts +12 -0
  65. package/dist/core/shared/errors.js +2 -2
  66. package/dist/mcp/tool-definitions.js +9 -5
  67. package/dist/sdk/agent/refusal-reachability.d.ts +61 -0
  68. package/dist/sdk/agent/refusal-reachability.js +91 -3
  69. package/dist/sdk/cli-bootstrap.d.ts +2 -0
  70. package/dist/sdk/cli-bootstrap.js +7 -2
  71. package/dist/sdk/cli-contracts/completeness.js +3 -2
  72. package/dist/sdk/cli-contracts/flag-contracts.js +3 -2
  73. package/dist/sdk/cli-contracts/registration-helpers.js +3 -2
  74. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +11 -1
  75. package/dist/sdk/cli-contracts/runtime-contracts.js +176 -65
  76. package/dist/sdk/cli-contracts/tool-parameter-tables.js +15 -5
  77. package/dist/sdk/cli-contracts/tool-schema.js +10 -3
  78. package/dist/sdk/cli-program.js +4 -3
  79. package/dist/sdk/context-relevance.js +12 -4
  80. package/dist/sdk/core.d.ts +2 -2
  81. package/dist/sdk/core.js +3 -3
  82. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +26 -2
  83. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +50 -26
  84. package/dist/sdk/governance/assurance-action.d.ts +7 -1
  85. package/dist/sdk/governance/assurance-action.js +7 -6
  86. package/dist/sdk/governance/assurance-mutation-error.d.ts +42 -1
  87. package/dist/sdk/governance/assurance-mutation-error.js +27 -3
  88. package/dist/sdk/governance/assurance-runtime.js +12 -11
  89. package/dist/sdk/governance/assurance.d.ts +9 -0
  90. package/dist/sdk/governance/assurance.js +82 -16
  91. package/dist/sdk/governance/extension-host-version.d.ts +25 -0
  92. package/dist/sdk/governance/extension-host-version.js +105 -0
  93. package/dist/sdk/governance/health.d.ts +32 -1
  94. package/dist/sdk/governance/health.js +132 -28
  95. package/dist/sdk/governance/provenance-health.d.ts +27 -0
  96. package/dist/sdk/governance/provenance-health.js +95 -3
  97. package/dist/sdk/governance/validate-history-drift.d.ts +7 -0
  98. package/dist/sdk/governance/validate-history-drift.js +68 -0
  99. package/dist/sdk/governance/validate.js +9 -52
  100. package/dist/sdk/governance.d.ts +6 -0
  101. package/dist/sdk/governance.js +8 -2
  102. package/dist/sdk/graph/assembly.d.ts +23 -0
  103. package/dist/sdk/graph/assembly.js +54 -2
  104. package/dist/sdk/graph/durable-cache.js +50 -20
  105. package/dist/sdk/graph/governance-contracts.d.ts +1 -1
  106. package/dist/sdk/graph/governance-contracts.js +4 -2
  107. package/dist/sdk/graph/governance.d.ts +21 -1
  108. package/dist/sdk/graph/governance.js +94 -32
  109. package/dist/sdk/graph/index.d.ts +2 -2
  110. package/dist/sdk/graph/index.js +4 -4
  111. package/dist/sdk/graph/mutation-advisory.js +15 -7
  112. package/dist/sdk/graph/remediation.js +12 -2
  113. package/dist/sdk/history-read.d.ts +8 -0
  114. package/dist/sdk/history-read.js +2 -2
  115. package/dist/sdk/history-repair.d.ts +13 -1
  116. package/dist/sdk/history-repair.js +62 -18
  117. package/dist/sdk/index.d.ts +1 -1
  118. package/dist/sdk/index.js +3 -3
  119. package/dist/sdk/linked-artifacts.js +16 -5
  120. package/dist/sdk/pagination.d.ts +15 -0
  121. package/dist/sdk/pagination.js +9 -5
  122. package/dist/sdk/query/context.d.ts +5 -1
  123. package/dist/sdk/query/context.js +14 -5
  124. package/dist/sdk/query/history.js +20 -3
  125. package/dist/sdk/read-output/continuation.d.ts +11 -0
  126. package/dist/sdk/read-output/continuation.js +132 -0
  127. package/dist/sdk/read-output-budget.d.ts +3 -1
  128. package/dist/sdk/read-output-budget.js +24 -13
  129. package/dist/sdk/read-output-contracts.d.ts +127 -7
  130. package/dist/sdk/read-output-contracts.js +381 -35
  131. package/dist/sdk/read-output-rows.d.ts +13 -0
  132. package/dist/sdk/read-output-rows.js +60 -2
  133. package/dist/sdk/runtime-input.js +4 -2
  134. package/dist/sdk/runtime-primitives.d.ts +1 -1
  135. package/dist/sdk/runtime-primitives.js +3 -3
  136. package/dist/sdk/runtime.js +5 -3
  137. package/docs/ASSURANCE.md +68 -2
  138. package/docs/COMMANDS.md +39 -4
  139. package/docs/READ_OUTPUT_CONTRACTS.md +85 -8
  140. package/docs/RELATIONSHIP_GRAPH.md +20 -5
  141. package/docs/RELEASING.md +42 -5
  142. package/docs/SDK.md +12 -5
  143. package/docs/SDK_CONTEXT_INTEGRITY.md +94 -1
  144. package/docs/TESTING.md +23 -1
  145. package/docs/performance/sdk-entrypoint-import-costs.md +20 -13
  146. package/marketplace.json +2 -2
  147. package/package.json +7 -7
  148. package/packages/pm-beads/extensions/beads/index.ts +1 -0
  149. package/packages/pm-beads/package.json +1 -1
  150. package/packages/pm-calendar/extensions/calendar/index.ts +1 -0
  151. package/packages/pm-calendar/package.json +1 -1
  152. package/packages/pm-command-kit/package.json +1 -1
  153. package/packages/pm-digital-twin/extensions/digital-twin/index.ts +7 -0
  154. package/packages/pm-digital-twin/package.json +1 -1
  155. package/packages/pm-governance-audit/extensions/governance-audit/index.ts +4 -0
  156. package/packages/pm-governance-audit/package.json +1 -1
  157. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +5 -0
  158. package/packages/pm-guide-shell/package.json +1 -1
  159. package/packages/pm-kanban/package.json +1 -1
  160. package/packages/pm-lifecycle-hooks/package.json +1 -1
  161. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +6 -0
  162. package/packages/pm-linked-test-adapters/package.json +1 -1
  163. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -0
  164. package/packages/pm-search-advanced/package.json +1 -1
  165. package/packages/pm-templates/extensions/templates/index.ts +4 -0
  166. package/packages/pm-templates/package.json +1 -1
  167. package/packages/pm-todos/extensions/todos/index.ts +2 -0
  168. package/packages/pm-todos/package.json +1 -1
  169. package/packages/pm-vcs/extensions/vcs/index.ts +7 -0
  170. package/packages/pm-vcs/package.json +1 -1
  171. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  172. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  173. package/scripts/bundle-cli.mjs +17 -4
  174. package/sdk/public-surface.json +1283 -157
  175. package/dist/cli-bundle/chunks/chunk-DEDU3DG7.js +0 -196
  176. package/dist/cli-bundle/chunks/chunk-DL5M5J3V.js +0 -13
  177. package/dist/cli-bundle/chunks/chunk-HIUZVCMN.js +0 -5
  178. package/dist/cli-bundle/chunks/chunk-IMGIN7R6.js +0 -2
  179. package/dist/cli-bundle/chunks/chunk-TF3TPKPR.js +0 -34
  180. package/dist/cli-bundle/chunks/register-operations-C44ET7R5.js +0 -2
  181. package/dist/cli-bundle/focused-chunks/chunk-27N23W6M.js +0 -31
  182. package/dist/cli-bundle/focused-chunks/chunk-3BNVU6LC.js +0 -8
  183. package/dist/cli-bundle/focused-chunks/chunk-6MLIRBLV.js +0 -5
  184. package/dist/cli-bundle/focused-chunks/chunk-6XYLENDV.js +0 -155
  185. package/dist/cli-bundle/focused-chunks/chunk-CP4K4WFS.js +0 -2
  186. package/dist/cli-bundle/focused-chunks/chunk-EBTNSFYE.js +0 -2
  187. package/dist/cli-bundle/focused-chunks/chunk-HC2OL2H2.js +0 -2
  188. package/dist/cli-bundle/focused-chunks/chunk-NFHFZH2Z.js +0 -2
  189. package/dist/cli-bundle/focused-chunks/chunk-OGC4XSBC.js +0 -17
  190. package/dist/cli-bundle/focused-chunks/chunk-PKPOZXLL.js +0 -2
  191. package/dist/cli-bundle/focused-chunks/chunk-QDZUABWL.js +0 -2
  192. package/dist/cli-bundle/focused-chunks/chunk-QQX5TDFT.js +0 -16
  193. package/dist/cli-bundle/focused-chunks/chunk-TEZIXMTH.js +0 -2
  194. package/dist/cli-bundle/focused-chunks/chunk-WEH6NSL6.js +0 -18
@@ -0,0 +1,13 @@
1
+ import{$ as Lr,$c as ct,Ad as zr,B as Rr,Bc as dn,Bd as Hr,Bh as le,C as p,Ca as an,Cd as qr,Ch as fe,Cj as go,Da as st,Dc as $r,Dh as mo,E as g,Ec as Pr,Eh as Z,Ff as mn,Fh as po,G as j,Gd as Ee,Ge as fn,Hb as xe,Ja as O,Jc as jr,Jf as Se,Ka as at,Ld as Wr,Mf as Jr,Of as Qr,Og as io,Pf as Zr,Pg as so,Q as G,Ra as S,Rf as je,S as E,Sd as pe,T as Ar,Td as Ie,Tf as ue,Tg as gn,U as ie,Ua as $,Ud as Vr,Uf as pn,Uk as ho,Va as Nr,Vd as un,Vf as eo,Xa as cn,Xe as lt,Yf as to,Zc as z,_b as Or,_f as ft,ba as Fr,bg as no,c as A,ce as dt,d as it,dh as pt,e as Sr,ee as Yr,eh as gt,f as oe,fg as ro,g as K,gg as Te,h as Tr,ie as ln,je as ut,jh as ao,kd as F,ke as de,ld as C,le as se,md as N,mh as T,nb as W,oe as Xr,pe as Ce,rd as Ur,sb as Mr,sc as L,sd as Br,sg as oo,sh as co,tg as mt,wh as uo,x as Dr,xa as ve,xh as lo,yd as Gr,yh as De,zd as Kr,zh as fo}from"./chunk-DSWDLTDR.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 _a(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new g(`History for this item contains invalid timestamp at entry ${o+1}.`,p.GENERIC_FAILURE);i<=t&&(n=o)}),n}function wa(e){let t=e[0]?.ts??null,n=e.at(-1)?.ts??null,r={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:t,last_timestamp:n}};return n!==null&&(r.examples=["1",String(e.length),n],r.valid_range.first_version=1,r.valid_range.last_version=e.length),{guidance:r,lastTimestamp:n}}function yo(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 _o(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=wa(t);if(!r)throw new g(`Missing ${o} target. Use a timestamp or version number.`,p.USAGE,s);if(/^\d+$/.test(r)){let u=Number(r);if(!Number.isSafeInteger(u)||u<1||u>t.length)throw new g(`${i} version must be between 1 and ${t.length} for this item.`,p.USAGE,s);return{kind:"version",raw:r,historyIndex:u-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new g(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,p.USAGE,s);let d=_a(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new g(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,p.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function Ue(e,t,n,r){let o=to(e,t);if(o.ok)return o.document;let i=yo(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 g(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,p.GENERIC_FAILURE)}function wo(e,t){let n=structuredClone(je);for(let r=0;r<=t;r+=1){let o=e[r];if(!o)throw new g(`History target entry ${r+1} does not exist.`,p.USAGE);if(ue(n)!==o.before_hash)throw new g(`History hash mismatch before replay at entry ${r+1}.`,p.GENERIC_FAILURE);if(n=Ue(n,o.patch,r+1,o.op),ue(n)!==o.after_hash)throw new g(`History hash mismatch after replay at entry ${r+1}.`,p.GENERIC_FAILURE)}return n}function bo(e,t){if(Object.keys(e.metadata).length>0)return e;throw new g(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,p.USAGE)}import hn from"node:fs/promises";import ba 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 ka(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=ao(e.settings);if(n.ownership_enforcement==="strict")throw new g(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,p.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function va(e){let t=await oe(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new g(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,p.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 g(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,p.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function oh(e){let t=e.writeHistoryRaw??K;try{await t(e.historyPath,e.nextHistoryRaw),await Se(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await ba.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 ko(e){let t=[...ka({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 va({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 yn(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function vo(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function xo(e){let t=e.trim();if(t.length===0)throw new g("history-redact --regex requires a non-empty pattern.",p.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(n=t.slice(1,o),r=vo(t.slice(o+1)))}if(n.length===0)throw new g("history-redact --regex cannot use an empty pattern.",p.USAGE);try{new RegExp(n,r)}catch{throw new g("Invalid --regex value; provide a valid JavaScript regular expression.",p.USAGE)}return{kind:"regex",source:n,flags:r}}function Eo(e,t){let n=[...new Set(yn(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),r=[...new Set(yn(t).map(i=>i.trim()))].filter(i=>i.length>0).map(xo),o=[...n,...r];if(o.length===0)throw new g("history-redact requires at least one matcher via --literal or --regex.",p.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 Io(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 Co(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 _n(e,t,n){let r=e,o=0;for(let i of t){let s=i.kind==="literal"?Io(r,i.value,n):Co(r,i,n);r=s.value,o+=s.replacements}return{value:r,replacements:o}}function ht(e,t,n){if(typeof e=="string")return _n(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(i=>{let s=ht(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=ht(s,t,n);r+=a.replacements,o[i]=a.value}return{value:o,replacements:r}}return{value:e,replacements:0}}function xa(e){let t=structuredClone(je),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=Ue(t,i.patch,o+1,i.op),ue(t)!==i.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function Ea(e,t,n){let r=0,o=!1,i=e.message;if(typeof e.message=="string"){let a=_n(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=ht(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 Ia(e,t,n){let r=structuredClone(je),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=Ea(e[a],t,n);i+=c.replacements,c.changed&&(o+=1);let d=ue(r);r=Ue(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 So(e){return Object.keys(e.metadata).length>0}async function Ca(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 Sa(e){if(!So(e.finalDocument))return{raw:null,path:null,document:null};let t=Br(pn(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new g("history-redact would change the item id; narrow your patterns.",p.USAGE);return{document:t,path:Nr(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Ur(t,{format:"toon",schema:e.settings.schema})}}function Ta(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 Da(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??pn(e.rewritten.finalDocument);return t.push(Zr({nowIso:G(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function Ra(e){let t=[];return ko({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 lo(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 hn.rm(e.currentItem.path,{force:!0}),await K(e.subject.historyPath,no(e.rewrittenEntries))}catch(c){try{await Aa(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 fo({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 La(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function Aa(e,t,n,r){t===null?await hn.rm(e,{force:!0}):await K(e,t);for(let o of n){let i=r.get(o);i===void 0?await hn.rm(o,{force:!0}):await K(o,i)}}async function La(e,t){let n=[],r=new Set(t.filter(o=>o!==null));for(let o of r)n.push(...await dn({path:o,scope:"project",op:"history_redact"}));return n.push(...await dn({path:e,scope:"project",op:"history_redact:history"})),n}async function wn(e,t,n,r){let o=await le(e,t,n.id_prefix,n.item_format,r);if(o)return{id:o.id,historyPath:cn(e,o.id),located:o};let i=mt(t,n.id_prefix),s=oo(t),a=i===s?[i]:[i,s];for(let c of a){let d=cn(e,c);if(await A(d))return{id:c,historyPath:d,located:null}}throw new g(`Item ${t} not found`,p.NOT_FOUND)}async function Ch(e,t,n){let r=S(process.cwd(),n.path);if(!await A($(r)))throw new g(`Tracker is not initialized at ${r}. Run pm init first.`,p.NOT_FOUND);let o=await T(r),i=O(o,L()),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=Eo(t.literal,t.regex),u=await wn(r,e,o,i.type_to_folder);if(!await A(u.historyPath))throw new g(`No history stream exists for ${u.id}.`,p.NOT_FOUND);let l=await oe(u.historyPath),f=await Ie(u.historyPath,u.id);if(f.length===0)throw new g(`No history entries exist for ${u.id}; nothing to redact.`,p.USAGE);let m=xa(f),h=Ia(f,d,c),y=m.hashMismatchesBefore+m.hashMismatchesAfter,b=!!t.dryRun,w=h.replacements>0,_=[];y>0&&_.push(`history_redact_preexisting_hash_mismatches:${y}`),w||_.push("history_redact_no_matches");let k=await Ca(u,o),x=Sa({pmRoot:r,subject:u,settings:o,typeToFolder:i.type_to_folder,finalDocument:h.finalDocument}),I=(k.path??null)!==(x.path??null)||(k.raw??null)!==(x.raw??null),P=pe(t.author,o.author_default),D=Ta(t,h),{rewrittenEntries:U,auditEntryAdded:ce}=Da({rewritten:h,dryRun:b,changed:w,nextItemDocument:x.document,author:P,message:D}),B=ft(U);if(!B.ok)throw new g(`history-redact produced an invalid rewritten chain (${B.errors.join(", ")}).`,p.GENERIC_FAILURE);return!b&&w&&_.push(...await Ra({pmRoot:r,subject:u,settings:o,typeRegistry:i,historyRawBeforeLock:l,currentItem:k,nextItem:x,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:h.entriesChanged,replacements:h.replacements,hash_mismatches_before:m.hashMismatchesBefore,hash_mismatches_after:m.hashMismatchesAfter,preexisting_hash_mismatches:y,audit_entry_added:ce,verify_ok:B.ok,verify_errors:B.errors},item:{existed_before:k.path!==null,exists_after:x.path!==null,path_before:k.path,path_after:x.path,changed:I},warnings:[...new Set(_)].sort((M,q)=>M.localeCompare(q)),generated_at:G()}}var Sh={applyLiteralRule:Io,applyRegexRule:Co,buildRedactionRules:Eo,hasItemMetadata:So,normalizeRegexFlags:vo,normalizeStringArrayInput:yn,parseRegexRule:xo,redactStringValue:_n,redactUnknownValue:ht};(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 Bh(e,t){let n=ft(e),r=e.length>0?e[e.length-1].after_hash:Qr(),o=t===void 0?void 0:Jr(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 Gh(e,t,n={}){let r=S(n.cwd??process.cwd(),n.pmRoot);if(!await A($(r)))throw new g(`Tracker is not initialized at ${r}. Run pm init first.`,p.NOT_FOUND);let o=await T(r),i=O(o,L()),s=await wn(r,e,o,i.type_to_folder),a=await Ie(s.historyPath,s.id);if(a.length===0)throw new g(`No history exists for ${s.id}; point-in-time reads are unavailable.`,p.NOT_FOUND);let c=_o(t,a),d=bo(wo(a,c.historyIndex),c),u=eo(d,{schema:o.schema});if(u.metadata.id!==s.id)throw new g(`History target resolved to item ${u.metadata.id}, expected ${s.id}.`,p.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]="3a33af50-3d2c-57bb-884a-4d5394599ba2")}catch{}})();function Fa(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:Ba(r,t,e.parents)}),"continue"):(e.cursorFound=t===o,"skip")}function Na(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:Xr(t.after,o)}}function Be(e,t,n){e.get(t).add(n)}function _t(e){return new Map(e.map(t=>[t,new Set]))}function Do(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function yt(e){if(Array.isArray(e))return e.map(n=>yt(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?yt(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,yt(r)]))}function To(e){return JSON.stringify(yt(e))}function Ma(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 Oa(e,t){let n=new Set,r=[];for(let o of e)n.has(o)||Ma(o,t,n,r);return r}function $a(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 Do(r)}function Ro(e,t){let n=_t(e);for(let[r,o]of t)for(let i of o)Be(n,i,r);return $a(Oa(e,t),n)}function Pa(e,t){let n=_t(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";Be(n,i?r.source:r.target,i?r.target:r.source)}return n}function ja(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 Ua(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 Ba(e,t,n){let r=[t],o=t;for(;o!==e;)o=n.get(o),r.push(o);return r.reverse()}function wt(e,t={}){let n=t.registry??W(),r=[...e.nodes()],o=Pa(e,n),i=ja(r,o),s=i.flat(),a=s.length===r.length,c=a?[]:Ro(r,o).filter(u=>u.length>1||o.get(u[0]).has(u[0])),d=Ua(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 Ao(e,t,n={}){let r=n.direction??"outgoing",o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Na(t,n,r,o),c={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},d=0,u=0,l=!1,f=!1;e:for(let m=0;m<c.queue.length;m+=1){n.signal?.throwIfAborted();let h=c.queue[m];d+=1;let y=e.adjacency(h.id,{direction:r,kinds:n.kinds,signal:n.signal});if(u+=y.meta.inspectedEdges,h.depth>=o){y.value.some(b=>!c.seen.has(b))&&(l=!0);continue}for(let b of y.value)if(Fa(c,b,h,t,a,i)==="truncate"){l=!0,f=!0;break e}}if(!c.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:c.affected,exact:!0,truncated:l,...f?{nextCursor:se(s,c.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:d,inspectedEdges:u}}}function Lo(e){let t=[...e.nodes()],n=_t(t),r=_t(t);for(let c of e.edges())Be(n,c.source,c.target),Be(n,c.target,c.source),Be(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:Do(o),stronglyConnected:Ro(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=>[To(o),o])),r=new Map(t.edges.map(o=>[To(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 g(`${t} must be a non-negative integer`,p.USAGE);return r}function bt(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 g(`${t} filter must be 0..4`,p.USAGE);return r}function Fo(e,t,n="--type"){if(e===void 0)return;let r=at(e,t);if(!r)throw new g(`${n} filter must be one of ${t.types.join("|")}`,p.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 kt={version:1,aliases:{}};function vt(e=[]){let t=new Set(Ee),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let 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 No(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 bn(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 kn(e,t=Ee){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 g(`Provenance predicate must use dimension=value; received "${i.trim()}".`,p.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 g(`Unknown provenance dimension "${a||i.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,p.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new g(`Provenance predicate must use dimension=value; received "${i.trim()}".`,p.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=kt,n={}){let r=bn(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 ny(e,t,n=kt,r=Ee){return vn(t,n,r)(e)}function vn(e,t=kt,n=Ee){let r=No(e.harness),o=No(e.agentInstance),i=kn(e,n);return s=>{let c=bn(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 Et(e,t=kt,n=Ee){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);bn(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 Ga from"node:fs/promises";import $o 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 Ka=20,za=5,Ha=15,qa="-24h";function fy(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 Wa={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 g(`${t} must not be empty`,p.USAGE);return n}function Mo(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new g("Activity time bounds must not be empty",p.USAGE);let o=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return ie(o,new Date(t),n)}function Va(e,t,n){return!(e.ts.length===0&&(t||n)||t&&E(e.ts,t)<0||n&&E(e.ts,n)>=0)}function Oo(e,t){return t===void 0?e:e.slice(0,t)}function Ge(e,t=""){return typeof e=="string"?e:t}function Ya(e,t){return{...t,id:e,ts:Ge(t.ts),author:Ge(t.author,"unknown"),op:Ge(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Ge(t.before_hash),after_hash:Ge(t.after_hash)}}function Xa(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 Ja(e){try{return(await Ga.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Sr(t))return[];throw t}}function Qa(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 Za(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Ha:n==="compact"?Ka:za}function ec(e,t){let n=G(),r=t==="digest",o=Mo(e.to??(r?n:void 0),n,"--to"),i=Mo(e.from??(r?qa:void 0),e.from===void 0&&r?o:n,"--from");if(i&&o&&E(i,o)>=0)throw new g("Activity --from must be before --to",p.USAGE);let s=gn(e.limit);if(e.unbounded===!0&&s!==void 0)throw new g("Activity --unbounded cannot be combined with --limit",p.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:Za(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function tc(e){let t=S(process.cwd(),e.path);if(!await A($(t)))throw new g(`Tracker is not initialized at ${t}. Run pm init first.`,p.NOT_FOUND);return{pmRoot:t,settings:await T(t)}}async function nc(e){let t=O(e.settings,L()),n=await Z(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await ro({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(o=>o.id),commandLabel:"activity"});let r=$o.join(e.pmRoot,"history");return await $r({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(o=>[o.id,{title:o.title,type:o.type,status:o.status}]))}}function rc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Va(t,n.from,n.to)}async function oc(e,t){let n=[];for(let r of await Ja(e)){let o=r.slice(0,-6);if(t.id&&o!==t.id)continue;let i=await Ie($o.join(e,r),o);for(let s of i){let a=Ya(o,s);rc(s,a,t)&&n.push(a)}}return n}function ic(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function sc(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 ac(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,E(r.ts,o.firstTs)<0&&(o.firstTs=r.ts),E(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:sc(o.operations)}}).sort((r,o)=>E(o.last_ts,r.last_ts)||r.id.localeCompare(o.id))}function cc(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 dc(e,t,n,r,o){if(e==="digest"){let s=ac(t,r),a=Oo(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let i=Oo(t,n);return e==="compact"?{rows:{compact_activity:ic(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 Po(e,t){let n=await tc(t),r=Qa(e),o=ec(e,r),i=await nc(n),s=vt(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=vn({harness:o.harness,agentInstance:o.agentInstance,provenance:o.provenance},a,s),d=Xa(await oc(i.historyDir,o)).filter(c),u=dc(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:Wa[r]},omission_receipt:Yr("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:cc(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:Et(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 jo="global",uc="external";function Re(e){let t=e?.trim().toLowerCase();return t===jo||t===uc}function gy(e){let t=e?.trim();if(t)return Re(t)?jo:t}function hy(e,t,n){let r=e.trim();return Re(n)?r:mt(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 Le(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function En(e){let t=Le(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 Ae(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function lc(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=Le(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 fc(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 lc(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=Ae(r.holder_id,o.holder_id);if(i!==0)return i;let s=Ae(r.target_id,o.target_id);return s!==0?s:Ae(r.kind,o.kind)})}function mc(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=Le(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 pc(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=Le(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=mc(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=Ae(o.holder_id,i.holder_id);if(s!==0)return s;let a=Ae(o.target_id,i.target_id);return a!==0?a:Ae(o.dependency_kind,i.dependency_kind)})}function In(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=Le(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;Re(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 gc(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 hc(e){let t=new Map;for(let n of e)for(let r of n.dependencies??[]){if(typeof r!="object"||r===null||!Re(r.source_kind))continue;let o=Le(r.id);o&&!t.has(o.toLowerCase())&&t.set(o.toLowerCase(),o)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function yc(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=In(o,t),a=gc(s);for(let f of a)i.set(f.toLowerCase(),f);let c=hc(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=En(f.parent),h=En(f.blocked_by),y=(f.dependencies??[]).flatMap(b=>{if(typeof b!="object"||b===null)return[];let w=b,_=En(w.id);return _?[{id:Re(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())}:{},...h?{blocked_by:i.get(h.toLowerCase())}:{},dependencies:y}});return{graph:Mr.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:fc(o,t),orderingContradictions:pc(o,t,r),legacyAliasCounts:yc(o,r)}}import{createHash as _c}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 wc=64,bc=8;function kc(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 It(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=>kc(i,t)).sort(),o=n.list().map(i=>xe(i)).sort();return _c("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Uo(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Cn=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Uo("maxResultsPerWorkspace",t.maxResultsPerWorkspace,wc),this.#n=Uo("maxWorkspaces",t.maxWorkspaces,bc)}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()}},Bo=new Cn;function Ct(){return Bo}function Iy(){Bo.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 vc=["prerequisite","dependent","ancestor","descendant","provenance","related"],xc=new TextEncoder;function Sn(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 St(e){return Math.max(1,Math.ceil(xc.encode(JSON.stringify(e)).byteLength/4))}function Tn(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 Ec(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Tn(i,n,r));return[...new Set(o)].sort()}function Ic(e){return vc.find(t=>e.includes(t))}function Cc(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(h=>!s.has(h.id))&&(u=!0);continue}for(let{id:h,edge:y}of m.value){if(s.has(h))continue;s.add(h);let b={id:h,distance:f.distance+1,via:f.id,role:Tn(y,h,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 Sc(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[Tn(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function Tc(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Ec(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Ic(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=St(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 Dc(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=St(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Go(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Sn(r.nodeLimit,20,"nodeLimit"),i=Sn(r.edgeLimit,40,"edgeLimit"),s=Sn(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=Cc(e,t,a,r),{rootEdges:h,...y}=Sc(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=St(l)+St(f);if(k>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let x=Tc({candidates:_,details:c,rootEdges:h,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:k}),{nodes:I}=x,P=new Set([t,...I.map(({id:Q})=>Q)]),D=Dc({graph:e,included:P,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:x.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,be={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...y,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: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,...M&&q?{nextCursor:se(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 Rc=["tree","graph","context"],Ac=["none","repeated"],Lc=["outgoing","incoming","both"],Fc=32,Nc=200,Mc=400,Oc=16e3;function $c(e){let t=e?.trim().toLowerCase()??"tree";if(Rc.includes(t))return t;throw new g(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,p.USAGE)}function ee(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new g(`Invalid --${t} value "${e}". Use a positive integer.`,p.USAGE);return n}function Tt(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new g(`Invalid --max-depth value "${e}". Use a non-negative integer.`,p.USAGE);return t}function Pc(e){let t=e?.trim().toLowerCase()??"none";if(Ac.includes(t))return t;throw new g(`Invalid --collapse value "${e}". Use "none" or "repeated".`,p.USAGE)}function Rn(e){let t=e?.trim().toLowerCase()??"both";if(Lc.includes(t))return t;throw new g(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,p.USAGE)}function An(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 g(`Invalid --kind value "${o}". Registered kinds: ${s}.`,p.USAGE)}r.add(i.kind)}return[...r].sort()}function jc(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 Uc(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:jc(e.dependencies)}}function Bc(e){return lt(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Gc(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(zo(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Kc(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 zo(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+=Bc(l),Kc(l,u,d,r,o,i,s,a))return l;o==="repeated"&&i.add(d);let f=new Set(n);return f.add(d),Gc(l,u,t,f,r,o,i,s,a),l}function Ko(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 zc(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Ko(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,Ko(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 Ho(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 Hc(e,t=W()){let n=Tt(e.maxDepth),r=ee(e.nodeLimit,"node-limit"),o=ee(e.edgeLimit,"edge-limit"),i=ee(e.tokenBudget,"token-budget"),s=An(e.kind,t);return{direction:Rn(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 qc(e,t,n,r){return Go(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function Dn(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Wc(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 Dn(l,"file",a.map(f=>f.path),3),Dn(l,"test",c.map(f=>f.command??f.path),2),Dn(l,"doc",d.map(f=>f.path),2),l}function Vc(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 Yc(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=lt(new TextEncoder().encode(mn(ln("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function Xc(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Jc(e){try{return qc(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Xc(t))return e.smallestResult;throw t}}function Qc(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 h=Jc({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:o,smallestResult:m});if("format"in h)return h;let y=h;f??=y.meta.tokenBudget,l??=f;let b=Vc({canonicalId:n,context:y,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(m=b,i||(y.meta.tokenBudget=f,y.meta.usedTokens=qo(Ne(b,!1),s,k=>{y.meta.usedTokens=k}),y.meta.usedTokens<=f))return b;if(u>0){u-=1;continue}let w=l,_=w*f/y.meta.usedTokens;l=Math.min(w-1,Math.max(1,Math.floor(_*.9)))}}function Zc(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Hc(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(y=>t.missingIdSet.has(y.toLowerCase())),u=new Set(d.map(y=>y.toLowerCase())),l=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(y=>l.require(y).kind)):void 0,m=new Set([n,...c.value]),h=[...t.dangling.active,...t.dangling.legacy_terminal].filter(y=>Yc({row:y,missingReachableSet:u,packetIds:m,filteredKinds:f,registry:l}));return Qc({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:h})}function ed(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 td(e,t,n,r,o,i,s){let a=o??Fc,c=ee(n.nodeLimit,"node-limit")??Nc,d=ee(n.edgeLimit,"edge-limit")??Mc,u=ee(n.tokenBudget,"token-budget")??Oc,l={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=zo(e,r,new Set,a,t==="graph"?"repeated":i,new Set,l),m=Ho(e,r,void 0),h;for(;;){let y=zc(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-y.nodes.length),omitted_edge_count:Math.max(0,m.edge_count-y.edges.length)},w={id:e,format:t,node_count:y.nodes.length,edge_count:y.edges.length,edge_basis:"deduplicated_directed",missing_count:y.missing_ids.length,...b?{truncation:b}:{}};if(h=t==="tree"?{...w,tree:f}:{...w,graph:y},(h.truncation===void 0?lt(new TextEncoder().encode(mn(ln("deps",Ne(h,!1)),s)).byteLength):qo(Ne(h,!1),s,k=>{h.truncation.estimated_tokens=k}))<=u)return h;if(!ed(f))return l.reasons.add("token_budget"),h;l.reasons.add("token_budget")}}function Ne(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 Wy(e,t,n){let r=S(process.cwd(),n.path);if(!await A($(r)))throw new g(`Tracker is not initialized at ${r}. Run pm init first.`,p.NOT_FOUND);let o=$c(t.format),i=Tt(t.maxDepth),s=Pc(t.collapse);dt(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await T(r),d=O(c,L()),u=await Z(r,c.item_format,d.type_to_folder,void 0,c.schema),l=z(c.schema),f=new Map(u.map(h=>[h.id.trim().toLowerCase(),Uc(h)])),m=In(u,h=>N(h,l));for(let h of[...m.active,...m.legacy_terminal]){let y=f.get(h.holder_id.trim().toLowerCase()),b=h.kind.trim().toLowerCase();y&&!y.dependencies.some(w=>w.id.trim().toLowerCase()===h.target_id.trim().toLowerCase()&&w.kind===b)&&y.dependencies.push({id:h.target_id,kind:b})}if(!f.has(e.trim().toLowerCase()))throw new g(`Item ${e} not found`,p.NOT_FOUND);if(o==="context"){let h=f.get(e.trim().toLowerCase()).id,y=a?[]:await Wc(r,h,c,d.type_to_folder),b=k=>N(k,l),w=ge(),_=Ct().lookup(r,It(u,b,w),()=>Fe(u,b,w));return Ne(Zc({assembly:_.assembly,canonicalId:h,options:t,rootEvidence:y,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,_.assembly.legacyAliasCounts)}return a?Ne({id:e,format:o,...Ho(e,f,i)},!0,Object.fromEntries(Object.entries(Fe(u,h=>N(h,l)).legacyAliasCounts))):Ne(td(e,o,t,f,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Fe(u,h=>N(h,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 nd=5,rd=1e4,od=8;function Ln(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Dt(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function Ke(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function Rt(e,t){let n=Ke(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function id(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 sd(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 ad(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 At(e,t,n,r,o){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let i=id(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 h=sd(e,m.id,i,r,o);if(l+=h.inspectedEdges,ad(h,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 Wo(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Vo(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 cd(e,t,n,r,o,i,s){for(let a of Vo(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 Yo(e,t,n={}){return At(e,t,n,"hierarchy",(r,o)=>Dt(r.edge,o)===r.id)}function Xo(e,t,n={}){return At(e,t,n,"hierarchy",(r,o,i)=>Dt(r.edge,o)===i)}function Jo(e,t,n={}){return At(e,t,n,"ordering",(r,o)=>Ke(r.edge,o)===r.id)}function Qo(e,t,n={}){return At(e,t,n,"ordering",(r,o,i)=>Ke(r.edge,o)===i)}function dd(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){Vo(e,m,r,a,c).length>0&&(u=!0);continue}if(cd(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 Zo(e,t,n,r={}){Wo(e,t),Wo(e,n);let o=r.maxPaths??nd,i=r.maxVisitedPaths??rd,s=r.maxDepth??od;Ln("maxPaths",o),Ln("maxVisitedPaths",i),Ln("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}}:dd(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 ud=16,ld=2,fd=8;function Lt(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 md(e,t){let n=new Map;Ft(e,t,r=>{ei(n,r.source,r.target),ei(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function ei(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function pd(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 gd(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 ti(e,t={}){let n=t.maxIterations??ud,r=t.minSize??ld;Lt("maxIterations",n),Lt("minSize",r);let o=md(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=pd(f,s);m!==s.get(l)&&(s.set(l,m),c=!1)}}return{value:{communities:gd(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function Nt(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Mt(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function Ot(e,t){return(t.hierarchy?Dt(e,t):e.source===Ke(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function hd(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(!Nt(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);r.add(Mt(i))}return r}function yd(e,t){let n=e.registry(),r=new Map;for(let o of e.edges()){let i=n.require(o.kind);if(!Nt(i))continue;let s=Mt(i);if(t!==void 0&&!t.has(s))continue;let a=Ot(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 _d(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function wd(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 bd(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 wd(r,t.from,n.id,s);o.push({id:s,depth:n.depth+1})}}function kd(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=bd(e,t,a,o,i,r);if(c!==void 0)return c}}function Me(e,t={}){let n=t.maxDepth??fd;Lt("maxDepth",n),t.limit!==void 0&&Lt("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,o=hd(e,t.kinds),i=yd(e,o),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let u=i.get(d),l=_d(u);for(let f of u.records){t.signal?.throwIfAborted();let m=kd(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 vd(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 xd(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,vd(u,l,f.value,o,a))}return{order:i,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function Ed(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 Id(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 Cd(e,t,n){let r;for(let o of[...e].sort())t.has(o)&&(r=r===void 0?o:Id(r,o,t,n));return r}function Sd(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=Cd(e.predecessors.get(a),i,r);c!==void 0&&i.get(a)!==c&&(i.set(a,c),s=!0)}}return i}function ni(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=xd(e,t,n),o=Ed(r,t),i=new Map(o.map((d,u)=>[d,u])),s=Sd(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 ri(e){return Math.round(e*1e6)/1e6}function oi(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function ii(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 Td(e,t){let n=new Map,r=new Map;return Ft(e,t,(o,i)=>{if(!i.ordering)return;let{predecessor:s,successor:a}=Rt(o,i);oi(r,s,a),oi(n,a,s)}),{incoming:n,outgoing:r}}function Dd(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 h=i.get(m);h===void 0?i.set(m,[l]):h.push(l)}}return{stack:s,sigma:o,predecessors:i,reachableCount:c,distanceSum:d}}function Rd(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 Ad(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function Ld(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:ri((r.get(e)??0)/2),closeness:ri(o.get(e))}}function si(e,t={}){let n=ii(e,t.kinds),r=Td(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=Dd(u,n,a);s.set(u,Ad(l,o.length)),Rd(l,u,i)}let c=0;for(let u of n.values())c+=u.length;let d=o.map(u=>Ld(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 Fd(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Nd(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 Md(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(Fd(r,e.node))}function Od(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=Nd(i,t,n);s!==void 0&&o.push(s)}else Md(i,e,n),o.pop()}}function $t(e,t={}){let n=ii(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)||Od(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 $d(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}=Rt(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 Pd(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 jd(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 Ud(e,t,n,r,o){let i=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=Pd(t.forward.get(a),r,i,o);i.set(a,c-1)}return e.map(s=>jd(s,n[s],i.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function ai(e,t={}){t.signal?.throwIfAborted();let n=wt(e,{registry:e.registry()}),r=$d(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=Ud(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 Pt=["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]="1955b7a4-385d-5a5d-8856-6db9f94814aa")}catch{}})();var Bd=25,Gd="milestone",Kd="outcome milestone:",zd=new Set(["discovered_from","incident_from","supersedes","verifies"]);function $n(e){return zd.has(e)}var ci={error:0,warning:1,info:2};function di(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function Mn(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 Hd(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 li(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 qd(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))):(li(i,r),t.push({node:i,neighborIndex:0})),!0}function Wd(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 Vd(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(li(r,t);o.length>0;){let i=o.at(-1);qd(i,o,e,t)||Wd(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(Mn(r,o,i,s,t,n,a))}function Yd(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 On(e,t){let n=t.get(e);return n?!n.terminal:!0}function fi(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function Xd(e,t){let n=[],r=[];for(let i of e.orderingContradictions??[])(i.legacy_terminal?r:n).push(fi(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 Jd(e,t,n,r){let o=[],i=Hd(e);for(let c of Vd(i)){let d=c.some(f=>On(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(fi);o.push(d?Mn("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):Mn("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 jt(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function Pn(e){let t=e.graph.registry(),n=new Map;for(let o of e.graph.edges()){let i=t.require(o.kind);if(!Nt(i))continue;let s=Ot(o,i);if(s.from===s.to)continue;let a=`${Mt(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 Qd(e,t,n){let r=[],o=[];for(let s of Pn(e))(On(s.from,t)||On(s.to,t)?r:o).push(jt(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 Zd(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 eu(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=Ot(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 tu(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 nu(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 ru(e,t,n){let r=new Set(e.details.filter(i=>i.type?.toLowerCase()===Gd&&i.title.trim().toLowerCase().startsWith(Kd)).map(i=>i.id)),o=tu(r,eu(e,n),n);return{outcome_nodes:r.size,...nu(t,r,o,n)}}function ou(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 iu(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||ou(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=Me(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 h=Object.fromEntries(Object.entries(i).sort(([_],[k])=>_.localeCompare(k))),y=Object.entries(h).reduce((_,[k,x])=>_+($n(k)?x:0),0),b=$t(e.graph,{signal:s}).value,w=ru(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:h,edge_share_by_kind:Object.fromEntries(Object.entries(h).map(([_,k])=>[_,k/l])),semantic_edges:y,semantic_edge_share:l===0?0:y/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(Pt.map(_=>[_,0]))}}}function Ut(e,t={}){let n=t.isTerminal??(f=>f==="closed"||f==="canceled"),r=t.isBlocked??(f=>f==="blocked"),o=t.maxSampleSize??Bd;if(!Number.isInteger(o)||o<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let i=di(t.exemptIsolates),s=di(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=Yd(e,n,o);t.signal?.throwIfAborted(),d.push(...Xd(e,o)),t.signal?.throwIfAborted(),d.push(...Jd(e,a,r,o)),t.signal?.throwIfAborted(),d.push(...Qd(e,a,o),...Zd(e,o)),t.signal?.throwIfAborted();let u=iu(e,a,i,s,o,c,t.signal);d.push(...u.findings),d.sort((f,m)=>ci[f.severity]-ci[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 Nn(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 ui(e){return e.profile.coverage_by_type??{}}function su(e,t){let n={},r=ui(e),o=ui(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 mi(e,t){let n=su(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,h=t.profile.redundant_edges??0,y=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:Nn(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:h-m,ordering_contradiction_edges:b-y,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:Nn(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:Nn(r,s),semantic_edges:a-o,semantic_edge_share:c-i,coverage_by_type:n}}}import pi 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 gi=1,jn=500,au=64,cu="graph-durable-cache";function hi(e){return Te(e,cu,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function He(e){return pi.join(e,"runtime","graph-cache.json")}function yi(e){return pi.join(e,"runtime","graph-audit-baseline.json")}function Un(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==gi||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 Bn(e,t){let n=await oe(He(e)),r=Un(n),o=r?.fingerprint===t;return{exists:n!==null,fresh:o,results:o?r.results:{}}}async function Gn(e,t,n,r,o){let i=await hi(e);try{let s=Un(await oe(He(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-au)))delete a[d];await K(He(e),JSON.stringify({version:gi,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await i()}}async function Kn(e){let t=await hi(e);try{await Tr(He(e))}finally{await t()}}async function _i(e,t){let n=He(e),r=await oe(n),o=Un(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 zn(e,t){return t||e>=jn}function Bt(e){return Oe(e)&&Object.values(e).every(he)}function Oe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function he(e){return Number.isInteger(e)&&Number(e)>=0}function wi(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function ze(e,t){return e===void 0||t(e)}function du(e){return Oe(e)&&Object.values(e).every(wi)}function uu(e){return Oe(e)?Object.values(e).every(t=>Oe(t)&&[t.active,t.isolated,t.degree_leq_one].every(he)):!1}function lu(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=>ze(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 fu(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=>ze(e[i],he))&&n.every(i=>ze(e[i],he)&&(e[i]===void 0||Number(e[i])<=1e4))&&ze(e.finding_subjects_by_code,Bt)}function mu(e,t,n,r){let o=lu(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(!fu(e,i,s)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let a=Bt(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(Pt.map(c=>[c,a[c]??t[c]??0]))}}function pu(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||!du(n)||!he(r)||!wi(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+($n(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 gu(e){if(e!==null)try{let t=JSON.parse(e);if(!Oe(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(!Bt(o)||!Oe(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(he)||!Bt(r.edges_by_kind)||!ze(r.coverage_by_type,uu))return;let i=pu(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=mu(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 bi(e){return gu(await oe(yi(e)))}async function ki(e,t){await K(yi(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 hu={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 vi(e){return`${e.source} -${e.kind}-> ${e.target}`}function yu(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:vi(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: ${vi(t)}`,`group: ${jt(e)}`],confidence:"high"}))}function _u(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>yu(t.get(r)));let n=hu[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 xi(e,t={}){let{redundancyLimit:n,...r}=t,o=Ut(e,r),i=new Map(Pn(e).map(d=>[jt(d),d])),s=o.findings.flatMap(d=>_u(d,i)),a=o.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=Me(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 Si=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),me=10;function Ei(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 Ii(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function wu(e,t,n){let r=e.trim().toLowerCase();if(!fn.includes(r))throw Fr({command_path:"graph",token:r||"<empty>",allowed:fn});let o=r;if(Si.has(o)&&!t?.trim())throw new g(`graph ${o} requires an item id.`,p.USAGE);if(o==="paths"&&!n?.trim())throw new g("graph paths requires a source and a target item id.",p.USAGE);return o}function Hn(e){throw e instanceof TypeError?new g(e.message,p.USAGE):e}function qn(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function Ci(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 g(`Item ${t} not found`,p.NOT_FOUND)}function bu(e,t,n){let r={ancestors:Yo,descendants:Xo,predecessors:Jo,successors:Qo}[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){Hn(s)}let i=qn(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 ku(e,t,n){let r=Zo(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,...qn(r.meta),...n.summary?{}:{paths:r.value.map(o=>({nodes:o.nodes,kinds:o.edges.map(i=>i.kind),length:o.length}))}}}function vu(e,t){let n;try{n=Ao(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){Hn(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 xu(e){let t=e.assembly.graph,n=e.limit??me,r=wt(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 Eu(e,t){let n=Ut(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 Iu(e){let t=e.limit??me,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=ti(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 Cu(e){let t;try{t=Me(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){Hn(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...qn(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 Su(e,t){let n=t.limit??me,r=ni(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 Tu(e){let t=e.limit??me,n=ai(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 Du(e){let t=e.limit??me,n=si(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 Ru(e){let t=e.limit??me,n=$t(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 Au(e,t){let n=e.limit??me,r=xi(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 Ti(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 Di(e,t,n,r,o){return e==="analyze"?xu(r):e==="audit"?Eu(r,o):e==="plan"?Au(r,o):e==="communities"?Iu(r):e==="redundancy"?Cu(r):e==="dominators"?Su(t,r):e==="slack"?Tu(r):e==="centrality"?Du(r):e==="articulation"?Ru(r):e==="paths"?ku(t,n,r):e==="impact"?vu(t,r):bu(e,t,r)}function Lu(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new g("--rebuild and --clear apply only to graph index.",p.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new g("--save-baseline applies only to graph audit.",p.USAGE);if(e==="slack"&&t.kind!==void 0)throw new g("graph slack analyzes every ordering kind; --kind is not supported.",p.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new g("graph index accepts either --rebuild or --clear, not both.",p.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new g("graph impact accepts either --full or --limit, not both.",p.USAGE)}async function Fu(e,t,n,r,o,i){let s="status";if(i.clear===!0&&(await Kn(e),s="cleared"),i.rebuild===!0){await Kn(e);let c=await Bn(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let u of["analyze","audit"])await Gn(e,t,c,Ti(u,void 0,void 0,d),Di(u,void 0,void 0,d,o));s="rebuilt"}let a=await _i(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:jn,persist_enabled:zn(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 Nu(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 bi(e);return r&&await ki(e,o),i===void 0?n:{...n,baseline:mi(i,o)}}async function Mu(e,t,n,r,o){try{await Gn(e,t,n,r,o)}catch{}}async function G_(e,t,n,r,o){let i=wu(e,t,n);dt(r.summary===!0,r.full===!0,"--summary");let s=S(process.cwd(),o.path);if(!await A($(s)))throw new g(`Tracker is not initialized at ${s}. Run pm init first.`,p.NOT_FOUND);let a=await T(s),c=O(a,L()),d=await Z(s,a.item_format,c.type_to_folder,void 0,a.schema),u=z(a.schema),l=U=>N(U,u);Lu(i,r);let f=ge(),m=An(r.kind,f),h=Ct().lookup(s,It(d,l,f),()=>Fe(d,l,f)),y={assembly:h.assembly,...m===void 0?{}:{kinds:m},maxDepth:Tt(r.maxDepth),limit:ee(r.limit,"limit"),after:r.after?.trim()||void 0,direction:Rn(r.direction),maxPaths:ee(r.maxPaths,"max-paths"),sample:ee(r.sample,"sample"),exemptIsolates:Ii(r.exemptIsolate),exemptIsolateTypes:Ii(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(i==="index")return Ei(await Fu(s,h.fingerprint,y,d.length,l,r),!1);let b=Si.has(i)?Ci(y.assembly,t):void 0,w=i==="paths"?Ci(y.assembly,n):void 0,_=Ti(i,b,w,y),k=await Bn(s,h.fingerprint),x=k.results[_],I=h.memoize(_,()=>x!==void 0?structuredClone(x):Di(i,b,w,y,l)),P=zn(d.length,k.exists);!I.reused&&x===void 0&&P&&await Mu(s,h.fingerprint,k,_,I.value);let D=I.value.subcommand==="audit"?await Nu(s,h.fingerprint,I.value,y.saveBaseline):I.value;return D.cache={fingerprint:h.fingerprint.slice(0,12),assembly:h.assemblyReused?"hit":"miss",result:I.reused?"hit":"miss",durable:x!==void 0?"hit":P?"miss":"off"},Ei(D,y.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 Ri="blocked_by",Ai="blocks",Ou=Object.freeze([Ri,Ai]),Wn="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!==Wn&&t.add(n);for(let r of e.dependencies??[]){let o=typeof r.id=="string"?R(r.id):"";r.kind===Ri&&o.length>0&&o!==Wn&&t.add(o)}return[...t].sort((r,o)=>r.localeCompare(o))}function Gt(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===Ai&&typeof o.id=="string"?R(o.id):"";if(i.length===0||i===Wn)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?Gt(t).get(n)??ye(e):ye(e)}function Vn(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:N(a.status,n)}:{id:s,title:null,status:null,resolved:!1}})}function Kt(e,t,n){return Vn(e,t,n)}function qe(e,t){let n=new Map(e.map(s=>[R(s.id),s])),r=Gt(e),o=new Set([...Fi(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)||Vn(s,n,t,r).some(d=>!d.resolved))&&i.add(R(s.id))}return i}function Fi(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function $u(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 Pu(e){let t=new Map,n=new Map,r=new Map,o=Gt(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 Yn(e,t,n){let{itemsById:r,childrenByParent:o,blockedByReverse:i,blockerIdsByItem:s}=Pu(t),a=new Set([...Fi(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,$u(m.id,o,n)){f+=1;continue}let h=Vn(m,r,n,s).filter(_=>!_.resolved),y=(i.get(R(m.id))??[]).filter(_=>c.has(R(_))).sort((_,k)=>_.localeCompare(k)),b={item:m,open_blockers:h,unblocks:y},w=n.blocked_statuses.has(C(m.status,n));h.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 Xn(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 g(`${t.label} requires at least one non-empty value`,p.USAGE);let i=o.map(s=>t.normalize?.(s)??s);return[...new Set(i)]}function We(e,t){let n=Xn(e,t);return n===void 0?void 0:new Set(n)}function Ni(e,t,n="--type"){let r=Xn(e,{label:n});if(r===void 0)return;let o=r.map(i=>{let s=at(i,t);if(!s)throw new g(`${n} filter token "${i}" must be one of ${t.types.join("|")}`,p.USAGE);return s});return new Set(o)}function Mi(e,t="--priority"){let n=Xn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>bt(r,t)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5b7b3eaf-a792-5f44-9981-8c82ce511070")}catch{}})();function Oi(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Ui(e){return{isTerminal(t){return e.terminal_statuses.has(Oi(t,e))},classify(t){let n=Oi(t,e);return e.terminal_canceled_statuses.has(n)?"canceled":e.terminal_statuses.has(n)?"closed":e.blocked_statuses.has(n)?"blocked":e.draft_statuses.has(n)?"draft":n===e.open_status?"open":e.active_statuses.has(n)?"in_progress":"other"}}}function Jn(e){return j(e.acceptance_criteria)===void 0}function Qn(e){return!Number.isFinite(e.estimated_minutes)}function Bi(e,t){return t.isTerminal(e.status)?j(e.resolution)===void 0:!1}function ju(e){return j(e.reviewer)===void 0}function Uu(e){return j(e.risk)===void 0}function Bu(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):j(e.confidence)===void 0}function Gu(e){return j(e.sprint)===void 0}function Ku(e){return j(e.release)===void 0}function Zn(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function zu(e,t,n){return[[t.acMissing,Jn(e)],[t.estimatesMissing,Qn(e)],[t.resolutionMissing,Bi(e,n)],[t.reviewerMissing,ju(e)],[t.riskMissing,Uu(e)],[t.confidenceMissing,Bu(e)],[t.sprintMissing,Gu(e)],[t.releaseMissing,Ku(e)]].every(([o,i])=>o!==!0||i)}function Hu(e,t){return Jn(e)||Qn(e)||Bi(e,t)}function Gi(e,t,n){return Zn(t)?!(!zu(e,t,n)||t.metadataMissing&&!Hu(e,n)):!0}var er=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function qu(e,t){switch(t){case"acceptance_criteria":return!Jn(e);case"estimated_minutes":return!Qn(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 Wu(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function Vu(e,t){return t===0?100:Math.round(e/t*1e3)/10}function $i(){let e={};for(let t of er)e[t]={present:0,applicable:0,percent:100};return e}function Pi(e,t,n){for(let r of er){if(!Wu(t,r,n))continue;let o=e[r];o.applicable+=1,qu(t,r)&&(o.present+=1)}}function ji(e){for(let t of er){let n=e[t];n.percent=Vu(n.present,n.applicable)}}function ew(e,t){let n=$i(),r={};for(let o of e){Pi(n,o,t);let i=r[o.type]??(r[o.type]=$i());Pi(i,o,t)}ji(n);for(let o of Object.values(r))ji(o);return{overall:n,by_type:r}}var Yu={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function Xu(e){return Yu[e]}function Ju(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function Qu(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 tw(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 Qu(a,t,r)){let u=d??"\0empty",l=o.get(u);l||(l={label:d??Xu(t),key:d,buckets:Ju(),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 $e=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function _e(e){return Array.isArray(e)&&e.length>0}function Zu(e){return typeof e=="string"&&e.trim().length>0}function el(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 zi(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 Zu(e.body);case"linked_command":return el(e.tests)}}function Hi(e){return $e.some(t=>e[t]!==void 0)}function qi(e,t){for(let n of $e){let r=t[n];if(r===void 0)continue;let o=zi(e,n);if(r==="present"&&!o||r==="absent"&&o)return!1}return!0}function Wi(e){return $e.some(t=>t!=="body"&&e[t]!==void 0)}function Vi(e){return e.body!==void 0}function Ki(e,t){return t===0?100:Math.round(e/t*1e3)/10}function tl(){let e={};for(let t of $e)e[t]={present:0,total:0,percent:100};return e}function rw(e){let t=tl(),n=e.length;for(let s of e)for(let a of $e)zi(s,a)&&(t[a].present+=1);for(let s of $e)t[s].total=n,t[s].percent=Ki(t[s].present,n);let r=t.body,o=n-r.present,i={present:o,total:n,percent:Ki(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]="ec0c4c57-e3c2-54b3-bcf4-b4ab3b1d964e")}catch{}})();var nl=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}),Yi=[{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"}],es=e=>{let t=Yi.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new g(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,p.USAGE);return Object.fromEntries(Yi.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Xi=["priority","deadline","updated_at","created_at","title","parent"],Ji=["asc","desc"],rl=["id","title","status","type","priority","parent","updated_at"],ol=["id","status","type","title"],Dw={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},il=["tree_depth","tree_parent","tree_children","tree_title"],ts=new Set(uo);function sl(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 g(`List source is incomplete: ${r} item document(s) and ${o} item directory/directories could not be read.`,p.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 al(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var cl=[{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"}],dl=[{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 ns(e,t){for(let n of cl)t[n.key]===!0&&(e[n.summaryKey]=!0)}function rs(e,t){for(let n of dl)t[n.key]===!0&&(e[n.summaryKey]=!0)}function ul(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 ll(e){let t={};return ns(t,e),t}function fl(e){let t={};return rs(t,e),t}var ml=[{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"}],pl=[{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"}],gl=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],hl="-7d";function yl(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"),ul(c,n,ml),is(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),rs(c,n),ns(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),al(a)&&(c.runtime_filters=a),c}function os(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=E(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function _l(e,t){return[...e].sort((n,r)=>os(n,r,t))}function Qi(e,t){if(e!==void 0)return ie(e,new Date,t)}function Ve(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return ie(n,new Date,t)}function wl(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 g("Choose only one updated_at window: --today, --recent, or --updated-after.",p.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?Ve(hl,"recent"):Ve(e.updatedAfter,"updated-after")}function is(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function bl(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new g("--ids requires at least one non-empty item ID",p.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new g("--ids requires at least one non-empty item ID",p.USAGE);return new Set(n)}function ss(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 g("Offset filter must be a non-negative integer",p.USAGE);return n}function kl(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 g("List --fields requires a comma-separated list of field names",p.USAGE);return[...new Set(t)]}function vl(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,o=kl(e.fields);if(Number(t)+Number(n)+Number(r)+ +(o!==void 0)>1)throw new g("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",p.USAGE);return r?{mode:"full",fields:[]}:n?{mode:"brief",fields:[...ol]}:t?{mode:"compact",fields:[...rl]}:o?{mode:"fields",fields:o}:{mode:"full",fields:[]}}function Ye(e){return e.startsWith("item.")?e.slice(5):e}function xl(e,t){if(e.mode!=="fields")return;let n=new Set([...Dr,"body",...il,...t]),r=e.fields.filter(o=>!n.has(Ye(o)));if(r.length>0)throw new g(`Unknown list --fields value(s): ${r.join(", ")}`,p.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"]})}var El=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Il(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=El.get(t);if(n)return n;if(!Xi.includes(t))throw new g(`Sort field must be one of ${Xi.join("|")} (aliases: updated->updated_at, created->created_at)`,p.USAGE);return t}function Cl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!Ji.includes(t))throw new g(`Sort order must be one of ${Ji.join("|")}`,p.USAGE);return t}function Sl(e){return V(e,"--tree-depth")}function Tl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new g("Assignee filter must be one of assigned|unassigned",p.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new g(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,p.USAGE);return t}function Zi(e,t){return so(e,t,{strict:!0})}function as(e){return We(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Dl(e,t,n){let r=as(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 Rl(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new g('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',p.USAGE);if(e!==void 0&&t==="unassigned")throw new g("Cannot combine --assignee with --assignee-filter unassigned",p.USAGE)}function Al(e,t,n,r){let o=We(t.assignee,{label:"--assignee"}),i=Tl(t.assigneeFilter);Rl(o,i);let s=nl(t),a=es(t);return{idsFilter:bl(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Ni(t.type,n),tagFilters:as(t.tag),priorityFilter:Mi(t.priority),deadlineBefore:Qi(t.deadlineBefore,"deadline-before"),deadlineAfter:Qi(t.deadlineAfter,"deadline-after"),updatedAfter:wl(t),updatedBefore:Ve(t.updatedBefore,"updated-before"),createdAfter:Ve(t.createdAfter,"created-after"),createdBefore:Ve(t.createdBefore,"created-before"),assigneeFilter:o,assigneeModeFilter:i,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:We(t.sprint,{label:"--sprint"}),releaseFilter:We(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:Zn(s),lifecycleClassifier:Ui(r),contentFieldFilters:a,contentFiltersActive:Hi(a)}}function Ll(e,t,n){return Fl(e,t,n)&&Nl(e,t)&&Ml(e,t)&&Ol(e,t)}function Fl(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 Nl(e,t){return Ar(e,t)}function Ml(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 Ol(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 $l(e,t,n,r){return!(!Ll(e,t,n)||t.missingMetadataActive&&!Gi(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!qi(e,t.contentFieldFilters)||!gt(e,r))}function Pl(e,t,n,r,o,i){let s=Al(t,n,r,o);return e.filter(a=>$l(a,s,o,i))}function zt(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=zt(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 Ul(e,t,n){let r=new Map,o=new Map;for(let d of e){r.set(d.id,d);let u=zt(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=zt(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 Bl(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function Gl(e,t){return e===t?0:e===null?1:t===null?-1:E(e,t)}function Kl(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return Gl(e.deadline??null,t.deadline??null);case"updated_at":return E(e.updated_at,t.updated_at);case"created_at":return E(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Bl(e.parent??null,t.parent??null);default:return 0}}function zl(e,t,n,r){return t?[...e].sort((o,i)=>{let s=Kl(o,i,t);if(s!==0)return n==="desc"?-s:s;let a=os(o,i,r);return n==="desc"?-a:a}):_l(e,r)}function Hl(e,t,n=!1){let r=Ye(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 cs(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let o={};for(let i of t.fields)o[i]=Hl(r,i,n);return o})}function ql(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Wl(e,t){if(e.noTruncate!==!0)return V(e.limit)??(t>=1e4?20:void 0)}function Vl(e,t,n){return t.after===void 0?ss(t.offset)??0:Ce(e,t.after,n,r=>r.id)}function ds(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function Yl(e,t){let n=S(process.cwd(),t.path);if(!await A($(n)))throw new g(`Tracker is not initialized at ${n}. Run pm init first.`,p.NOT_FOUND);let r=await T(n),o=z(r.schema),i=ct(r.schema),s=vl(e);return xl(s,ql(i.definitions)),{pmRoot:n,settings:r,statusRegistry:o,runtimeFieldFilters:pt(e,i,"list"),typeRegistry:O(r,L()),projection:s}}async function Xl(e,t,n){let r=t.projection.fields.some(c=>Ye(c)==="body"),o=t.projection.mode==="full"||t.projection.fields.some(c=>ts.has(Ye(c))),i=es(e),s=Wi(i),a=Vi(i);return e.includeBody||r||a?await po(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):o||s?await mo(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await Z(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function Jl(e){let t=Il(e.sort),n=Cl(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new g("List --tree-depth requires --tree",p.USAGE);if(!t&&e.order!==void 0)throw new g("List --order requires --sort",p.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?Sl(e.treeDepth):void 0,parentRoot:r?zt(e.parent):void 0}}function Ql(e,t,n){let r=Zi(t.status,n),o=r??Zi(e,n),i=io(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 Zl(e,t,n,r,o){if(t.after!==void 0&&t.offset!==void 0)throw new g("List --after cannot be combined with --offset.",p.USAGE);let i=Wl(t,e.length),s=Vl(e,t,o),a=i===void 0?e.slice(s):e.slice(s,s+i),c=cs(a,n,r),d=e.length,u=a.length>0&&s+a.length<d,l=u&&a.length>0?se(o,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:ds(i,u,l)}}function us(e,t,n){return de("list",{status:e,options:ut(t,go),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function ef(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(h=>{let y=Ye(h);return y==="body"||ts.has(y)})].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,Pr(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([h,y])=>y!==void 0&&!i.has(h))].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=ss(t.offset)??0,l=await co({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?se(us(r.filtersStatus,t,o),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:cs(l.items,n.projection,!1),totalMatched:l.total,pageExtras:ds(d,f,m)}}function tf(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 pl){let f=u[l.optionKey];f!=null&&(d[l.summaryKey]=f)}for(let l of gl)u[l.key]===!0&&(d[l.summaryKey]=!0);return Object.assign(d,fl(n),ll(n)),is(d,n),r&&(d.no_truncate=!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 Xe(e,t,n){let r=await Yl(t,n),o=[],i=Jl(t),s=Ql(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await ef({options:t,runtime:r,statusSelection:s,ordering:i}),d=c;if(!d){let y=await Xl(t,r,o);Dl(y,t.tag,o);let b=Pl(y,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),w=t.dependencyBlocked===!0?(()=>{let x=qe(y,r.statusRegistry);return b.filter(I=>x.has(I.id.trim().toLowerCase()))})():b,_=zl(w,i.sortField,i.sortOrder,r.statusRegistry),k=i.treeEnabled?Ul(_,i.parentRoot,i.treeDepth):_;d=Zl(k,t,r.projection,i.treeEnabled,us(s.filtersStatus,t,i))}let u=G(),l=[...new Set(o)].sort((y,b)=>y.localeCompare(b)),f=sl(l,c!==null,t.strictRead===!0),m=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let y=yl({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:y,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:tf({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 nf}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 tr=["agenda","day","week","month"],nr=["markdown","toon","json"],rf=["sun","mon","tue","wed","thu","fri","sat"],of=365,sf=365,ms=28,af=1e3;function rr(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new g(`${t} must be a non-negative integer`,p.USAGE);return n}function cf(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 g("Calendar include filter must not be empty",p.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 g("Calendar include filter must be deadlines|reminders|events|scheduled|all",p.USAGE)}return r}function ps(e,t){let n;for(let r of t){let o=Lr(e,r,2);o!==null&&(n===void 0||o<n.distance)&&(n={choice:r,distance:o})}return n?.choice}function df(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!tr.includes(t)){let n=ps(t,tr);throw new g(`Calendar view must be one of ${tr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,p.USAGE)}return t}function uf(e){if(!e)return;let t=e.trim().toLowerCase();if(!nr.includes(t)){let n=ps(t,nr);throw new g(`Calendar format must be one of ${nr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,p.USAGE)}return t}function Mw(e,t){let n=uf(e.format);if(t.json&&n&&n!=="json")throw new g("Cannot combine --json with --format markdown|toon",p.USAGE);return t.json?"json":n??"markdown"}function lf(e,t){if(e===void 0)return;let n=F(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new g(`Calendar status filter must be one of ${r.join("|")}`,p.USAGE)}return n}function ff(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new g("Calendar assignee filter must be one of assigned|unassigned",p.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new g(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,p.USAGE);return t}function Ht(e){return new Date(e).toISOString().slice(0,10)}function gs(e,t){if(!t||t==="UTC")return Ht(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 Ht(e)}function ar(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 hs(e){let t=new Date(ar(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return ae(t.toISOString(),r)}function mf(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function pf(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function gf(e,t){return E(e,t)>=0?e:t}function ls(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function fs(e,t){e.set(t,(e.get(t)??0)+1)}function hf(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 ys(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 _s(e){return rf[new Date(e).getUTCDay()]}function yf(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function _f(e){let t=new Set;for(let n of e??[]){let r=yf(n);r&&t.add(r)}return t}function wf(e,t,n,r,o){let i=e??ae(n,-(r??sf)),s=t??ae(e??n,o??of);return{start:i,end:E(s,i)>0?s:ae(i,1)}}function bf(e,t,n,r){let o=t.by_weekday!==void 0?[...t.by_weekday]:[_s(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??af,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:_f(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 qt(e,t){return E(t,e.startAt)<0?"continue":e.until&&E(t,e.until)>0||E(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,E(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function Wt(e,t){let n=_s(t),r=new Date(t).getUTCDate(),o=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return o&&i}function kf(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(Wt(e,t)&&qt(e,t)==="stop");n+=1)t=ae(t,e.interval);return e.occurrences}function vf(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 xf(e){let t=hs(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=vf(e,r,o);if(Wt(e,i)&&qt(e,i)==="stop")return e.occurrences}}return e.occurrences}function Ef(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=ys(o.getUTCFullYear(),o.getUTCMonth(),i,e.startDate);if(!(!s||!Wt(e,s))&&qt(e,s)==="stop")return e.occurrences}}return e.occurrences}function If(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=ys(o,n,i,e.startDate);if(!(!s||!Wt(e,s))&&qt(e,s)==="stop")return e.occurrences}}return e.occurrences}function Cf(e,t,n,r){let o=bf(e,t,n,r);return t.freq==="daily"?kf(o):t.freq==="weekly"?xf(o):t.freq==="monthly"?Ef(o):If(o)}function ws(e){return[...e].sort((t,n)=>{let r=E(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 cr(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 Sf(e){return e.deadline?{at:e.deadline,date:Ht(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,...cr(e),item_deadline:e.deadline}:null}function Tf(e){return(e.reminders??[]).map(t=>({at:t.at,date:Ht(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,...cr(e)}))}function Df(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Rf(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Af(e,t,n,r){let o=hf(t.recurrence),i=Df(t.start_at,t.end_at);return(t.recurrence?Cf(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):gs(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Rf(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,...cr(e)}))}function Lf(e,t,n,r){let o=[];for(let i of e){let s=n.has("deadlines")?Sf(i):null;s&&o.push(s),n.has("reminders")&&o.push(...Tf(i));for(let a of n.has("events")?i.events??[]:[])o.push(...Af(i,a,t,r))}return ws(o)}function Ff(e,t,n,r,o){let i=Fo(t.type,n),s=t.tag?.trim().toLowerCase(),a=bt(t.priority),c=lf(t.status,r),d=t.assignee?.trim(),u=ff(t.assigneeFilter),l=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new g('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',p.USAGE);if(d!==void 0&&u==="unassigned")throw new g("Cannot combine --assignee with --assignee-filter unassigned",p.USAGE);return e.filter(m=>Nf(m,{typeFilter:i,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:o}))}function Nf(e,t){return Mf(e,t)&&Of(e,t)&&gt(e,t.runtimeFieldFilters)}function Mf(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 Of(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 $f(e,t,n){return!(t&&E(e.at,t)<0||n&&E(e.at,n)>=0)}function or(e,t,n){return e.trim().toLowerCase()==="today"?ar(t):ie(e,new Date(t),n)}function Pf(e,t,n){let r=t.date?or(t.date,n,"--date"):n,o=t.past===!0,i=t.fullPeriod===!0,s=t.from?or(t.from,n,"--from"):void 0,a=t.to?or(t.to,n,"--to"):void 0;if(s&&a&&E(s,a)>=0)throw new g("Calendar --from must be before --to",p.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new g("--from and --to are only supported for --view agenda",p.USAGE);if(e==="agenda")return jf(r,t,n,o,i,s,a);if(e==="day"){let d=ar(r);return ir(r,n,o,i,d,ae(d,1))}if(e==="week"){let d=hs(r);return ir(r,n,o,i,d,ae(d,7))}let c=mf(r);return ir(r,n,o,i,c,pf(r))}function jf(e,t,n,r,o,i,s){if(o)throw new g("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",p.USAGE);return{anchor:e,start:i??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function ir(e,t,n,r,o,i){let s=n||r;return{anchor:e,start:s?o:gf(o,t),end:i,periodStart:o,periodEnd:i,fullPeriod:s}}function Uf(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:ws(r)}))}function Bf(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),fs(n,c.item_type),fs(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:ls(n),by_status:ls(r),recurring_events:a}}function Gf(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function bs(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 sr(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Kf(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===gs(e.event_end,e.event_timezone)?bs(e.event_end,e.event_timezone):e.event_end:null}function zf(e){let t=`${bs(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=Kf(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 Ow(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Gf(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: ${sr(e.summary.by_kind)}`),t.push(`- by-type: ${sr(e.summary.by_type)}`),t.push(`- by-status: ${sr(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(`- ${zf(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 Hf(t.join(`
3
+ `))}function $w(e){return nf(e)}function Hf(e){let t=e.length;for(;t>0&&e[t-1]===`
4
+ `;)t-=1;return e.slice(0,t)}function qf(e){let t=G(),n=df(e.view),r=Pf(n,e,t),o=V(e.limit),i=cf(e.include),s=rr(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=rr(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=rr(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new g("Calendar occurrence limit must be >= 1",p.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?ms:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function Wf(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${ms}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Vf(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 Yf(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 ks(e,t){let n=S(process.cwd(),t.path);if(!await A($(n)))throw new g(`Tracker is not initialized at ${n}. Run pm init first.`,p.NOT_FOUND);let r=qf(e),o=await T(n),i=z(o.schema),s=ct(o.schema),a=pt(e,s,"calendar"),c=O(o,L()),d=[];Wf(d,r.eventsOnlyCapApplied);let u=await Z(n,o.item_format,c.type_to_folder,d,o.schema),l=Ff(u,e,c,i,a),f=wf(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),h=Lf(l,f,r.includeSources,r.occurrenceLimit).filter(_=>$f(_,r.rangeBounds.start,r.rangeBounds.end)),y=r.limit===void 0?h:h.slice(0,r.limit),b=Uf(y),w=[...new Set(d)].sort((_,k)=>_.localeCompare(k));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:Yf(e,r.rangeBounds),filters:Vf(e,a),summary:Bf(y),events:y,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 dr=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Xf=Symbol("no-context-author"),Jf=Symbol("no-item-assignee");function vs(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function Qf(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 Zf(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 em(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 Vt(e,t,n){return e?.[t]??n}function Yt(e,t){let n=d=>{if(typeof d!="string")return"";try{return ie(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 E(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=vs(t.author,Xf),a=F("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let u=vs(d.assignee,Jf)===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:Vt(t.graphProximity,d.id,d.parent?.3:0),claim_focus:Vt(t.claimFocus,d.id,C(d.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:Qf(d.priority,4),risk_pressure:em(d.risk),deadline_pressure:Zf(d.deadline,c),knowledge_density:Vt(t.knowledgeDensity,d.id,Math.min(l/5,1)),author_affinity:Vt(t.authorAffinity,d.id,u?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var tm="context_relevance",nm={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},rm=new TextEncoder;function om(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"||!dr.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 im(e){let t={...nm};for(let[n,r]of Object.entries(e??{}))r!==void 0&&dr.includes(n)&&(t[n]=r);for(let[n,r]of Object.entries(t))if(!Number.isFinite(r)||r<0)throw new TypeError(`Context relevance weight ${n} must be a finite non-negative number`);return t}function Es(e,t={}){om(e);let n=im(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=dr.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 h=d[m];if(h===void 0)continue;let y=h*n[m];u[m]=y,l+=y,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 sm(e,t={}){let n=Es(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 Xt(e,t,n={}){let r=Es(t,n),o=await jr(tm,{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 sm(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 am=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function xs(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function cm(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:xs(e.required_ids??[],a),continuity_coverage:xs(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function dm(e){return Math.ceil(rm.encode(JSON.stringify(e)).byteLength/4)}function um(e){return Math.round(e*1e4)/1e4}function lm(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 fm(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}=lm(n,e.surface),i={...n,ranking:void 0},s=dm(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:cm({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 mm(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=am;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,um(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 Gw(e,t,n){let r=[];for(let o of e)r.push(await fm(o,t));return mm(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 pm={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},gm=["identity","summary","full"];function hm(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=gm.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 ym(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=pm[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 _m(e){let t=new Set;for(let n of e){if(hm(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 wm(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 bm(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=wm(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 km(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 Is(e,t){let n=ym(t),r=_m(e),o=t.readClock??performance.now.bind(performance),i=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:o()+t.latencyBudgetMs,s=bm({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:i,readClock:o}),{included:a}=s,c=km(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 vm}from"node:crypto";import{appendFile as xm,mkdir as Em,readFile as Im,rename as Cm,stat as Sm,writeFile as Tm}from"node:fs/promises";import Cs 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 Ss=2048,Ts=30,Ds=864e5,Dm=262144,Rm="context-usage-ledger",te=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function Rs(e){return Cs.join(e,"runtime","context-usage.jsonl")}function Je(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new te("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function As(e){try{let n=(await Im(Rs(e.pmRoot),"utf8")).split(`
5
+ `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Ss,o=e.retentionDays??Ts,i=Je(e).ms-o*Ds;return n.filter(s=>Date.parse(s.at)>=i).slice(-r)}catch{return[]}}async function Ls(e,t){let n=e.maxEvents??Ss,r=e.retentionDays??Ts;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new te("Context usage retention requires positive maxEvents and retentionDays");let o=Rs(e.pmRoot),i=Cs.dirname(o),s=await Te(e.pmRoot,Rm,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await Em(i,{recursive:!0}),await xm(o,t.map(u=>`${JSON.stringify(u)}
6
+ `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await Sm(o)).size<=Dm)return;let c=await As(e),d=`${o}.${process.pid}.${vm()}.tmp`;await Tm(d,`${c.map(u=>JSON.stringify(u)).join(`
7
+ `)}
8
+ `,"utf8"),await Cm(d,o)}finally{await s()}}async function Fs(e,t){await Ls(e,[t])}async function Jt(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 te("Context usage serving requires an author and valid ranked rows");await Fs(e,{kind:"serve",at:Je(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function Yw(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new te("Context usage touch requires author, itemId, and intent");await Fs(e,{kind:"touch",at:Je(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function Xw(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 te("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new te("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new te("Context usage touch requires non-empty itemId");r.add(a)}let o=Je(e).iso,i=[...r].map(s=>({kind:"touch",at:o,author:t,item_id:s,intent:n}));await Ls(e,i)}function Am(e,t,n,r){return e.find(({entry:o,time:i})=>o.item_id===t&&i>=n&&i-n<=r)?.time}async function Qt(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await As(e),n=Je(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new te("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 h=Am(i,m.id,f,r);if(h===void 0)continue;c+=1;let y=Math.max(0,(n-h)/Ds);s.set(m.id,(s.get(m.id)??0)+Math.exp(-y/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 Qe from"node:fs/promises";import Ze from"node:path";import{createHash as Lm,randomUUID as Fm}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 ur=1,lr=1,Ns=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Nm={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 Zt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ms(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Mm(e){let t={};for(let n of Ns){let r=e[n];if(r!==void 0){if(!Ms(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Om(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 $m(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 Pm(e,t){return{...t,activityDensity:t.activityDensity??Om(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??$m(e)}}function jm(e){if(!Zt(e)||typeof e.id!="string"||!Zt(e.signals))return null;let t={},n=new Set(Ns);for(let[r,o]of Object.entries(e.signals)){if(!n.has(r)||!Ms(o))return null;t[r]=o}return{id:e.id,signals:t}}function Um(e){if(!Zt(e)||e.format_version!==ur||e.signal_set_version!==lr||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:ur,signal_set_version:lr,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,o)=>r.id.localeCompare(o.id))}}function Bm(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=Yt(e,Pm(e,t)).map(({id:r,signals:o})=>({id:r,signals:Mm(o)})).sort((r,o)=>r.id.localeCompare(o.id));return Object.freeze({format_version:ur,signal_set_version:lr,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var fr=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=Ze.resolve(t)}async read(){try{return JSON.parse(await Qe.readFile(this.filePath,"utf8"))}catch(t){if(Zt(t)&&it(t))return null;throw t}}async write(t){let n=Ze.dirname(this.filePath);await Qe.mkdir(n,{recursive:!0});let r=Ze.join(n,`.${Ze.basename(this.filePath)}.${Fm()}.tmp`);try{await Qe.writeFile(r,`${JSON.stringify(t)}
9
+ `,{encoding:"utf8",flag:"wx"}),await Qe.rename(r,this.filePath)}finally{try{await Qe.rm(r,{force:!0})}catch{}}}},mr=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],o=null;try{let l=await this.adapter.read();o=Um(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=Bm(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=Yt(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=>Nm[l])}}};function Gm(e){let t=Lm("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 en(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??Gm(e),s=t.source??(o===null?"scan_fallback":"derived_index");return new mr(new fr(Ze.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 Km(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 zm(e,t,n){let r,o;for(let i of t){let s=Km(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 Os(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 ib(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=zm(o.id,t.get(o.id)??[],n);i!==void 0&&r.push(i)}return r.sort((o,i)=>o.id.localeCompare(i.id))}import Hm from"node:path";import{createHash as qm}from"node:crypto";import Wm 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 $s=1,Vm=1e4,Ps=12;function Ym(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Xm(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 Jm(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 Qm(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=Os(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=Ym(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=Xm(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:$s,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(Jm).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function Zm(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 ep(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(Zm)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function tp(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==$s||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(ep)?t:null}function np(e){return`scan:${qm("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 rp(e,t,n){return n!==void 0?n:(await De(t))?.source_cursor??np(e)}async function op(e){try{let t=tp(JSON.parse(await Wm.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&it(t))}}}async function js(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Vm));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await rp(e,t.pmRoot,t.sourceCursor),o=Hm.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await op(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=Qm(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 ip(e,t,n=Ps){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 Us(e,t,n=Ps){if(e.snapshot===null)return;let r=ip(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 sp(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 gb(e,t,n=5){let r=sp(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 Bs=16;async function Gs(e,t,n){let r=O(t,L()).type_to_folder,o=[],i=new Set,s=n;for(;s&&o.length<Bs;){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 kb(e){await zr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Gs(e.pmRoot,e.settings,e.itemId)})}async function vb(e){await Hr(e)}async function xb(e){await qr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Gs(e.pmRoot,e.settings,e.itemId)}:{}})}var Eb={lineage_depth:Bs,active_items:64,evidence_rows:32};function Ks(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 ap=["markdown","toon","json","ndjson"],tt=new Set(["Epic","Feature"]),Ys=10,Xs=1e4,Js=["hierarchy","activity","progress","recently_created","unparented","workload"],cp=[...Js,"blockers","files","staleness","tests"],dp=/^(\d{4})-(\d{2})-(\d{2})/,up=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,lp=/^(\d{4})(\d{2})(\d{2})$/,fp=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function mp(e){if(!e)return;let t=e.trim().toLowerCase();if(!ap.includes(t))throw new g("Context format must be one of markdown|toon|json|ndjson",p.USAGE);return t}var zs=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 pp(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!zs.has(r))throw new g(`Context --fields value not projectable: ${r} (valid: ${[...zs].join(", ")})`,p.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new g("Context --fields requires at least one field name",p.USAGE);return t}function et(e,t){return e.map(n=>{let r={},o=n;for(let i of t)r[i]=o[i]??null;return r})}function Kb(e,t){let n=mp(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new g("Cannot combine --json with --format markdown|toon",p.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function gp(e,t){return V(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Ys)}function hr(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new g("--token-budget must be a positive integer",p.USAGE);return n}function hp(e,t){return t>=Xs&&e===Number.MAX_SAFE_INTEGER?Ys:e}function yp(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!an.includes(n))throw new g(`Context --depth must be one of ${an.join("|")}`,p.USAGE);return n}function _p(e,t,n){if(e&&e.length>0){let o=[];for(let i of e){let s=i.trim().toLowerCase();if(!st.includes(s))throw new g(`Context --section must be one of ${st.join("|")}`,p.USAGE);o.includes(s)||o.push(s)}return o}return t==="brief"?[]:t==="full"?[...st]:(t==="deep"?cp:Js).filter(o=>n.sections[o])}function wp(e,t){return e?V(e,"--activity-limit")??t.activity_limit:t.activity_limit}function bp(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new g("--stale-threshold must be a number of days (e.g. 7 or 7d)",p.USAGE);let o=parseInt(r[1],10);if(o<=0)throw new g("--stale-threshold must be positive",p.USAGE);return o}function Hs(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 nt(e,t){let n=F("closed",t);return C(e,t)===n}function yr(e,t){let n=F("in_progress",t);return C(e,t)===n}function Qs(e,t){let n=F("open",t);return C(e,t)===n}function kp(e,t){return t.blocked_statuses.has(C(e,t))}var vp=["compact","brief","fields","includeBody","include_body","parent"];function xp(e){let t={...e};for(let n of vp)delete t[n];return t}function _r(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=Pe(e),i=rt(r.id,o);return{ids:new Set([r.id,...i.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function Ep(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new g("Context --parent requires an item id",p.USAGE);return t}function Ip(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Cp(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:E(n,r)}function Sp(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Tp(e){let t=dp.exec(e)??up.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<=Sp(n,r-1)}function Dp(e){let t=lp.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=fp.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 Zs(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Tp(t))return Number.NaN;let n=Date.parse(Dp(t));return Number.isFinite(n)?n:Number.NaN}function gr(e){let t=Zs(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Rp(e){let t=Zs(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function wr(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function we(e,t,n){let r=Hs(e.status,n)-Hs(t.status,n);if(r!==0)return r;let o=e.priority-t.priority;if(o!==0)return o;let i=Ip(e.order,t.order);if(i!==0)return i;let s=Cp(e.deadline,t.deadline);if(s!==0)return s;let a=E(gr(t.updated_at),gr(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function pr(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function br(e,t,n=new Set,r="context"){return Is(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:pr({id:o.id,title:o.item.title}),summary:pr({id:o.id,title:o.item.title,type:o.item.type,status:o.item.status,priority:o.item.priority,parent:o.item.parent}),full:pr(o.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function kr(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function vr(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 ea(e,t){return t>0?Math.round(e/t*100):0}function Pe(e){let t=new Map;for(let n of e){let r=wr(n.parent);if(!r)continue;let o=t.get(r)??[];o.push(n),t.set(r,o)}return t}function ot(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:wr(e.parent)};if(t&&n){let o=rt(e.id,n),i=o.length;if(i>0){let s=o.filter(a=>nt(a.status,t)).length;r.children_total=i,r.children_closed=s,r.completion_pct=ea(s,i)}}return r}function Ap(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 tn(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Lp(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function Fp(e,t,n,r){let o=new Map;for(let c of e)o.set(c.id,c);let i=Pe(e),s=new Set(t.filter(c=>tt.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=o.get(c);if(!d)continue;let u=rt(c,i),l=i.get(c)??[],f=0,m=0,h=0,y=0;for(let w of u)nt(w.status,n)?f++:yr(w.status,n)?h++:kp(w.status,n)?y++:Qs(w.status,n)&&m++;let b=l.sort((w,_)=>we(w,_,n)).slice(0,r).map(w=>{let _=rt(w.id,i),k=_.filter(x=>nt(x.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:h,children_blocked:y,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 rt(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 Np(e,t){return(await Po({compact:!0,limit:String(e)},t)).compact_activity??[]}function Mp(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=>tt.has(c.type)),a=[];for(let c of s){let d=rt(c.id,i),u=d.length;if(u===0)continue;let l=0,f=0,m=0,h=0;for(let y of d)nt(y.status,r)?l++:n.has(y.id.trim().toLowerCase())?h++:yr(y.status,r)?m++:Qs(y.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:u,closed:l,open:f,in_progress:m,blocked:h,completion_pct:ea(l,u)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,o)}function Op(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=Kt(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 $p(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 Pp(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=>yr(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 Up(e,t,n,r){return e.map(o=>({item:o,sortKey:gr(o.created_at)})).sort((o,i)=>{let s=E(i.sortKey,o.sortKey);return s!==0?s:o.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:o})=>({...ot(o,t,n),created_at:o.created_at}))}function Bp(e,t,n,r){return e.filter(o=>!wr(o.parent)&&!tt.has(o.type)).sort((o,i)=>we(o,i,t)).slice(0,r).map(o=>ot(o,t,n))}function Gp(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 qs(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function ta(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 Kp(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function zp(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`${qs(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${qs(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 Ws(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 Hp(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 qp(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(`- ${zp(n)}`);e.push("")}function Wp(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 Vp(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 Yp(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)}`:`- ${Rp(o.created_at)} ${ta(o)}`);e.push("")}}function Xp(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 Jp(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 Qp(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 Zp(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 eg(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 tg(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 ng(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 rg(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 zb(e){let t=[],n=e.focus_fields,r=i=>n?Kp(i,n):ta(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(""),Ws(t,"High-level focus",e.high_level,"No high-level active items.",r),Ws(t,"Low-level focus",e.low_level,"No low-level active items.",r),Hp(t,e,r),qp(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 Wp(t,e),Vp(t,e),Yp(t,e,n,r),Xp(t,e,r),Jp(t,e),Qp(t,e),Zp(t,e),eg(t,e),tg(t,e),ng(t,e),rg(t,e),t.join(`
11
+ `)}async function og(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=r.context??Rr.context,i=z(r.schema),s=yp(e.depth,o),a=gp(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:_p(e.section,s,o),activityLimit:wp(e.activityLimit,o),staleThresholdDays:bp(e.staleThreshold,o),parentScope:Ep(e.parent),focusFields:pp(e.fields),baseListOptions:xp(e)}}function xr(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function ig(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function sg(e,t){let n=xr(t.sectionsIncluded),r=await Xe(void 0,ig(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=ag(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 ag(e,t){if(e===void 0)return;let n=_r(t,e);if(!n.found)throw new g(`Context --parent item not found: ${e}`,p.NOT_FOUND);return n.ids}async function cg(e,t,n,r,o,i,s,a,c,d,u,l,f,m,h){let y=[...e].sort((v,ke)=>we(v,ke,o)),b=await Qt({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),w=await en(y,{pmRoot:f,storeKey:"context",statusRegistry:o,now:a,author:c,usageAffinity:b.affinity,claimFocus:h}),_=await Xt("context",w.candidates),k=_.ranked.map(v=>v.item),x=o.active_statuses,I=k.filter(v=>x.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?se(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=br({..._,ranked:_.ranked.filter(v=>M.has(v.id))},m,new Set(Object.entries(h??{}).filter(([,v])=>v>=1).map(([v])=>v))),X=q.included.map(v=>v.item),J=X.filter(v=>x.has(C(v.status,o))),be=X.filter(v=>r.has(v.id.trim().toLowerCase())),Q=Pe(t),ne=xr(i)?Q:void 0,re=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),on=v=>{let ke=ot(v,o,ne);return r.has(v.id.trim().toLowerCase())&&(ke.blocked=!0,ke.blocker_ids=Kt(v,re,o).filter(sn=>!sn.resolved).map(sn=>sn.id)),ke},ha=J.filter(v=>tt.has(v.type)).slice(0,l?D.length:s).map(on),ya=J.filter(v=>!tt.has(v.type)).slice(0,l?D.length:s).map(on),Cr=I.length===0;return{activeItems:J,blockedItems:be,highLevel:ha,lowLevel:ya,blockedFallback:Cr?be.slice(0,s).map(on):[],blockedFallbackUsed:Cr,ranking:_,packing:q,featureStore:w,pageExtras:{...l?{applied_limit:s}:{},...U?{has_more:!0,truncated:!0}:{},...ce?{next_cursor:ce}:{}}}}function dg(e){return de("context",ut(e,ho))}function ug(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Xs}async function lg(e,t,n,r){let o={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await ks(o,e),s=n===void 0?i.events:i.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=Lp(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:Ap(a)}}function Vs(e,t,n){let r=String(t);return e.filter(o=>C(o.status,n)===r).length}async function fg(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:o,focusGroups:i,now:s,global:a}=e,c=Pe(n),d=n.filter(l=>!N(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?Fp(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await Np(t.activityLimit,a):void 0,progress:u("progress")?Mp(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?Op(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?Up(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?Bp(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?$p(i.activeItems,t.limit):void 0,workload:u("workload")?Pp(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?jp(d,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?Gp(i.activeItems):void 0}}function mg(e,t,n){if(!e)return{};let r=F("canceled",n);return{total_items:t.length,closed:t.filter(o=>nt(o.status,n)).length,canceled:t.filter(o=>C(o.status,n)===r).length}}function pg(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 gg(e,t){t&&(e.focus_fields=t,e.high_level=et(e.high_level,t),e.low_level=et(e.low_level,t),e.blocked_fallback=et(e.blocked_fallback,t),e.recently_created&&(e.recently_created=et(e.recently_created,t)),e.unparented&&(e.unparented=et(e.unparented,t)))}function hg(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 yg(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 _g(e,t,n,r){try{let o=new Set(t.packing.included.map(i=>i.id));await Jt({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=tn(e.warnings,["context_usage_feedback_write_failed"])}}async function wg(e,t,n){if(e)return{};let o=(await Or({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 bg(e,t){let n=Wr(),r=await Gr(e),o=n.instance||Kr(t);return Ks(r.semantic_attribution?.[o])}async function Hb(e,t){let n=S(process.cwd(),t.path),r=await og(e,t),o=await sg(t,r),i=hp(r.limit,o.fullCorpus.length),s={...r,limit:i,tokenBudget:hr(e.tokenBudget,Math.max(256,i*160))},a=pe(void 0,s.settings.author_default),c=await bg(n,a),d=wg(e.noExtensionHealth===!0,n,s.settings),u=qe(o.fullCorpus,s.statusRegistry),l=await cg(o.listedItemMetadata,o.allItems,o.fullCorpus,u,s.statusRegistry,s.sectionsIncluded,s.limit,G(),a,e.after,dg(e),ug(e,o.fullCorpus.length),n,s.tokenBudget,c),f=await lg(t,s,o.subtreeIds,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(x=>x.id))),m=await js(o.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),h=tn(o.listed.warnings,f.agenda.warnings,l.ranking.warnings,[...l.featureStore.warnings],m.warnings),y=Vs(l.activeItems,F("in_progress",s.statusRegistry),s.statusRegistry),b=Vs(l.activeItems,F("open",s.statusRegistry),s.statusRegistry),w=await fg({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:u,focusGroups:l,now:f.agenda.now,global:t}),_=mg(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:y,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=Us(m,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(k,await d),pg(k,w,l.featureStore.warning_details),hg(k,e.noTags===!0),e.explainRanking===!0&&(k.ranking=vr(l.ranking,l.featureStore,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(x=>x.id))),k.packing=kr(l.packing)),gg(k,s.focusFields),h.length>0&&(k.warnings=h),yg(k,l.activeItems,l.blockedItems),await _g(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 kg=["markdown","toon","json"],vg=5,xg=1440*60*1e3;function Eg(e){if(!e)return;let t=e.trim().toLowerCase();if(!kg.includes(t))throw new g("Next format must be one of markdown|toon|json",p.USAGE);return t}function nk(e,t){let n=Eg(e.format);if(t.json&&n&&n!=="json")throw new g("Cannot combine --json with --format markdown|toon",p.USAGE);return t.json?"json":n??"toon"}function na(e,t,n){let r=V(e,t);return r===void 0||r<=0?n:r}function Er(e,t,n,r){return{...ot(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 Ig(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(Sg(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 oa(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 rk={partitionCallerOwnedReady:oa,resolveNextCallerAuthor:(e,t)=>ia(e,t)};function Cg(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 Sg(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))/xg);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function Tg(e,t){let n=F("in_progress",t);return e.filter(r=>C(r.status,t)===n).length}function Ir(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Dg(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 ra(e,t,n){return[...e].sort((r,o)=>{let i=Ir(r.item,t),s=Ir(o.item,t);return i!==s?Number(i)-Number(s):we(r.item,o.item,n)})}function Rg(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Ig(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Ag(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 Lg(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 Fg(e){try{let t=new Set(e.packing.included.map(n=>n.id));await Jt({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=tn(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Ng(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=vr(e.readyRanking,e.featureStore),e.result.packing=kr(e.packing)),e.result.suggestions=Ag(e.recommended,e.blockedRows),await Fg({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Mg(e,t,n){if(!n)return e;let r=_r(t,n);if(!r.found)throw new g(`Next --parent item not found: ${n}`,p.NOT_FOUND);return e.filter(o=>r.ids.has(o.id.trim().toLowerCase()))}async function Og(e,t,n,r,o,i,s){let a=e.filter(y=>!Ir(y.item,t)),c=a.length>0?a:e,d=await Qt({pmRoot:i,author:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await en(c.map(y=>y.item),{pmRoot:i,storeKey:"next",statusRegistry:n,now:r,author:o,usageAffinity:d.affinity}),l=await Xt("next",u.candidates),f=br(l,s,new Set,"next"),m=new Map(c.map(y=>[y.item.id,y]));return{projectedReady:l.ranked.map(y=>m.get(y.id)).filter(y=>y!==void 0),ranking:l,completedContainer:a.length===0,packing:f,featureStore:u}}function ia(e,t){let n=e.assignee?.trim();return pe(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function ok(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=ia(e,r.author_default),i=z(r.schema),s=G(),a=na(e.limit,"--limit",vg),c=hr(e.tokenBudget,Math.max(192,a*128)),d=na(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await Xe(void 0,Dg(e,{excludeTerminal:!0}),t),m=await Xe(void 0,{excludeTerminal:!1,noTruncate:!0},t),h=Mg(f.items,m.items,l),y=m.items,b=Yn(h,y,i),w=Pe(y),_=Cg(b.ready,e.includeDecisions===!0),k=oa(_.agent,r.author_default,o),x=ra(k.available,w,i),I=[...b.blocked].sort((ne,re)=>we(ne.item,re.item,i)),{projectedReady:P,ranking:D,completedContainer:U,packing:ce,featureStore:B}=await Og(x,w,i,s,o,n,c),M=P.map((ne,re)=>Er(ne,i,w,re+1)),q=I.map((ne,re)=>Er(ne,i,w,re+1)),X=ra(_.decisions,w,i).map((ne,re)=>Er(ne,i,w,re+1)),J=Rg({projectedReady:P,readyRows:M,statusRegistry:i,now:s,completedContainer:U}),be=Lg(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:Tg(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:be};return Ng({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 ik(e){let t=["# pm next","",...$g(e)];if(t.push(...nn("Recommended",Pg(e.recommended),"No ready work.")),t.push(...nn("Decision needed",(e.decision_needed??[]).map(n=>`- ${rn(n)}`),"No human-gated decisions.")),t.push(...nn("Ready",e.ready.map(n=>`- ${rn(n)}`),"No ready items.")),e.filters.ready_only||t.push(...nn("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 $g(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 Pg(e){return e?[`- ${rn(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function nn(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`${rn(e)} blocked_by:${t}`}function rn(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 Ug}from"node:crypto";import{setTimeout as Bg}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]="3f9853cc-0719-544f-8726-3cfd6063b59e")}catch{}})();var aa=1,ca=/^[A-Za-z0-9_-]+$/,Gg=100,sa=1e3,Kg=250;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 da(e){return Ug("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 ua(e,t){let n={version:aa,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 la(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===aa,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 fa(e,t){let n=e.trim();if(n.length===0||n.length>4096||!ca.test(n))throw new g("Invalid mutation event cursor.",p.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new g("Invalid mutation event cursor.",p.USAGE,{code:"invalid_event_cursor"})}if(!la(r,t))throw new g("Mutation event cursor does not match this query.",p.USAGE,{code:"event_cursor_query_mismatch"});return r}function ma(e){let t=e??Gg;if(!Number.isSafeInteger(t)||t<0||t>sa)throw new g(`Mutation event limit must be an integer from 0 to ${sa}.`,p.USAGE,{code:"invalid_event_limit"});return t}function pa(e){return e instanceof Error&&e.name==="AbortError"}function ga(e,t){let n=e?.trim();if(!n)return{};if(ca.test(n))return{cursor:fa(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new g("Mutation event --since must be an event cursor or ISO timestamp.",p.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function zg(e,t){let n=await un(e,t);if(n===null){if(!await Vr(e))throw new g("Mutation events require a runtime with node:sqlite DatabaseSync support.",p.GENERIC_FAILURE,{code:"event_index_unavailable"});n=await un(e,t)}if(n===null)throw new g("Mutation event index could not be opened after rebuild.",p.GENERIC_FAILURE,{code:"event_index_unavailable"});return n}async function Hg(e={}){let t=S(e.cwd??process.cwd(),e.pmRoot);if(!await A($(t)))throw new g(`Tracker is not initialized at ${t}. Run pm init first.`,p.NOT_FOUND);let n=ma(e.limit);if(e.full===!0&&e.provenance===!0)throw new g("Mutation event projections are mutually exclusive. Use --provenance or --full.",p.USAGE);let r=await T(t),o=r.agent_identity.identity_vocabulary,i=vt(r.agent_identity.harness_signals),s=kn({provenance:e.provenanceFilter},i),a=Y(e.harness),c=da(e),{cursor:d,sinceTimestamp:u}=ga(e.since,c),l={...d?{after_ts:d.ts,after_stream_id:d.stream_id,after_stream_offset:d.stream_offset}:u?{since_ts:u}:{},ops:Y(e.type),authors:Y(e.author),harnesses:a,harness_alias_authors:a?Object.entries(o.aliases).filter(([,h])=>a.includes(h)).map(([h])=>h):void 0,agent_instances:Y(e.agentInstance),provenance:[...s].map(([h,y])=>({dimension:h,values:[...y]})),stream_ids:Y(e.item),limit:n},f=await zg(t,l),m=f.events.map(h=>({cursor:ua(h,c),item_id:h.stream_id,version:h.stream_offset+1,ts:h.entry.ts,author:h.entry.author,type:h.entry.op,...h.entry.message===void 0?{}:{message:h.entry.message},patch_count:h.entry.patch.length,...e.full===!0?{entry:h.entry}:{},...e.provenance===!0?{provenance:xt(h.entry,o,{itemId:h.stream_id,version:h.stream_offset+1})}:{}}));return{events:m,count:m.length,has_more:f.has_more,...m.length===0?{}:{next_cursor:m[m.length-1].cursor},source:"derived_index",...e.provenanceSummary===!0?{provenance_summary:Et(f.events.map(h=>h.entry),o,i)}:{}}}async function*yk(e={}){let t=e.intervalMs??Kg;if(!Number.isSafeInteger(t)||t<10)throw new g("Mutation event follow interval must be an integer of at least 10ms.",p.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Hg({...e,since:n});if(r.events.length>0){for(let o of r.events)yield o;n=r.next_cursor;continue}try{await Bg(t,void 0,{signal:e.signal})}catch(o){if(pa(o))return;throw o}}}var _k={decodeMutationEventCursor:fa,encodeMutationEventCursor:ua,eventQueryFingerprint:da,isAbortError:pa,isMutationEventCursorEnvelope:la,parseMutationEventLimit:ma,resolveMutationEventStart:ga};(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 bk(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{yo as a,_o as b,Ue as c,wo as d,bo as e,oh as f,ko as g,wn as h,Ch as i,Sh as j,Bh as k,Gh as l,wt as m,Ao as n,Lo as o,qh as p,V as q,bt as r,Fo as s,kt as t,vt as u,kn as v,xt as w,ny as x,vn as y,Et as z,fy as A,Po as B,jo as C,uc as D,Re as E,gy as F,hy as G,En as H,ge as I,fc as J,pc as K,In as L,gc as M,Fe as N,It as O,Cn as P,Ct as Q,Iy as R,Go as S,Wy as T,Yo as U,Xo as V,Jo as W,Qo as X,Zo as Y,Ft as Z,ti as _,Me as $,ni as aa,si as ba,$t as ca,ai as da,Vd as ea,fi as fa,jt as ga,Pn as ha,Ut as ia,mi as ja,gi as ka,jn as la,He as ma,yi as na,Bn as oa,Gn as pa,Kn as qa,_i as ra,zn as sa,bi as ta,ki as ua,xi as va,wu as wa,G_ as xa,bk as ya,Ou as za,ye as Aa,Gt as Ba,Li as Ca,Kt as Da,qe as Ea,Yn as Fa,Xn as Ga,We as Ha,Ni as Ia,Mi as Ja,Ui as Ka,Zn as La,Gi as Ma,ew as Na,tw as Oa,Hi as Pa,qi as Qa,rw as Ra,nl as Sa,es as Ta,Xi as Ua,Ji as Va,rl as Wa,ol as Xa,Dw as Ya,ul as Za,ll as _a,fl as $a,Xe as ab,Mw as bb,Ow as cb,$w as db,ks as eb,dr as fb,Yt as gb,tm as hb,Es as ib,sm as jb,Xt as kb,am as lb,cm as mb,fm as nb,mm as ob,Gw as pb,pm as qb,Is as rb,te as sb,Jt as tb,Yw as ub,Xw as vb,Qt as wb,ur as xb,lr as yb,Nm as zb,Um as Ab,Bm as Bb,fr as Cb,mr as Db,en as Eb,Os as Fb,ib as Gb,Vm as Hb,Qm as Ib,js as Jb,ip as Kb,Us as Lb,sp as Mb,gb as Nb,Gs as Ob,kb as Pb,vb as Qb,xb as Rb,Eb as Sb,Ks as Tb,ap as Ub,pp as Vb,et as Wb,Kb as Xb,hr as Yb,yp as Zb,_p as _b,_r as $b,we as ac,br as bc,kr as cc,vr as dc,Pe as ec,ot as fc,tn as gc,zb as hc,hg as ic,Hb as jc,kg as kc,nk as lc,rk as mc,Cg as nc,ok as oc,ik as pc,Hg as qc,yk as rc,_k as sc};
13
+ //# sourceMappingURL=chunk-AIM6VT2N.js.map